cmakelist

message("当前CMakeLists.txt所在目录: ${CMAKE_CURRENT_SOURCE_DIR}")
# 不同范围的含义
message("CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}")        # 最顶层CMakeLists.txt目录
message("CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}")  # 当前CMakeLists.txt目录
message("PROJECT_SOURCE_DIR: ${PROJECT_SOURCE_DIR}")    # 当前项目源目录

# 示例项目结构:
# project/
# ├── CMakeLists.txt          (顶层)
# ├── src/
# │   ├── CMakeLists.txt      (子目录)
# │   └── main.cpp
# └── lib/
#     ├── CMakeLists.txt      (子目录)
#     └── mylib.cpp


# 添加当前目录到头文件搜索路径
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)

# 或者使用target_include_directories
target_include_directories(my_target PRIVATE 
	${CMAKE_CURRENT_SOURCE_DIR}/include
)

# 添加当前目录下的源文件
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} SRC_FILES)

# 或者明确指定文件
set(SRC_FILES
	${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
	${CMAKE_CURRENT_SOURCE_DIR}/utils.cpp
)

# 配置头文件
configure_file(
	${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
	${CMAKE_CURRENT_BINARY_DIR}/config.h
)

# 添加子目录
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/submodule)

# 在 project/src/CMakeLists.txt 中:
message("CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}")           # /path/to/project
message("CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}")  # /path/to/project/src
posted @ 2025-09-29 10:26  cactus001  阅读(11)  评论(0)    收藏  举报