如何使用不同的构建树进行find_package()?

时间:2019-07-08 12:21:05

标签: cmake

我正在尝试遵循现代的cmake路径,并使用find_packages()/ link库方式。

我正在使用一种测试方案,其中: LIB_B取决于LIB_A,EXEC_A取决于两者。

我想知道如何将EXEC_A链接到LIB_B的调试库版本和LIB_A的发行版,反之亦然。

在LIB_A上,我正在使用set(CMAKE_DEBUG_POSTFIX "-debug"),因此在制作调试树时,我的LIB_A将成为LIB_A-debug。我将它们安装在/ usr / local / lib中,并且都驻留在那里。

例如,假设我在LIB_A中有以下代码行:

#ifdef Release
 printf("THIS IS RELEASE MODE");
#endif

这将区分LIB_A和LIB_A-调试。

在EXEC_A中,我会使用

find_package(LIBA REQUIRED)
add_executable(EXEC_A main.cpp)
target_link_libraries(EXEC_A PUBLIC LIBS::LIBA LIBS::LIBB)

假设我已将库导出到LIBS命名空间中。

有什么方法可以区分库的版本吗?

编辑:我在Linux(centos)上并使用GCC8。我的CMake版本是3.14

0 个答案:

没有答案