我正在尝试在我的CMake项目中使用此外部项目;外部项目也是CMake项目。
现在,外部项目生成静态库和一堆头文件;但是-我不希望将它们安装在任何地方,我只需要它们在我的主项目中构建东西(并且在构建和/或安装主项目后不需要这些文件)。
我如何让CMake“获取,构建但不安装”外部项目?我当时想我可能会通过强制一个空的安装命令来暗自做这件事,但是我敢肯定有一种更好,更优雅的方法。
答案 0 :(得分:2)
如@Tsyvarev所述,要跳过外部项目的安装,只需传递参数INSTALL_COMMAND ""
,这绝对是推荐的方法。
例如:
ExternalProject_Add(Foo
GIT_REPOSITORY "git://github.com/Foo/Foo"
GIT_TAG "123456"
SOURCE_DIR ${CMAKE_BINARY_DIR}/Foo
BINARY_DIR ${CMAKE_BINARY_DIR}/Foo-build
CMAKE_CACHE_ARGS
-DFOO_ENABLE_BAR:BOOL=1
INSTALL_COMMAND ""
)
然后,您将使用-DFoo_DIR:PATH=${CMAKE_BINARY_DIR}/Foo
配置从属外部项目,以使find_package(Foo REQUIRED)
正常工作。为此,我们假设外部项目为构建树提供了一个有效的配置文件。
要了解有关配置文件的更多信息,请参见Correct way to use third-party libraries in cmake project