现代cmake使用技巧

源赖朝源赖朝
1 min read
  • 不要再用nmake/make了,直接使用—build/—install吧,也不需要特意定义CMAKE_BUILD_TYPE,非常方便
#编译
cmake --build . --config Debug/Release
#安装,将安装到CMAKE_INSTALL_PREFIX下,默认是安装Release配置
cmake --install . --config Debug/Release
  • 环境变量,设定好后就是全局可用,不会因为add_subdirectory而变化,在多级的子项目时尤其好用:
set(ENV{PROJ_BASE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
  • 带缓存的PATH变量,可让Visual Studio/CMake GUI等工具有一个可选择文件夹路径的变量,并保存在缓存中,非常方便编辑:
set(OPENCV_DIR $ENV{OPENCV_ROOT} CACHE PATH "Root path of opencv")
    if(DEFINED OPENCV_DIR)
        list(APPEND CMAKE_PREFIX_PATH ${OPENCV_DIR})
    endif()
  • 设置exe/dll/pdb文件输出路径:
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY $ENV{PROJ_OUTPUT_DIR}/out)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY $ENV{PROJ_OUTPUT_DIR}/out)
set(CMAKE_PDB_OUTPUT_DIRECTORY $ENV{PROJ_OUTPUT_DIR}/pdbs)
0
Subscribe to my newsletter

Read articles from 源赖朝 directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

源赖朝
源赖朝