请考虑以下结构:
dev_root/
\__ common/
\__ inc/
\__ src/
\__ CMakeLists.txt
\__ project1/
\__ inc/
\__ src/
\__ CMakeLists.txt
\__ project2/
\__ inc/
\__ src/
\__ CMakeLists.txt
Project1 和 Project2 是独立的项目。他们都使用通用代码。我想(有选择地)将一些常见的源文件列出到每个项目的 Visual Studio 项目文件中,以便我可以在 IDE 中编辑它们。
我不想要通用代码的独立库。
现在我使用相对路径,例如在 project1 的 cmake 文件中:
set(_hdr
inc/proj1.h
../common/inc/common1.h
)
set(_src
src/proj1.cxx
../common/src/common1a.cxx
../common/src/common1b.cxx
)
source_group("common\\inc" FILES
../common/inc/common1.h
)
source_group("common\\src" FILES
../common/src/common1a.cxx
../common/src/common1b.cxx
)
source_group("inc" FILES inc/proj1.h)
source_group("src" FILES src/proj1.cxx)
add_executable( project1 ${_src} ${_hdr} )
这不灵活——如果我想移动文件夹,所有 CMakeLists.txt 都必须经过审查和修改。有没有更优雅的方式来解耦依赖关系,或者有什么更好的方式来处理常见的源文件?
欢迎任何建议。非常感谢。