diff --git a/cmake/modules/cpp-httplib.cmake b/cmake/modules/cpp-httplib.cmake index ec588d6d..35f3a436 100644 --- a/cmake/modules/cpp-httplib.cmake +++ b/cmake/modules/cpp-httplib.cmake @@ -15,19 +15,32 @@ # # cpp-httplib (https://github.com/yhirose/cpp-httplib) # + +option(USE_BUNDLED_CPPHTTPLIB "Enable building of the bundled cpp-httplib" ON) + if(CPPHTTPLIB_INCLUDE) - # we already have cpp-httplib + # we already have cpp-httplib +elseif(NOT USE_BUNDLED_CPPHTTPLIB) + find_path(CPPHTTPLIB_INCLUDE NAMES httplib.h) + + if(CPPHTTPLIB_INCLUDE) + message(STATUS "Found cpp-httplib: include: ${CPPHTTPLIB_INCLUDE}") + else() + message(FATAL_ERROR "Couldn't find system cpp-httplib") + endif() else() - set(CPPHTTPLIB_SRC "${PROJECT_BINARY_DIR}/cpp-httplib-prefix/src/cpp-httplib") - set(CPPHTTPLIB_INCLUDE "${CPPHTTPLIB_SRC}") + set(CPPHTTPLIB_SRC "${PROJECT_BINARY_DIR}/cpp-httplib-prefix/src/cpp-httplib") + set(CPPHTTPLIB_INCLUDE "${CPPHTTPLIB_SRC}") - message(STATUS "Using bundled cpp-httplib in '${CPPHTTPLIB_SRC}'") - - ExternalProject_Add(cpp-httplib - PREFIX "${PROJECT_BINARY_DIR}/cpp-httplib-prefix" - URL "https://github.com/yhirose/cpp-httplib/archive/refs/tags/v0.13.1.tar.gz" - URL_HASH "SHA256=9b837d290b61e3f0c4239da0b23bbf14c382922e2bf2a9bac21c1e3feabe1ff9" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "") + ExternalProject_Add(cpp-httplib + PREFIX "${PROJECT_BINARY_DIR}/cpp-httplib-prefix" + URL "https://github.com/yhirose/cpp-httplib/archive/refs/tags/v0.13.1.tar.gz" + URL_HASH "SHA256=9b837d290b61e3f0c4239da0b23bbf14c382922e2bf2a9bac21c1e3feabe1ff9" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "") endif() + +if(NOT TARGET cpp-httplib) + add_custom_target(cpp-httplib) +endif() \ No newline at end of file diff --git a/cmake/modules/cxxopts.cmake b/cmake/modules/cxxopts.cmake index c371d044..4c662bd0 100644 --- a/cmake/modules/cxxopts.cmake +++ b/cmake/modules/cxxopts.cmake @@ -12,13 +12,37 @@ # specific language governing permissions and limitations under the License. # -set(CXXOPTS_SRC "${PROJECT_BINARY_DIR}/cxxopts-prefix/src/cxxopts/") -set(CXXOPTS_INCLUDE_DIR "${CXXOPTS_SRC}/include") +# +# cxxopts (https://github.com/jarro2783/cxxopts) +# -ExternalProject_Add( +option(USE_BUNDLED_CXXOPTS "Enable building of the bundled cxxopts" ON) + +if(CXXOPTS_INCLUDE_DIR) + # we already have cxxopts +elseif(NOT USE_BUNDLED_CXXOPTS) + find_path(CXXOPTS_INCLUDE_DIR NAMES cxxopts.hpp) + + if(CXXOPTS_INCLUDE_DIR) + message(STATUS "Found cxxopts: include: ${CXXOPTS_INCLUDE_DIR}") + else() + message(FATAL_ERROR "Couldn't find system cxxopts") + endif() +else() + set(CXXOPTS_SRC "${PROJECT_BINARY_DIR}/cxxopts-prefix/src/cxxopts/") + set(CXXOPTS_INCLUDE_DIR "${CXXOPTS_SRC}/include") + + message(STATUS "Using bundled cxxopts in ${CXXOPTS_SRC}") + + ExternalProject_Add( cxxopts URL "https://github.com/jarro2783/cxxopts/archive/refs/tags/v3.0.0.tar.gz" URL_HASH "SHA256=36f41fa2a46b3c1466613b63f3fa73dc24d912bc90d667147f1e43215a8c6d00" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "") + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "") +endif() + +if(NOT TARGET cxxopts) + add_custom_target(cxxopts) +endif()