【发布时间】:2012-02-14 14:21:52
【问题描述】:
我有一个没有被划分为库的项目,但是源代码被组织在一个目录树中。我不知道如何告诉 cmake 去一个目录,然后将该目录中的源添加到父目录中定义的项目中。我尝试了以下方法:
在项目/source/CMakelists.txt:
set(SOURCE
${CMAKE_CURRENT_SOURCE_DIR}/unitTest/main.cpp
)
add_subdirectory("${PROJECT_SOURCE_DIR}/folder1")
add_executable(UnitTestRNG ${SOURCE} ${HEADERS})
然后在project/source/folder1/CMakeLists.txt:
set(SOURCE
${SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/file1.cpp
${CMAKE_CURRENT_SOURCE_DIR}/file2.cpp
)
set(HEADERS
${HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/file1.hpp
${CMAKE_CURRENT_SOURCE_DIR}/file2.hpp
)
使用一些 message() 语句,我发现子文件夹将获取 SOURCE 变量的内容,但是对该变量的新分配不会在返回父 CMakeLists.txt 时持续存在
寻找示例并在 cmake 教程中使我得出以下结论: - 源文件结构通常在项目中是扁平的 - 如果代码分文件夹,通常是分到相应的库中。
我想知道是否有一些“最佳实践”在尝试这种结构时有所偏离。
【问题讨论】:
标签: cmake