Qt53DQuickExtrasConfig.cmake 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. if (CMAKE_VERSION VERSION_LESS 2.8.3)
  2. message(FATAL_ERROR "Qt 5 requires at least CMake version 2.8.3")
  3. endif()
  4. if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS)
  5. message(WARNING Skipping because OE_QMAKE_PATH_EXTERNAL_HOST_BINS is not defined)
  6. return()
  7. endif()
  8. get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
  9. # Use original install prefix when loaded through a
  10. # cross-prefix symbolic link such as /lib -> /usr/lib.
  11. get_filename_component(_realCurr "${_IMPORT_PREFIX}" REALPATH)
  12. get_filename_component(_realOrig "/usr/lib/cmake/Qt53DQuickExtras" REALPATH)
  13. if(_realCurr STREQUAL _realOrig)
  14. get_filename_component(_qt53DQuickExtras_install_prefix "/usr/lib/../" ABSOLUTE)
  15. else()
  16. get_filename_component(_qt53DQuickExtras_install_prefix "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
  17. endif()
  18. unset(_realOrig)
  19. unset(_realCurr)
  20. unset(_IMPORT_PREFIX)
  21. # For backwards compatibility only. Use Qt53DQuickExtras_VERSION instead.
  22. set(Qt53DQuickExtras_VERSION_STRING 5.7.1)
  23. set(Qt53DQuickExtras_LIBRARIES Qt5::3DQuickExtras)
  24. macro(_qt5_3DQuickExtras_check_file_exists file)
  25. if(NOT EXISTS "${file}" )
  26. message(FATAL_ERROR "The imported target \"Qt5::3DQuickExtras\" references the file
  27. \"${file}\"
  28. but this file does not exist. Possible reasons include:
  29. * The file was deleted, renamed, or moved to another location.
  30. * An install or uninstall procedure did not complete successfully.
  31. * The installation package was faulty and contained
  32. \"${CMAKE_CURRENT_LIST_FILE}\"
  33. but not all the files it references.
  34. ")
  35. endif()
  36. endmacro()
  37. macro(_populate_3DQuickExtras_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION)
  38. set_property(TARGET Qt5::3DQuickExtras APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
  39. set(imported_location "${_qt53DQuickExtras_install_prefix}/lib/${LIB_LOCATION}")
  40. _qt5_3DQuickExtras_check_file_exists(${imported_location})
  41. set_target_properties(Qt5::3DQuickExtras PROPERTIES
  42. "INTERFACE_LINK_LIBRARIES" "${_Qt53DQuickExtras_LIB_DEPENDENCIES}"
  43. "IMPORTED_LOCATION_${Configuration}" ${imported_location}
  44. "IMPORTED_SONAME_${Configuration}" "libQt53DQuickExtras.so.5"
  45. # For backward compatibility with CMake < 2.8.12
  46. "IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}" "${_Qt53DQuickExtras_LIB_DEPENDENCIES}"
  47. )
  48. endmacro()
  49. if (NOT TARGET Qt5::3DQuickExtras)
  50. set(_Qt53DQuickExtras_OWN_INCLUDE_DIRS "${_qt53DQuickExtras_install_prefix}/include/qt5/" "${_qt53DQuickExtras_install_prefix}/include/qt5/Qt3DQuickExtras")
  51. set(Qt53DQuickExtras_PRIVATE_INCLUDE_DIRS "")
  52. foreach(_dir ${_Qt53DQuickExtras_OWN_INCLUDE_DIRS})
  53. _qt5_3DQuickExtras_check_file_exists(${_dir})
  54. endforeach()
  55. # Only check existence of private includes if the Private component is
  56. # specified.
  57. list(FIND Qt53DQuickExtras_FIND_COMPONENTS Private _check_private)
  58. if (NOT _check_private STREQUAL -1)
  59. foreach(_dir ${Qt53DQuickExtras_PRIVATE_INCLUDE_DIRS})
  60. _qt5_3DQuickExtras_check_file_exists(${_dir})
  61. endforeach()
  62. endif()
  63. set(Qt53DQuickExtras_INCLUDE_DIRS ${_Qt53DQuickExtras_OWN_INCLUDE_DIRS})
  64. set(Qt53DQuickExtras_DEFINITIONS -DQT_3DQUICKEXTRAS_LIB)
  65. set(Qt53DQuickExtras_COMPILE_DEFINITIONS QT_3DQUICKEXTRAS_LIB)
  66. set(_Qt53DQuickExtras_MODULE_DEPENDENCIES "3DInput;3DQuick;3DRender;3DLogic;3DCore;Gui;Qml;Core")
  67. set(_Qt53DQuickExtras_FIND_DEPENDENCIES_REQUIRED)
  68. if (Qt53DQuickExtras_FIND_REQUIRED)
  69. set(_Qt53DQuickExtras_FIND_DEPENDENCIES_REQUIRED REQUIRED)
  70. endif()
  71. set(_Qt53DQuickExtras_FIND_DEPENDENCIES_QUIET)
  72. if (Qt53DQuickExtras_FIND_QUIETLY)
  73. set(_Qt53DQuickExtras_DEPENDENCIES_FIND_QUIET QUIET)
  74. endif()
  75. set(_Qt53DQuickExtras_FIND_VERSION_EXACT)
  76. if (Qt53DQuickExtras_FIND_VERSION_EXACT)
  77. set(_Qt53DQuickExtras_FIND_VERSION_EXACT EXACT)
  78. endif()
  79. set(Qt53DQuickExtras_EXECUTABLE_COMPILE_FLAGS "")
  80. foreach(_module_dep ${_Qt53DQuickExtras_MODULE_DEPENDENCIES})
  81. if (NOT Qt5${_module_dep}_FOUND)
  82. find_package(Qt5${_module_dep}
  83. 5.7.1 ${_Qt53DQuickExtras_FIND_VERSION_EXACT}
  84. ${_Qt53DQuickExtras_DEPENDENCIES_FIND_QUIET}
  85. ${_Qt53DQuickExtras_FIND_DEPENDENCIES_REQUIRED}
  86. PATHS "${CMAKE_CURRENT_LIST_DIR}/.." NO_DEFAULT_PATH
  87. )
  88. endif()
  89. if (NOT Qt5${_module_dep}_FOUND)
  90. set(Qt53DQuickExtras_FOUND False)
  91. return()
  92. endif()
  93. list(APPEND Qt53DQuickExtras_INCLUDE_DIRS "${Qt5${_module_dep}_INCLUDE_DIRS}")
  94. list(APPEND Qt53DQuickExtras_PRIVATE_INCLUDE_DIRS "${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}")
  95. list(APPEND Qt53DQuickExtras_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS})
  96. list(APPEND Qt53DQuickExtras_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS})
  97. list(APPEND Qt53DQuickExtras_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS})
  98. endforeach()
  99. list(REMOVE_DUPLICATES Qt53DQuickExtras_INCLUDE_DIRS)
  100. list(REMOVE_DUPLICATES Qt53DQuickExtras_PRIVATE_INCLUDE_DIRS)
  101. list(REMOVE_DUPLICATES Qt53DQuickExtras_DEFINITIONS)
  102. list(REMOVE_DUPLICATES Qt53DQuickExtras_COMPILE_DEFINITIONS)
  103. list(REMOVE_DUPLICATES Qt53DQuickExtras_EXECUTABLE_COMPILE_FLAGS)
  104. set(_Qt53DQuickExtras_LIB_DEPENDENCIES "Qt5::3DInput;Qt5::3DQuick;Qt5::3DRender;Qt5::3DLogic;Qt5::3DCore;Qt5::Gui;Qt5::Qml;Qt5::Core")
  105. add_library(Qt5::3DQuickExtras SHARED IMPORTED)
  106. set_property(TARGET Qt5::3DQuickExtras PROPERTY
  107. INTERFACE_INCLUDE_DIRECTORIES ${_Qt53DQuickExtras_OWN_INCLUDE_DIRS})
  108. set_property(TARGET Qt5::3DQuickExtras PROPERTY
  109. INTERFACE_COMPILE_DEFINITIONS QT_3DQUICKEXTRAS_LIB)
  110. _populate_3DQuickExtras_target_properties(RELEASE "libQt53DQuickExtras.so.5.7.1" "" )
  111. file(GLOB pluginTargets "${CMAKE_CURRENT_LIST_DIR}/Qt53DQuickExtras_*Plugin.cmake")
  112. macro(_populate_3DQuickExtras_plugin_properties Plugin Configuration PLUGIN_LOCATION)
  113. set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
  114. set(imported_location "${_qt53DQuickExtras_install_prefix}/lib/qt5/plugins/${PLUGIN_LOCATION}")
  115. _qt5_3DQuickExtras_check_file_exists(${imported_location})
  116. set_target_properties(Qt5::${Plugin} PROPERTIES
  117. "IMPORTED_LOCATION_${Configuration}" ${imported_location}
  118. )
  119. endmacro()
  120. if (pluginTargets)
  121. foreach(pluginTarget ${pluginTargets})
  122. include(${pluginTarget})
  123. endforeach()
  124. endif()
  125. _qt5_3DQuickExtras_check_file_exists("${CMAKE_CURRENT_LIST_DIR}/Qt53DQuickExtrasConfigVersion.cmake")
  126. endif()