Skip to content

Commit

Permalink
User gersemi to format cmake files
Browse files Browse the repository at this point in the history
  • Loading branch information
ClausKlein committed Jan 2, 2025
1 parent 2a83405 commit da6e127
Show file tree
Hide file tree
Showing 4 changed files with 688 additions and 501 deletions.
237 changes: 145 additions & 92 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
cmake_minimum_required(VERSION 3.12...3.31)

project(zlib
project(
zlib
LANGUAGES C
VERSION 1.3.1.1
HOMEPAGE_URL "https://zlib.net/"
DESCRIPTION "a general-purpose lossless data-compression library")
DESCRIPTION "a general-purpose lossless data-compression library"
)

#============================================================================
# CPack
Expand All @@ -23,9 +25,11 @@ option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON)
option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON)
option(ZLIB_BUILD_MINIZIP "Enable building libminizip contrib library" OFF)
option(ZLIB_INSTALL "Enable installation of zlib" ON)
option(ZLIB_PREFIX
option(
ZLIB_PREFIX
"prefix for all types and library functions, see zconf.h.in"
OFF)
OFF
)
mark_as_advanced(ZLIB_PREFIX)

if(WIN32)
Expand Down Expand Up @@ -111,23 +115,20 @@ check_c_source_compiles(
static void f(void) __attribute__ ((visibility(\"hidden\")));
int main(void) {return 0;}
"
HAVE___ATTR__VIS_HIDDEN)
HAVE___ATTR__VIS_HIDDEN
)

unset(CMAKE_COMPILE_FLAGS)
set(ZLIB_PC ${zlib_BINARY_DIR}/zlib.pc)
configure_file(${zlib_SOURCE_DIR}/zlib.pc.cmakein
${ZLIB_PC} @ONLY)
configure_file(${zlib_BINARY_DIR}/zconf.h.cmakein
${zlib_BINARY_DIR}/zconf.h)
configure_file(${zlib_SOURCE_DIR}/zlib.pc.cmakein ${ZLIB_PC} @ONLY)
configure_file(${zlib_BINARY_DIR}/zconf.h.cmakein ${zlib_BINARY_DIR}/zconf.h)
include_directories(${zlib_BINARY_DIR} ${zlib_SOURCE_DIR})

#============================================================================
# zlib
#============================================================================

set(ZLIB_PUBLIC_HDRS
${zlib_BINARY_DIR}/zconf.h
zlib.h)
set(ZLIB_PUBLIC_HDRS ${zlib_BINARY_DIR}/zconf.h zlib.h)

set(ZLIB_PRIVATE_HDRS
crc32.h
Expand All @@ -138,7 +139,8 @@ set(ZLIB_PRIVATE_HDRS
inflate.h
inftrees.h
trees.h
zutil.h)
zutil.h
)

set(ZLIB_SRCS
adler32.c
Expand All @@ -155,99 +157,132 @@ set(ZLIB_SRCS
inffast.c
trees.c
uncompr.c
zutil.c)
zutil.c
)

set_source_files_properties(win32/zlib1.rc PROPERTIES
COMPILE_FLAGS $<$<STREQUAL:${CMAKE_RC_OUTPUT_EXTENSION},.obj>:-DGCC_WINDRES>)
set_source_files_properties(
win32/zlib1.rc
PROPERTIES
COMPILE_FLAGS
$<$<STREQUAL:${CMAKE_RC_OUTPUT_EXTENSION},.obj>:-DGCC_WINDRES>
)

if(WIN32)
set(zlib_static_suffix "s")
set(CMAKE_DEBUG_POSTFIX "d")
endif(WIN32)

if(ZLIB_BUILD_SHARED)
add_library(zlib SHARED
add_library(
zlib
SHARED
${ZLIB_SRCS}
${ZLIB_DLL_SRCS}
${ZLIB_PUBLIC_HDRS}
${ZLIB_PRIVATE_HDRS}
$<$<OR:$<BOOL:${WIN32}>,$<BOOL:${CYGWIN}>>:win32/zlib1.rc>)
$<$<OR:$<BOOL:${WIN32}>,$<BOOL:${CYGWIN}>>:win32/zlib1.rc>
)
add_library(ZLIB::ZLIB ALIAS zlib)
target_include_directories(zlib PUBLIC
$<BUILD_INTERFACE:${zlib_BINARY_DIR}>
$<BUILD_INTERFACE:${zlib_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_compile_definitions(zlib
target_include_directories(
zlib
PUBLIC
$<BUILD_INTERFACE:${zlib_BINARY_DIR}>
$<BUILD_INTERFACE:${zlib_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
target_compile_definitions(
zlib
PRIVATE
$<$<BOOL:NOT:${HAVE_FSEEKO}>:NO_FSEEKO>
$<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
$<$<BOOL:${MSVC}>:_CRT_SECURE_NO_DEPRECATE>
$<$<BOOL:${MSVC}>:_CRT_NONSTDC_NO_DEPRECATE>
PUBLIC
$<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>)
PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>
)
set(INSTALL_VERSION ${zlib_VERSION})

if(NOT CYGWIN)
set_target_properties(zlib PROPERTIES
SOVERSION ${zlib_VERSION_MAJOR}
VERSION ${INSTALL_VERSION})
set_target_properties(
zlib
PROPERTIES
SOVERSION ${zlib_VERSION_MAJOR}
VERSION ${INSTALL_VERSION}
)
endif(NOT CYGWIN)

set_target_properties(zlib PROPERTIES
DEFINE_SYMBOL ZLIB_DLL
EXPORT_NAME ZLIB
OUTPUT_NAME z)
if(UNIX AND NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX))
set_target_properties(
zlib
PROPERTIES DEFINE_SYMBOL ZLIB_DLL EXPORT_NAME ZLIB OUTPUT_NAME z
)
if(UNIX AND NOT APPLE AND NOT (CMAKE_SYSTEM_NAME STREQUAL AIX))
# On unix-like platforms the library is almost always called libz
set_target_properties(zlib PROPERTIES
LINK_FLAGS "-Wl,--version-script,\"${zlib_SOURCE_DIR}/zlib.map\"")
endif(UNIX AND NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX))
set_target_properties(
zlib
PROPERTIES
LINK_FLAGS
"-Wl,--version-script,\"${zlib_SOURCE_DIR}/zlib.map\""
)
endif(UNIX AND NOT APPLE AND NOT (CMAKE_SYSTEM_NAME STREQUAL AIX))
endif(ZLIB_BUILD_SHARED)

if(ZLIB_BUILD_STATIC)
add_library(zlibstatic STATIC
add_library(
zlibstatic
STATIC
${ZLIB_SRCS}
${ZLIB_PUBLIC_HDRS}
${ZLIB_PRIVATE_HDRS})
${ZLIB_PRIVATE_HDRS}
)
add_library(ZLIB::ZLIBSTATIC ALIAS zlibstatic)
target_include_directories(zlibstatic PUBLIC
$<BUILD_INTERFACE:${zlib_BINARY_DIR}>
$<BUILD_INTERFACE:${zlib_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_compile_definitions(zlibstatic
target_include_directories(
zlibstatic
PUBLIC
$<BUILD_INTERFACE:${zlib_BINARY_DIR}>
$<BUILD_INTERFACE:${zlib_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
target_compile_definitions(
zlibstatic
PRIVATE
$<$<BOOL:NOT:${HAVE_FSEEKO}>:NO_FSEEKO>
$<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
$<$<BOOL:${MSVC}>:_CRT_SECURE_NO_DEPRECATE>
$<$<BOOL:${MSVC}>:_CRT_NONSTDC_NO_DEPRECATE>
PUBLIC
$<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>)
set_target_properties(zlibstatic PROPERTIES
EXPORT_NAME ZLIBSTATIC
OUTPUT_NAME z${zlib_static_suffix})
PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>
)
set_target_properties(
zlibstatic
PROPERTIES EXPORT_NAME ZLIBSTATIC OUTPUT_NAME z${zlib_static_suffix}
)
endif(ZLIB_BUILD_STATIC)

if(ZLIB_INSTALL)
if(ZLIB_BUILD_SHARED)
install(TARGETS zlib
COMPONENT Runtime
install(
TARGETS zlib COMPONENT Runtime
EXPORT zlibSharedExport
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
install(EXPORT zlibSharedExport
FILE ZLIB-shared.cmake
NAMESPACE ZLIB::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)
install(
EXPORT zlibSharedExport
FILE ZLIB-shared.cmake
NAMESPACE ZLIB::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib
)
if(ZLIB_INSTALL_COMPAT_DLL)
install(FILES $<TARGET_FILE:zlib>
install(
FILES $<TARGET_FILE:zlib>
COMPONENT Runtime
RENAME zlib1.dll
DESTINATION "${CMAKE_INSTALL_BINDIR}")
DESTINATION "${CMAKE_INSTALL_BINDIR}"
)
endif(ZLIB_INSTALL_COMPAT_DLL)

if(MSVC)
install(FILES $<TARGET_PDB_FILE:zlib>
install(
FILES $<TARGET_PDB_FILE:zlib>
COMPONENT Runtime
DESTINATION ${CMAKE_INSTALL_BINDIR}
CONFIGURATIONS Debug OR RelWithDebInfo
Expand All @@ -257,57 +292,75 @@ if(ZLIB_INSTALL)
endif(ZLIB_BUILD_SHARED)

if(ZLIB_BUILD_STATIC)
install(TARGETS zlibstatic
COMPONENT Development
install(
TARGETS zlibstatic COMPONENT Development
EXPORT zlibStaticExport
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
install(EXPORT zlibStaticExport
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)
install(
EXPORT zlibStaticExport
FILE ZLIB-static.cmake
NAMESPACE ZLIB::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib
)

if(ZLIB_INSTALL_COMPAT_DLL AND MINGW)
install(FILES $<TARGET_FILE:zlibstatic>
install(
FILES $<TARGET_FILE:zlibstatic>
COMPONENT Development
RENAME libz.dll.a
DESTINATION "${CMAKE_INSTALL_LIBDIR}")
DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)
endif(ZLIB_INSTALL_COMPAT_DLL AND MINGW)
endif(ZLIB_BUILD_STATIC)

configure_package_config_file(${zlib_SOURCE_DIR}/zlibConfig.cmake.in
configure_package_config_file(
${zlib_SOURCE_DIR}/zlibConfig.cmake.in
${zlib_BINARY_DIR}/ZLIBConfig.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib
)

write_basic_package_version_file(
"${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake"
VERSION "${zlib_VERSION}"
COMPATIBILITY AnyNewerVersion)

install(FILES
${zlib_BINARY_DIR}/ZLIBConfig.cmake
${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
install(FILES ${ZLIB_PUBLIC_HDRS}
COMPONENT Development
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
install(FILES zlib.3
COMPONENT Docs
DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
install(FILES
LICENSE
doc/algorithm.txt
doc/crc-doc.1.0.pdf
doc/rfc1950.txt
doc/rfc1951.txt
doc/rfc1952.txt
doc/txtvsbin.txt
COMPONENT Docs
DESTINATION "${CMAKE_INSTALL_DOCDIR}/zlib")
install(FILES ${ZLIB_PC}
COMPONENT Development
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
COMPATIBILITY AnyNewerVersion
)

install(
FILES
${zlib_BINARY_DIR}/ZLIBConfig.cmake
${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib
)
install(
FILES ${ZLIB_PUBLIC_HDRS}
COMPONENT Development
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
install(
FILES zlib.3
COMPONENT Docs
DESTINATION "${CMAKE_INSTALL_MANDIR}/man3"
)
install(
FILES
LICENSE
doc/algorithm.txt
doc/crc-doc.1.0.pdf
doc/rfc1950.txt
doc/rfc1951.txt
doc/rfc1952.txt
doc/txtvsbin.txt
COMPONENT Docs
DESTINATION "${CMAKE_INSTALL_DOCDIR}/zlib"
)
install(
FILES ${ZLIB_PC}
COMPONENT Development
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
)
endif(ZLIB_INSTALL)

#============================================================================
Expand Down
Loading

0 comments on commit da6e127

Please sign in to comment.