mirror of
				https://github.com/eledio-devices/thirdparty-miniz.git
				synced 2025-10-31 00:32:38 +01:00 
			
		
		
		
	Merge pull request #134 from tamasmeszaros/cmake-dynlib
Support installation of amalgamated sources
This commit is contained in:
		| @@ -1,7 +1,18 @@ | ||||
| PROJECT(miniz C) | ||||
| cmake_minimum_required(VERSION 3.4) | ||||
| cmake_minimum_required(VERSION 3.0) | ||||
|  | ||||
| set(Upstream_VERSION 2.1.0) | ||||
| if(CMAKE_MINOR_VERSION LESS 12) | ||||
|   project(miniz) | ||||
|   # see issue https://gitlab.kitware.com/cmake/cmake/merge_requests/1799 | ||||
| else() | ||||
|   project(miniz C) | ||||
| endif() | ||||
|  | ||||
|  | ||||
| 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 | ||||
| @@ -52,7 +63,12 @@ if(AMALGAMATE_SOURCES) | ||||
|              "${AMAL_MINIZ_C}" "\n#endif // MINIZ_HEADER_FILE_ONLY\n") | ||||
|     file(WRITE ${CMAKE_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}") | ||||
|     add_library(${PROJECT_NAME} INTERFACE) | ||||
|     set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES | ||||
|      | ||||
|     target_compile_definitions(${PROJECT_NAME}  | ||||
|         INTERFACE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>) | ||||
|      | ||||
|     set_property(TARGET ${PROJECT_NAME} APPEND  | ||||
|       PROPERTY INTERFACE_INCLUDE_DIRECTORIES | ||||
|       $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/amalgamation> | ||||
|       $<INSTALL_INTERFACE:include> | ||||
|     ) | ||||
| @@ -81,15 +97,12 @@ else(AMALGAMATE_SOURCES) | ||||
|     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 ${Upstream_VERSION}) | ||||
|   set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION 2) | ||||
|   set_property(TARGET ${PROJECT_NAME} PROPERTY | ||||
|     INTERFACE_${PROJECT_NAME}_MAJOR_VERSION 2) | ||||
|   set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY | ||||
|     COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION | ||||
|   ) | ||||
|   set_property(TARGET ${PROJECT_NAME} PROPERTY VERSION ${MINIZ_VERSION}) | ||||
|   set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION ${MINIZ_API_VERSION}) | ||||
|    | ||||
|   target_include_directories(${PROJECT_NAME} PUBLIC | ||||
|     $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> | ||||
| @@ -98,41 +111,55 @@ else(AMALGAMATE_SOURCES) | ||||
|   ) | ||||
|    | ||||
|   file(GLOB INSTALL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h) | ||||
|   list(APPEND INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h) | ||||
|   list(APPEND  | ||||
|        INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h) | ||||
|  | ||||
|   install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets | ||||
| endif(AMALGAMATE_SOURCES) | ||||
|  | ||||
| if(NOT BUILD_HEADER_ONLY) | ||||
|   target_compile_definitions(${PROJECT_NAME}  | ||||
|     PRIVATE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>) | ||||
| endif() | ||||
|  | ||||
| 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 bin | ||||
|   ARCHIVE  DESTINATION lib | ||||
|   LIBRARY  DESTINATION lib | ||||
|   INCLUDES DESTINATION include | ||||
|   ) | ||||
|  | ||||
|   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 ${Upstream_VERSION} | ||||
|   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 lib/cmake/${PROJECT_NAME}) | ||||
|   install(EXPORT ${PROJECT_NAME}Targets | ||||
| set(ConfigPackageLocation lib/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" | ||||
| @@ -140,8 +167,7 @@ else(AMALGAMATE_SOURCES) | ||||
|     ${ConfigPackageLocation} | ||||
|   COMPONENT | ||||
|     Devel | ||||
|   ) | ||||
| endif(AMALGAMATE_SOURCES) | ||||
| ) | ||||
|  | ||||
| if(BUILD_EXAMPLES) | ||||
|   set(EXAMPLE1_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example1.c") | ||||
|   | ||||
							
								
								
									
										10
									
								
								miniz.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								miniz.h
									
									
									
									
									
								
							| @@ -112,10 +112,7 @@ | ||||
| */ | ||||
| #pragma once | ||||
|  | ||||
| #include "miniz_common.h" | ||||
| #include "miniz_tdef.h" | ||||
| #include "miniz_tinfl.h" | ||||
| #include "miniz_zip.h" | ||||
| #include "miniz_export.h" | ||||
|  | ||||
| /* Defines to completely disable specific portions of miniz.c:  | ||||
|    If all macros here are defined the only functionality remaining will be CRC-32, adler-32, tinfl, and tdefl. */ | ||||
| @@ -476,3 +473,8 @@ typedef void *const voidpc; | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #include "miniz_common.h" | ||||
| #include "miniz_tdef.h" | ||||
| #include "miniz_tinfl.h" | ||||
| #include "miniz_zip.h" | ||||
|   | ||||
| @@ -24,7 +24,6 @@ | ||||
|  * | ||||
|  **************************************************************************/ | ||||
|  | ||||
| #include "miniz_tdef.h" | ||||
| #include "miniz.h" | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|   | ||||
| @@ -24,7 +24,7 @@ | ||||
|  * | ||||
|  **************************************************************************/ | ||||
|  | ||||
| #include "miniz_tinfl.h" | ||||
| #include "miniz.h" | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
|   | ||||
| @@ -24,7 +24,7 @@ | ||||
|  * THE SOFTWARE. | ||||
|  * | ||||
|  **************************************************************************/ | ||||
| #include "miniz_zip.h" | ||||
| #include "miniz.h" | ||||
|  | ||||
| #ifndef MINIZ_NO_ARCHIVE_APIS | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user