具有CMake构建但未安装外部项目

时间:2018-08-02 20:24:47

标签: build cmake install

我正在尝试在我的CMake项目中使用此外部项目;外部项目也是CMake项目。

现在,外部项目生成静态库和一堆头文件;但是-我不希望将它们安装在任何地方,我只需要它们在我的主项目中构建东西(并且在构建和/或安装主项目后不需要这些文件)。

我如何让CMake“获取,构建但不安装”外部项目?我当时想我可能会通过强制一个空的安装命令来暗自做这件事,但是我敢肯定有一种更好,更优雅的方法。

1 个答案:

答案 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