CMakeLists.txt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. include(GNUInstallDirs)
  2. include(CMakePackageConfigHelpers)
  3. if(QMSETUP_STATIC_RUNTIME)
  4. # To avoid a command execution that can't find the library, we choose to link compiler runtime statically
  5. if(MINGW)
  6. add_link_options(-static -static-libgcc -static-libstdc++)
  7. elseif(MSVC)
  8. add_compile_options(/MT)
  9. endif()
  10. endif()
  11. # Get syscmdline
  12. find_package(syscmdline QUIET)
  13. if(NOT TARGET syscmdline::syscmdline)
  14. set(SYSCMDLINE_INSTALL off)
  15. add_subdirectory(syscmdline)
  16. endif()
  17. # Add subdirectories
  18. add_subdirectory(corecmd)
  19. # Add headers
  20. set(_corelib_name library)
  21. add_library(${_corelib_name} INTERFACE)
  22. target_include_directories(${_corelib_name} INTERFACE
  23. "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>"
  24. "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
  25. "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${QMSETUP_INSTALL_NAME}>"
  26. )
  27. install(TARGETS ${_corelib_name}
  28. EXPORT ${QMSETUP_INSTALL_NAME}Targets
  29. )
  30. if(TRUE)
  31. # Add install target
  32. set(_install_dir ${CMAKE_INSTALL_LIBDIR}/cmake/${QMSETUP_INSTALL_NAME})
  33. # Add version file
  34. write_basic_package_version_file(
  35. "${CMAKE_CURRENT_BINARY_DIR}/${QMSETUP_INSTALL_NAME}ConfigVersion.cmake"
  36. VERSION ${QMSETUP_VERSION}
  37. COMPATIBILITY AnyNewerVersion
  38. )
  39. # Add configuration file
  40. configure_package_config_file(
  41. ${CMAKE_CURRENT_LIST_DIR}/${QMSETUP_INSTALL_NAME}Config.cmake.in
  42. "${CMAKE_CURRENT_BINARY_DIR}/${QMSETUP_INSTALL_NAME}Config.cmake"
  43. INSTALL_DESTINATION ${_install_dir}
  44. NO_CHECK_REQUIRED_COMPONENTS_MACRO
  45. )
  46. # Install cmake files
  47. install(FILES
  48. "${CMAKE_CURRENT_BINARY_DIR}/${QMSETUP_INSTALL_NAME}Config.cmake"
  49. "${CMAKE_CURRENT_BINARY_DIR}/${QMSETUP_INSTALL_NAME}ConfigVersion.cmake"
  50. DESTINATION ${_install_dir}
  51. )
  52. # Install cmake targets files
  53. install(EXPORT ${QMSETUP_INSTALL_NAME}Targets
  54. FILE "${QMSETUP_INSTALL_NAME}Targets.cmake"
  55. NAMESPACE qmsetup::
  56. DESTINATION ${_install_dir}
  57. )
  58. # Install headers
  59. install(DIRECTORY ../include/
  60. DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
  61. )
  62. # Install cmake modules
  63. install(DIRECTORY ../cmake/
  64. DESTINATION ${_install_dir}/cmake
  65. )
  66. endif()