44 lines
2.4 KiB
CMake
44 lines
2.4 KiB
CMake
|
||
# 定义一个函数来配置项目的默认设置
|
||
# 这包括设置输出目录和项目根目录变量
|
||
function(configure_project_defaults)
|
||
# 检查是否在顶层 CMakeLists.txt 中调用 (可选但推荐)
|
||
# 确保 CMAKE_SOURCE_DIR 和 CMAKE_CURRENT_SOURCE_DIR 相同
|
||
if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||
message(WARNING "configure_project_defaults() 应该在项目的根 CMakeLists.txt 中调用。")
|
||
# 如果您确实需要在子目录中设置不同的根目录,请调整此逻辑
|
||
endif()
|
||
|
||
# --- 配置输出目录 ---
|
||
# 使用 CMAKE_BINARY_DIR 作为基础构建目录
|
||
# ${CMAKE_BINARY_DIR} 指向您配置 CMake 时指定的构建目录
|
||
# 例如,在 CLion 中通常是 cmake-build-debug 或 cmake-build-release
|
||
# 如果手动运行 cmake ..,它就是您运行 cmake 命令的目录
|
||
|
||
# **设置可执行文件输出路径**:
|
||
# 对于单配置生成器 (如 Makefiles, Ninja), 可执行文件将位于 <build>/bin/
|
||
# 对于多配置生成器 (如 Visual Studio, Xcode), CMake 通常会自动在此路径下附加配置名称
|
||
# (例如 <build>/bin/Debug/, <build>/bin/Release/)
|
||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin CACHE PATH "Directory for runtime executables")
|
||
message(STATUS "运行时输出目录设置为: ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
|
||
|
||
# **设置库文件输出路径 (共享库和静态库)**:
|
||
# 规则同上,库文件将位于 <build>/lib/ 或 <build>/lib/<Config>/
|
||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib CACHE PATH "Directory for shared libraries")
|
||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib CACHE PATH "Directory for static libraries")
|
||
message(STATUS "库输出目录设置为: ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
|
||
message(STATUS "存档输出目录设置为: ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
|
||
|
||
# --- 提示 ---
|
||
# 这种全局设置输出目录的方法对于中小型项目是常见的。
|
||
# 对于更复杂的项目或需要更细粒度控制的情况,可以考虑为每个目标(target)单独设置输出目录属性:
|
||
# 例如:
|
||
# add_executable(my_app main.cpp)
|
||
# set_target_properties(my_app PROPERTIES
|
||
# RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/executables"
|
||
# )
|
||
# add_library(my_lib STATIC my_lib.cpp)
|
||
# set_target_properties(my_lib PROPERTIES
|
||
# ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/static_libs"
|
||
# )
|
||
endfunction() |