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.

56 lines
3.1 KiB

  1. # Initialize CMake ################################################################################
  2. CMake_Minimum_Required ( VERSION 3.12.0 FATAL_ERROR )
  3. # Set CMAKE_BUILD_TYPE
  4. If ( NOT CMAKE_BUILD_TYPE )
  5. Set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE )
  6. EndIf ( NOT CMAKE_BUILD_TYPE )
  7. Set_Property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel )
  8. # Set CMAKE_MODULE_PATH
  9. If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )
  10. Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
  11. "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )
  12. EndIf ( )
  13. If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )
  14. Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
  15. "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" )
  16. EndIf ( )
  17. # Project #########################################################################################
  18. Include ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nlohmann_json-var.cmake" )
  19. Project ( nlohmann_json
  20. DESCRIPTION "A simple library"
  21. VERSION "${NLOHMANN_JSON_VERSION}" )
  22. Include ( CTest )
  23. Include ( GNUInstallDirs )
  24. # Subdirectories
  25. Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src )
  26. # Install
  27. Include ( CMakePackageConfigHelpers )
  28. Write_Basic_Package_Version_File ( "${CMAKE_CURRENT_BINARY_DIR}/cmake/nlohmann_json-config-version.cmake"
  29. VERSION ${NLOHMANN_JSON_VERSION}
  30. COMPATIBILITY AnyNewerVersion )
  31. Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nlohmann_json-config.cmake"
  32. "${CMAKE_CURRENT_BINARY_DIR}/cmake/nlohmann_json-config.cmake"
  33. @ONLY )
  34. Set ( ConfigPackageLocation "${NLOHMANN_JSON_INSTALL_DIR_SHARE}/cmake" )
  35. Install ( EXPORT
  36. nlohmann_json
  37. NAMESPACE
  38. nlohmann_json::
  39. DESTINATION
  40. ${ConfigPackageLocation} )
  41. Install ( FILES
  42. "${CMAKE_CURRENT_BINARY_DIR}/cmake/nlohmann_json-config.cmake"
  43. "${CMAKE_CURRENT_BINARY_DIR}/cmake/nlohmann_json-config-version.cmake"
  44. DESTINATION
  45. ${ConfigPackageLocation}
  46. COMPONENT
  47. Devel )