aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorRohan Garg <rohan16garg@gmail.com>2014-09-03 14:28:14 +0200
committerRohan Garg <rohan16garg@gmail.com>2014-09-03 14:28:14 +0200
commit96e7fb9969b761cce956a3500ede3b1c6cb29c65 (patch)
tree0db7e79e5523cdaf22bb9d95124d99042a5ff667 /modules
parent5d6171f4c3a3f87e4e7114131304028b8b54941b (diff)
downloadextra-cmake-modules-96e7fb9969b761cce956a3500ede3b1c6cb29c65.tar.gz
extra-cmake-modules-96e7fb9969b761cce956a3500ede3b1c6cb29c65.tar.bz2
Fix ECM to use qmake instead of hardcoding plugin install dirs
Packagers and other interested folks should pass -DKDE_INSTALL_USE_QT_SYS_PATHS=ON when building in order to install various files to the same dir as the Qt5 install dirs. CCMAIL: kde-packagers@kde.org REVIEW: 119901
Diffstat (limited to 'modules')
-rw-r--r--modules/ECMGeneratePriFile.cmake8
-rw-r--r--modules/ECMQueryQmake.cmake15
2 files changed, 22 insertions, 1 deletions
diff --git a/modules/ECMGeneratePriFile.cmake b/modules/ECMGeneratePriFile.cmake
index 34001d6c..53cd69db 100644
--- a/modules/ECMGeneratePriFile.cmake
+++ b/modules/ECMGeneratePriFile.cmake
@@ -82,7 +82,13 @@
# (To distribute this file outside of extra-cmake-modules, substitute the full
# License text for the above reference.)
-set(ECM_MKSPECS_INSTALL_DIR mkspecs/modules CACHE PATH "The directory where mkspecs will be installed to.")
+if(KDE_ECM_INSTALL_TO_QT_SYS_DIR)
+ include(ECMQueryQmake)
+ query_qmake(qt_host_data_dir QT_HOST_DATA)
+ set(ECM_MKSPECS_INSTALL_DIR ${qt_host_data_dir}/mkspecs/modules CACHE PATH "The directory where mkspecs will be installed to.")
+else ()
+ set(ECM_MKSPECS_INSTALL_DIR mkspecs/modules CACHE PATH "The directory where mkspecs will be installed to.")
+endif()
function(ECM_GENERATE_PRI_FILE)
set(options )
diff --git a/modules/ECMQueryQmake.cmake b/modules/ECMQueryQmake.cmake
new file mode 100644
index 00000000..5147fcc7
--- /dev/null
+++ b/modules/ECMQueryQmake.cmake
@@ -0,0 +1,15 @@
+find_package(Qt5Core QUIET)
+
+if (TARGET Qt5::qmake)
+ get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
+else()
+ set(QMAKE_EXECUTABLE "qmake-qt5" CACHE)
+endif()
+
+function(QUERY_QMAKE RESULT VAR)
+ exec_program(${QMAKE_EXECUTABLE} ARGS "-query ${VAR}" RETURN_VALUE return_code OUTPUT_VARIABLE output )
+ if(NOT return_code)
+ file(TO_CMAKE_PATH "${output}" output)
+ set(${RESULT} ${output} PARENT_SCOPE)
+ endif()
+endfunction(QUERY_QMAKE)