Cmake笔记之set_target_properties

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cmake笔记之set_target_properties相关的知识,希望对你有一定的参考价值。

参考技术A 第一篇文章,记一个困扰了我很长时间的一个cmake的问题吧。

大家在用cmake时,应该经常会用到第三方so库,导入第三方so库中需要使用到set_target_properties,例如这样写:

set_target_properties(

Thirdlib

PROPERTIES IMPORTED_LOCATION

$CMAKE_CURRENT_SOURCE_DIR/jniLibs/libThirdlib.so

)

CMAKE_CURRENT_SOURCE_DIR 这个变量是系统自定义的,表示CMakeLists.txt文件的绝对路径

注意CMakeLists.txt文件的路径,我的这个文件是放在app/src/main 下。

CMake学习笔记二

 

CMake预定义变量

 

PROJECT_SOURCE_DIR 工程的根目录
PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/build
CMAKE_INCLUDE_PATH 环境变量,非cmake变量
CMAKE_LIBRARY_PATH 环境变量
CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的路径
CMAKE_CURRENT_BINARY_DIR target编译目录
使用ADD_SURDIRECTORY(src bin)    可以更改此变量的值
SET(EXECUTABLE_OUTPUT_PATH <新路径>)    并不会对此变量有影响,只是改变了最终目标文件的存储路径
CMAKE_CURRENT_LIST_FILE 输出调用这个变量的CMakeLists.txt的完整路径
CMAKE_CURRENT_LIST_LINE 输出这个变量所在的行
CMAKE_MODULE_PATH 定义自己的cmake模块所在的路径,然后可以用INCLUDE命令来调用自己的模块
EXECUTABLE_OUTPUT_PATH 重新定义目标二进制可执行文件的存放位置
LIBRARY_OUTPUT_PATH 重新定义目标链接库文件的存放位置
PROJECT_NAME 返回通过PROJECT指令定义的项目名称
CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS 用来控制IF ELSE语句的书写方式

 

以上是关于Cmake笔记之set_target_properties的主要内容,如果未能解决你的问题,请参考以下文章

CMake学习笔记二

CMake学习笔记一

cmake笔记

cmake 学习笔记

Cmake构建程序学习笔记

Cmake构建程序学习笔记