diff options
Diffstat (limited to 'libs/zip/CMakeLists.txt')
| -rw-r--r-- | libs/zip/CMakeLists.txt | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/libs/zip/CMakeLists.txt b/libs/zip/CMakeLists.txt deleted file mode 100644 index 4e397c7..0000000 --- a/libs/zip/CMakeLists.txt +++ /dev/null @@ -1,153 +0,0 @@ -cmake_minimum_required(VERSION 3.14) - -project(zip - LANGUAGES C - VERSION "0.3.0") -set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) -set(CMAKE_VERBOSE_MAKEFILE ON) - -# Enable building tests only if the project is being built as a standalone one -if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) - option(CMAKE_DISABLE_TESTING "Disable test creation" OFF) -else () - option(CMAKE_DISABLE_TESTING "Disable test creation" ON) -endif () - -option(CMAKE_ENABLE_SANITIZERS "Enable zip sanitizers" OFF) -option(ZIP_STATIC_PIC "Build static zip with PIC" ON) -option(ZIP_BUILD_DOCS "Generate API documentation with Doxygen" OFF) -option(ZIP_BUILD_FUZZ "Build fuzz targets" OFF) - -if(ZIP_ENABLE_SHARABLE_FILE_OPEN) - add_definitions(-DZIP_ENABLE_SHARABLE_FILE_OPEN) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 4) - # large file support - add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64) -endif() - -# zip -set(SRC src/miniz.h src/zip.h src/zip.c) - -add_library(${PROJECT_NAME} ${SRC}) -add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) - -if(ZIP_STATIC_PIC) - set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE 1) -endif() - -set_property(TARGET ${PROJECT_NAME} PROPERTY C_VISIBILITY_PRESET hidden) -if(BUILD_SHARED_LIBS) - target_compile_definitions(${PROJECT_NAME} - PUBLIC ZIP_SHARED - PRIVATE ZIP_BUILD_SHARED - ) -endif() - -target_include_directories(${PROJECT_NAME} PUBLIC - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> - $<INSTALL_INTERFACE:include> -) - -# test -if (NOT CMAKE_DISABLE_TESTING) - enable_testing() - add_subdirectory(test) -endif() -if (CMAKE_ENABLE_SANITIZERS) - find_package(Sanitizers) - add_sanitizers(${PROJECT_NAME}) -endif() - -set(CMAKE_C_STANDARD 90) -if (MSVC) - # Use secure functions by default and suppress warnings about "deprecated" functions - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1") - -elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR - "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR - "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -pedantic -Wno-implicit-function-declaration") -endif (MSVC) - -#### - -# fuzz -if (ZIP_BUILD_FUZZ) - if (NOT DEFINED ENV{LIB_FUZZING_ENGINE}) - message(FATAL_ERROR "LIB_FUZZING_ENGINE is not defined") - endif() - add_subdirectory(fuzz) -endif() -### - -set(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") -set(INCLUDE_INSTALL_DIR "include") - -set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") - -# Configuration -set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") -set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake") -set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") -set(NAMESPACE "${PROJECT_NAME}::") - -# Include module with function 'write_basic_package_version_file' -include(CMakePackageConfigHelpers) - -# Note: PROJECT_VERSION is used as a VERSION -write_basic_package_version_file( - "${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion -) - -# Use variables: -# * TARGETS_EXPORT_NAME -# * PROJECT_NAME -configure_package_config_file( - "cmake/Config.cmake.in" - "${PROJECT_CONFIG}" - INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}" -) - -install( - FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}" - DESTINATION "${CONFIG_INSTALL_DIR}" -) - -install( - EXPORT "${TARGETS_EXPORT_NAME}" - NAMESPACE "${NAMESPACE}" - DESTINATION "${CONFIG_INSTALL_DIR}" -) - -install(TARGETS ${PROJECT_NAME} - EXPORT ${TARGETS_EXPORT_NAME} - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - INCLUDES DESTINATION ${INCLUDE_INSTALL_DIR} -) -install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION ${INCLUDE_INSTALL_DIR}/zip) - -# uninstall target (https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake) -if(NOT TARGET uninstall) - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake" - IMMEDIATE @ONLY) - - add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake) -endif() - -if(ZIP_BUILD_DOCS) - find_package(Doxygen REQUIRED) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) - add_custom_target(doc - ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating API documentation with Doxygen" VERBATIM) -endif() |
