我有一个包含5个项目的大型CMake解决方案。在这1个项目中创建Main可执行文件,其余4个(3个静态+ 1个动态)项目创建链接到主项目的库。
MainSolution:
|-MainExecutablePrj
|-StaticLib_1Prj
|-StaticLib_2Prj
|-StaticLib_3Prj
|-DynamicLib_1Prj
整个项目将为 windows和linux平台构建。现在我需要在MainSolution下创建一个Sub目录,并创建一些使用DynamicLib_1
(.lib / .so)的测试用例项目。到目前为止,我所做的是为每个测试用例提供不同的解决方案,并复制所需的.h文件和.lib(.so)文件,并构建测试用例解决方案。
我很难维护源代码,每当动态库发生变化时,我需要复制所有必要的文件并重新重新构建测试用例。 所以我想在我的主项目中包含测试用例解决方案,这样每当我更改动态库项目时,它也会构建测试用例项目。
我非常清楚将这些测试用例解决方案添加为MainSolution
下的项目,但我想创建子目录并将所有测试用例项目放在该文件夹下。
MainSolution:
|-TestCasesFolder
|-TestCase_1Prj
|-TestCase_2Prj
|-...
|-MainExecutablePrj
|-StaticLib_1Prj
|-StaticLib_2Prj
|-StaticLib_3Prj
|-DynamicLib_1Prj
有人可以帮助我吗
答案 0 :(得分:0)
没有必要复制任何文件。
find_library
的构建库,并在子目录构建文件夹的路径中添加提示include_directories
的头文件。添加前缀以使其与平台无关。关于测试: 子项目的所有单元测试应该位于此项目结构内,而不是根项目中。将所有集成测试放在根项目中,或作为根项目的一部分放在单独的测试项目中。