1add_definitions(-DDE_OS="DE_OS_UNIX") 2add_definitions(-DDE_COMPILER="DE_COMPILER_CLANG") 3add_definitions(-DDE_CPU="DE_CPU_ARM") 4 5set(CMAKE_CROSSCOMPILING TRUE) 6set(CMAKE_SYSTEM_NAME Linux) 7set(CMAKE_CXX_COMPILER_ID Clang) 8SET ( CMAKE_SYSTEM_PROCESSOR arm ) 9 10add_definitions(-DFE_TONEAREST=0x00000000) 11add_definitions(-DFE_UPWARD=0x00400000) 12add_definitions(-DFE_DOWNWARD=0x00800000) 13add_definitions(-DFE_TOWARDZERO=0x00c00000) 14#add_definitions(-D_XOPEN_SOURCE=600) 15 16SET ( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) 17SET ( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) 18SET ( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) 19 20SET ( CROSS_COMPILATION_ARCHITECTURE armv7-a ) 21 22set(CMAKE_TOOLCHAIN_PREFIX llvm-) 23 24set(PROJECT_ROOT /home/zhangsz/OpenHarmony_master_0625) 25 26 27#指定c编译工具(确保工具链所在路径已经添加到了PATH环境变量中)和编译标志,使用clang编译时标志中必须指定--target,否则无法交叉编译。 28set(CMAKE_C_COMPILER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang) 29set(CMAKE_C_FLAGS "--target=arm-linux-ohosmusl -D__clang__ -march=armv7-a -mfloat-abi=softfp -mfpu=neon-vfpv4 -w") 30#指定c++编译工具(确保工具链所在路径已经添加到了PATH环境变量中)和编译标志,必须指定--target,否则无法交叉编译。 31set(CMAKE_CXX_COMPILER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang++) 32set(CMAKE_CXX_FLAGS "--target=arm-linux-ohosmusl -D__clang__ -march=armv7-a -mfloat-abi=softfp -mfpu=neon-vfpv4 -w") 33#指定链接工具和链接标志,必须指定--target和--sysroot,其中OHOS_ROOT_PATH可通过cmake命令后缀参数来指定。 34set(MY_LINK_FLAGS "--target=arm-linux-ohosmusl --sysroot=${PROJECT_ROOT}/out/rk3568/obj/third_party/musl/") 35set(CMAKE_LINKER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang) 36set(CMAKE_CXX_LINKER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang++) 37set(CMAKE_C_LINKER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang) 38 39#指定链接库的查找路径。 40set(CMAKE_SYSROOT ${PROJECT_ROOT}/out/rk3568/obj/third_party/musl/) 41set(CMAKE_EXE_LINKER_FLAGS "-Wl,--dynamic-linker,/system/bin/ld-musl-arm.so.1") 42