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}")


Reply via email to