PROJECT_BINARY_DIR
执行cmake ..所在的目录。
PROJECT_SOURCE_DIR
当前CMakeLIsts.txt所在的目录。
CMAKE_BINARY_DIR
同project_binary_dir
CMAKE_SOURCE_DIR
CMAKE_SOURCE_DIR: 最外层CMakeLists.txt所在目录,整个项目的目录。
CMAKE_CURRENT_SOURCE_DIR
CMAKE_CURRENT_SOURCE_DIR:当前项目(一般是子模块)的目录
add_sub(root目录下):
cmake_minimum_required(VERSION 3.22.1)
project(add_sub)
message("root directory output:")
message("PROJECT_SOURCE_DIR:${PROJECT_SOURCE_DIR}")
message("PROJECT_BINARY_DIR:${PROJECT_BINARY_DIR}")
message("CMAKE_SOURCE_DIR:${CMAKE_SOURCE_DIR}")
message("CMAKE_BINARY_DIR:${CMAKE_BINARY_DIR}")
message("CMAKE_CURRENT_SOURCE_DIR:${CMAKE_CURRENT_SOURCE_DIR}")
add_subdirectory(sub)
add_sub下的sub:
cmake_minimum_required(VERSION 3.22.1)
project(sub)
message("sub directory output:")
message("PROJECT_SOURCE_DIR:${PROJECT_SOURCE_DIR}")
message("PROJECT_BINARY_DIR:${PROJECT_BINARY_DIR}")
message("CMAKE_SOURCE_DIR:${CMAKE_SOURCE_DIR}")
message("CMAKE_BINARY_DIR:${CMAKE_BINARY_DIR}")
message("CMAKE_CURRENT_SOURCE_DIR:${CMAKE_CURRENT_SOURCE_DIR}")
add_library(sub test.cpp)
#message("output sub directory")
CMAKE_CURRENT_LIST_DIR
当前项目文件列表(包括CMakeLists.txt)所在目录,同PROJECT_SOURCE_DIR。