Как установить scnlib с помощью ExternalProject_AddC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как установить scnlib с помощью ExternalProject_Add

Сообщение Anonymous »

Я устанавливаю fast_float в свой проект следующим образом:

Код: Выделить всё

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)
Кроме того, я также хочу использовать scnlib. Если я использую FetchContent, все будет в порядке:

Код: Выделить всё

FetchContent_Declare(
scnlib
GIT_REPOSITORY https://github.com/eliaskosunen/scnlib.git
GIT_TAG        v3.0.1
)
FetchContent_MakeAvailable(scnlib)
Здесь я также хочу использовать ExternalProject_Add. Но поскольку scnlib также имеет fast_float в качестве зависимости, попытка включить последний в мой проект внезапно приводит к ошибке.
Как правильно добавить и fast_float, и scnlib с помощью ExternalProject_Add?

Подробнее здесь: https://stackoverflow.com/questions/791 ... roject-add
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»