Author: brane Date: Fri May 30 13:30:35 2025 New Revision: 1925981 URL: http://svn.apache.org/viewvc?rev=1925981&view=rev Log: Add a summary of the configuration to the CMake build.
* CMakeLists.txt: Define our own variables for install locations. Print a summary of the version, build targets, options and install locations. * build/SerfPlatform.cmake: Define SERF_PLATFORM and SERF_TARGET. Modified: serf/trunk/CMakeLists.txt serf/trunk/build/SerfPlatform.cmake Modified: serf/trunk/CMakeLists.txt URL: http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1925981&r1=1925980&r2=1925981&view=diff ============================================================================== --- serf/trunk/CMakeLists.txt (original) +++ serf/trunk/CMakeLists.txt Fri May 30 13:30:35 2025 @@ -108,6 +108,17 @@ if(USE_HOMEBREW OR USE_MACPORTS) endif(SERF_DARWIN) endif(USE_HOMEBREW OR USE_MACPORTS) +# Install directories +if(NOT SERF_WINDOWS) + set(SERF_INCLUDE_SUBDIR "serf-${SERF_MAJOR_VERSION}") + set(SERF_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${SERF_INCLUDE_SUBDIR}") +else() + set(SERF_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}") +endif() +set(SERF_INSTALL_LIBRARIES "${CMAKE_INSTALL_LIBDIR}") +set(SERF_INSTALL_RUNTIME "${CMAKE_INSTALL_BINDIR}") +set(SERF_INSTALL_PKGCONFIG "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + # Public headers list(APPEND HEADERS "serf.h" @@ -204,7 +215,6 @@ if(SERF_WINDOWS) add_definitions("-DSERF_HAVE_SSPI") endif(SERF_WINDOWS) - # Process build options for dependency search if(SERF_WINDOWS) if(EXPAT) @@ -326,8 +336,8 @@ else() add_definitions("/DWIN64") endif() - set(CMAKE_IMPORT_LIBRARY_PREFIX "${CMAKE_INSTALL_LIBDIR}") - set(CMAKE_SHARED_LIBRARY_PREFIX "${CMAKE_INSTALL_LIBDIR}") + set(CMAKE_IMPORT_LIBRARY_PREFIX "${SERF_INSTALL_LIBRARIES}") + set(CMAKE_SHARED_LIBRARY_PREFIX "${SERF_INSTALL_LIBRARIES}") endif(NOT MSVC) # Define all targets @@ -344,7 +354,7 @@ if(NOT SKIP_SHARED) SOVERSION ${SERF_SOVERSION}) if(SERF_DARWIN AND NOT RELATIVE_RPATH) set_target_properties(serf_shared PROPERTIES - INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${SERF_INSTALL_LIBRARIES}") endif() set(SERF_TARGETS "serf_shared") @@ -352,7 +362,7 @@ if(NOT SKIP_SHARED) string(TOLOWER "${CMAKE_BUILD_TYPE}" config) if(NOT "${config}" STREQUAL "release") install(FILES $<TARGET_PDB_FILE:serf_shared> - DESTINATION "${CMAKE_INSTALL_BINDIR}") + DESTINATION "${SERF_INSTALL_RUNTIME}") endif() endif() endif() @@ -372,16 +382,13 @@ set_target_properties(${SERF_TARGETS} PROPERTIES OUTPUT_NAME "serf-${SERF_MAJOR_VERSION}") +# Install targets install(TARGETS ${SERF_TARGETS} - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + ARCHIVE DESTINATION "${SERF_INSTALL_LIBS}" + LIBRARY DESTINATION "${SERF_INSTALL_LIBS}" + RUNTIME DESTINATION "${SERF_INSTALL_RUNTIME}") -if(NOT SERF_WINDOWS) - set(SERF_INCLUDE_SUBDIR "serf-${SERF_MAJOR_VERSION}") -endif() -install(FILES ${HEADERS} - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${SERF_INCLUDE_SUBDIR}") +install(FILES ${HEADERS} DESTINATION "${SERF_INSTALL_HEADERS}") # Generate the pkg-config module file. if(NOT SERF_WINDOWS) @@ -411,7 +418,7 @@ if(NOT SERF_WINDOWS) make_pkgconfig() install(FILES "${CMAKE_CURRENT_BINARY_DIR}/serf-${SERF_MAJOR_VERSION}.pc" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + DESTINATION "${SERF_INSTALL_PKGCONFIG}") endif() @@ -425,3 +432,51 @@ if(NOT SKIP_TESTS) add_subdirectory(test) endif() endif() + + +# Summary +macro(_onoff _var _value _negate) + if(${_negate}) + if(NOT ${_value}) + set(${_var} ON) + else() + set(${_var} OFF) + endif() + else() + if(${_value}) + set(${_var} ON) + else() + set(${_var} OFF) + endif() + endif() +endmacro(_onoff) +_onoff(_build_shared SKIP_SHARED TRUE) +_onoff(_build_static SKIP_STATIC TRUE) +_onoff(_build_tests SKIP_TESTS TRUE) +_onoff(_have_brotli BROTLI_FOUND FALSE) +_onoff(_have_gssapi GSSAPI_FOUND FALSE) +_onoff(_have_sspi SERF_WINDOWS FALSE) + +message(STATUS "Summary:") +message(STATUS " Version ................... : ${SERF_VERSION}") +message(STATUS " Build:") +message(STATUS " platform: ............... : ${SERF_PLATFORM}") +message(STATUS " target: ................. : ${SERF_TARGET}") +message(STATUS " generator: .............. : ${CMAKE_GENERATOR}") +message(STATUS " build type .............. : ${CMAKE_BUILD_TYPE}") +message(STATUS " shared libraries .... ... : ${_build_shared}") +message(STATUS " static libraries ........ : ${_build_static}") +message(STATUS " tests ................... : ${_build_tests}") +message(STATUS " Options:") +message(STATUS " Brotli .................. : ${_have_brotli}") +message(STATUS " GSSAPI .................. : ${_have_gssapi}") +message(STATUS " SSPI .................... : ${_have_sspi}") +message(STATUS " Install:") +message(STATUS " prefix: ................. : ${CMAKE_INSTALL_PREFIX}") +message(STATUS " headers: ................ : ${SERF_INSTALL_HEADERS}") +message(STATUS " libraries: .............. : ${SERF_INSTALL_LIBRARIES}") +if(SERF_WINDOWS) +message(STATUS " dynamic libraries: ...... : ${SERF_INSTALL_RUNTIME}") +else() +message(STATUS " pkg-config file: ........ : ${SERF_INSTALL_PKGCONFIG}") +endif() Modified: serf/trunk/build/SerfPlatform.cmake URL: http://svn.apache.org/viewvc/serf/trunk/build/SerfPlatform.cmake?rev=1925981&r1=1925980&r2=1925981&view=diff ============================================================================== --- serf/trunk/build/SerfPlatform.cmake (original) +++ serf/trunk/build/SerfPlatform.cmake Fri May 30 13:30:35 2025 @@ -22,20 +22,34 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin if(NOT RELATIVE_RPATH) set(CMAKE_MACOSX_RPATH FALSE) endif() - message(STATUS "Target platform is Darwin (macOS)") + if(APPLE) + set(SERF_PLATFORM "Darwin (macOS)") + else() + set(SERF_PLATFORM "Darwin") + endif() elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(SERF_LINUX TRUE) - message(STATUS "Target platform is Linux") + set(SERF_PLATFORM "Linux") elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") set(SERF_WINDOWS TRUE) if(CMAKE_GENERATOR_PLATFORM MATCHES "(x64|ARM64|IA64)") set(SERF_WIN64 TRUE) - message(STATUS "Target platform is Windows (64-bit/${CMAKE_GENERATOR_PLATFORM})") + set(SERF_PLATFORM "Windows (64-bit)") else() set(SERF_WIN32 TRUE) - message(STATUS "Target platform is Windows (32-bit/${CMAKE_GENERATOR_PLATFORM})") + set(SERF_PLATFORM "Windows (32-bit)") endif() else() set(SERF_UNIX TRUE) - message(STATUS "Assuming generic Unix target platform") + set(SERF_PLATFORM "generic Unix") +endif() + +if(CMAKE_GENERATOR_PLATFORM) + set(SERF_PLATFORM "${SERF_PLATFORM} [${CMAKE_GENERATOR_PLATFORM}]") endif() +message(STATUS "Target platform is ${SERF_PLATFORM}") + +string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} _arch) +string(TOLOWER ${CMAKE_SYSTEM_NAME} _system) +string(TOLOWER ${CMAKE_SYSTEM_VERSION} _version) +set(SERF_TARGET "${_arch}-${_system}${_version}")