Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
872d47d
Allow the apr port to be used on non-windows systems
stephen-webb Oct 13, 2019
c02462e
Allow the apr-util port to be used on non-windows systems
stephen-webb Oct 13, 2019
0892bf4
Allow the apr-util port to be used on non-windows systems
stephen-webb Oct 13, 2019
e8c2a27
[log4cxx] add new port
stephen-webb Oct 13, 2019
1e2d5e8
Allow the apr-util port to be used on non-windows systems
stephen-webb Oct 13, 2019
4cafd4c
Add aarch64 cross compilation support
stephen-webb Oct 15, 2019
fd7fa07
Allow apr and apr-util ports to used with a cross compiling tool chain
stephen-webb Oct 18, 2019
44d40ff
@PhoebeHui requested changes
stephen-webb Jan 18, 2020
3a07ab7
Remove files that leaked from 'add-log4cxx-port' branch
stephen-webb Jan 20, 2020
c8e3dfe
@PhoebeHui requested changes
stephen-webb Jan 20, 2020
ad6fe27
Move apr-util-unix and apr-util-windows portfile.cmake content back i…
stephen-webb Jan 24, 2020
860d494
Use the same released archive for unix and windows
stephen-webb Feb 2, 2020
eb9cb43
Use the same released archive for unix and windows (1.6.1)
stephen-webb Feb 2, 2020
f19e564
Update APR version to the latest
stephen-webb Feb 11, 2020
42d0dae
Prevent unrelated CI failures
stephen-webb Mar 10, 2020
27a614e
Prevent CI failure for arm64 on x86 CI machine
stephen-webb Mar 10, 2020
23420f8
Prevent CI failure for arm64 on x86 CI machine
stephen-webb Mar 10, 2020
334e5e4
Use vcpkg_configure_make and vcpkg_install_make instead of vcpkg_exec…
stephen-webb Mar 13, 2020
37c92c0
Remove shared libraries if a static build
stephen-webb Mar 13, 2020
b826a5c
Revert "Remove shared libraries if a static build"
stephen-webb Mar 13, 2020
bcdda39
Prevent CI failures due to static build installing apr-1-config into bin
stephen-webb Mar 16, 2020
2b6f6a8
@PhoebeHui requested changes
stephen-webb Mar 18, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ports/apr-util/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Source: apr-util
Version: 1.6.0-5
Version: 1.6.1
Homepage: https://apr.apache.org/
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
Build-Depends: expat, apr, openssl
110 changes: 75 additions & 35 deletions ports/apr-util/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,46 +1,86 @@
include(vcpkg_common_functions)

vcpkg_download_distfile(ARCHIVE
URLS "https://archive.apache.org/dist/apr/apr-util-1.6.0-win32-src.zip"
FILENAME "apr-util-1.6.0-win32-src.zip"
SHA512 98679ea181d3132020713481703bbefa0c174e0b2a0df65dfdd176e9771935e1f9455c4242bac19dded9414abe2b9d293fcc674ab16f96d8987bcf26346fce3a
)
URLS "http://archive.apache.org/dist/apr/apr-util-1.6.1.tar.bz2"
FILENAME "apr-util-1.6.1.tar.bz2"
SHA512 40eff8a37c0634f7fdddd6ca5e596b38de15fd10767a34c30bbe49c632816e8f3e1e230678034f578dd5816a94f246fb5dfdf48d644829af13bf28de3225205d

vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
PATCHES
use-vcpkg-expat.patch
apr.patch
)

if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(APU_DECLARE_EXPORT ON)
set(APU_DECLARE_STATIC OFF)
else()
set(APU_DECLARE_EXPORT OFF)
set(APU_DECLARE_STATIC ON)
endif()
if(VCPKG_TARGET_IS_WINDOWS)

vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DAPU_DECLARE_EXPORT=${APU_DECLARE_EXPORT}
-DAPU_DECLARE_STATIC=${APU_DECLARE_STATIC}
OPTIONS_DEBUG
-DDISABLE_INSTALL_HEADERS=ON
)
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
PATCHES
use-vcpkg-expat.patch
apr.patch
)

if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(APU_DECLARE_EXPORT ON)
set(APU_DECLARE_STATIC OFF)
else()
set(APU_DECLARE_EXPORT OFF)
set(APU_DECLARE_STATIC ON)
endif()

vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DAPU_DECLARE_EXPORT=${APU_DECLARE_EXPORT}
-DAPU_DECLARE_STATIC=${APU_DECLARE_STATIC}
OPTIONS_DEBUG
-DDISABLE_INSTALL_HEADERS=ON
)

vcpkg_install_cmake()
vcpkg_copy_pdbs()

file(READ ${CURRENT_PACKAGES_DIR}/include/apu.h APU_H)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
string(REPLACE "defined(APU_DECLARE_EXPORT)" "1" APU_H "${APU_H}")
else()
string(REPLACE "defined(APU_DECLARE_STATIC)" "1" APU_H "${APU_H}")
endif()
file(WRITE ${CURRENT_PACKAGES_DIR}/include/apu.h "${APU_H}")

else(VCPKG_TARGET_IS_WINDOWS)

vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
)

# 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}"
NO_DEBUG
OPTIONS
"--prefix=${CURRENT_INSTALLED_DIR}"
"--with-apr=${CURRENT_INSTALLED_DIR}"
"--with-openssl=${CURRENT_INSTALLED_DIR}"
"-with-expat=${CURRENT_INSTALLED_DIR}"
"${CONFIGURE_PARAMETER_1}"
"${CONFIGURE_PARAMETER_2}"
"${CONFIGURE_PARAMETER_3}"
)

vcpkg_install_cmake()
vcpkg_copy_pdbs()
vcpkg_install_make()

file(READ ${CURRENT_PACKAGES_DIR}/include/apu.h APU_H)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
string(REPLACE "defined(APU_DECLARE_EXPORT)" "1" APU_H "${APU_H}")
else()
string(REPLACE "defined(APU_DECLARE_STATIC)" "1" APU_H "${APU_H}")
endif()
file(WRITE ${CURRENT_PACKAGES_DIR}/include/apu.h "${APU_H}")

# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
102 changes: 45 additions & 57 deletions ports/apr-util/use-vcpkg-expat.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 43fdf49..56424c3 100644
index 9ae90b19..b0e86e2c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,8 +27,9 @@ OPTION(APR_HAS_LDAP "LDAP support" ON)
@@ -29,8 +29,9 @@ 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)
Expand All @@ -14,88 +14,76 @@ index 43fdf49..56424c3 100644

IF(NOT EXISTS "${APR_INCLUDE_DIR}/apr.h")
MESSAGE(FATAL_ERROR "APR include directory ${APR_INCLUDE_DIR} is not correct.")
@@ -75,8 +76,8 @@ CONFIGURE_FILE(include/apu_want.hw
COPYONLY)
@@ -65,8 +66,8 @@ IF(NOT EXPAT_FOUND)
MESSAGE(FATAL_ERROR "Expat is required, and it wasn't found!")
ENDIF()

# TBD:
-# SET(XMLLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xml/expat/lib)
-SET(XMLLIB_LIBRARIES libexpat)
-SET(XMLLIB_INCLUDE_DIR ${EXPAT_INCLUDE_DIRS})
-SET(XMLLIB_LIBRARIES ${EXPAT_LIBRARIES})
+find_path(XMLLIB_INCLUDE_DIR expat.h)
+find_library(XMLLIB_LIBRARIES NAMES expat)

SET(LDAP_LIBRARIES)
IF(APR_HAS_LDAP)
@@ -217,11 +218,11 @@ SET(APR_TEST_SOURCES
test/testxml.c
)

-SET(EXPAT_SOURCES
- xml/expat/lib/xmlrole.c
- xml/expat/lib/xmltok.c
- xml/expat/lib/xmlparse.c
-)
+# SET(EXPAT_SOURCES
+# xml/expat/lib/xmlrole.c
+# xml/expat/lib/xmltok.c
+# xml/expat/lib/xmlparse.c
+# )

SET(install_targets)
SET(install_bin_pdb)
@@ -230,21 +231,25 @@ SET(dbd_drivers)
@@ -229,17 +230,21 @@ SET(dbd_drivers)
# Note: The WINNT definition on some targets is used only by libaprutil.rc.

# static expat (not installed)
-ADD_LIBRARY(libexpat STATIC ${EXPAT_SOURCES})
-SET_TARGET_PROPERTIES(libexpat PROPERTIES COMPILE_DEFINITIONS "XML_STATIC;COMPILED_FROM_DSP")
+# ADD_LIBRARY(libexpat STATIC ${EXPAT_SOURCES})
+# SET_TARGET_PROPERTIES(libexpat PROPERTIES COMPILE_DEFINITIONS "XML_STATIC;COMPILED_FROM_DSP")

# 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_EXPORT;XML_STATIC;WINNT")
-SET_TARGET_PROPERTIES(libaprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_EXPORT;APR_DECLARE_EXPORT;XML_STATIC;WINNT")
+SET_TARGET_PROPERTIES(libaprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_EXPORT;APR_DECLARE_IMPORT;XML_STATIC;WINNT")

+else()
+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()

-
+endif(BUILD_SHARED_LIBS)
+
+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")
@@ -270,7 +275,7 @@ IF(APU_HAVE_ODBC)
@@ -249,7 +254,7 @@ IF(APU_HAVE_CRYPTO)
SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/apr_crypto_openssl-1.pdb)
SET_TARGET_PROPERTIES(apr_crypto_openssl-1 PROPERTIES INCLUDE_DIRECTORIES "${APR_INCLUDE_DIRECTORIES};${OPENSSL_INCLUDE_DIR}")
SET_TARGET_PROPERTIES(apr_crypto_openssl-1 PROPERTIES COMPILE_DEFINITIONS "WINNT")
- SET_TARGET_PROPERTIES(apr_crypto_openssl-1 PROPERTIES COMPILE_FLAGS "-DAPR_DECLARE_EXPORT=1 -DAPU_DECLARE_EXPORT=1 -DDLL_NAME=apr_crypto_openssl")
+ SET_TARGET_PROPERTIES(apr_crypto_openssl-1 PROPERTIES COMPILE_FLAGS "-DAPR_DECLARE_IMPORT -DAPU_DECLARE_IMPORT -DDLL_NAME=apr_crypto_openssl")
TARGET_LINK_LIBRARIES(apr_crypto_openssl-1 libaprutil-1 ${APR_LIBRARIES} ${OPENSSL_LIBRARIES})
ENDIF()

@@ -260,8 +265,8 @@ IF(APU_HAVE_ODBC)
SET(dbd_drivers ${dbd_drivers} odbc)
TARGET_LINK_LIBRARIES(apr_dbd_odbc-1 libaprutil-1 ${APR_LIBRARIES} odbc32 odbccp32)
SET_PROPERTY(TARGET apr_dbd_odbc-1 APPEND PROPERTY LINK_FLAGS /export:apr_dbd_odbc_driver)
- SET_TARGET_PROPERTIES(apr_dbd_odbc-1 PROPERTIES COMPILE_DEFINITIONS "APU_HAVE_ODBC;HAVE_SQL_H;APU_DECLARE_EXPORT;APR_DECLARE_EXPORT;APU_DSO_MODULE_BUILD;WINNT")
- SET_TARGET_PROPERTIES(apr_dbd_odbc-1 PROPERTIES COMPILE_FLAGS "-DAPR_DECLARE_EXPORT=1 -DAPU_DECLARE_EXPORT=1 -DDLL_NAME=apr_dbd_odbc")
+ SET_TARGET_PROPERTIES(apr_dbd_odbc-1 PROPERTIES COMPILE_DEFINITIONS "APU_HAVE_ODBC;HAVE_SQL_H;APU_DECLARE_IMPORT;APR_DECLARE_IMPORT;APU_DSO_MODULE_BUILD;WINNT")
+ SET_TARGET_PROPERTIES(apr_dbd_odbc-1 PROPERTIES COMPILE_FLAGS "-DAPR_DECLARE_IMPORT -DAPU_DECLARE_IMPORT -DDLL_NAME=apr_dbd_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)
@@ -271,11 +276,12 @@ IF(APR_HAS_LDAP)
SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/apr_ldap-1.pdb)
@@ -281,6 +286,7 @@ IF(APR_HAS_LDAP)
TARGET_LINK_LIBRARIES(apr_ldap-1 libaprutil-1 ${APR_LIBRARIES} ${LDAP_LIBRARIES})
SET_TARGET_PROPERTIES(apr_ldap-1 PROPERTIES COMPILE_DEFINITIONS "WINNT")
- SET_TARGET_PROPERTIES(apr_ldap-1 PROPERTIES COMPILE_FLAGS "-DAPR_DECLARE_EXPORT=1 -DAPU_DECLARE_EXPORT=1 -DDLL_NAME=apr_ldap")
+ SET_TARGET_PROPERTIES(apr_ldap-1 PROPERTIES COMPILE_FLAGS "-DAPR_DECLARE_IMPORT -DAPU_DECLARE_IMPORT -DDLL_NAME=apr_ldap")
SET(apr_ldap_libraries apr_ldap-1)
ELSE()
SET(apr_ldap_libraries)
ENDIF()
+endif()
+endif(BUILD_SHARED_LIBS)

IF(APR_BUILD_TESTAPR)
ENABLE_TESTING()
@@ -288,13 +294,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
@@ -289,7 +295,7 @@ IF(APR_BUILD_TESTAPR)
${PROJECT_SOURCE_DIR}/test/data/billion-laughs.xml
${PROJECT_BINARY_DIR}/data/billion-laughs.xml)

Expand All @@ -104,7 +92,7 @@ index 43fdf49..56424c3 100644
SET(whichapr aprutil-1)
SET(apiflag "-DAPR_DECLARE_STATIC -DAPU_DECLARE_STATIC")
ELSE()
@@ -330,13 +336,15 @@ INSTALL(TARGETS ${install_targets}
@@ -325,13 +331,15 @@ INSTALL(TARGETS ${install_targets}
ARCHIVE DESTINATION lib
)

Expand All @@ -113,11 +101,11 @@ index 43fdf49..56424c3 100644
- DESTINATION bin
- CONFIGURATIONS RelWithDebInfo Debug)
-ENDIF()
+# IF(INSTALL_PDB)
+# INSTALL(FILES ${install_bin_pdb}
+# DESTINATION bin
+# CONFIGURATIONS RelWithDebInfo Debug)
+# ENDIF()
+#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)
Expand Down
2 changes: 1 addition & 1 deletion ports/apr/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Source: apr
Version: 1.6.5-3
Version: 1.7.0
Homepage: https://apr.apache.org/
Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems.
Supports: !uwp
Expand Down
Loading