cmake 使用笔记

一个CMakeLists.txt 里生成两个目标,怎么为每个目标设置不同的预定义?

使用set_target_properties,(target ROPERTIES COMPILE_DEFINITIONS ...)

add_executable(main_1 main.cpp)
set_target_properties(main_1 PROPERTIES COMPILE_DEFINITIONS "PROJECT_NAME=\"mian_1\"")

add_executable(main_2 main.cpp)
set_target_properties(main_2 PROPERTIES COMPILE_DEFINITIONS "PROJECT_NAME=\"mian_2\"")

使用cmake生成Makefile后执行make时怎么输出详细的编译命令?

在CMakeLists.txt里添加:set(CMAKE_VERBOSE_MAKEFILE on),然后重新生成Makefile、再make。

环境变量 ENV{VAR_NAME}如何判断是否定义或设值了?

if (NOT DEFINED ENV{VAR_NAME}) #有效
    #...
endif()

if (DEFINED ENV{VAR_NAME}) #有效
    #...
endif()

if (NOT ENV{VAR_NAME}) #无效
    #...
endif()

 

posted @ 2019-07-16 11:08  Tianrks  阅读(737)  评论(1编辑  收藏  举报