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