Как настроить новый проект C ++ с restbed?

Я пытаюсь написать веб-сервис на C ++ (я очень плохо знаком с языком), используя restbed для обработки HTTP. Оба проекта, похоже, используют cmake для настройки конфигурации и управления зависимостями, поэтому я решил, что и я тоже так сделаю. Но я не совсем понимаю, как это сделать.

Вот мой минимальный CMakeLists.txt

cmake_minimum_required(VERSION 3.7)
project(WebService)

set (WebService_VERSION_MAJOR 1)
set (WebService_VERSION_MAJOR 0)

set(CMAKE_CXX_STANDARD 11)

add_executable(${PROJECT_NAME} main.cpp)

Я понимаю, что есть несколько способов добавить зависимости в cmake. Я пытался сделать что-то вроде find_package (restbed), но, очевидно, он не знает, где найти нужный мне пакет, и продолжает просить дополнительные файлы cmake, чтобы помочь ему. Я не уверен, где я должен их найти. Я должен написать один сам?

Я попытался с помощью директивы ExternalProject_Add. Я добавил следующее.

ExternalProject_Add(
restbed
GIT_REPOSITORY "[email protected]:Corvusoft/restbed.git"SOURCE_DIR "${CMAKE_SOURCE_DIR}/deps/restbed"CMAKE_ARGS -DBUILD_SSL=OFF
)
set (restbed_INCLUDE ${CMAKE_SOURCE_DIR}/deps/restbed/distribution/include/)
set (restbed_LIB ${CMAKE_SOURCE_DIR}/deps/restbed/distribution/library/librestbed.a)

add_dependencies(${PROJECT_NAME} restbed)
include_directories(${restbed_INCLUDE})
target_link_libraries(${PROJECT_NAME} ${restbed_LIB})

Проблема, с которой я столкнулся, заключается в том, что все шаги по настройке внешнего проекта выполняются во время сборки, а не во время конфигурации cmake. Это означает, что каждый внешний проект перестраивает и переустанавливает все при каждом запуске make, Мой сервис маленький, и это кажется очень расточительным.

Есть ли лучший способ борьбы с зависимостями? Есть ли более простой инструмент, чем cmake? Есть ли что-то для C ++, похожее на груз Руста или, возможно, на стек Хаскелла?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]