How to configure ExternalProject during main project configuration?

后端 未结 4 653
粉色の甜心
粉色の甜心 2021-02-05 10:37

The CMake\'s ExternalProject allows to define how to an external project is going to be downloaded, configured, built and installed. All whose steps are going to be performed at

4条回答
  •  自闭症患者
    2021-02-05 10:59

    If you don't want to build the project at configure-time, but just want to download it, use FetchContent. FetchContent_Declare uses many of the same arguments as ExternalProject_Add, except it doesn't allow building the project.

    The documentation has a great example on how to use this:

    FetchContent_Declare(
      googletest
      GIT_REPOSITORY https://github.com/google/googletest.git
      GIT_TAG        release-1.8.0
    )
    
    FetchContent_GetProperties(googletest)
    if(NOT googletest_POPULATED)
      FetchContent_Populate(googletest)
      add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR})
    endif()
    

    This requires CMake 3.11 or later. For prior versions, you can download the FetchContent.cmake module from the CMake repository along with the FetchContent directory, ensuring you comply with the BSD 3-Clause license.

    † Building at configure-time has some serious drawbacks. For example, users of your library can't control the build process unless you set it up very carefully. A package manager is a better solution

提交回复
热议问题