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.
 
 
 

66 lines
3.7 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/modules/cmake" )
  14. Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
  15. "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/cmake" )
  16. EndIf ( )
  17. # Project #########################################################################################
  18. Include ( GNUInstallDirs )
  19. Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppfs-options.cmake )
  20. Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppfs-const.cmake )
  21. Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppfs-var.cmake )
  22. Project ( ${CPPFS_PROJECT_NAME}
  23. DESCRIPTION "${CPPFS_PROJECT_DESCRIPTION}"
  24. VERSION "${CPPFS_VERSION}" )
  25. Include ( CTest )
  26. Add_Compile_Options ( $<$<AND:$<CXX_COMPILER_ID:GNU>,$<CONFIG:DEBUG>>:-D_GLIBCXX_DEBUG> )
  27. # Subdirectories
  28. Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src )
  29. Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test )
  30. # Install
  31. If ( NOT CPPFS_HAS_EXPORT
  32. OR NOT CPPFS_INSTALL_PACKAGE )
  33. Return ( )
  34. EndIf ( )
  35. Include ( CMakePackageConfigHelpers )
  36. Write_Basic_Package_Version_File ( "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppfs-config-version.cmake"
  37. VERSION ${CPPFS_VERSION}
  38. COMPATIBILITY AnyNewerVersion )
  39. Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppfs-config.cmake"
  40. "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppfs-config.cmake"
  41. @ONLY )
  42. Set ( ConfigPackageLocation "${CPPFS_INSTALL_DIR_SHARE}/cmake" )
  43. Install ( EXPORT
  44. cppfs
  45. NAMESPACE
  46. cppfs::
  47. DESTINATION
  48. ${ConfigPackageLocation} )
  49. Install ( FILES
  50. "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppfs-config.cmake"
  51. "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppfs-config-version.cmake"
  52. DESTINATION
  53. ${ConfigPackageLocation}
  54. COMPONENT
  55. Devel )