summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorSergio Ahumada <sergio.ahumada@digia.com>2013-09-10 23:22:23 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-10 23:22:23 +0200
commitbcbec4bc49774b80780872c8234acb256c38d779 (patch)
tree038e1c47f9156877b89a840fb69947e0774218b4 /mkspecs
parent507a7b4df918a091c45af35110fd2cdeff3713aa (diff)
parent2346ae167568bb9e5d247da0b946067b7f9aad48 (diff)
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/android-g++/qmake.conf3
-rw-r--r--mkspecs/features/create_cmake.prf19
-rw-r--r--mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in10
-rw-r--r--mkspecs/features/qt_functions.prf1
-rw-r--r--mkspecs/features/qt_tool.prf23
5 files changed, 48 insertions, 8 deletions
diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf
index 8c0e8c91f6..4ff5341837 100644
--- a/mkspecs/android-g++/qmake.conf
+++ b/mkspecs/android-g++/qmake.conf
@@ -37,7 +37,6 @@ contains(QMAKE_HOST.os,Windows) {
NDK_ROOT = $$(ANDROID_NDK_ROOT)
!exists($$NDK_ROOT) {
NDK_ROOT = $$DEFAULT_ANDROID_NDK_ROOT
- !exists($$NDK_ROOT): error("You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.")
}
NDK_HOST = $$(ANDROID_NDK_HOST)
@@ -187,4 +186,6 @@ QMAKE_LIBS_OPENGL =
QMAKE_LIBS_OPENGL_ES1 = -lGLESv1_CM
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
+!exists($$NDK_ROOT): error("You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.")
+
load(qt_config)
diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
index 04ec747307..5bc7cc81b1 100644
--- a/mkspecs/features/create_cmake.prf
+++ b/mkspecs/features/create_cmake.prf
@@ -24,6 +24,19 @@ load(cmake_functions)
CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$[QT_INSTALL_LIBS])
contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*): CMAKE_USR_MOVE_WORKAROUND = $$CMAKE_INSTALL_LIBS_DIR
+CMAKE_MODULE_NAME = $$cmakeModuleName($${MODULE})
+
+split_incpath {
+ CMAKE_ADD_SOURCE_INCLUDE_DIRS = true
+ CMAKE_NO_PRIVATE_INCLUDES = true # Don't add private includes in the build dir which don't exist
+ CMAKE_SOURCE_INCLUDES = \
+ $$cmakeTargetPath($$QT_MODULE_INCLUDE_BASE) \
+ $$cmakeTargetPath($$QT_MODULE_INCLUDE_BASE/Qt$${CMAKE_MODULE_NAME})
+ CMAKE_SOURCE_PRIVATE_INCLUDES = \
+ $$cmakeTargetPath($$QT_MODULE_INCLUDE_BASE/Qt$${CMAKE_MODULE_NAME}/$$eval(QT.$${MODULE}.VERSION)) \
+ $$cmakeTargetPath($$QT_MODULE_INCLUDE_BASE/Qt$${CMAKE_MODULE_NAME}/$$eval(QT.$${MODULE}.VERSION)/Qt$${CMAKE_MODULE_NAME})
+}
+
CMAKE_INCLUDE_DIR = $$cmakeRelativePath($$[QT_INSTALL_HEADERS], $$[QT_INSTALL_PREFIX])
contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") {
CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/
@@ -37,10 +50,10 @@ contains(CMAKE_LIB_DIR,"^\\.\\./.*") {
CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
CMAKE_LIB_DIR_IS_ABSOLUTE = True
} else {
- CMAKE_RELATIVE_INSTALL_DIR = $$cmakeRelativePath($$[QT_INSTALL_PREFIX], $$[QT_INSTALL_LIBS])
+ CMAKE_RELATIVE_INSTALL_LIBS_DIR = $$cmakeRelativePath($$[QT_INSTALL_PREFIX], $$[QT_INSTALL_LIBS])
# We need to go up another two levels because the CMake files are
# installed in $${CMAKE_LIB_DIR}/cmake/Qt5$${CMAKE_MODULE_NAME}
- CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_DIR}../../"
+ CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}../../"
}
CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
@@ -135,8 +148,6 @@ unix:contains(QT_CONFIG, reduce_relocations):CMAKE_ADD_FPIE_FLAGS = "true"
CMAKE_MKSPEC = $$[QMAKE_XSPEC]
-CMAKE_MODULE_NAME = $$cmakeModuleName($${MODULE})
-
CMAKE_MODULE_DEPS = $$cmakeModuleList($$sort_depends(QT.$${MODULE}.depends, QT.))
CMAKE_PARTIAL_MODULE_DEPS = $$replace(CMAKE_MODULE_DEPS, ";", ";Qt5::")
!isEmpty(CMAKE_PARTIAL_MODULE_DEPS):CMAKE_QT5_MODULE_DEPS = "Qt5::$${CMAKE_PARTIAL_MODULE_DEPS}"
diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
index 9ac5c0282e..245c0ae768 100644
--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
@@ -13,7 +13,7 @@ get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH)
get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH)
if(_realCurr STREQUAL _realOrig)
- get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR\" PATH)
+ get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE)
else()
get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
endif()
@@ -120,6 +120,14 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
!!ENDIF
!!ENDIF
!!ENDIF
+!!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS)
+ list(APPEND _Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS
+ $$CMAKE_SOURCE_INCLUDES
+ )
+ set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+ $$CMAKE_SOURCE_PRIVATE_INCLUDES
+ )
+!!ENDIF
!!ELSE
set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS)
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS)
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index c8d151ce4d..7bedf6f760 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -205,6 +205,7 @@ defineTest(qtPrepareTool) {
}
}
}
+ QT_TOOL_ENV += $$eval(QT_TOOL.$${2}.envvars)
!isEmpty(3) {
$$1$$3 = $$system_path($$eval($$1))
qtAddTargetEnv($$1$$3, QT_TOOL.$${2}.depends, system)
diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
index 9a6b9634e0..f0f0fe567b 100644
--- a/mkspecs/features/qt_tool.prf
+++ b/mkspecs/features/qt_tool.prf
@@ -27,9 +27,28 @@ CONFIG += console
TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_tool_$${MODULE}.pri
+ vars = binary depends
+ !isEmpty(QT_TOOL_ENV) {
+ vars += envvars
+ module_var_names =
+ module_var_sets =
+ for(var, QT_TOOL_ENV) {
+ vars += env.$${var}.name env.$${var}.value
+ module_var_names += QT_TOOL.$${MODULE}.env.$${var}
+ module_var_sets += \
+ "QT_TOOL.$${MODULE}.env.$${var}.name = $$val_escape($${var}.name)" \
+ "QT_TOOL.$${MODULE}.env.$${var}.value = $$val_escape($${var}.value)"
+ }
+ module_envvars = \
+ "QT_TOOL.$${MODULE}.envvars = $$module_var_names" \
+ $$module_var_sets
+ } else {
+ module_envvars =
+ }
TOOL_PRI_CONT = \
"QT_TOOL.$${MODULE}.binary = $$QMAKE_RESOLVED_TARGET" \
- "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")"
+ "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
+ $$module_envvars
write_file($$TOOL_PRI, TOOL_PRI_CONT)|error("Aborting.")
# Then, inject the new tool into the current cache state
@@ -39,7 +58,7 @@ CONFIG += console
unset(added)
}
include($$TOOL_PRI)
- for(var, $$list(binary depends)): \
+ for(var, vars): \
cache(QT_TOOL.$${MODULE}.$$var, transient)
}