diff options
Diffstat (limited to 'vcpkg/ports/libgit2')
| -rw-r--r-- | vcpkg/ports/libgit2/c-standard.diff | 26 | ||||
| -rw-r--r-- | vcpkg/ports/libgit2/cli-include-dirs.diff | 12 | ||||
| -rw-r--r-- | vcpkg/ports/libgit2/dependencies.diff | 43 | ||||
| -rw-r--r-- | vcpkg/ports/libgit2/mingw-winhttp.diff | 13 | ||||
| -rw-r--r-- | vcpkg/ports/libgit2/portfile.cmake | 112 | ||||
| -rw-r--r-- | vcpkg/ports/libgit2/vcpkg.json | 97 |
6 files changed, 303 insertions, 0 deletions
diff --git a/vcpkg/ports/libgit2/c-standard.diff b/vcpkg/ports/libgit2/c-standard.diff new file mode 100644 index 0000000..22214ae --- /dev/null +++ b/vcpkg/ports/libgit2/c-standard.diff @@ -0,0 +1,26 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5be7bef..5f9ed79 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -57,7 +57,7 @@ option(DEPRECATE_HARD "Do not include deprecated functions in the libra + if("${CMAKE_SYSTEM_NAME}" STREQUAL "Android") + set(CMAKE_C_STANDARD "99" CACHE STRING "The C standard to compile against") + else() +- set(CMAKE_C_STANDARD "90" CACHE STRING "The C standard to compile against") ++ set(CMAKE_C_STANDARD "99" CACHE STRING "The C standard to compile against") + endif() + option(CMAKE_C_EXTENSIONS "Whether compiler extensions are supported" OFF) + option(ENABLE_WERROR "Enable compilation with -Werror" OFF) +/tmp/bbb.patch (END)diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt +index 0dddb02..af85510 100644 +--- a/src/libgit2/CMakeLists.txt ++++ b/src/libgit2/CMakeLists.txt +@@ -60,7 +60,7 @@ target_link_libraries(libgit2package ${LIBGIT2_SYSTEM_LIBS}) + target_include_directories(libgit2package SYSTEM PRIVATE ${LIBGIT2_INCLUDES}) + target_include_directories(libgit2package INTERFACE $<INSTALL_INTERFACE:include>) + +-set_target_properties(libgit2package PROPERTIES C_STANDARD 90) ++set_target_properties(libgit2package PROPERTIES C_STANDARD 99) + set_target_properties(libgit2package PROPERTIES C_EXTENSIONS OFF) + set_target_properties(libgit2package PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) + set_target_properties(libgit2package PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) diff --git a/vcpkg/ports/libgit2/cli-include-dirs.diff b/vcpkg/ports/libgit2/cli-include-dirs.diff new file mode 100644 index 0000000..e2a779c --- /dev/null +++ b/vcpkg/ports/libgit2/cli-include-dirs.diff @@ -0,0 +1,12 @@ +diff --git a/src/cli/CMakeLists.txt b/src/cli/CMakeLists.txt +index 84b6c19..df2119c 100644 +--- a/src/cli/CMakeLists.txt ++++ b/src/cli/CMakeLists.txt +@@ -46,6 +46,7 @@ set_target_properties(git2_cli PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME}) + ide_split_sources(git2_cli) + + target_include_directories(git2_cli PRIVATE ${CLI_INCLUDES}) ++target_include_directories(git2_cli SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES}) + + if(MSVC_IDE) + # Precompiled headers diff --git a/vcpkg/ports/libgit2/dependencies.diff b/vcpkg/ports/libgit2/dependencies.diff new file mode 100644 index 0000000..092db72 --- /dev/null +++ b/vcpkg/ports/libgit2/dependencies.diff @@ -0,0 +1,43 @@ +diff --git a/cmake/SelectRegex.cmake b/cmake/SelectRegex.cmake +index 2a3a91b..523fa72 100644 +--- a/cmake/SelectRegex.cmake ++++ b/cmake/SelectRegex.cmake +@@ -17,7 +17,9 @@ if(REGEX_BACKEND STREQUAL "regcomp_l") + add_feature_info(regex ON "using system regcomp_l") + set(GIT_REGEX_REGCOMP_L 1) + elseif(REGEX_BACKEND STREQUAL "pcre2") +- find_package(PCRE2) ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(PCRE2 REQUIRED libpcre2-8) ++ set(PCRE2_LIBRARIES "${PCRE2_LINK_LIBRARIES}") + + if(NOT PCRE2_FOUND) + MESSAGE(FATAL_ERROR "PCRE2 support was requested but not found") +@@ -33,6 +35,9 @@ elseif(REGEX_BACKEND STREQUAL "pcre") + add_feature_info(regex ON "using system PCRE") + set(GIT_REGEX_PCRE 1) + ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(PCRE REQUIRED libpcre) ++ set(PCRE_LIBRARIES "${PCRE_LINK_LIBRARIES}") + list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE_INCLUDE_DIRS}) + list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE_LIBRARIES}) + list(APPEND LIBGIT2_PC_REQUIRES "libpcre") +diff --git a/cmake/SelectSSH.cmake b/cmake/SelectSSH.cmake +index 079857f50..a2e2bd212 100644 +--- a/cmake/SelectSSH.cmake ++++ b/cmake/SelectSSH.cmake +@@ -4,7 +4,11 @@ if(USE_SSH STREQUAL "exec") + + add_feature_info(SSH ON "using OpenSSH exec support") + elseif(USE_SSH STREQUAL ON OR USE_SSH STREQUAL "libssh2") +- find_pkglibraries(LIBSSH2 libssh2) ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(LIBSSH2 REQUIRED libssh2) ++ set(LIBSSH2_LIBRARIES "${LIBSSH2_LINK_LIBRARIES}") ++ set(LIBSSH2_LDFLAGS "") ++ list(APPEND LIBGIT2_PC_REQUIRES "libssh2") + + if(NOT LIBSSH2_FOUND) + find_package(LibSSH2) + diff --git a/vcpkg/ports/libgit2/mingw-winhttp.diff b/vcpkg/ports/libgit2/mingw-winhttp.diff new file mode 100644 index 0000000..2a47b0c --- /dev/null +++ b/vcpkg/ports/libgit2/mingw-winhttp.diff @@ -0,0 +1,13 @@ +diff --git a/cmake/SelectHTTPSBackend.cmake b/cmake/SelectHTTPSBackend.cmake +index 0316b3a..a70f6b6 100644 +--- a/cmake/SelectHTTPSBackend.cmake ++++ b/cmake/SelectHTTPSBackend.cmake +@@ -125,7 +125,7 @@ if(USE_HTTPS) + + # Since MinGW does not come with headers or an import library for winhttp, + # we have to include a private header and generate our own import library +- if(MINGW) ++ if(0) + add_subdirectory("${PROJECT_SOURCE_DIR}/deps/winhttp" "${PROJECT_BINARY_DIR}/deps/winhttp") + list(APPEND LIBGIT2_SYSTEM_LIBS winhttp) + list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/winhttp") diff --git a/vcpkg/ports/libgit2/portfile.cmake b/vcpkg/ports/libgit2/portfile.cmake new file mode 100644 index 0000000..78283be --- /dev/null +++ b/vcpkg/ports/libgit2/portfile.cmake @@ -0,0 +1,112 @@ +vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libgit2/libgit2
+ REF "v${VERSION}"
+ SHA512 3bec01704ad1acdb4f7e9454101c2a205b7e288a4dffaa5e1afc2b1f849fa3a42b961c532bed2669841925ab8f84fb35bb82a2df8039b1caf76c5779665032d9
+ HEAD_REF main
+ PATCHES
+ c-standard.diff # for 'inline' in system headers
+ cli-include-dirs.diff
+ dependencies.diff
+ mingw-winhttp.diff
+)
+file(REMOVE_RECURSE
+ "${SOURCE_PATH}/cmake/FindPCRE.cmake"
+ "${SOURCE_PATH}/cmake/FindPCRE2.cmake"
+ "${SOURCE_PATH}/deps/chromium-zlib"
+ "${SOURCE_PATH}/deps/http-parser"
+ "${SOURCE_PATH}/deps/pcre"
+ "${SOURCE_PATH}/deps/winhttp"
+ "${SOURCE_PATH}/deps/zlib"
+)
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT)
+
+set(REGEX_BACKEND OFF)
+set(USE_HTTPS OFF)
+set(USE_SSH OFF)
+
+function(set_regex_backend VALUE)
+ if(REGEX_BACKEND)
+ message(FATAL_ERROR "Only one regex backend (pcre,pcre2) is allowed")
+ endif()
+ set(REGEX_BACKEND ${VALUE} PARENT_SCOPE)
+endfunction()
+
+function(set_tls_backend VALUE)
+ if(USE_HTTPS)
+ message(FATAL_ERROR "Only one TLS backend (openssl,winhttp,sectransp,mbedtls) is allowed")
+ endif()
+ set(USE_HTTPS ${VALUE} PARENT_SCOPE)
+endfunction()
+
+foreach(GIT2_FEATURE ${FEATURES})
+ if(GIT2_FEATURE STREQUAL "pcre")
+ set_regex_backend("pcre")
+ elseif(GIT2_FEATURE STREQUAL "pcre2")
+ set_regex_backend("pcre2")
+ elseif(GIT2_FEATURE STREQUAL "openssl")
+ set_tls_backend("OpenSSL")
+ elseif(GIT2_FEATURE STREQUAL "winhttp")
+ set_tls_backend("WinHTTP")
+ elseif(GIT2_FEATURE STREQUAL "sectransp")
+ set_tls_backend("SecureTransport")
+ elseif(GIT2_FEATURE STREQUAL "mbedtls")
+ set_tls_backend("mbedTLS")
+ elseif(GIT2_FEATURE STREQUAL "ssh")
+ set(USE_SSH ON)
+ message(STATUS "This version of `libgit2` uses the default (`libssh2`) backend. To use the newer backend which utilizes the `ssh` CLI from a local install of OpenSSH instead, create an overlay port of this with USE_SSH set to 'exec' and the `libssh2` dependency removed.")
+ message(STATUS "This recipe is at ${CMAKE_CURRENT_LIST_DIR}")
+ message(STATUS "See the overlay ports documentation at https://learn.microsoft.com/vcpkg/concepts/overlay-ports")
+ endif()
+endforeach()
+
+if(NOT REGEX_BACKEND)
+ message(FATAL_ERROR "Must choose pcre or pcre2 regex backend")
+endif()
+
+vcpkg_find_acquire_program(PKGCONFIG)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS GIT2_FEATURES
+ FEATURES
+ tools BUILD_CLI
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBUILD_TESTS=OFF
+ -DUSE_HTTP_PARSER=system
+ -DUSE_HTTPS=${USE_HTTPS}
+ -DREGEX_BACKEND=${REGEX_BACKEND}
+ -DUSE_SSH=${USE_SSH}
+ -DSTATIC_CRT=${STATIC_CRT}
+ "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
+ -DCMAKE_DISABLE_FIND_PACKAGE_GSSAPI:BOOL=ON
+ ${GIT2_FEATURES}
+ OPTIONS_DEBUG
+ -DBUILD_CLI=OFF
+ MAYBE_UNUSED_VARIABLES
+ STATIC_CRT
+)
+
+vcpkg_cmake_install()
+vcpkg_fixup_pkgconfig()
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}")
+
+if("tools" IN_LIST FEATURES)
+ vcpkg_copy_tools(TOOL_NAMES git2 AUTO_CLEAN)
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+set(file_list "${SOURCE_PATH}/COPYING")
+if(NOT VCPKG_TARGET_IS_WINDOWS)
+ file(WRITE "${CURRENT_BUILDTREES_DIR}/Notice for ntlmclient" [[
+Copyright (c) Edward Thomson. All rights reserved.
+These source files are part of ntlmclient, distributed under the MIT license.
+]])
+ list(APPEND file_list "${CURRENT_BUILDTREES_DIR}/Notice for ntlmclient")
+endif()
+vcpkg_install_copyright(FILE_LIST ${file_list})
diff --git a/vcpkg/ports/libgit2/vcpkg.json b/vcpkg/ports/libgit2/vcpkg.json new file mode 100644 index 0000000..fe8e5a6 --- /dev/null +++ b/vcpkg/ports/libgit2/vcpkg.json @@ -0,0 +1,97 @@ +{ + "name": "libgit2", + "version-semver": "1.9.1", + "description": "A C library implementing the Git core methods with a solid API", + "homepage": "https://github.com/libgit2/libgit2", + "license": null, + "supports": "!uwp", + "dependencies": [ + "http-parser", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "default-features": [ + "pcre", + "ssl" + ], + "features": { + "mbedtls": { + "description": "SSL support (mbedTLS)", + "supports": "!windows", + "dependencies": [ + "mbedtls" + ] + }, + "openssl": { + "description": "SSL support (OpenSSL)", + "dependencies": [ + "openssl" + ] + }, + "pcre": { + "description": "Build against external libpcre", + "dependencies": [ + "pcre" + ] + }, + "pcre2": { + "description": "Build against external libpcre2", + "dependencies": [ + "pcre2" + ] + }, + "sectransp": { + "description": "SSL support (sectransp)", + "supports": "osx" + }, + "ssh": { + "description": "SSH support via libssh2", + "dependencies": [ + "libssh2" + ] + }, + "ssl": { + "description": "Default SSL backend", + "dependencies": [ + { + "name": "libgit2", + "default-features": false, + "features": [ + "sectransp" + ], + "platform": "osx" + }, + { + "name": "libgit2", + "default-features": false, + "features": [ + "winhttp" + ], + "platform": "windows" + }, + { + "name": "libgit2", + "default-features": false, + "features": [ + "openssl" + ], + "platform": "!windows & !osx" + } + ] + }, + "tools": { + "description": "Build CLI tools" + }, + "winhttp": { + "description": "SSL support (WinHTTP)", + "supports": "windows & !uwp" + } + } +} |