cmake 按构建类型指定不同文件名

    cmake 生成工程的时候,很多教程都告诉你 CMAKE_BUILD_TYPE 是构建类型。原本想用这个来判断是否Debug 模式,并写if来修改文件名。但是,这个变量其实仅在生成 Make 文件这种非 multi-config下才起作用,在生成 VC 工程文件这样的 multi-config 里构建器里,仅会有一个叫 CMAKE_CONFIGURATION_TYPES 的变量。

   不要企图在 multi-confg 构建器里通过 if 来区分 Debug Release 之类的模式,因为 cmake 脚本是执行一遍同时产生所有构建类型的,所以如果想为不同的构建类型指定不同文件名,那么应该使用下面的代码:

SET_TARGET_PROPERTIES(<project_name> PROPERTIES <config>_OUTPUT_NAME <name>)

<config> 就是 Debug, Release, MinSizeRel, RelWithDebInfo 这样的构建类型。
CMake项目中,可以使用`cmake ..`命令来指定使用的CMake文件。具体来说,可以通过在项目的根目录下创建一个名为`CMakeLists.txt`的文件来定义项目的构建规则和配置选项。然后,在项目的构建目录中运行`cmake ..`命令,CMake会自动查找并使用根目录下的`CMakeLists.txt`文件来进行项目的构建。 如果你想使用自定义的CMake文件,可以按照以下步骤进行操作: 1. 在项目的根目录下创建一个名为`Findxxx.cmake`的文件,其中`xxx`是你自定义的文件名。 2. 在`Findxxx.cmake`文件中编写你需要的CMake命令,例如定义变量或函数等。 3. 在主`CMakeLists.txt`文件中使用`include`命令将`Findxxx.cmake`文件引入,以便在项目中使用其中定义的变量或函数。 以下是一个示例,演示了如何使用自定义的`Findxxx.cmake`文件: 1. 创建`FindMyLibrary.cmake`文件,并在其中定义一个变量`MY_LIBRARY_PATH`: ```cmake set(MY_LIBRARY_PATH "/path/to/my/library") ``` 2. 在主`CMakeLists.txt`文件中使用`include`命令引入`FindMyLibrary.cmake`文件,并使用其中定义的变量: ```cmake include(FindMyLibrary.cmake) # 使用MY_LIBRARY_PATH变量 message("My library path: ${MY_LIBRARY_PATH}") ``` 当你运行`cmake ..`命令时,CMake会自动查找并使用`CMakeLists.txt`文件,并在其中使用`include`命令引入`FindMyLibrary.cmake`文件。然后,你可以在项目中使用`MY_LIBRARY_PATH`变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值