Author: brane Date: Sun Jun 8 17:23:20 2025 New Revision: 1926256 URL: http://svn.apache.org/viewvc?rev=1926256&view=rev Log: On the user-defined-authn branch: sync with trunk to r1926255.
Modified: serf/branches/user-defined-authn/ (props changed) serf/branches/user-defined-authn/.github/workflows/linux.yml serf/branches/user-defined-authn/.github/workflows/windows-cmake.yml serf/branches/user-defined-authn/CMakeLists.txt serf/branches/user-defined-authn/build/FindAPR.cmake serf/branches/user-defined-authn/build/FindAPRUtil.cmake serf/branches/user-defined-authn/build/FindBrotli.cmake serf/branches/user-defined-authn/build/FindGSSAPI.cmake serf/branches/user-defined-authn/build/SerfChecks.cmake serf/branches/user-defined-authn/test/CMakeLists.txt Propchange: serf/branches/user-defined-authn/ ------------------------------------------------------------------------------ Merged /serf/trunk:r1926226-1926255 Modified: serf/branches/user-defined-authn/.github/workflows/linux.yml URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/.github/workflows/linux.yml?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/.github/workflows/linux.yml (original) +++ serf/branches/user-defined-authn/.github/workflows/linux.yml Sun Jun 8 17:23:20 2025 @@ -1,4 +1,4 @@ -name: Linux +name: Linux (SCons) on: push: Modified: serf/branches/user-defined-authn/.github/workflows/windows-cmake.yml URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/.github/workflows/windows-cmake.yml?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/.github/workflows/windows-cmake.yml (original) +++ serf/branches/user-defined-authn/.github/workflows/windows-cmake.yml Sun Jun 8 17:23:20 2025 @@ -12,14 +12,19 @@ on: jobs: build: strategy: - matrix: - os: [windows-latest] - build-type: [Debug, Release] - triplet: - - x64-windows - - x86-windows - generator: [ "Visual Studio 17 2022" ] fail-fast: false + matrix: + include: + - name: Windows x64 + os: windows-latest + platform: x64 + triplet: x64-windows + generator: "Visual Studio 17 2022" + - name: Windows x86 + os: windows-latest + platform: Win32 + triplet: x86-windows + generator: "Visual Studio 17 2022" runs-on: ${{ matrix.os }} @@ -34,33 +39,31 @@ jobs: core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - - name: Set build environment for x86 - uses: actions/github-script@v7 - with: - script: | - core.exportVariable('SERF_WIN_PLATFORM', 'Win32'); - if: startsWith(matrix.triplet, 'x86-') - - - name: Set build environment for x64 - uses: actions/github-script@v7 - with: - script: | - core.exportVariable('SERF_WIN_PLATFORM', 'x64'); - if: startsWith(matrix.triplet, 'x64-') - - name: Install dependencies run: vcpkg install --triplet ${{ matrix.triplet }} apr apr-util zlib openssl brotli - uses: actions/checkout@v3 - name: Configure CMake - run: cmake -B ${{github.workspace}}/build -G "${{ matrix.generator }}" -DCMAKE_GENERATOR_PLATFORM=${{ env.SERF_WIN_PLATFORM }} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DAPR_ROOT=C:/vcpkg/installed/${{ matrix.triplet }} -DAPRUtil_ROOT=C:/vcpkg/installed/${{ matrix.triplet }} -DOPENSSL_ROOT_DIR=C:/vcpkg/installed/${{ matrix.triplet }} -DZLIB_ROOT=C:/vcpkg/installed/${{ matrix.triplet }} -DBrotli_ROOT=C:/vcpkg/installed/${{ matrix.triplet }} + run: > + cmake + -B ${{github.workspace}}/build + -G "${{ matrix.generator }}" + -DCMAKE_GENERATOR_PLATFORM=${{ matrix.platform }} + -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake + -DCMAKE_PREFIX_PATH=C:/vcpkg/installed/${{ matrix.triplet }} + -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install - - name: Build - run: cmake --build ${{github.workspace}}/build --config ${{ matrix.build-type }} + - name: Build (Release) + run: cmake --build ${{github.workspace}}/build --config Release -j + + - name: Build (Debug) + run: cmake --build ${{github.workspace}}/build --config Debug -j + + - name: Test (Release) + working-directory: ${{github.workspace}}/build + run: ctest -C Release --output-on-failure - - name: Test + - name: Test (Debug) working-directory: ${{github.workspace}}/build - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C ${{ matrix.build-type }} --output-on-failure + run: ctest -C Debug --output-on-failure Modified: serf/branches/user-defined-authn/CMakeLists.txt URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/CMakeLists.txt?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/CMakeLists.txt (original) +++ serf/branches/user-defined-authn/CMakeLists.txt Sun Jun 8 17:23:20 2025 @@ -265,7 +265,7 @@ if(APR_STATIC) if(SERF_WINDOWS) list(APPEND SERF_PUBLIC_TARGETS APR::APR_static) if(NOT APR_CONTAINS_APRUTIL) - list(APPEND SERF_PUBLIC_TARGETS APR::APRUTIL_static) + list(APPEND SERF_PUBLIC_TARGETS APR::APRUtil_static) endif() else(SERF_WINDOWS) message(WARNING "option APR_STATIC is not implemented on this platform") @@ -273,25 +273,45 @@ if(APR_STATIC) else(APR_STATIC) list(APPEND SERF_PUBLIC_TARGETS APR::APR) if(NOT APR_CONTAINS_APRUTIL) - list(APPEND SERF_PUBLIC_TARGETS APR::APRUTIL) + list(APPEND SERF_PUBLIC_TARGETS APR::APRUtil) endif() endif(APR_STATIC) # Feature tests include(SerfChecks) -CheckNotFunction("BIO_set_init" "SERF_NO_SSL_BIO_WRAPPERS" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckNotFunction("X509_STORE_get0_param" "SERF_NO_SSL_X509_STORE_WRAPPERS" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckNotFunction("X509_get0_notBefore" "SERF_NO_SSL_X509_GET0_NOTBEFORE" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckNotFunction("X509_get0_notAfter" "SERF_NO_SSL_X509_GET0_NOTAFTER" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckNotFunction("X509_STORE_CTX_get0_chain" "SERF_NO_SSL_X509_GET0_CHAIN" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckNotFunction("ASN1_STRING_get0_data" "SERF_NO_SSL_ASN1_STRING_GET0_DATA" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckFunction("CRYPTO_set_locking_callback" "SERF_HAVE_SSL_LOCKING_CALLBACKS" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckFunction("OpenSSL_version_num" "SERF_HAVE_OPENSSL_VERSION_NUM" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckFunction("SSL_set_alpn_protos" "SERF_HAVE_OPENSSL_ALPN" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckFunctionMacro("OPENSSL_malloc_init" "SERF_HAVE_OPENSSL_MALLOC_INIT" "openssl/crypto.h" - "${OPENSSL_INCLUDE_DIR}" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) -CheckFunctionMacro("SSL_library_init" "SERF_HAVE_OPENSSL_SSL_LIBRARY_INIT" "openssl/ssl.h" - "${OPENSSL_INCLUDE_DIR}" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckNotFunction("BIO_set_init" "NULL, 0" "SERF_NO_SSL_BIO_WRAPPERS" + "openssl/bio.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckNotFunction("X509_STORE_get0_param" "NULL" "SERF_NO_SSL_X509_STORE_WRAPPERS" + "openssl/x509.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckNotFunction("X509_get0_notBefore" "NULL" "SERF_NO_SSL_X509_GET0_NOTBEFORE" + "openssl/x509.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckNotFunction("X509_get0_notAfter" "NULL" "SERF_NO_SSL_X509_GET0_NOTAFTER" + "openssl/x509.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckNotFunction("X509_STORE_CTX_get0_chain" "NULL" "SERF_NO_SSL_X509_GET0_CHAIN" + "openssl/x509.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckNotFunction("ASN1_STRING_get0_data" "NULL" "SERF_NO_SSL_ASN1_STRING_GET0_DATA" + "openssl/asn1.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckFunction("CRYPTO_set_locking_callback" "NULL" "SERF_HAVE_SSL_LOCKING_CALLBACKS" + "openssl/crypto.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckFunction("SSL_set_alpn_protos" "NULL, NULL, 0" "SERF_HAVE_OPENSSL_ALPN" + "openssl/ssl.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckFunction("OpenSSL_version_num" "" "SERF_HAVE_OPENSSL_VERSION_NUM" + "openssl/ssl.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckFunction("OPENSSL_malloc_init" "" "SERF_HAVE_OPENSSL_MALLOC_INIT" + "openssl/ssl.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) +CheckFunction("SSL_library_init" "" "SERF_HAVE_OPENSSL_SSL_LIBRARY_INIT" + "openssl/ssl.h" "${OPENSSL_INCLUDE_DIR}" + ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES}) CheckHeader("stdbool.h" "HAVE_STDBOOL_H=1") CheckType("OSSL_HANDSHAKE_STATE" "openssl/ssl.h" "SERF_HAVE_OSSL_HANDSHAKE_STATE" ${OPENSSL_INCLUDE_DIR}) if(Brotli_FOUND) @@ -299,7 +319,9 @@ if(Brotli_FOUND) # Check for the function only if the type check succeeded. get_directory_property(_cdef COMPILE_DEFINITIONS) if("SERF_HAVE_BROTLI_DECODER_RESULT" IN_LIST _cdef) - CheckFunction("BrotliDecoderTakeOutput" "SERF_HAVE_BROTLI" Brotli::Decode ${SERF_STANDARD_LIBRARIES}) + CheckFunction("BrotliDecoderTakeOutput" "NULL, NULL" "SERF_HAVE_BROTLI" + "brotli/decode.h" ${BROTLI_INCLUDES} + Brotli::Decode ${SERF_STANDARD_LIBRARIES}) endif() endif() Modified: serf/branches/user-defined-authn/build/FindAPR.cmake URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/build/FindAPR.cmake?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/build/FindAPR.cmake (original) +++ serf/branches/user-defined-authn/build/FindAPR.cmake Sun Jun 8 17:23:20 2025 @@ -60,9 +60,11 @@ cmake_minimum_required(VERSION 3.12) # ------------------------------------------------------------------- -# Common utility functions for FindAPR.cmaks and FindAPRtil.cmake +# Common utility functions for FindAPR.cmake and FindAPRtil.cmake # ------------------------------------------------------------------- +include(GNUInstallDirs) + # Run the APR/Util configuration program function(_apru_config _program _varname _regexp) execute_process(COMMAND ${_program} ${ARGN} @@ -87,28 +89,58 @@ function(_apru_config _program _varname endif() endfunction(_apru_config) -# Parse the APR/Util version number from the header -function(_apru_version _version_varname _major_varname _minor_varname _header _prefix) - file(STRINGS ${_header} _apru_major +# Windows: Find the APR/Util include dir and version number. +function(_apru_find_win_version _header_basename + _include_varname _version_varname _major_varname _minor_varname) + find_path(${_include_varname} "${_header_basename}.h" + PATH_SUFFIXES + "include" + "${CMAKE_INSTALL_INCLUDEDIR}" + "include/apr-2" + "${CMAKE_INSTALL_INCLUDEDIR}/apr-2" + "include/apr-1" + "${CMAKE_INSTALL_INCLUDEDIR}/apr-1") + mark_as_advanced(${_include_varname}) + + set(_header "${_header_basename}_version.h") + if(NOT EXISTS "${${_include_varname}}/${_header}") + message(FATAL_ERROR "${_header} was not found in ${${_include_varname}}") + endif() + + string(TOUPPER "${_header_basename}" _prefix) + set(_header "${${_include_varname}}/${_header}") + file(STRINGS "${_header}" _apru_major REGEX "^ *# *define +${_prefix}_MAJOR_VERSION +[0-9]+.*$") - file(STRINGS ${_header} _apru_minor + file(STRINGS "${_header}" _apru_minor REGEX "^ *# *define +${_prefix}_MINOR_VERSION +[0-9]+.*$") - file(STRINGS ${_header} _apru_patch + file(STRINGS "${_header}" _apru_patch REGEX "^ *# *define +${_prefix}_PATCH_VERSION +[0-9]+.*$") string(REGEX REPLACE "^[^0-9]+([0-9]+).*$" "\\1" _apru_major ${_apru_major}) string(REGEX REPLACE "^[^0-9]+([0-9]+).*$" "\\1" _apru_minor ${_apru_minor}) string(REGEX REPLACE "^[^0-9]+([0-9]+).*$" "\\1" _apru_patch ${_apru_patch}) + set(${_version_varname} "${_apru_major}.${_apru_minor}.${_apru_patch}" PARENT_SCOPE) set(${_major_varname} ${_apru_major} PARENT_SCOPE) set(${_minor_varname} ${_apru_minor} PARENT_SCOPE) -endfunction(_apru_version) +endfunction(_apru_find_win_version) # Windows: Find the DLL (runtime) library -function(_apru_find_dll _varname _dllname) +function(_apru_find_win_dll _varname _dllname) + set(CMAKE_FIND_LIBRARY_PREFIXES "") set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll") - find_library(${_varname} NAMES ${_dllname} - PATHS ${ARGN} NO_DEFAULT_PATH PATH_SUFFIXES "bin" "lib") -endfunction(_apru_find_dll) + find_library(${_varname} NAMES "${_dllname}" + PATH_SUFFIXES + "bin" "${CMAKE_INSTALL_BINDIR}" + "lib" "${CMAKE_INSTALL_LIBDIR}") +endfunction(_apru_find_win_dll) + +# Windows: Find static and import libraries +function(_apru_find_win_lib _varname _libname) + set(CMAKE_FIND_LIBRARY_PREFIXES "") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") + find_library(${_varname} NAMES "${_libname}" + PATH_SUFFIXES "lib" "${CMAKE_INSTALL_LIBDIR}") +endfunction(_apru_find_win_lib) # Extract the main and extra static libraries function(_apru_extras _static_var _extra_var) @@ -159,57 +191,38 @@ function(_apru_location _location_var _e if(NOT _dir) find_library(${_location_var} NAMES "${_lib}") else() - find_library(${_location_var} NAMES "${_lib}" PATHS "${_dir}" NO_DEFAULT_PATH) + find_library(${_location_var} NAMES "${_lib}" + PATHS "${_dir}" NO_DEFAULT_PATH) endif() set(${_extralibs_var} ${_extra} PARENT_SCOPE) endfunction(_apru_location) + +# ------------------------------------------------------------------- +# The actual FindAPR implementation # ------------------------------------------------------------------- if(NOT _apru_include_only_utilities) set(APR_FOUND FALSE) + if(DEFINED APR_ROOT) + get_filename_component(APR_ROOT "${APR_ROOT}" REALPATH) + endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - if(DEFINED APR_ROOT) - get_filename_component(APR_ROOT "${APR_ROOT}" REALPATH) - else() - message(FATAL_ERROR "APR_ROOT must be defined on Windows") - endif() - - include(CheckIncludeFile) - - find_path(APR_INCLUDES "apr.h" - PATHS "${APR_ROOT}/include" - PATH_SUFFIXES "apr-2" "apr-1" - NO_DEFAULT_PATH) - if(NOT APR_INCLUDES) - message(FATAL_ERROR "apr.h was not found in ${APR_ROOT}") - endif() - - if(NOT EXISTS "${APR_INCLUDES}/apr_version.h") - message(FATAL_ERROR "apr_version.h was not found in ${APR_INCLUDES}") - endif() - - _apru_version(APR_VERSION _apr_major _apr_minor "${APR_INCLUDES}/apr_version.h" "APR") + _apru_find_win_version("apr" APR_INCLUDES + APR_VERSION _apr_major _apr_minor) set(_apr_name "apr-${_apr_major}") - find_library(APR_LIBRARIES NAMES "lib${_apr_name}.lib" - PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib") - find_library(APR_STATIC_LIBS NAMES "${_apr_name}.lib" - PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib") - _apru_find_dll(APR_RUNTIME_LIBS "lib${_apr_name}.dll" ${APR_ROOT}) + _apru_find_win_lib(APR_LIBRARIES "lib${_apr_name}") + _apru_find_win_lib(APR_STATIC_LIBS "${_apr_name}") + _apru_find_win_dll(APR_RUNTIME_LIBS "lib${_apr_name}") else() # NOT Windows - if(DEFINED APR_ROOT) - get_filename_component(APR_ROOT "${APR_ROOT}" REALPATH) - find_program(APR_CONFIG_EXECUTABLE NAMES apr-2-config apr-1-config - PATHS "${APR_ROOT}/bin" NO_DEFAULT_PATH) - else() - find_program(APR_CONFIG_EXECUTABLE NAMES apr-2-config apr-1-config) - endif() + find_program(APR_CONFIG_EXECUTABLE NAMES apr-2-config apr-1-config + PATH_SUFFIXES "bin" "${CMAKE_INSTALL_BINDIR}") mark_as_advanced(APR_CONFIG_EXECUTABLE) macro(_apr_invoke _varname _regexp) @@ -233,9 +246,10 @@ if(NOT _apru_include_only_utilities) endif() include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(APR - REQUIRED_VARS APR_LIBRARIES APR_INCLUDES - VERSION_VAR APR_VERSION) + find_package_handle_standard_args( + APR + REQUIRED_VARS APR_LIBRARIES APR_INCLUDES + VERSION_VAR APR_VERSION) if(APR_FOUND) if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") Modified: serf/branches/user-defined-authn/build/FindAPRUtil.cmake URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/build/FindAPRUtil.cmake?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/build/FindAPRUtil.cmake (original) +++ serf/branches/user-defined-authn/build/FindAPRUtil.cmake Sun Jun 8 17:23:20 2025 @@ -39,7 +39,7 @@ cmake_minimum_required(VERSION 3.12) # # :: # -# APRUTIL_FOUND - True if APR-Util was found +# APRUtil_FOUND - True if APR-Util was found # APRUTIL_VERSION - The version of APR-Util found (x.y.z) # APRUTIL_INCLUDES - Where to find apr.h, etc. # APRUTIL_LIBRARIES - Linker switches to use with ld to link against APR @@ -61,7 +61,7 @@ if(NOT APR_FOUND) find_package(APR REQUIRED) endif() -set(APRUTIL_FOUND FALSE) +set(APRUtil_FOUND FALSE) if(APR_CONTAINS_APRUTIL) @@ -77,44 +77,27 @@ else(APR_CONTAINS_APRUTIL) include(${CMAKE_CURRENT_LIST_DIR}/FindAPR.cmake) unset(_apru_include_only_utilities) - if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - - if(DEFINED APRUtil_ROOT) - get_filename_component(APRUtil_ROOT "${APRUtil_ROOT}" REALPATH) - else() - message(FATAL_ERROR "APRUtil_ROOT must be defined on Windows") - endif() - - include(CheckIncludeFile) - - find_path(APRUTIL_INCLUDES "apu.h" - PATHS "${APRUtil_ROOT}/include" - PATH_SUFFIXES "apr-1" - NO_DEFAULT_PATH) - if(NOT APRUTIL_INCLUDES) - message(FATAL_ERROR "apu.h was not found in ${APRUtil_ROOT}") - endif() + if(DEFINED APRUtil_ROOT) + get_filename_component(APRUtil_ROOT "${APRUtil_ROOT}" REALPATH) + endif() - if(NOT EXISTS "${APRUTIL_INCLUDES}/apu_version.h") - message(FATAL_ERROR "apu_version.h was not found in ${APRUTIL_INCLUDES}") - endif() + if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - _apru_version(APRUTIL_VERSION _apu_major _apu_minor "${APRUTIL_INCLUDES}/apu_version.h" "APU") + _apru_find_win_version("apu" APRUTIL_INCLUDES + APRUTIL_VERSION _apu_major _apu_minor) set(_apu_name "aprutil-${_apu_major}") - if(${_apu_major} GREATER 1 OR (${_apu_major} EQUAL 1 AND ${_apu_minor} GREATER 5)) - set(_apu_expat_name "expat.lib") + if(${_apu_major} GREATER 1 + OR (${_apu_major} EQUAL 1 AND ${_apu_minor} GREATER 5)) + set(_apu_expat_name "expat") else() - set(_apu_expat_name "xml.lib") + set(_apu_expat_name "xml") endif() - find_library(APRUTIL_LIBRARIES NAMES "lib${_apu_name}.lib" - PATHS ${APRUtil_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib") - find_library(_apu_static NAMES "${_apu_name}.lib" - PATHS ${APRUtil_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib") - find_library(_apu_expat NAMES ${_apu_expat_name} - PATHS ${APRUtil_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib") - _apru_find_dll(APRUTIL_RUNTIME_LIBS "lib${_apu_name}.dll" ${APRUtil_ROOT}) + _apru_find_win_lib(APRUTIL_LIBRARIES "lib${_apu_name}") + _apru_find_win_lib(_apu_static NAMES "${_apu_name}") + _apru_find_win_lib(_apu_expat NAMES ${_apu_expat_name}) + _apru_find_win_dll(APRUTIL_RUNTIME_LIBS "lib${_apu_name}") if(NOT _apu_expat AND (_apu_expat_name MATCHES "expat")) find_package(EXPAT QUIET) @@ -123,7 +106,7 @@ else(APR_CONTAINS_APRUTIL) endif() endif() if(NOT _apu_expat) - message(WARNING "Could not find ${_apu_expat_name}" + message(WARNING "Could not find ${_apu_expat_name}.lib" " for APR-Util static linking.") endif() set(APRUTIL_STATIC_LIBS ${_apu_static} ${_apu_expat} @@ -131,13 +114,8 @@ else(APR_CONTAINS_APRUTIL) else() # NOT Windows - if(DEFINED APRUtil_ROOT) - get_filename_component(APRUtil_ROOT "${APRUtil_ROOT}" REALPATH) - find_program(APRUTIL_CONFIG_EXECUTABLE apu-1-config - PATHS "${APRUtil_ROOT}/bin" NO_DEFAULT_PATH) - else() - find_program(APRUTIL_CONFIG_EXECUTABLE apu-1-config) - endif() + find_program(APRUTIL_CONFIG_EXECUTABLE NAMES apu-1-config + PATH_SUFFIXES "bin" "${CMAKE_INSTALL_BINDIR}") mark_as_advanced(APRUTIL_CONFIG_EXECUTABLE) macro(_apu_invoke _varname _regexp) @@ -153,21 +131,22 @@ else(APR_CONTAINS_APRUTIL) endif() # NOT Windows include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(APRUtil - REQUIRED_VARS APRUTIL_LIBRARIES APRUTIL_INCLUDES - VERSION_VAR APRUTIL_VERSION) + find_package_handle_standard_args( + APRUtil + REQUIRED_VARS APRUTIL_LIBRARIES APRUTIL_INCLUDES + VERSION_VAR APRUTIL_VERSION) - if(APRUTIL_FOUND) + if(APRUtil_FOUND) if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") if(APRUTIL_LIBRARIES AND APRUTIL_RUNTIME_LIBS) - add_library(APR::APRUTIL SHARED IMPORTED) - set_target_properties(APR::APRUTIL PROPERTIES + add_library(APR::APRUtil SHARED IMPORTED) + set_target_properties(APR::APRUtil PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${APRUTIL_INCLUDES}" IMPORTED_LOCATION "${APRUTIL_RUNTIME_LIBS}" IMPORTED_IMPLIB "${APRUTIL_LIBRARIES}") if(TARGET APR::APR) - target_link_libraries(APR::APRUTIL + target_link_libraries(APR::APRUtil INTERFACE APR::APR) endif() endif() @@ -177,25 +156,25 @@ else(APR_CONTAINS_APRUTIL) if(TARGET APR::APR_static) list(APPEND _apu_extra APR::APR_static) endif() - add_library(APR::APRUTIL_static STATIC IMPORTED) - set_target_properties(APR::APRUTIL_static PROPERTIES + add_library(APR::APRUtil_static STATIC IMPORTED) + set_target_properties(APR::APRUtil_static PROPERTIES INTERFACE_COMPILE_DEFINITIONS "APU_DECLARE_STATIC" INTERFACE_INCLUDE_DIRECTORIES "${APRUTIL_INCLUDES}" IMPORTED_LOCATION "${_apu_static}") - target_link_libraries(APR::APRUTIL_static + target_link_libraries(APR::APRUtil_static INTERFACE ${_apu_extra}) endif() else() # NOT Windows _apru_location(_apu_library _apu_extra "${APRUTIL_LIBRARIES}") - add_library(APR::APRUTIL UNKNOWN IMPORTED) - set_target_properties(APR::APRUTIL PROPERTIES + add_library(APR::APRUtil UNKNOWN IMPORTED) + set_target_properties(APR::APRUtil PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${APRUTIL_INCLUDES}" IMPORTED_LOCATION "${_apu_library}") - target_link_libraries(APR::APRUTIL + target_link_libraries(APR::APRUtil INTERFACE ${APRUTIL_LDFLAGS};${APRUTIL_EXTRALIBS};${_apu_extra}) endif() # NOT Windows - endif(APRUTIL_FOUND) + endif(APRUtil_FOUND) endif(APR_CONTAINS_APRUTIL) Modified: serf/branches/user-defined-authn/build/FindBrotli.cmake URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/build/FindBrotli.cmake?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/build/FindBrotli.cmake (original) +++ serf/branches/user-defined-authn/build/FindBrotli.cmake Sun Jun 8 17:23:20 2025 @@ -23,18 +23,10 @@ include(GNUInstallDirs) set(Brotli_FOUND FALSE) function(_get_brotli_version) - if(DEFINED Brotli_ROOT) - get_filename_component(Brotli_ROOT "${Brotli_ROOT}" REALPATH) - find_program(brotli NAMES "brotli" - PATHS - "${Brotli_ROOT}/bin" - "${Brotli_ROOT}/${CMAKE_INSTALL_BINDIR}" - NO_DEFAULT_PATH) - else() - find_program(brotli NAMES "brotli") - endif() + find_program(brotli NAMES "brotli" + PATH_SUFFIXES "bin" "${CMAKE_INSTALL_BINDIR}") - if(NOT "${brotli}" STREQUAL "brotli-NOTFOUND") + if(NOT "${brotli}" MATCHES "-NOTFOUND") execute_process(COMMAND "${brotli}" "--version" OUTPUT_VARIABLE output RESULT_VARIABLE failed) @@ -49,42 +41,28 @@ function(_get_brotli_version) endfunction(_get_brotli_version) function(_get_brotli_includes_libs) - if(DEFINED Brotli_ROOT) - find_path(includes "decode.h" - PATHS "${Brotli_ROOT}" - PATH_SUFFIXES - "include/brotli" - "${CMAKE_INSTALL_INCLUDEDIR}/brotli}" - NO_DEFAULT_PATH) - get_filename_component(includes "${includes}" DIRECTORY) - find_library(common_lib "brotlicommon" - PATHS "${Brotli_ROOT}" - PATH_SUFFIXES "lib" "${CMAKE_INSTALL_LIBDIR}" - NO_DEFAULT_PATH) - find_library(decode_lib "brotlidec" - PATHS "${Brotli_ROOT}" - PATH_SUFFIXES "lib" "${CMAKE_INSTALL_LIBDIR}" - NO_DEFAULT_PATH) - find_library(encode_lib "brotlienc" - PATHS "${Brotli_ROOT}" - PATH_SUFFIXES "lib" "${CMAKE_INSTALL_LIBDIR}" - NO_DEFAULT_PATH) - else() - find_path(includes "decode.h" - PATH_SUFFIXES - "include/brotli" - "${CMAKE_INSTALL_INCLUDEDIR}/brotli}") - get_filename_component(includes "${includes}" DIRECTORY) - find_library(common_lib "brotlicommon") - find_library(decode_lib "brotlidec") - find_library(encode_lib "brotlienc") - endif() + find_path(includes "decode.h" + PATH_SUFFIXES + "include/brotli" + "${CMAKE_INSTALL_INCLUDEDIR}/brotli}") + get_filename_component(includes "${includes}" DIRECTORY) + find_library(common_lib NAMES "brotlicommon" + PATH_SUFFIXES "lib" "${CMAKE_INSTALL_LIBDIR}") + find_library(decode_lib NAMES "brotlidec" + PATH_SUFFIXES "lib" "${CMAKE_INSTALL_LIBDIR}") + find_library(encode_lib NAMES "brotlienc" + PATH_SUFFIXES "lib" "${CMAKE_INSTALL_LIBDIR}") + set(BROTLI_INCLUDES "${includes}" PARENT_SCOPE) set(BROTLI_COMMON_LIBRARY "${common_lib}" PARENT_SCOPE) set(BROTLI_DECODE_LIBRARY "${decode_lib}" PARENT_SCOPE) set(BROTLI_ENCODE_LIBRARY "${encode_lib}" PARENT_SCOPE) endfunction(_get_brotli_includes_libs) +if(DEFINED Brotli_ROOT) + get_filename_component(Brotli_ROOT "${Brotli_ROOT}" REALPATH) +endif() + _get_brotli_version() _get_brotli_includes_libs() if(NOT EXISTS "${BROTLI_INCLUDES}/brotli/decode.h" Modified: serf/branches/user-defined-authn/build/FindGSSAPI.cmake URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/build/FindGSSAPI.cmake?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/build/FindGSSAPI.cmake (original) +++ serf/branches/user-defined-authn/build/FindGSSAPI.cmake Sun Jun 8 17:23:20 2025 @@ -23,14 +23,13 @@ set(GSSAPI_FOUND FALSE) if(DEFINED GSSAPI_ROOT) get_filename_component(GSSAPI_ROOT "${GSSAPI_ROOT}" REALPATH) - find_program(KRB5_CONFIG_EXECUTABLE NAMES "krb5-config" - PATHS "${GSSAPI_ROOT}/bin" NO_DEFAULT_PATH) -else() - find_program(KRB5_CONFIG_EXECUTABLE NAMES "krb5-config") endif() + +find_program(KRB5_CONFIG_EXECUTABLE NAMES "krb5-config" + PATH_SUFFIXES "bin" "${CMAKE_INSTALL_BINDIR}") mark_as_advanced(KRB5_CONFIG_EXECUTABLE) -if("${KRB5_CONFIG_EXECUTABLE}" STREQUAL "KRB5_CONFIG_EXECUTABLE-NOTFOUND") +if("${KRB5_CONFIG_EXECUTABLE}" MATCHES "-NOTFOUND") message(STATUS "Could NOT find GSSAPI (missing: krb5-config)") else() function(_krb5_config _varname _dedup) Modified: serf/branches/user-defined-authn/build/SerfChecks.cmake URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/build/SerfChecks.cmake?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/build/SerfChecks.cmake (original) +++ serf/branches/user-defined-authn/build/SerfChecks.cmake Sun Jun 8 17:23:20 2025 @@ -17,71 +17,69 @@ # under the License. # =================================================================== -include(CheckFunctionExists) +include(CheckCSourceCompiles) include(CheckIncludeFile) -include(CheckSymbolExists) include(CheckTypeSize) -function(_CheckFunction var_ name_ libraries_) +function(_CheckFunction var_ name_ args_ header_ includes_ libraries_) if(libraries_) set(CMAKE_REQUIRED_LIBRARIES "${libraries_}") else() unset(CMAKE_REQUIRED_LIBRARIES) endif() - check_function_exists("${name_}" "serf_foundit_${name_}_") - if(serf_foundit_${name_}_) + if(includes_) + set(CMAKE_REQUIRED_INCLUDES "${includes_}") + else() + unset(CMAKE_REQUIRED_INCLUDES) + endif() + + set(source_ + "#include <${header_}>" + "" + "#if _MSC_VER && !__INTEL_COMPILER" + " #pragma function(${name_})" + "#endif" + "" + "int main(void) {" + "#if defined (__stub_${name_}) || defined (__stub___${name_})" + " #error \"${name_} has a GNU stub, cannot check\"" + "#else" + " ${name_}(${args_})\\;" + "#endif" + " return 0\\;" + "}" + "") + list(JOIN source_ "\n" source_) + + check_c_source_compiles("${source_}" "check_function_${name_}") + if(${check_function_${name_}}) set("${var_}" TRUE PARENT_SCOPE) else() set("${var_}" FALSE PARENT_SCOPE) endif() + + unset(CMAKE_REQUIRED_INCLUDES) unset(CMAKE_REQUIRED_LIBRARIES) endfunction(_CheckFunction) -macro(CheckFunction name_ symbol_) - _CheckFunction("serf_feature_CheckFunction_${name_}_" "${name_}" "${ARGN}") +macro(CheckFunction name_ args_ symbol_ header_ includes_) + _CheckFunction("serf_feature_CheckFunction_${name_}_" + "${name_}" "${args_}" "${header_}" "${includes_}" "${ARGN}") if("${serf_feature_CheckFunction_${name_}_}") add_compile_definitions("${symbol_}") endif() endmacro(CheckFunction) -macro(CheckNotFunction name_ symbol_) - _CheckFunction("serf_feature_CheckNotFunction_${name_}_" "${name_}" "${ARGN}") +macro(CheckNotFunction name_ args_ symbol_ header_ includes_) + _CheckFunction("serf_feature_CheckNotFunction_${name_}_" + "${name_}" "${args_}" "${header_}" "${includes_}" "${ARGN}") if(NOT "${serf_feature_CheckNotFunction_${name_}_}") add_compile_definitions("${symbol_}") endif() endmacro(CheckNotFunction) -function(_CheckSymbol var_ name_ header_ includes_) - if(includes_) - set(CMAKE_REQUIRED_INCLUDES "${includes_}") - else() - unset(CMAKE_REQUIRED_INCLUDES) - endif() - - check_symbol_exists("${name_}" "${header_}" "serf_foundit_symbol_${name_}_") - if(serf_foundit_symbol_${name_}_) - set("${var_}" TRUE PARENT_SCOPE) - else() - set("${var_}" FALSE PARENT_SCOPE) - endif() - unset(CMAKE_REQUIRED_INCLUDES) -endfunction(_CheckSymbol) - -macro(CheckFunctionMacro name_ symbol_ header_ includes_) - _CheckFunction("serf_feature_CheckFunctionMacro_${name_}_" "${name_}" "${ARGN}") - if("${serf_feature_CheckFunctionMacro_${name_}_}") - add_compile_definitions("${symbol_}") - else() - _CheckSymbol("serf_feature_CheckFunctionMacro_${name_}_" "${name_}" "${header_}" "${includes_}") - if("${serf_feature_CheckFunctionMacro_${name_}_}") - add_compile_definitions("${symbol_}") - endif() - endif() -endmacro(CheckFunctionMacro) - - function(_CheckHeader var_ name_ includes_) if(includes_) set(CMAKE_REQUIRED_INCLUDES "${includes_}") @@ -89,8 +87,8 @@ function(_CheckHeader var_ name_ include unset(CMAKE_REQUIRED_INCLUDES) endif() - check_include_file("${name_}" "serf_foundit_${name_}_") - if(${serf_foundit_${name_}_}) + check_include_file("${name_}" "check_symbol_${name_}") + if(${check_symbol_${name_}}) set("${var_}" TRUE PARENT_SCOPE) else() set("${var_}" FALSE PARENT_SCOPE) @@ -119,8 +117,8 @@ function(_CheckType var_ name_ header_ i unset(CMAKE_EXTRA_INCLUDE_FILES) endif() - check_type_size("${name_}" "serf_foundit_${name_}_") - if(${HAVE_serf_foundit_${name_}_}) + check_type_size("${name_}" "check_type_${name_}") + if(${HAVE_check_type_${name_}}) set("${var_}" TRUE PARENT_SCOPE) else() set("${var_}" FALSE PARENT_SCOPE) Modified: serf/branches/user-defined-authn/test/CMakeLists.txt URL: http://svn.apache.org/viewvc/serf/branches/user-defined-authn/test/CMakeLists.txt?rev=1926256&r1=1926255&r2=1926256&view=diff ============================================================================== --- serf/branches/user-defined-authn/test/CMakeLists.txt (original) +++ serf/branches/user-defined-authn/test/CMakeLists.txt Sun Jun 8 17:23:20 2025 @@ -34,6 +34,15 @@ set(TEST_ALL_SOURCES "MockHTTPinC/MockHTTP_server.c" ) +set(TEST_ALL_SUITES + "auth" + "buckets" + "context" + "server" + "ssl" + "internal" +) + set(SIMPLE_TEST_TARGETS "serf_get" "serf_response" @@ -64,10 +73,13 @@ file(GLOB RESPONSE_TEST_CASES "${CMAKE_C foreach(TEST_CASE ${RESPONSE_TEST_CASES}) get_filename_component(TEST_CASE_NAME ${TEST_CASE} NAME) add_test(NAME "${TEST_CASE_NAME}" COMMAND serf_response "${TEST_CASE}") - list(APPEND RESPONSE_TESTS "${TEST_CASE_NAME}") + list(APPEND ALL_TESTS "${TEST_CASE_NAME}") endforeach() -add_test(NAME test_all COMMAND test_all) +foreach(TEST_CASE ${TEST_ALL_SUITES}) + add_test(NAME test_${TEST_CASE} COMMAND test_all ${TEST_CASE}) + list(APPEND ALL_TESTS test_${TEST_CASE}) +endforeach() -set_tests_properties(${RESPONSE_TESTS} test_all PROPERTIES +set_tests_properties(${ALL_TESTS} PROPERTIES ENVIRONMENT srcdir=${SERF_SOURCE_DIR})