mirror of
				https://github.com/eledio-devices/thirdparty-miniz.git
				synced 2025-10-31 00:32:38 +01:00 
			
		
		
		
	Merge pull request #184 from phprus/cmake-subproject
Improved cmake subproject support
This commit is contained in:
		| @@ -7,7 +7,11 @@ else() | ||||
|   project(miniz C) | ||||
| endif() | ||||
|  | ||||
| include(GNUInstallDirs) | ||||
| # determine whether this is a standalone project or included by other projects | ||||
| set(MINIZ_STANDALONE_PROJECT OFF) | ||||
| if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) | ||||
|   set(MINIZ_STANDALONE_PROJECT ON) | ||||
| endif () | ||||
|  | ||||
| set(MINIZ_API_VERSION 2) | ||||
| set(MINIZ_MINOR_VERSION 1) | ||||
| @@ -23,14 +27,19 @@ if(CMAKE_BUILD_TYPE STREQUAL "") | ||||
| CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) | ||||
| endif () | ||||
|  | ||||
| option(BUILD_EXAMPLES "Build examples" ON) | ||||
| option(BUILD_EXAMPLES "Build examples" ${MINIZ_STANDALONE_PROJECT}) | ||||
| option(BUILD_FUZZERS "Build fuzz targets" OFF) | ||||
| option(AMALGAMATE_SOURCES "Amalgamate sources into miniz.h/c" OFF) | ||||
| option(BUILD_HEADER_ONLY "Build a header-only version" OFF) | ||||
| option(BUILD_SHARED_LIBS "Build shared library instead of static" ON) | ||||
| option(INSTALL_PROJECT "Install project" ${MINIZ_STANDALONE_PROJECT}) | ||||
|  | ||||
| set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin) | ||||
|  | ||||
| if(INSTALL_PROJECT) | ||||
|   include(GNUInstallDirs) | ||||
| endif() | ||||
|  | ||||
| if(BUILD_HEADER_ONLY) | ||||
|   set(AMALGAMATE_SOURCES ON CACHE BOOL "Build a header-only version" FORCE) | ||||
| endif(BUILD_HEADER_ONLY) | ||||
| @@ -124,11 +133,13 @@ if(NOT BUILD_HEADER_ONLY) | ||||
|     PRIVATE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>) | ||||
|  | ||||
|   # pkg-config file | ||||
|   configure_file(miniz.pc.in ${CMAKE_BINARY_DIR}/miniz.pc @ONLY) | ||||
|   configure_file(miniz.pc.in ${CMAKE_CURRENT_BINARY_DIR}/miniz.pc @ONLY) | ||||
|  | ||||
|   if(INSTALL_PROJECT) | ||||
|     install(FILES | ||||
|     ${CMAKE_BINARY_DIR}/miniz.pc | ||||
|       ${CMAKE_CURRENT_BINARY_DIR}/miniz.pc | ||||
|       DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) | ||||
|   endif() | ||||
| endif() | ||||
|  | ||||
| set_property(TARGET ${PROJECT_NAME} PROPERTY | ||||
| @@ -137,40 +148,41 @@ set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY | ||||
|   COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION | ||||
| ) | ||||
|  | ||||
| install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets | ||||
| if(INSTALL_PROJECT) | ||||
|   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( | ||||
|   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 | ||||
|   export(EXPORT ${PROJECT_NAME}Targets | ||||
|     FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Targets.cmake" | ||||
|     NAMESPACE ${PROJECT_NAME}:: | ||||
| ) | ||||
| configure_file(Config.cmake.in | ||||
|   ) | ||||
|   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 | ||||
|   set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) | ||||
|   install(EXPORT ${PROJECT_NAME}Targets | ||||
|     FILE | ||||
|       ${PROJECT_NAME}Targets.cmake | ||||
|     NAMESPACE | ||||
|       ${PROJECT_NAME}:: | ||||
|     DESTINATION | ||||
|       ${ConfigPackageLocation} | ||||
| ) | ||||
| install( | ||||
|   ) | ||||
|   install( | ||||
|     FILES | ||||
|       "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake" | ||||
|       "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake" | ||||
| @@ -178,7 +190,8 @@ install( | ||||
|       ${ConfigPackageLocation} | ||||
|     COMPONENT | ||||
|       Devel | ||||
| ) | ||||
|   ) | ||||
| endif() | ||||
|  | ||||
| if(BUILD_EXAMPLES) | ||||
|   set(EXAMPLE1_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example1.c") | ||||
| @@ -250,6 +263,7 @@ endif() | ||||
|  | ||||
| set(INCLUDE_INSTALL_DIR "include") | ||||
|  | ||||
| install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) | ||||
|  | ||||
| if(INSTALL_PROJECT) | ||||
|   install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) | ||||
| endif() | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user