Код: Выделить всё
set(FASTFLOAT_BASE fastfloat-external CACHE STRING "Base tag for fast_float")
set(FASTFLOAT_BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}/${FASTFLOAT_BASE})
set(FASTFLOAT_GIT_URL "https://github.com/fastfloat/fast_float.git" CACHE STRING "URL to the fast_float source archive")
set(FASTFLOAT_TAG "v6.1.6" CACHE STRING "fast_float version tag")
set(FASTFLOAT_INSTALL_DIR "${FASTFLOAT_BASE_DIR}/install" CACHE PATH "Path to fast_float install directory")
ExternalProject_Add(${FASTFLOAT_BASE}
PREFIX ${FASTFLOAT_BASE_DIR}
GIT_REPOSITORY ${FASTFLOAT_GIT_URL}
GIT_TAG ${FASTFLOAT_TAG}
INSTALL_DIR "${FASTFLOAT_INSTALL_DIR}"
GIT_PROGRESS ON
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
GIT_SHALLOW 1
UPDATE_DISCONNECTED TRUE
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND ""
)
# Create interface library
add_library(fastfloat INTERFACE)
add_dependencies(fastfloat ${FASTFLOAT_BASE})
target_include_directories(fastfloat SYSTEM INTERFACE
${FASTFLOAT_INSTALL_DIR}/include
)
# Install headers
install(
DIRECTORY ${FASTFLOAT_INSTALL_DIR}/include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT core
FILES_MATCHING
PATTERN "*.h"
)
# Create alias and link
add_library(fastfloat::fastfloat ALIAS fastfloat)
Код: Выделить всё
FetchContent_Declare(
scnlib
GIT_REPOSITORY https://github.com/eliaskosunen/scnlib.git
GIT_TAG v3.0.1
)
FetchContent_MakeAvailable(scnlib)
Как правильно добавить и fast_float, и scnlib с помощью ExternalProject_Add?
Подробнее здесь: https://stackoverflow.com/questions/791 ... roject-add
Мобильная версия