mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-13 19:12:24 +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)
|
PROJECT(libgit2 C)
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
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
|
# Build options
|
||||||
#
|
#
|
||||||
@ -100,8 +101,16 @@ ELSE ()
|
|||||||
IF (NOT AMIGA)
|
IF (NOT AMIGA)
|
||||||
FIND_PACKAGE(OpenSSL)
|
FIND_PACKAGE(OpenSSL)
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
FILE(GLOB SRC_HTTP deps/http-parser/*.c)
|
|
||||||
|
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)
|
INCLUDE_DIRECTORIES(deps/http-parser)
|
||||||
|
FILE(GLOB SRC_HTTP deps/http-parser/*.c)
|
||||||
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
# Specify sha1 implementation
|
# 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