mirror of
https://github.com/libgit2/libgit2.git
synced 2026-01-25 02:56:17 +00:00
It's hard to remember whether it's `-DUSE_HTTPS=mbedTLS` or `-DUSE_HTTPS=mbedtls`. Even worse for things like `builtin` which we may have been inconsistent about. Allow for case insensitive options.
41 lines
1.6 KiB
CMake
41 lines
1.6 KiB
CMake
include(SanitizeInput)
|
|
|
|
sanitizeinput(USE_HTTP_PARSER)
|
|
|
|
# Optional external dependency: http-parser
|
|
if(USE_HTTP_PARSER STREQUAL "http-parser" OR
|
|
USE_HTTP_PARSER STREQUAL "httpparser" OR
|
|
USE_HTTP_PARSER STREQUAL "system")
|
|
find_package(HTTP_Parser)
|
|
|
|
if(HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
|
|
list(APPEND LIBGIT2_SYSTEM_INCLUDES ${HTTP_PARSER_INCLUDE_DIRS})
|
|
list(APPEND LIBGIT2_SYSTEM_LIBS ${HTTP_PARSER_LIBRARIES})
|
|
list(APPEND LIBGIT2_PC_LIBS "-lhttp_parser")
|
|
set(GIT_HTTPPARSER_HTTPPARSER 1)
|
|
add_feature_info("HTTP Parser" ON "using system http-parser")
|
|
else()
|
|
message(FATAL_ERROR "http-parser support was requested but not found")
|
|
endif()
|
|
elseif(USE_HTTP_PARSER STREQUAL "llhttp")
|
|
find_package(LLHTTP)
|
|
|
|
if(LLHTTP_FOUND AND LLHTTP_VERSION_MAJOR EQUAL 9)
|
|
list(APPEND LIBGIT2_SYSTEM_INCLUDES ${LLHTTP_INCLUDE_DIRS})
|
|
list(APPEND LIBGIT2_SYSTEM_LIBS ${LLHTTP_LIBRARIES})
|
|
list(APPEND LIBGIT2_PC_LIBS "-lllhttp")
|
|
set(GIT_HTTPPARSER_LLHTTP 1)
|
|
add_feature_info("HTTP Parser" ON "using system llhttp")
|
|
else()
|
|
message(FATAL_ERROR "llhttp support was requested but not found")
|
|
endif()
|
|
elseif(USE_HTTP_PARSER STREQUAL "" OR USE_HTTP_PARSER STREQUAL "builtin")
|
|
add_subdirectory("${PROJECT_SOURCE_DIR}/deps/llhttp" "${PROJECT_BINARY_DIR}/deps/llhttp")
|
|
list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/llhttp")
|
|
list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$<TARGET_OBJECTS:llhttp>")
|
|
set(GIT_HTTPPARSER_BUILTIN 1)
|
|
add_feature_info("HTTP Parser" ON "using bundled parser")
|
|
else()
|
|
message(FATAL_ERROR "unknown http-parser: ${USE_HTTP_PARSER}")
|
|
endif()
|