Commit c999cf36 authored by dsq's avatar dsq

适配arm64、x64的header

parent 3cf4cb5e
...@@ -216,14 +216,14 @@ arrayOf("debug", "release").forEach { type -> ...@@ -216,14 +216,14 @@ arrayOf("debug", "release").forEach { type ->
dependsOn("link${type.capitalizeUS()}SharedOhosArm64", "link${type.capitalizeUS()}SharedOhosX64") dependsOn("link${type.capitalizeUS()}SharedOhosArm64", "link${type.capitalizeUS()}SharedOhosX64")
duplicatesStrategy = DuplicatesStrategy.INCLUDE duplicatesStrategy = DuplicatesStrategy.INCLUDE
into(rootProject.file("harmonyApp")) into(rootProject.file("harmonyApp"))
from("build/bin/ohosArm64/${type}Shared/libkn_api.h") { from("build/bin/ohosArm64/${type}Shared/libkn_api.h") { // 复制头文件
into("entry/src/main/cpp/include/") into("entry/src/main/cpp/include/arm64-v8a/") // 指定目录
} }
from(project.file("build/bin/ohosArm64/${type}Shared/libkn.so")) { from(project.file("build/bin/ohosArm64/${type}Shared/libkn.so")) { // 复制共享库文件
into("entry/libs/arm64-v8a/") into("/entry/libs/arm64-v8a/") // 指定目标目录
} }
from("build/bin/ohosX64/${type}Shared/libkn_api.h") { from("build/bin/ohosX64/${type}Shared/libkn_api.h") {
into("entry/src/main/cpp/include/") into("entry/src/main/cpp/include/x86_64/")
} }
from(project.file("build/bin/ohosX64/${type}Shared/libkn.so")) { from(project.file("build/bin/ohosX64/${type}Shared/libkn.so")) {
into("entry/libs/x86_64/") into("entry/libs/x86_64/")
......
...@@ -8,11 +8,20 @@ if(DEFINED PACKAGE_FIND_FILE) ...@@ -8,11 +8,20 @@ if(DEFINED PACKAGE_FIND_FILE)
include(${PACKAGE_FIND_FILE}) include(${PACKAGE_FIND_FILE})
endif() endif()
# 按 ABI 选 libkn.so / libkn_api.h(须与 libs/<abi>/libkn.so 来自同一次 K/N link)
if(CMAKE_OHOS_ARCH_ABI STREQUAL "x86_64" OR OHOS_ARCH STREQUAL "x86_64")
set(LIBKN_ABI_DIR "x86_64")
else()
set(LIBKN_ABI_DIR "arm64-v8a")
endif()
include_directories(${NATIVERENDER_ROOT_PATH} include_directories(${NATIVERENDER_ROOT_PATH}
${NATIVERENDER_ROOT_PATH}/include) ${NATIVERENDER_ROOT_PATH}/include
${NATIVERENDER_ROOT_PATH}/include/${LIBKN_ABI_DIR})
# 从skikobridge 换成了 compose find_package(skikobridge)
find_package(compose)
add_library(entry SHARED napi_init.cpp) add_library(entry SHARED napi_init.cpp)
# Link against ComposeApp shared library to resolve exported symbols # Link against ComposeApp shared library to resolve exported symbols
...@@ -22,16 +31,18 @@ target_link_libraries(entry PUBLIC libhilog_ndk.z.so) ...@@ -22,16 +31,18 @@ target_link_libraries(entry PUBLIC libhilog_ndk.z.so)
target_link_libraries(entry PUBLIC libdeviceinfo_ndk.z.so) target_link_libraries(entry PUBLIC libdeviceinfo_ndk.z.so)
target_link_libraries(entry PUBLIC librawfile.z.so) target_link_libraries(entry PUBLIC librawfile.z.so)
#target_link_libraries(entry PUBLIC libicu.so) #target_link_libraries(entry PUBLIC libicu.so)
# 按 ABI 选 libkn.so 路径(当前 abiFilters 仅 x86_64 时只构建模拟器)
if(CMAKE_OHOS_ARCH_ABI STREQUAL "x86_64" OR OHOS_ARCH STREQUAL "x86_64")
set(LIBKN_ABI_DIR "x86_64")
else()
set(LIBKN_ABI_DIR "arm64-v8a")
endif()
set_target_properties(ComposeApp PROPERTIES set_target_properties(ComposeApp PROPERTIES
IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${LIBKN_ABI_DIR}/libkn.so" IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${LIBKN_ABI_DIR}/libkn.so"
) )
target_link_libraries(entry PUBLIC ComposeApp) target_link_libraries(entry PUBLIC ComposeApp)
# 先链接 libkn.so,再链接 compose里面的skikobridge # 先链接 libkn.so,再链接 compose里面的skikobridge
target_link_libraries(entry PUBLIC compose::skikobridge) target_link_libraries(entry PUBLIC compose::skikobridge)
target_link_libraries(entry PUBLIC ${EGL-lib} ${GLES-lib} ${hilog-lib} ${libace-lib} ${libnapi-lib} ${libuv-lib} libc++_shared.so) target_link_libraries(entry PUBLIC ${EGL-lib} ${GLES-lib} ${hilog-lib} ${libace-lib} ${libnapi-lib} ${libuv-lib} libc++_shared.so)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment