summaryrefslogtreecommitdiffstats
path: root/mkspecs
Commit message (Collapse)AuthorAgeFilesLines
* qmake: improve the .pc files generatorKonstantin Ritt2012-07-031-0/+5
| | | | | | | | Don't hardcode the "qt_config" EXTRA variable and use QMAKE_PKGCONFIG_VARIABLES instead. This allows qmake create the .pc files that are unrelated to Qt. Change-Id: Ic72005e8819a15f6c50f3aaf79424a247fba20af Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Look for CMake config files in the same prefixes as mkspecs.Stephen Kelly2012-07-031-1/+5
| | | | | | | | | This will allow tests of modules outside of qtbase to find their CMake config files. Change-Id: I68036908d0fd2ec640530b57d0f572d211ef44f0 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Simplify logic for paths to CMake modules in tests.Stephen Kelly2012-07-031-5/+1
| | | | | | | Use a command line argument instead of an environment variable. Change-Id: I518b21d1fb9567d182384885a308c76e108598d8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* android: remove QT_NO_QWS_TRANSFORMED from mkspecsRobin Burchell2012-07-031-1/+1
| | | | | | | this does nothing anymore Change-Id: If8798335dea935d1df9f085a7b4e1658f426809b Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* android: fix stupid thinko where cflags were set before the common includeRobin Burchell2012-07-033-9/+6
| | | | | | | | | this meant that the common mkspec was unable to do 'sensible' things with the cflags (hence -Wno-psabi not being applied to C++ code), and probably explains a lot of other weird things. Change-Id: I77079027dc1b2691c53212893eb90c7b935d00a2 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Remove stale qws related mkspecsDonald Carr2012-06-3015-691/+0
| | | | | | | | Should be be reintroduced with intent if there is sufficient interest, outside of the QWS context. Change-Id: I598f47b5cf0c10dd66534294d0f27cf0b4e5069a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Migrate linux-clang mkspec out of unsupportedDonald Carr2012-06-302-6/+4
| | | | | | Change-Id: I84abc4c305c28e46dd514d3fb78d27c051dc6048 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Merge "Merge branch 'buildsystem' (second round)" into refs/staging/masterMark Brand2012-06-295-17/+75
|\
| * Merge branch 'buildsystem' (second round)Oswald Buddenhagen2012-06-295-17/+75
| |\ | | | | | | | | | | | | | | | | | | | | | | | | refactoring and cleanup. fixes x-builds between different os families. Conflicts: mkspecs/features/qt.prf Change-Id: I0205e6f07f77c9b015cf055dd87a471883949a91
| | * unset QT_MODULE_* after loading the module prisOswald Buddenhagen2012-06-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | abuses have been observed in the wild, so make sure these variables are not available. Change-Id: I502c3f5db7d341cf6a8bd2ec09e87f129da2fca6 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| | * move initialization of numerous variables to spec_pre.prfOswald Buddenhagen2012-06-271-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | this is cleaner by design and allows removing some hacks. Change-Id: I3270195b5d62caa476ffde7c1e1ef43cec99c565 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
| | * don't put QMAKESPEC_ORIGINAL into INCLUDEPATH any moreOswald Buddenhagen2012-06-271-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | 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 <joerg.bornemann@nokia.com>
| | * use real qmakespec as basis for finding featuresOswald Buddenhagen2012-06-271-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <joerg.bornemann@nokia.com>
| | * revamp handling of qmake target modeOswald Buddenhagen2012-06-271-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <mabrand@mabrand.nl>
* | | Add mkspecs for android cross compilation.Robin Burchell2012-06-298-0/+455
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Using these requires setting two environment variables, e.g, for me: export ANDROID_NDK_ROOT=/Users/burchr/android-ndk-r7c export ANDROID_NDK_HOST=darwin-x86 ./configure -opensource -confirm-license -xplatform unsupported/linux-android-armeabi-v7a-g++ -nomake examples -nomake demos -nomake tests -v These mkspecs are somewhat based on the work of the Necessitas crew, kudos to them for their work in getting the NDK integration into qmake. Change-Id: I591e423ed8dc70616009f681c81890c696110e62 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* | Update the macros for shared/DLL and static buildsThiago Macieira2012-06-284-14/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Up until now, we had a mess of different macros used for building DLLs, for building shared libraries on Unix systems and for building static libraries. Some of the macros were contradictory and did not work. From now on, there shall be only: - QT_STATIC: indicates that it's a static Qt build and the export macros should expand to empty - QT_SHARED: indicates that it's a shared / dynamic Qt build and the export macros should expand to Q_DECL_EXPORT or Q_DECL_IMPORT, depending on whether the macro corresponds to the current module being built (the QT_BUILD_XXXX_LIB macro comes from the module's .pro file) QT_BOOTSTRAPPED implies QT_STATIC since the bootstrapped tools link statically to some source code. QT_STATIC is recorded in qconfig.h by configure when Qt is configured for static builds. Nothing is recorded for a shared / dynamic build, so QT_SHARED is implied if nothing is defined. This allows for the existence of a static_and_shared build: with nothing recorded, defining QT_STATIC before qglobal.h causes the export macros to be that of the static form. Linking to the static libraries is out of the scope of this change (something for the buildsystem and linker to figure out). From this commit on, the proper way of declaring the export macros for a module called QtFoo is: #ifndef QT_STATIC # ifdef QT_BUILD_FOO_LIB # define Q_FOO_EXPORT Q_DECL_EXPORT # else # define Q_FOO_EXPORT Q_DECL_IMPORT # endif #else # define Q_FOO_EXPORT #endif The type of the Qt build is recorded in QT_CONFIG (in qconfig.pri) so all Qt modules build by default the same type of library. The keywords are "static" and "shared", used in both QT_CONFIG and CONFIG. The previous keyword of "staticlib" is deprecated and should not be used. Discussed-on: http://lists.qt-project.org/pipermail/development/2012-April/003172.html Change-Id: I127896607794795b681c98d08467efd8af49bcf3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Refactor the creation of imported targets into a macro.Stephen Kelly2012-06-271-34/+26
|/ | | | | | | | | | | | | | | | | | | | | | | | | This will make it easier to handle cases where the Qt installation and the build do not match exactly. For example, on Windows, it would be possible to do: ./configure -debug make make install make release make release_install In which case, both debug and release libraries would be installed even though it was only configured with -debug. On non-Windows, the debug and release libraries would overwrite each other, so it is not necessary to support it. Similarly, we want to handle cases in the future where (on non-Windows) both static and shared libraries would be installed (again, not described with a single build configuration). Change-Id: Ib7916c9664a0f72e40156a03bdfc79a4a6c24350 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* mkspecs: Use the right variable name to find the qdevice.priHolger Hans Peter Freyther2012-06-261-1/+1
| | | | | | | | | Commit 8b822825c5066957622194acf0fc267a6bf473fd introduced the /get version but used the wrong variable name. Fix it by using QT_HOST_DATA. Change-Id: Ia4759b8c6ff2de9726f3aebae2f2f39c6644d4ec Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* make using testlib automatically "promote" all modules to -privateOswald Buddenhagen2012-06-262-2/+3
| | | | | | | | | | | | autotests often need private headers (especially with qpa headers now being private) and have no compatibility requirements, so it makes sense to just use the privates of requested modules. this also suppresses the useless warning about using privates, in case they are still explicitly specified. Change-Id: I9e499bedcf6ef25777283ff1432cef7254e9093a Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Factorize the cmake test infrastructure to be reusable.Stephen Kelly2012-06-261-0/+51
| | | | | | | | This makes it easy to add cmake module tests for all modules. Change-Id: I303bf7674ca6ae7a8544488f96e8e02afbaa6ff0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Avoid macro re-definition after 1838a6c2fb5e3b4368c871aa330d028b255b83afKonstantin Ritt2012-06-268-8/+8
| | | | | | Change-Id: I2631ff687881278ba42edacd237a2130c103b69f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Don't re-evaluate the lib location.Stephen Kelly2012-06-261-4/+4
| | | | | | | Rely on the DESTDIR variable being set correctly by qt_module_config. Change-Id: I1a166124024722ec5a189a7402b38646179aa890 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix the DEFINITIONS for Qt modules.Stephen Kelly2012-06-261-3/+2
| | | | | | | | | As the DEFINITIONS to be used for QtAddOns is different to essential modules, rely on the logic in qt_module_config setting this variable correctly. Change-Id: I64485ccd6df093216cac4a97fb1cfaac0122a218 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* add possibility to set $$MODULE_IMPORT_SUFFIX in module .pri filesOswald Buddenhagen2012-06-241-1/+1
| | | | | | | | quick1 got a suffix, so we need a way to set it Change-Id: I099b868106abd4d3040047703472faa65f694f31 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Set Wayland as default platform on Raspberry-PiDonald Carr2012-06-241-1/+4
| | | | | | | | | Update Raspberry-Pi mkspec to indicate that wayland is the default platform for the Raspberry-Pi. Change-Id: I10b30ecfb16faed6027137225d9e95409faa7e87 Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Add a variable for the private includes for modules.Stephen Kelly2012-06-231-0/+4
| | | | | | | This is required to use QPA for example in 5.0. Change-Id: I44bfc6987d778370e55c05c591f63ff84c482d0a Reviewed-by: David Faure <faure@kde.org>
* eglfs: move m_pos into CursorGirish Ramakrishnan2012-06-221-2/+2
| | | | | Change-Id: I51e92d265e7ea6372ae58b357f75362e2d9a2df9 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* embedded doesn't exist anymoreGirish Ramakrishnan2012-06-221-3/+0
| | | | | Change-Id: Ib56895defb72f51bb790994b9fd72fc81ef25af5 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* mkspecs: Add macx-clang-libc++ and macx-clang-libc++-32Bradley T. Hughes2012-06-204-0/+129
| | | | | | | | | Use these mkspecs to switch to the new libc++ C++ runtime library, which in turn makes it possible to enable C++11 support with clang. Change-Id: If92908592f8bee4829a1bad747fe396f527d26c7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* make missing qt modules fatalOswald Buddenhagen2012-06-191-1/+3
| | | | | | | there is no point in continuing; it will error out later (in more cryptic ways) anyway. Change-Id: I2562eadc2d91bfaa6e85368dc3774da31409a141
* less confusing wordingOswald Buddenhagen2012-06-191-1/+1
| | | | Change-Id: Ia509fe1a28de803673623d425f5949b35404598c
* fix misnomer: qt_module.prf => qt_build_config.prfOswald Buddenhagen2012-06-193-34/+36
| | | | | | qt_module suggests to be congruent to qt_plugin. Change-Id: I629530bcbe2ba6c0adbdc11a275119c8aff0c953
* fix regexp in qmodule.pri inclusion checkOswald Buddenhagen2012-06-192-3/+1
| | | | | | this also allows us removing the redundant flag variable Change-Id: If26d22280ce7bc2ef3514c7c11ce7cd9baec1293
* revamp automatic makefile generation for sub-projectsOswald Buddenhagen2012-06-192-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | instead of making the "real" targets depend on the makefiles, add conditional makefile generation to the targets themselves. this causes makefile generation to follow the recursion order determined by the project, which is important when dealing with prl and module pri files. a side effect of this is that qmake and make calls are interleaved now, which is entirely different from a 'qmake -r' run. on the downside, calling make with multiple targets which operate on the same subprojects without prior makefile generation will make a mess, as the qmake calls will be racing. this should be no problem, as qmake does not generate recursive targets where this would be useful - at least by default. it is not sufficient to just order the creation of the makefiles non-recursively (e.g., by using gnu-specific order-only-prerequisites), as an interrupted and subsequently resumed build would happily skip the nested makefiles. workable alternative approaches would be walking the entire tree in a pre-pass to ensure makefile presence (which is incredibly slow) or creating additional stamp files only after recursing and having the makefiles depend on them (which is ugly). Task-number: QTBUG-23376 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Change-Id: I88d3e7610215677d362026de316513d3bea04b06
* support for private depends in modulesOswald Buddenhagen2012-06-193-1/+12
| | | | | | | | | | | if a module's private headers add additional dependencies, QT_PRIVATE is now the place to declare them. note however, that this may not contain other private headers in turn - that would be much harder to implement, and we want the explicitness anyway. Change-Id: Ic516fcf1a003c95798df4fbe216f92016afaf47e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* introduce $$QMAKE_CHK_EXISTS_GLUEOswald Buddenhagen2012-06-192-0/+2
| | | | | | | instead of hard-coding platform differences, use a variable. Change-Id: I20e98811ad5f07429148c6f88aedbabc3ba58fff Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* centralize definitions of shell commandsOswald Buddenhagen2012-06-1966-622/+43
| | | | | | | there are only two types. everything else is duplication. Change-Id: I87f2bdd3d56b94bb2ecdb60e8861afeb9af3666f Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* normalize $$QMAKE_QMAKEOswald Buddenhagen2012-06-191-1/+0
| | | | | | | | | everything in the projects should be normalized. only the makefile generators need to adjust it to the native form. Change-Id: I06a4e997f32134d13949ec4a9dd1b44367aab7cb Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* correctly find idc even for makefilesOswald Buddenhagen2012-06-191-1/+2
| | | | | | | | this is a qt tool, so it needs appropriate treatment Change-Id: I0cb30ba07e03c72ee275cd916ca0a39a99fc3705 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* scan module path backwardsOswald Buddenhagen2012-06-191-0/+1
| | | | | | | | the last read file wins, so reading in inverse order ensures that we respect the list's sorting by decreasing priority. Change-Id: I2e6539a52d4195ed6af4c0143b035c39577b8310 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* let default_pre add modules to the qmake pathOswald Buddenhagen2012-06-191-1/+3
| | | | | | | | | | | | | | that way qmake is made aware of the forwarding pris which are generated for this module even when a top-level .qmake.cache prevents the module's root from being found automatically. the path is also added to the cache, so that subsequent partial qmake-ing of the tree will still find the module. this also makes the -cache-module-fwd parameter of syncqt useless, so remove it. Change-Id: I2afbc52a465c0b3260e9bcaf032c43a82ae8061f Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* recognize QMAKEMODULES env var, property and cache variableOswald Buddenhagen2012-06-191-2/+8
| | | | | | | | | the latter allows sub-projects to dynamically extend the qmake search path specifically for modules. the others are just for congruency with QMAKEPATH and QMAKEFEATURES. Change-Id: I0c099035f8dc8ee8645566dbc635644a15ed9da5 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* move generation of module master headers to qt_module_headersOswald Buddenhagen2012-06-191-0/+28
| | | | | | | | | this has the advantage that the %mastercontent assignments in sync.profile are not necessary any more. as it happens, most modules got them wrong anyway. Change-Id: Ibdf689be408f18e1d90c44ef4ecacd7c24b1f1c9 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove detection-based usage of modules which are frameworksOswald Buddenhagen2012-06-191-11/+0
| | | | | | | | each qt module comes properly declared and located, so there is simply no point in performing a search. Change-Id: I86fad21bb8e128b85f1000cc116cc44a23642eb4 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* fix direct includes from modules which are frameworksOswald Buddenhagen2012-06-191-1/+1
| | | | | Change-Id: I1f2c1e5ebdb2fa258500a08b32dcafb4150ee424 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* let modules which are frameworks remember that factOswald Buddenhagen2012-06-191-0/+2
| | | | | | | | this will allow us to not rely on the modules matching the global qt_framework setting. Change-Id: Ic1dce757ff63d06af54a2428e23a1bbcf1c81ba1 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove workarounds for broken syncqtOswald Buddenhagen2012-06-192-10/+0
| | | | | | | SYNCQT.HEADER_FILES contains qconfig.h just fine nowadays. Change-Id: I52b35d2ac41d772acaef06f3931df75742c867cb Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* automatically add QT_BUILD_FOO_LIB to DEFINESOswald Buddenhagen2012-06-191-0/+5
| | | | | Change-Id: I35d9861e48469eb5cc8824e361450684047e6559 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* remove backwards compatibility hacksOswald Buddenhagen2012-06-192-14/+0
| | | | | | | | | | there won't be terribly many projects relying on it. now's the time to find out for sure ... this reverts commit 3279b07302fde0eb14f9b197c9ad2e14d512817e Change-Id: Id36687ab3bfc7dd5ce35b584621a8f5b3ee00fc9 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* auto-generate QMAKE_PKGCONFIG_REQUIRES and QMAKE_PKGCONFIG_DESCRIPTIONOswald Buddenhagen2012-06-191-0/+6
| | | | | | | less boilerplate, more accuracy Change-Id: I6cc2abd50eafb4901d987c122f10a62ec9ea9da3 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>