mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-12 13:33:04 +00:00
Merge pull request #1530 from veeti/http-parser
Build with the system's http-parser installation if available
This commit is contained in:
commit
9d6d809b7f
@ -14,7 +14,8 @@
|
||||
PROJECT(libgit2 C)
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
||||
# Add find modules to the path
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
||||
|
||||
# Build options
|
||||
#
|
||||
@ -100,8 +101,16 @@ ELSE ()
|
||||
IF (NOT AMIGA)
|
||||
FIND_PACKAGE(OpenSSL)
|
||||
ENDIF ()
|
||||
FILE(GLOB SRC_HTTP deps/http-parser/*.c)
|
||||
INCLUDE_DIRECTORIES(deps/http-parser)
|
||||
|
||||
FIND_PACKAGE(HTTP_Parser QUIET)
|
||||
IF (HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
|
||||
INCLUDE_DIRECTORIES(${HTTP_PARSER_INCLUDE_DIRS})
|
||||
LINK_LIBRARIES(${HTTP_PARSER_LIBRARIES})
|
||||
ELSE()
|
||||
MESSAGE("http-parser was not found or is too old; using bundled 3rd-party sources.")
|
||||
INCLUDE_DIRECTORIES(deps/http-parser)
|
||||
FILE(GLOB SRC_HTTP deps/http-parser/*.c)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Specify sha1 implementation
|
||||
|
39
cmake/Modules/FindHTTP_Parser.cmake
Normal file
39
cmake/Modules/FindHTTP_Parser.cmake
Normal file
@ -0,0 +1,39 @@
|
||||
# - Try to find http-parser
|
||||
#
|
||||
# Defines the following variables:
|
||||
#
|
||||
# HTTP_PARSER_FOUND - system has http-parser
|
||||
# HTTP_PARSER_INCLUDE_DIR - the http-parser include directory
|
||||
# HTTP_PARSER_LIBRARIES - Link these to use http-parser
|
||||
# HTTP_PARSER_VERSION_MAJOR - major version
|
||||
# HTTP_PARSER_VERSION_MINOR - minor version
|
||||
# HTTP_PARSER_VERSION_STRING - the version of http-parser found
|
||||
|
||||
# Find the header and library
|
||||
FIND_PATH(HTTP_PARSER_INCLUDE_DIR NAMES http_parser.h)
|
||||
FIND_LIBRARY(HTTP_PARSER_LIBRARY NAMES http_parser libhttp_parser)
|
||||
|
||||
# Found the header, read version
|
||||
if (HTTP_PARSER_INCLUDE_DIR AND EXISTS "${HTTP_PARSER_INCLUDE_DIR}/http_parser.h")
|
||||
FILE(READ "${HTTP_PARSER_INCLUDE_DIR}/http_parser.h" HTTP_PARSER_H)
|
||||
IF (HTTP_PARSER_H)
|
||||
STRING(REGEX REPLACE ".*#define[\t ]+HTTP_PARSER_VERSION_MAJOR[\t ]+([0-9]+).*" "\\1" HTTP_PARSER_VERSION_MAJOR "${HTTP_PARSER_H}")
|
||||
STRING(REGEX REPLACE ".*#define[\t ]+HTTP_PARSER_VERSION_MINOR[\t ]+([0-9]+).*" "\\1" HTTP_PARSER_VERSION_MINOR "${HTTP_PARSER_H}")
|
||||
SET(HTTP_PARSER_VERSION_STRING "${HTTP_PARSER_VERSION_MAJOR}.${HTTP_PARSER_VERSION_MINOR}")
|
||||
ENDIF()
|
||||
UNSET(HTTP_PARSER_H)
|
||||
ENDIF()
|
||||
|
||||
# Handle the QUIETLY and REQUIRED arguments and set HTTP_PARSER_FOUND
|
||||
# to TRUE if all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(HTTP_Parser REQUIRED_VARS HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY)
|
||||
|
||||
# Hide advanced variables
|
||||
MARK_AS_ADVANCED(HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY)
|
||||
|
||||
# Set standard variables
|
||||
IF (HTTP_PARSER_FOUND)
|
||||
SET(HTTP_PARSER_LIBRARIES ${HTTP_PARSER_LIBRARY})
|
||||
set(HTTP_PARSER_INCLUDE_DIRS ${HTTP_PARSER_INCLUDE_DIR})
|
||||
ENDIF()
|
Loading…
Reference in New Issue
Block a user