diff options
Diffstat (limited to 'dev-libs/miniz/files/miniz-2.1.0-export-cmake-build-targets.patch')
-rw-r--r-- | dev-libs/miniz/files/miniz-2.1.0-export-cmake-build-targets.patch | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/dev-libs/miniz/files/miniz-2.1.0-export-cmake-build-targets.patch b/dev-libs/miniz/files/miniz-2.1.0-export-cmake-build-targets.patch new file mode 100644 index 000000000000..6f8429222700 --- /dev/null +++ b/dev-libs/miniz/files/miniz-2.1.0-export-cmake-build-targets.patch @@ -0,0 +1,179 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,5 +1,15 @@ +-PROJECT(miniz C) +-cmake_minimum_required(VERSION 2.8) ++cmake_minimum_required(VERSION 3.12) ++ ++project(miniz) ++ ++include(GNUInstallDirs) ++ ++set(MINIZ_API_VERSION 2) ++set(MINIZ_MINOR_VERSION 1) ++set(MINIZ_PATCH_VERSION 0) ++set(MINIZ_VERSION ++ ${MINIZ_API_VERSION}.${MINIZ_MINOR_VERSION}.${MINIZ_PATCH_VERSION}) ++ + if(CMAKE_BUILD_TYPE STREQUAL "") + # CMake defaults to leaving CMAKE_BUILD_TYPE empty. This screws up + # differentiation between debug and release builds. +@@ -8,45 +18,122 @@ + CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) + endif () + +-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) ++option(BUILD_EXAMPLES "Build examples" ON) ++option(BUILD_SHARED_LIBS "Build shared library instead of static" ON) ++ ++set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin) + ++include(GenerateExportHeader) ++ ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + set(miniz_SOURCE miniz.c miniz_zip.c miniz_tinfl.c miniz_tdef.c) ++add_library(${PROJECT_NAME} ${miniz_SOURCE}) ++generate_export_header(${PROJECT_NAME}) ++ ++if(NOT BUILD_SHARED_LIBS) ++string(TOUPPER ${PROJECT_NAME} PROJECT_UPPER) ++set_target_properties(${PROJECT_NAME} ++ PROPERTIES INTERFACE_COMPILE_DEFINITIONS ${PROJECT_UPPER}_STATIC_DEFINE) ++else() ++set_property(TARGET ${PROJECT_NAME} PROPERTY C_VISIBILITY_PRESET hidden) ++endif() ++ ++set_property(TARGET ${PROJECT_NAME} PROPERTY VERSION ${MINIZ_VERSION}) ++set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION ${MINIZ_API_VERSION}) ++ ++file(GLOB INSTALL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h) ++ ++target_compile_definitions(${PROJECT_NAME} ++ PRIVATE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>) + +-add_library(miniz ${miniz_SOURCE}) +-target_include_directories(miniz PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") ++# pkg-config file ++configure_file(miniz.pc.in ${CMAKE_BINARY_DIR}/miniz.pc @ONLY) + +-set(EXAMPLE1_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example1.c") +-set(EXAMPLE2_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example2.c") +-set(EXAMPLE3_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example3.c") +-set(EXAMPLE4_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example4.c") +-set(EXAMPLE5_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example5.c") +-set(EXAMPLE6_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example6.c") +-set(MINIZ_TESTER_SRC_LIST +- "${CMAKE_CURRENT_SOURCE_DIR}/tests/miniz_tester.cpp" +- "${CMAKE_CURRENT_SOURCE_DIR}/tests/timer.cpp") ++install(FILES ++ ${CMAKE_BINARY_DIR}/miniz.pc ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) ++ ++ ++set_property(TARGET ${PROJECT_NAME} PROPERTY ++ INTERFACE_${PROJECT_NAME}_MAJOR_VERSION ${MINIZ_API_VERSION}) ++set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY ++ COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION ++) ++ ++install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ # users can use <miniz.h> or <miniz/miniz.h> ++ INCLUDES DESTINATION include ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} ++) ++ ++include(CMakePackageConfigHelpers) ++write_basic_package_version_file( ++ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake" ++ VERSION ${MINIZ_VERSION} ++ COMPATIBILITY AnyNewerVersion ++) ++ ++export(EXPORT ${PROJECT_NAME}Targets ++ FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Targets.cmake" ++ NAMESPACE ${PROJECT_NAME}:: ++) ++configure_file(Config.cmake.in ++ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake" ++ @ONLY ++) ++ ++set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) ++install(EXPORT ${PROJECT_NAME}Targets ++ FILE ++ ${PROJECT_NAME}Targets.cmake ++ NAMESPACE ++ ${PROJECT_NAME}:: ++ DESTINATION ++ ${ConfigPackageLocation} ++) ++install( ++ FILES ++ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake" ++ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake" ++ DESTINATION ++ ${ConfigPackageLocation} ++ COMPONENT ++ Devel ++) ++ ++if(BUILD_EXAMPLES) ++ set(EXAMPLE1_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example1.c") ++ set(EXAMPLE2_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example2.c") ++ set(EXAMPLE3_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example3.c") ++ set(EXAMPLE4_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example4.c") ++ set(EXAMPLE5_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example5.c") ++ set(EXAMPLE6_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example6.c") ++ set(MINIZ_TESTER_SRC_LIST ++ "${CMAKE_CURRENT_SOURCE_DIR}/tests/miniz_tester.cpp" ++ "${CMAKE_CURRENT_SOURCE_DIR}/tests/timer.cpp") + +-add_executable(example1 ${EXAMPLE1_SRC_LIST}) +-target_link_libraries(example1 miniz) +-add_executable(example2 ${EXAMPLE2_SRC_LIST}) +-target_link_libraries(example2 miniz) +-add_executable(example3 ${EXAMPLE3_SRC_LIST}) +-target_link_libraries(example3 miniz) +-add_executable(example4 ${EXAMPLE4_SRC_LIST}) +-target_link_libraries(example4 miniz) +-add_executable(example5 ${EXAMPLE5_SRC_LIST}) +-target_link_libraries(example5 miniz) +-add_executable(example6 ${EXAMPLE6_SRC_LIST}) +-target_link_libraries(example6 miniz) +-if(${UNIX}) +- target_link_libraries(example6 m) +-endif() ++ add_executable(example1 ${EXAMPLE1_SRC_LIST}) ++ target_link_libraries(example1 miniz) ++ add_executable(example2 ${EXAMPLE2_SRC_LIST}) ++ target_link_libraries(example2 miniz) ++ add_executable(example3 ${EXAMPLE3_SRC_LIST}) ++ target_link_libraries(example3 miniz) ++ add_executable(example4 ${EXAMPLE4_SRC_LIST}) ++ target_link_libraries(example4 miniz) ++ add_executable(example5 ${EXAMPLE5_SRC_LIST}) ++ target_link_libraries(example5 miniz) ++ add_executable(example6 ${EXAMPLE6_SRC_LIST}) ++ target_link_libraries(example6 miniz) ++ if(${UNIX}) ++ target_link_libraries(example6 m) ++ endif() + +-# add_executable(miniz_tester ${MINIZ_TESTER_SRC_LIST}) +-# target_link_libraries(miniz_tester miniz) ++ # add_executable(miniz_tester ${MINIZ_TESTER_SRC_LIST}) ++ # target_link_libraries(miniz_tester miniz) ++endif(BUILD_EXAMPLES) + +-install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets +- ARCHIVE DESTINATION lib +- LIBRARY DESTINATION lib +- ) +-file(GLOB INSTALL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h) +-install(FILES ${INSTALL_HEADERS} DESTINATION include/${PROJECT_NAME}) +\ No newline at end of file ++set(INCLUDE_INSTALL_DIR "include") ++ ++install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) |