set_target_properties 的作用是设置目标的属性,可以是目标文件输出的名称或者目录、目标文件的版本号。与之对应的,我们可以使用 get_target_properties 来获取目标文件某一属性对应的值。
命令格式如下:
set_target_properties(目标文件1 目标文件2 ...
PROPERTIES
属性1 属性值1 属性2 属性值2 ...)
下面仅列举出一些常见的属性,更多属性可以参考cmake官方文档:cmake-properties
目录
4、指定Debug模式下目标文件名的后缀(DEBUG_POSTFIX)
一、内置属性
1、更改目标文件的输出名称(OUTPUT_NAME)
命令格式:
SET_TARGET_PROPERTIES (<old_name> PROPERTIES OUTPUT_NAME <new_name>)
举例:
ADD_LIBRARY (hello SHARED ${LIBHELLO_SRC})
# 因为target不能同名,只能先生成一个临时的,然后更名
ADD_LIBRARY (hello_static STATIC ${LIBHELLO_SRC})
# 更改输出文件名
# 将 hello_static 更名为 hello
SET_TARGET_PROPERTIES (hello_static PROPERTIES OUTPUT_NAME "hello")
2、设置版本号(VERSION)
命令格式:
# VERSION: 一般指代动态库版本
# SOVERSION: 指代API版本
SET_TARGET_PROPERTIES (<target> PROPERTIES
VERSION <version_number>
SOVERSION <soversion_number>
)
举例:
SET_TARGET_PROPERTIES (hello PROPERTIES VERSION 1.2 SOVERSION 1)
3、将目标文件保存到指定目录下
方式一:设置输出目录
我们可以设置动态库的保存目录,然后所有的动态库都会被保存到该目录下(静态库和二进制执行文件也是同理)。对应的属性如下
- CMAKE_RUNTIME_OUTPUT_DIRECTORY:二进制执行文件的输出目录
- CMAKE_LIBRARY_OUTPUT_DIRECTORY:动态库的输出目录
- CMAKE_ARCHIVE_OUTPUT_DIRECTORY:静态库的输出目录
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/l

最低0.47元/天 解锁文章
751





