mirror of
				https://github.com/eledio-devices/thirdparty-miniz.git
				synced 2025-10-31 08:42:39 +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) |   project(miniz C) | ||||||
| endif() | 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_API_VERSION 2) | ||||||
| set(MINIZ_MINOR_VERSION 1) | set(MINIZ_MINOR_VERSION 1) | ||||||
| @@ -23,14 +27,19 @@ if(CMAKE_BUILD_TYPE STREQUAL "") | |||||||
| CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) | CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) | ||||||
| endif () | endif () | ||||||
|  |  | ||||||
| option(BUILD_EXAMPLES "Build examples" ON) | option(BUILD_EXAMPLES "Build examples" ${MINIZ_STANDALONE_PROJECT}) | ||||||
| option(BUILD_FUZZERS "Build fuzz targets" OFF) | option(BUILD_FUZZERS "Build fuzz targets" OFF) | ||||||
| option(AMALGAMATE_SOURCES "Amalgamate sources into miniz.h/c" OFF) | option(AMALGAMATE_SOURCES "Amalgamate sources into miniz.h/c" OFF) | ||||||
| option(BUILD_HEADER_ONLY "Build a header-only version" OFF) | option(BUILD_HEADER_ONLY "Build a header-only version" OFF) | ||||||
| option(BUILD_SHARED_LIBS "Build shared library instead of static" ON) | 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) | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin) | ||||||
|  |  | ||||||
|  | if(INSTALL_PROJECT) | ||||||
|  |   include(GNUInstallDirs) | ||||||
|  | endif() | ||||||
|  |  | ||||||
| if(BUILD_HEADER_ONLY) | if(BUILD_HEADER_ONLY) | ||||||
|   set(AMALGAMATE_SOURCES ON CACHE BOOL "Build a header-only version" FORCE) |   set(AMALGAMATE_SOURCES ON CACHE BOOL "Build a header-only version" FORCE) | ||||||
| endif(BUILD_HEADER_ONLY) | endif(BUILD_HEADER_ONLY) | ||||||
| @@ -124,12 +133,14 @@ if(NOT BUILD_HEADER_ONLY) | |||||||
|     PRIVATE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>) |     PRIVATE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>) | ||||||
|  |  | ||||||
|   # pkg-config file |   # 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 |     install(FILES | ||||||
|     ${CMAKE_BINARY_DIR}/miniz.pc |       ${CMAKE_CURRENT_BINARY_DIR}/miniz.pc | ||||||
|       DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) |       DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) | ||||||
|   endif() |   endif() | ||||||
|  | endif() | ||||||
|  |  | ||||||
| set_property(TARGET ${PROJECT_NAME} PROPERTY | set_property(TARGET ${PROJECT_NAME} PROPERTY | ||||||
|   INTERFACE_${PROJECT_NAME}_MAJOR_VERSION ${MINIZ_API_VERSION}) |   INTERFACE_${PROJECT_NAME}_MAJOR_VERSION ${MINIZ_API_VERSION}) | ||||||
| @@ -137,6 +148,7 @@ set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY | |||||||
|   COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION |   COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | if(INSTALL_PROJECT) | ||||||
|   install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets |   install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets | ||||||
|     RUNTIME  DESTINATION ${CMAKE_INSTALL_BINDIR} |     RUNTIME  DESTINATION ${CMAKE_INSTALL_BINDIR} | ||||||
|     ARCHIVE  DESTINATION ${CMAKE_INSTALL_LIBDIR} |     ARCHIVE  DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||||
| @@ -179,6 +191,7 @@ install( | |||||||
|     COMPONENT |     COMPONENT | ||||||
|       Devel |       Devel | ||||||
|   ) |   ) | ||||||
|  | endif() | ||||||
|  |  | ||||||
| if(BUILD_EXAMPLES) | if(BUILD_EXAMPLES) | ||||||
|   set(EXAMPLE1_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example1.c") |   set(EXAMPLE1_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example1.c") | ||||||
| @@ -250,6 +263,7 @@ endif() | |||||||
|  |  | ||||||
| set(INCLUDE_INSTALL_DIR "include") | set(INCLUDE_INSTALL_DIR "include") | ||||||
|  |  | ||||||
|  | if(INSTALL_PROJECT) | ||||||
|   install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) |   install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) | ||||||
|  | endif() | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user