• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1set(CMAKE_CROSSCOMPILING TRUE)
2set(CMAKE_SYSTEM_NAME Linux)
3set(CMAKE_CXX_COMPILER_ID Clang)
4SET (CMAKE_SYSTEM_PROCESSOR arm)
5
6SET ( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
7SET ( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
8SET ( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
9
10SET ( CROSS_COMPILATION_ARCHITECTURE armv7-a)
11
12set(CMAKE_TOOLCHAIN_PREFIX llvm-)
13
14set(PROJECT_ROOT CC_REPLACE_OHOS_ROOT)
15
16#指定c编译工具(确保工具链所在路径已经添加到了PATH环境变量中)和编译标志,使用clang编译时标志中必须指定--target,否则无法交叉编译。
17set(CMAKE_C_COMPILER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang)
18set(CMAKE_C_FLAGS "--target=arm-linux-ohosmusl -D__clang__ -march=armv7-a  -mfloat-abi=softfp -mfpu=neon-vfpv4 -w")
19#指定c++编译工具(确保工具链所在路径已经添加到了PATH环境变量中)和编译标志,必须指定--target,否则无法交叉编译。
20set(CMAKE_CXX_COMPILER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang++)
21set(CMAKE_CXX_FLAGS "--target=arm-linux-ohosmusl -D__clang__ -march=armv7-a  -mfloat-abi=softfp -mfpu=neon-vfpv4 -w")
22#指定链接工具和链接标志,必须指定--target和--sysroot,其中OHOS_ROOT_PATH可通过cmake命令后缀参数来指定。
23set(MY_LINK_FLAGS "--target=arm-linux-ohosmusl --sysroot=${PROJECT_ROOT}/CC_REPLACE_OHOS_TARGET/obj/third_party/musl/")
24set(CMAKE_LINKER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang)
25set(CMAKE_CXX_LINKER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang++)
26set(CMAKE_C_LINKER ${PROJECT_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang)
27
28#指定链接库的查找路径。
29set(CMAKE_SYSROOT ${PROJECT_ROOT}/CC_REPLACE_OHOS_TARGET/obj/third_party/musl/)
30set(CMAKE_EXE_LINKER_FLAGS "-Wl,--dynamic-linker,/lib/ld-musl-arm.so.1")
31