From 4753958db707001d1e14fa8312708dc1e891bacc Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 17 Apr 2012 12:15:39 +0200 Subject: revamp handling of qmake target mode the project evaluator becomes oblivious of the target mode. the mode is set up in spec_post.prf according to the spec. $$QMAKE_TARGET contains the feature suffixes to search, and is also contained in $$CONFIG. the target_mode variable itself becomes private to the Makefile class. Change-Id: I3c06d9dab536b753343cec6c5c491d3203e50bd8 Reviewed-by: Mark Brand --- mkspecs/features/spec_post.prf | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 mkspecs/features/spec_post.prf (limited to 'mkspecs') diff --git a/mkspecs/features/spec_post.prf b/mkspecs/features/spec_post.prf new file mode 100644 index 0000000000..fcc7314ce5 --- /dev/null +++ b/mkspecs/features/spec_post.prf @@ -0,0 +1,31 @@ +isEmpty(MAKEFILE_GENERATOR):error("Qmake spec does not set MAKEFILE_GENERATOR.") +isEmpty(QMAKE_PLATFORM) { + isEmpty(TARGET_PLATFORM) { + equals(MAKEFILE_GENERATOR, UNIX) { + equals(QMAKE_HOST.os, Darwin): \ + TARGET_PLATFORM = macx + else: \ + TARGET_PLATFORM = unix + } else:if(equals(MAKEFILE_GENERATOR, MSVC.NET) \ + |equals(MAKEFILE_GENERATOR, BMAKE) \ + |equals(MAKEFILE_GENERATOR, MSBUILD) \ + |equals(MAKEFILE_GENERATOR, MINGW)) { + TARGET_PLATFORM = win32 + } else:if(equals(MAKEFILE_GENERATOR, PROJECTBUILDER) \ + |equals(MAKEFILE_GENERATOR, XCODE)) { + } else:equals(MAKEFILE_GENERATOR, GBUILD) { + TARGET_PLATFORM = unix + } else { + error("Qmake spec sets an invalid MAKEFILE_GENERATOR.") + } + } + equals(TARGET_PLATFORM, unix): \ + QMAKE_PLATFORM = unix + else:equals(TARGET_PLATFORM, macx): \ + QMAKE_PLATFORM = mac macx unix + else:equals(TARGET_PLATFORM, win32): \ + QMAKE_PLATFORM = win32 + else: \ + error("Qmake spec sets an invalid TARGET_PLATFORM.") +} +CONFIG += $$QMAKE_PLATFORM -- cgit v1.2.3 From caa22630510fb625f9c2ed18660cb56eb585137c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 20 Apr 2012 17:07:52 +0200 Subject: use real qmakespec as basis for finding features doesn't make much of a difference on unix (as the default specs are just symlinks). on windows, it makes the gross hack used for finding spec-specific wince default_post.prfs unnecessary. Change-Id: Id403dce5be487e1ae22c1f54b8095a6afdd98bc8 Reviewed-by: Joerg Bornemann --- mkspecs/features/win32/default_post.prf | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 mkspecs/features/win32/default_post.prf (limited to 'mkspecs') diff --git a/mkspecs/features/win32/default_post.prf b/mkspecs/features/win32/default_post.prf deleted file mode 100644 index a1d8b52da9..0000000000 --- a/mkspecs/features/win32/default_post.prf +++ /dev/null @@ -1,11 +0,0 @@ -!isEmpty(CE_ARCH) { - QMAKESPEC_DIR = $$QMAKESPEC - exists($$QMAKESPEC_DIR/default_post.prf) { - isEmpty(QMAKESPEC_DIR):QMAKESPEC_DIR = $$QMAKESPEC_ORIGINAL - !isEmpty(QMAKESPEC_DIR):load($$QMAKESPEC_DIR/default_post.prf) - } -} - -# Now load the global default_post -load(default_post) - -- cgit v1.2.3 From dafc4a884c7ccbd7417bf190c83a2465fb829096 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 20 Apr 2012 18:19:35 +0200 Subject: don't put QMAKESPEC_ORIGINAL into INCLUDEPATH any more the spec does that itself, given that the real spec is just included nowadays, instead of copied (which never worked without side effects). Change-Id: Ibf655b9a943dadb949d3c7a58d8fe50fcd62cef7 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt.prf | 5 ----- 1 file changed, 5 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 8af10b143d..ed483c8c2e 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -11,11 +11,6 @@ win32 { } contains(DEFINES, QT_MAKEDLL)|contains(DEFINES, QT_DLL):QMAKE_QT_DLL = 1 } - # Some files include qplatformdefs.h, which lives in the individual mkspec directory - # However, if QMAKESPEC_ORIGINAL is set, the module/app is outside of the QtBase - # directory, and using the default profile. So we add the original mkspecs directory - # to the include path - !isEmpty(QMAKESPEC_ORIGINAL):INCLUDEPATH += $$QMAKESPEC_ORIGINAL } CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG contains(QT_CONFIG, force_asserts):DEFINES += QT_FORCE_ASSERTS -- cgit v1.2.3 From b40b91cb393615f586d86f28ec5a5d6dd54c5d0a Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 20 Apr 2012 20:27:15 +0200 Subject: move initialization of numerous variables to spec_pre.prf this is cleaner by design and allows removing some hacks. Change-Id: I3270195b5d62caa476ffde7c1e1ef43cec99c565 Reviewed-by: Joerg Bornemann Reviewed-by: Mark Brand --- mkspecs/features/spec_pre.prf | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 mkspecs/features/spec_pre.prf (limited to 'mkspecs') diff --git a/mkspecs/features/spec_pre.prf b/mkspecs/features/spec_pre.prf new file mode 100644 index 0000000000..bcd4a08449 --- /dev/null +++ b/mkspecs/features/spec_pre.prf @@ -0,0 +1,39 @@ +QMAKE_DIR_SEP = $$DIR_SEPARATOR +QMAKE_DIRLIST_SEP = $$DIRLIST_SEPARATOR + +QMAKE_EXT_C = .c +QMAKE_EXT_CPP = .cpp .cc .cxx +QMAKE_EXT_CPP_MOC = .moc +QMAKE_EXT_H = .h .hpp .hh .hxx +QMAKE_EXT_H_MOC = .cpp +QMAKE_EXT_JS = .js +QMAKE_EXT_LEX = .l +QMAKE_EXT_LIBTOOL = .la +QMAKE_EXT_PKGCONFIG = .pc +QMAKE_EXT_PRL = .prl +QMAKE_EXT_UI = .ui +QMAKE_EXT_YACC = .y + +QMAKE_CPP_MOD_MOC = +QMAKE_H_MOD_MOC = moc_ +QMAKE_MOD_LEX = _lex +QMAKE_MOD_YACC = _yacc + +equals(QMAKE_HOST.os, Windows) { + QMAKE_EXT_OBJ = .obj + QMAKE_EXT_RES = .res + QMAKE_SH = + PATH = $$split($$(PATH), ;) + for(dir, PATH) { + exists($$dir/sh.exe) { + QMAKE_SH = $$dir/sh.exe + break() + } + } + unset(PATH) +} else { + QMAKE_EXT_CPP += .C + QMAKE_EXT_H += .H + QMAKE_EXT_OBJ = .o + QMAKE_SH = sh +} -- cgit v1.2.3 From a2382f7f15ad25169db24cfd090e68d5bcb11e08 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 27 Apr 2012 12:17:21 +0200 Subject: unset QT_MODULE_* after loading the module pris abuses have been observed in the wild, so make sure these variables are not available. Change-Id: I502c3f5db7d341cf6a8bd2ec09e87f129da2fca6 Reviewed-by: Mark Brand --- mkspecs/features/qt_config.prf | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf index 07fd988fb5..305ff1cb81 100644 --- a/mkspecs/features/qt_config.prf +++ b/mkspecs/features/qt_config.prf @@ -24,6 +24,11 @@ QMAKE_QT_CONFIG = $$[QT_HOST_DATA/get]/mkspecs/qconfig.pri include($$mod) } } + unset(QT_MODULE_INCLUDE_BASE) + unset(QT_MODULE_LIB_BASE) + unset(QT_MODULE_PLUGIN_BASE) + unset(QT_MODULE_BIN_BASE) + unset(QT_MODULE_IMPORT_BASE) } load(qt_functions) -- cgit v1.2.3