【cmake学习】set_target_properties 常见属性以及获取target 属性

set_target_properties 的作用是设置目标的属性,可以是目标文件输出的名称或者目录、目标文件的版本号。与之对应的,我们可以使用 get_target_properties 来获取目标文件某一属性对应的值。

命令格式如下:

set_target_properties(目标文件1 目标文件2 ...
                      PROPERTIES 
                      属性1 属性值1 属性2 属性值2 ...)                 

下面仅列举出一些常见的属性,更多属性可以参考cmake官方文档:cmake-properties


目录

一、内置属性

1、更改目标文件的输出名称(OUTPUT_NAME)

2、设置版本号(VERSION)

3、将目标文件保存到指定目录下

4、指定Debug模式下目标文件名的后缀(DEBUG_POSTFIX)

二、自定义属性

1、为一个目标创造属性

2、一次为多个目标创造属性

三、获取属性


一、内置属性

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值