You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							54 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							54 lines
						
					
					
						
							2.0 KiB
						
					
					
				| cmake_minimum_required(VERSION 3.0) | |
|  | |
| # define the project | |
| project(nlohmann_json VERSION 2.0.5 LANGUAGES CXX) | |
|  | |
| enable_testing() | |
|  | |
| option(BuildTests "Build the unit tests" ON) | |
|  | |
| # define project variables | |
| set(JSON_TARGET_NAME ${PROJECT_NAME}) | |
| set(JSON_PACKAGE_NAME ${JSON_TARGET_NAME}) | |
| set(JSON_TARGETS_FILENAME "${JSON_PACKAGE_NAME}Targets.cmake") | |
| set(JSON_CONFIG_FILENAME "${JSON_PACKAGE_NAME}Config.cmake") | |
| set(JSON_CONFIGVERSION_FILENAME "${JSON_PACKAGE_NAME}ConfigVersion.cmake") | |
| set(JSON_CONFIG_DESTINATION "cmake") | |
| set(JSON_INCLUDE_DESTINATION "include/nlohmann") | |
|  | |
| # create and configure the library target | |
| add_library(${JSON_TARGET_NAME} INTERFACE) | |
| target_include_directories(${JSON_TARGET_NAME} INTERFACE | |
|   $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> | |
|   $<INSTALL_INTERFACE:${JSON_INCLUDE_DESTINATION}>) | |
|  | |
| # create and configure the unit test target | |
| if (BuildTests) | |
|     add_subdirectory(test) | |
| endif() | |
|  | |
| # generate a config and config version file for the package | |
| include(CMakePackageConfigHelpers) | |
| configure_package_config_file("cmake/config.cmake.in" | |
|     "${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIG_FILENAME}" | |
|     INSTALL_DESTINATION ${JSON_CONFIG_DESTINATION}) | |
| write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIGVERSION_FILENAME}" | |
|     VERSION ${PROJECT_VERSION} | |
|     COMPATIBILITY SameMajorVersion) | |
|  | |
| # export the library target and store build directory in package registry | |
| export(TARGETS ${JSON_TARGET_NAME} | |
| 	FILE "${CMAKE_CURRENT_BINARY_DIR}/${JSON_TARGETS_FILENAME}") | |
| export(PACKAGE ${JSON_PACKAGE_NAME}) | |
|  | |
| # install library target and config files | |
| install(TARGETS ${JSON_TARGET_NAME} | |
| 	EXPORT ${JSON_PACKAGE_NAME}) | |
| install(FILES "src/json.hpp" | |
| 	DESTINATION ${JSON_INCLUDE_DESTINATION}) | |
| install(EXPORT ${JSON_PACKAGE_NAME} | |
| 	FILE ${JSON_TARGETS_FILENAME} | |
| 	DESTINATION ${JSON_CONFIG_DESTINATION}) | |
| install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIG_FILENAME}" | |
| 	"${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIGVERSION_FILENAME}" | |
| 	DESTINATION ${JSON_CONFIG_DESTINATION})
 |