@@ -108,6 +108,17 @@ if(USE_HOMEBREW OR USE_MACPORTS)
108108 endif (SERF_DARWIN)
109109endif (USE_HOMEBREW OR USE_MACPORTS)
110110
111+ # Install directories
112+ if (NOT SERF_WINDOWS)
113+ set (SERF_INCLUDE_SUBDIR "serf-${SERF_MAJOR_VERSION} " )
114+ set (SERF_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR} /${SERF_INCLUDE_SUBDIR} " )
115+ else ()
116+ set (SERF_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR} " )
117+ endif ()
118+ set (SERF_INSTALL_LIBRARIES "${CMAKE_INSTALL_LIBDIR} " )
119+ set (SERF_INSTALL_RUNTIME "${CMAKE_INSTALL_BINDIR} " )
120+ set (SERF_INSTALL_PKGCONFIG "${CMAKE_INSTALL_LIBDIR} /pkgconfig" )
121+
111122# Public headers
112123list (APPEND HEADERS
113124 "serf.h"
@@ -204,7 +215,6 @@ if(SERF_WINDOWS)
204215 add_definitions ("-DSERF_HAVE_SSPI" )
205216endif (SERF_WINDOWS)
206217
207-
208218# Process build options for dependency search
209219if (SERF_WINDOWS)
210220 if (EXPAT)
@@ -326,8 +336,8 @@ else()
326336 add_definitions ("/DWIN64" )
327337 endif ()
328338
329- set (CMAKE_IMPORT_LIBRARY_PREFIX "${CMAKE_INSTALL_LIBDIR } " )
330- set (CMAKE_SHARED_LIBRARY_PREFIX "${CMAKE_INSTALL_LIBDIR } " )
339+ set (CMAKE_IMPORT_LIBRARY_PREFIX "${SERF_INSTALL_LIBRARIES } " )
340+ set (CMAKE_SHARED_LIBRARY_PREFIX "${SERF_INSTALL_LIBRARIES } " )
331341endif (NOT MSVC )
332342
333343# Define all targets
@@ -344,15 +354,15 @@ if(NOT SKIP_SHARED)
344354 SOVERSION ${SERF_SOVERSION} )
345355 if (SERF_DARWIN AND NOT RELATIVE_RPATH)
346356 set_target_properties (serf_shared PROPERTIES
347- INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_LIBDIR } " )
357+ INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX} /${SERF_INSTALL_LIBRARIES } " )
348358 endif ()
349359 set (SERF_TARGETS "serf_shared" )
350360
351361 if (SERF_WINDOWS)
352362 string (TOLOWER "${CMAKE_BUILD_TYPE} " config)
353363 if (NOT "${config} " STREQUAL "release" )
354364 install (FILES $<TARGET_PDB_FILE:serf_shared>
355- DESTINATION "${CMAKE_INSTALL_BINDIR } " )
365+ DESTINATION "${SERF_INSTALL_RUNTIME } " )
356366 endif ()
357367 endif ()
358368endif ()
@@ -372,16 +382,13 @@ set_target_properties(${SERF_TARGETS}
372382 PROPERTIES
373383 OUTPUT_NAME "serf-${SERF_MAJOR_VERSION} " )
374384
385+ # Install targets
375386install (TARGETS ${SERF_TARGETS}
376- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR } "
377- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR } "
378- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR } " )
387+ ARCHIVE DESTINATION "${SERF_INSTALL_LIBS } "
388+ LIBRARY DESTINATION "${SERF_INSTALL_LIBS } "
389+ RUNTIME DESTINATION "${SERF_INSTALL_RUNTIME } " )
379390
380- if (NOT SERF_WINDOWS)
381- set (SERF_INCLUDE_SUBDIR "serf-${SERF_MAJOR_VERSION} " )
382- endif ()
383- install (FILES ${HEADERS}
384- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /${SERF_INCLUDE_SUBDIR} " )
391+ install (FILES ${HEADERS} DESTINATION "${SERF_INSTALL_HEADERS} " )
385392
386393# Generate the pkg-config module file.
387394if (NOT SERF_WINDOWS)
@@ -411,7 +418,7 @@ if(NOT SERF_WINDOWS)
411418
412419 make_pkgconfig()
413420 install (FILES "${CMAKE_CURRENT_BINARY_DIR} /serf-${SERF_MAJOR_VERSION} .pc"
414- DESTINATION "${CMAKE_INSTALL_LIBDIR} /pkgconfig " )
421+ DESTINATION "${SERF_INSTALL_PKGCONFIG} " )
415422endif ()
416423
417424
@@ -425,3 +432,51 @@ if(NOT SKIP_TESTS)
425432 add_subdirectory (test )
426433 endif ()
427434endif ()
435+
436+
437+ # Summary
438+ macro (_onoff _var _value _negate)
439+ if (${_negate} )
440+ if (NOT ${_value} )
441+ set (${_var} ON )
442+ else ()
443+ set (${_var} OFF )
444+ endif ()
445+ else ()
446+ if (${_value} )
447+ set (${_var} ON )
448+ else ()
449+ set (${_var} OFF )
450+ endif ()
451+ endif ()
452+ endmacro (_onoff)
453+ _onoff(_build_shared SKIP_SHARED TRUE )
454+ _onoff(_build_static SKIP_STATIC TRUE )
455+ _onoff(_build_tests SKIP_TESTS TRUE )
456+ _onoff(_have_brotli BROTLI_FOUND FALSE )
457+ _onoff(_have_gssapi GSSAPI_FOUND FALSE )
458+ _onoff(_have_sspi SERF_WINDOWS FALSE )
459+
460+ message (STATUS "Summary:" )
461+ message (STATUS " Version ................... : ${SERF_VERSION} " )
462+ message (STATUS " Build:" )
463+ message (STATUS " platform: ............... : ${SERF_PLATFORM} " )
464+ message (STATUS " target: ................. : ${SERF_TARGET} " )
465+ message (STATUS " generator: .............. : ${CMAKE_GENERATOR} " )
466+ message (STATUS " build type .............. : ${CMAKE_BUILD_TYPE} " )
467+ message (STATUS " shared libraries .... ... : ${_build_shared} " )
468+ message (STATUS " static libraries ........ : ${_build_static} " )
469+ message (STATUS " tests ................... : ${_build_tests} " )
470+ message (STATUS " Options:" )
471+ message (STATUS " Brotli .................. : ${_have_brotli} " )
472+ message (STATUS " GSSAPI .................. : ${_have_gssapi} " )
473+ message (STATUS " SSPI .................... : ${_have_sspi} " )
474+ message (STATUS " Install:" )
475+ message (STATUS " prefix: ................. : ${CMAKE_INSTALL_PREFIX} " )
476+ message (STATUS " headers: ................ : ${SERF_INSTALL_HEADERS} " )
477+ message (STATUS " libraries: .............. : ${SERF_INSTALL_LIBRARIES} " )
478+ if (SERF_WINDOWS)
479+ message (STATUS " dynamic libraries: ...... : ${SERF_INSTALL_RUNTIME} " )
480+ else ()
481+ message (STATUS " pkg-config file: ........ : ${SERF_INSTALL_PKGCONFIG} " )
482+ endif ()
0 commit comments