summaryrefslogtreecommitdiffstats
path: root/cmake/SelectHTTPParser.cmake
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cmake/SelectHTTPParser.cmake27
1 files changed, 20 insertions, 7 deletions
diff --git a/cmake/SelectHTTPParser.cmake b/cmake/SelectHTTPParser.cmake
index 955aea3..4fc1f69 100644
--- a/cmake/SelectHTTPParser.cmake
+++ b/cmake/SelectHTTPParser.cmake
@@ -1,19 +1,32 @@
# Optional external dependency: http-parser
-if(USE_HTTP_PARSER STREQUAL "system")
+if(USE_HTTP_PARSER STREQUAL "http-parser")
find_package(HTTPParser)
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")
- add_feature_info(http-parser ON "http-parser support (system)")
+ set(GIT_HTTPPARSER_HTTPPARSER 1)
+ add_feature_info(http-parser ON "using http-parser (system)")
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 llhttp (system)")
+ else()
+ message(FATAL_ERROR "llhttp support was requested but not found")
+ endif()
else()
- message(STATUS "http-parser version 2 was not found or disabled; using bundled 3rd-party sources.")
- add_subdirectory("${PROJECT_SOURCE_DIR}/deps/http-parser" "${PROJECT_BINARY_DIR}/deps/http-parser")
- list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/http-parser")
- list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$<TARGET_OBJECTS:http-parser>")
- add_feature_info(http-parser ON "http-parser support (bundled)")
+ 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")
endif()