diff options
Diffstat (limited to 'vcpkg/ports/apr-util')
| -rw-r--r-- | vcpkg/ports/apr-util/apr.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/apr-util/portfile.cmake | 108 | ||||
| -rw-r--r-- | vcpkg/ports/apr-util/unglue.patch | 17 | ||||
| -rw-r--r-- | vcpkg/ports/apr-util/use-vcpkg-expat.patch | 114 | ||||
| -rw-r--r-- | vcpkg/ports/apr-util/vcpkg.json | 24 |
5 files changed, 276 insertions, 0 deletions
diff --git a/vcpkg/ports/apr-util/apr.patch b/vcpkg/ports/apr-util/apr.patch new file mode 100644 index 0000000..581907f --- /dev/null +++ b/vcpkg/ports/apr-util/apr.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 69e45541..19b86129 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -35,7 +35,7 @@ IF(NOT EXISTS "${APR_INCLUDE_DIR}/apr.h") + MESSAGE(FATAL_ERROR "APR include directory ${APR_INCLUDE_DIR} is not correct.") + ENDIF() + FOREACH(onelib ${APR_LIBRARIES}) +- IF(NOT EXISTS ${onelib}) ++ IF(${onelib} MATCHES "NOTFOUND") + MESSAGE(FATAL_ERROR "APR library ${onelib} was not found.") + ENDIF() + ENDFOREACH() diff --git a/vcpkg/ports/apr-util/portfile.cmake b/vcpkg/ports/apr-util/portfile.cmake new file mode 100644 index 0000000..52b3c6c --- /dev/null +++ b/vcpkg/ports/apr-util/portfile.cmake @@ -0,0 +1,108 @@ +vcpkg_download_distfile(ARCHIVE + URLS "https://archive.apache.org/dist/apr/apr-util-${VERSION}.tar.bz2" + FILENAME "apr-util-${VERSION}.tar.bz2" + SHA512 8050a481eeda7532ef3751dbd8a5aa6c48354d52904a856ef9709484f4b0cc2e022661c49ddf55ec58253db22708ee0607dfa7705d9270e8fee117ae4f06a0fe +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +FEATURES + crypto APU_HAVE_CRYPTO + crypto CMAKE_REQUIRE_FIND_PACKAGE_OpenSSL +) + +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + PATCHES + use-vcpkg-expat.patch + apr.patch + unglue.patch + ) + + vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON + ) + + vcpkg_cmake_install() + vcpkg_copy_pdbs() + + # Upstream include/apu.h.in has: + # ``` + #elif defined(APU_DECLARE_STATIC) + #define APU_DECLARE(type) type __stdcall + #define APU_DECLARE_NONSTD(type) type __cdecl + #define APU_DECLARE_DATA + #elif defined(APU_DECLARE_EXPORT) + #define APU_DECLARE(type) __declspec(dllexport) type __stdcall + #define APU_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl + #define APU_DECLARE_DATA __declspec(dllexport) + #else + #define APU_DECLARE(type) __declspec(dllimport) type __stdcall + #define APU_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl + #define APU_DECLARE_DATA __declspec(dllimport) + #endif + # ``` + # When building, BUILD_SHARED_LIBS sets APU_DECLARE_STATIC to 0 and APU_DECLARE_EXPORT to 1 + # Not BUILD_SHARED_LIBS sets APU_DECLARE_STATIC to 1 and APU_DECLARE_EXPORT to 0 + # When consuming APU_DECLARE_EXPORT is always 0 (assumed), so we need only embed the static or not setting + # into the resulting headers: + if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/apu.h" "defined(APU_DECLARE_STATIC)" "0") + else() + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/apu.h" "defined(APU_DECLARE_STATIC)" "1") + endif() +else() + vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + ) + + if ("crypto" IN_LIST FEATURES) + set(CRYPTO_OPTIONS + "--with-crypto=yes" + "--with-openssl=${CURRENT_INSTALLED_DIR}") + else() + set(CRYPTO_OPTIONS "--with-crypto=no") + endif() + + # To cross-compile you will need a triplet file that locates the tool chain and sets --host and --cache parameters of "./configure". + # The ${VCPKG_PLATFORM_TOOLSET}.cache file must have been generated on the targeted host using "./configure -C". + # For example, to target aarch64-linux-gnu, triplets/aarch64-linux-gnu.cmake should contain (beyond the standard content): + # set(VCPKG_PLATFORM_TOOLSET aarch64-linux-gnu) + # set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ${MY_CROSS_DIR}/cmake/Toolchain-${VCPKG_PLATFORM_TOOLSET}.cmake) + # set(CONFIGURE_PARAMETER_1 --host=${VCPKG_PLATFORM_TOOLSET}) + # set(CONFIGURE_PARAMETER_2 --cache-file=${MY_CROSS_DIR}/autoconf/${VCPKG_PLATFORM_TOOLSET}.cache) + if(CONFIGURE_PARAMETER_1) + message(STATUS "Configuring apr-util with ${CONFIGURE_PARAMETER_1} ${CONFIGURE_PARAMETER_2} ${CONFIGURE_PARAMETER_3}") + else() + message(STATUS "Configuring apr-util") + endif() + + vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + "--prefix=${CURRENT_INSTALLED_DIR}" + ${CRYPTO_OPTIONS} + "--with-apr=${CURRENT_INSTALLED_DIR}/tools/apr" + "--with-expat=${CURRENT_INSTALLED_DIR}" + "${CONFIGURE_PARAMETER_1}" + "${CONFIGURE_PARAMETER_2}" + "${CONFIGURE_PARAMETER_3}" + ) + + vcpkg_install_make() + vcpkg_fixup_pkgconfig() + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/apr-util/bin/apu-1-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../..") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/apr-util/bin/apu-1-config" "${CURRENT_BUILDTREES_DIR}" "not/existing") + if(NOT VCPKG_BUILD_TYPE) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/apr-util/debug/bin/apu-1-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../../..") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/apr-util/debug/bin/apu-1-config" "${CURRENT_BUILDTREES_DIR}" "not/existing") + endif() +endif() + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/apr-util/unglue.patch b/vcpkg/ports/apr-util/unglue.patch new file mode 100644 index 0000000..5391a7c --- /dev/null +++ b/vcpkg/ports/apr-util/unglue.patch @@ -0,0 +1,17 @@ +diff --git a/include/apu_version.h b/include/apu_version.h +index e4fb2e64e..c6addf142 100644 +--- a/include/apu_version.h ++++ b/include/apu_version.h +@@ -98,9 +98,9 @@ + + /** An alternative formatted string of APR's version */ + /* macro for Win32 .rc files using numeric csv representation */ +-#define APU_VERSION_STRING_CSV APU_MAJOR_VERSION ##, \ +- ##APU_MINOR_VERSION ##, \ +- ##APU_PATCH_VERSION ++#define APU_VERSION_STRING_CSV APU_MAJOR_VERSION , \ ++ APU_MINOR_VERSION , \ ++ APU_PATCH_VERSION + + + #ifndef APU_VERSION_ONLY diff --git a/vcpkg/ports/apr-util/use-vcpkg-expat.patch b/vcpkg/ports/apr-util/use-vcpkg-expat.patch new file mode 100644 index 0000000..6c9fa28 --- /dev/null +++ b/vcpkg/ports/apr-util/use-vcpkg-expat.patch @@ -0,0 +1,114 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fcbfc58..7781131 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -21,16 +21,14 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + + FIND_PACKAGE(OpenSSL) + +-FIND_PACKAGE(EXPAT) +- + OPTION(APU_HAVE_CRYPTO "Crypto support" OFF) + OPTION(APU_HAVE_ODBC "Build ODBC DBD driver" ON) + OPTION(APR_HAS_LDAP "LDAP support" ON) + OPTION(INSTALL_PDB "Install .pdb files (if generated)" ON) + OPTION(APR_BUILD_TESTAPR "Build the test suite" OFF) + OPTION(TEST_STATIC_LIBS "Test programs use APR static libraries instead of shared libraries?" OFF) +-SET(APR_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE STRING "Directory with APR include files") +-SET(APR_LIBRARIES "${CMAKE_INSTALL_PREFIX}/lib/libapr-1.lib" CACHE STRING "APR library to link with") ++find_path(APR_INCLUDE_DIR apr.h) ++find_library(APR_LIBRARIES NAMES libapr-1 apr-1) + + IF(NOT EXISTS "${APR_INCLUDE_DIR}/apr.h") + MESSAGE(FATAL_ERROR "APR include directory ${APR_INCLUDE_DIR} is not correct.") +@@ -61,13 +59,13 @@ IF(APR_HAS_LDAP) + SET(apr_has_ldap_10 1) + ENDIF() + +-IF(NOT EXPAT_FOUND) ++find_package(expat) ++set(XMLLIB_INCLUDE_DIR ${EXPAT_INCLUDE_DIRS}) ++set(XMLLIB_LIBRARIES ${EXPAT_LIBRARIES}) ++IF(NOT XMLLIB_LIBRARIES) + MESSAGE(FATAL_ERROR "Expat is required, and it wasn't found!") + ENDIF() + +-SET(XMLLIB_INCLUDE_DIR ${EXPAT_INCLUDE_DIRS}) +-SET(XMLLIB_LIBRARIES ${EXPAT_LIBRARIES}) +- + SET(LDAP_LIBRARIES) + IF(APR_HAS_LDAP) + SET(LDAP_LIBRARIES wldap32) +@@ -229,17 +227,21 @@ SET(dbd_drivers) + # Note: The WINNT definition on some targets is used only by libaprutil.rc. + + # libaprutil-1 is shared, aprutil-1 is static ++if(BUILD_SHARED_LIBS) + ADD_LIBRARY(libaprutil-1 SHARED ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libaprutil.rc) + SET(install_targets ${install_targets} libaprutil-1) + SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/libaprutil-1.pdb) + TARGET_LINK_LIBRARIES(libaprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES}) + SET_TARGET_PROPERTIES(libaprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_EXPORT;APR_DECLARE_IMPORT;XML_STATIC;WINNT") + ++else(BUILD_SHARED_LIBS) + ADD_LIBRARY(aprutil-1 STATIC ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED}) + SET(install_targets ${install_targets} aprutil-1) + TARGET_LINK_LIBRARIES(aprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES}) + SET_TARGET_PROPERTIES(aprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_STATIC;APR_DECLARE_STATIC;APU_DSO_MODULE_BUILD;XML_STATIC") ++endif() + ++if(BUILD_SHARED_LIBS) + IF(APU_HAVE_CRYPTO) + IF(NOT OPENSSL_FOUND) + MESSAGE(FATAL_ERROR "Only OpenSSL-based crypto is currently implemented in the cmake build") +@@ -265,7 +267,7 @@ IF(APU_HAVE_ODBC) + ENDIF() + + IF(APR_HAS_LDAP) +- ADD_LIBRARY(apr_ldap-1 SHARED ldap/apr_ldap_init.c ldap/apr_ldap_option.c ++ ADD_LIBRARY(apr_ldap-1 SHARED ldap/apr_ldap_init.c ldap/apr_ldap_option.c + ldap/apr_ldap_rebind.c libaprutil.rc) + SET(install_targets ${install_targets} apr_ldap-1) + SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/apr_ldap-1.pdb) +@@ -276,6 +278,7 @@ IF(APR_HAS_LDAP) + ELSE() + SET(apr_ldap_libraries) + ENDIF() ++endif() + + IF(APR_BUILD_TESTAPR) + ENABLE_TESTING() +@@ -283,13 +286,13 @@ IF(APR_BUILD_TESTAPR) + ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose) + + # copy data files to build directory so that we can run programs from there +- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ++ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory + ${PROJECT_BINARY_DIR}/data) +- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different ++ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${PROJECT_SOURCE_DIR}/test/data/billion-laughs.xml + ${PROJECT_BINARY_DIR}/data/billion-laughs.xml) + +- IF(TEST_STATIC_LIBS) ++ IF(NOT BUILD_SHARED_LIBS) + SET(whichapr aprutil-1) + SET(apiflag "-DAPR_DECLARE_STATIC -DAPU_DECLARE_STATIC") + ELSE() +@@ -325,13 +328,9 @@ INSTALL(TARGETS ${install_targets} + ARCHIVE DESTINATION lib + ) + +-IF(INSTALL_PDB) +- INSTALL(FILES ${install_bin_pdb} +- DESTINATION bin +- CONFIGURATIONS RelWithDebInfo Debug) +-ENDIF() +- +-INSTALL(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION include) ++if(NOT DISABLE_INSTALL_HEADERS) ++ INSTALL(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION include) ++endif() + + STRING(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype) + MESSAGE(STATUS "") diff --git a/vcpkg/ports/apr-util/vcpkg.json b/vcpkg/ports/apr-util/vcpkg.json new file mode 100644 index 0000000..f1c815b --- /dev/null +++ b/vcpkg/ports/apr-util/vcpkg.json @@ -0,0 +1,24 @@ +{ + "name": "apr-util", + "version": "1.6.3", + "description": "Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementation", + "homepage": "https://apr.apache.org/", + "license": "Apache-2.0", + "dependencies": [ + "apr", + "expat", + { + "name": "vcpkg-cmake", + "host": true, + "platform": "windows" + } + ], + "features": { + "crypto": { + "description": "Crypto support", + "dependencies": [ + "openssl" + ] + } + } +} |