【发布时间】:2019-06-10 14:06:02
【问题描述】:
我们正在将基于 Makefile 的大型项目转换为基于 CMake 的系统。在构建代码之前,我需要构建许多依赖项。前三个依赖项是使用以下内容构建的:
add_subdirectory(dependencies/libexpat/expat)
add_subdirectory(dependencies/libuuid-1.0.3)
add_subdirectory(dependencies/log4c-1.2.4)
expat 有它自己的 CMakeLists.txt 文件并且构建没有问题。在继续之前,我想强制 expat 安装到暂存目录。对于 libuuid,我使用的是 ExternalProject_Add,作为该过程的一部分,它会安装到暂存目录中。
然后当我构建需要expat的log4c时,我可以将它指向expat的位置。否则,我需要有人访问 expat 临时构建位置的绝对路径。
我尝试在 add_subdirectory 之后添加以下内容:
add_subdirectory(dependencies/libexpat/expat)
add_subdirectory(dependencies/libuuid-1.0.3)
install(TARGETS expat LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/usr/lib)
add_subdirectory(dependencies/log4c-1.2.4)
很遗憾,CMake 不会运行 expat 的安装代码。如何在构建之后但在构建项目的其余部分之前强制 expat 安装?
【问题讨论】:
标签: cmake