aboutsummaryrefslogtreecommitdiffstats
path: root/share
Commit message (Collapse)AuthorAgeFilesLines
...
* Only add /System/Library/Frameworks to default compiler path on DarwinJake Petroules2017-10-232-3/+5
| | | | | Change-Id: Ia9ce8fbe4120d4dac562083b7181dce98128db48 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Check return values of sanitizedListProperty()Joerg Bornemann2017-10-192-6/+18
| | | | | | | | | | | | | This function can return other things than Array objects. Check the return value before passing it to concat. This fixes evaluation errors in the following situation: Product A depends on product B, and - B provides staticlibrary or dynamiclibrary artifacts, and - B does not have a cpp dependency. Change-Id: Id59988ed8846564e0590be6dacdda154a59d0b61 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix detection of binutils locationJoerg Bornemann2017-10-181-1/+1
| | | | | | | | The binutils probe's condition was reversed in a refactoring accident (commit 2856d903). Change-Id: I52f01bd98a75c31fb8cd3d51226aa90b2b1c866d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* GCC support: Remove unused function from JS fileChristian Kandeler2017-10-171-11/+0
| | | | | Change-Id: Id743303203f267418ce68ebd57799b676681a721 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Properly split newlines from gcc and nm output on WindowsJake Petroules2017-10-161-3/+3
| | | | | | | | | | | | This fixes an issue (and probably undiscovered others) where qbs.architecture could be defined as, for example, "avr2\r" due to the fact that output was always split on \n and not on \r\n on Windows. Task-number: QBS-1217 Change-Id: If5d1af238394b950545990318fb12b343aa67072 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Get rid of the ".obj" subdir in our build directoriesJoerg Bornemann2017-10-065-13/+12
| | | | | | | | | | | We claim that build directories are opaque, yet there's a ".obj" subdir where object files are placed. This needlessly adds a level in the build dir structure. Remove the creation and usage of this directory, which is clearly qmake legacy. Change-Id: I3afa6bd61b76941ecebbc2cd8f4109621694e371 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Android: match default NDK behaviorJake Petroules2017-10-042-3/+3
| | | | | | | | | | | | | | | | | | | Unified Headers were introduced in r14 but only became default in r15. So enable them by default if the NDK version is >= r15. Users can manually set the property to use them with NDK r14. Only unified headers are supported in NDK r16+ as the legacy headers are removed. In NDK r16, the default ABI is armv7a and armv5te is deprecated and no longer builds by default. We can't actually check the NDK version in the qbs module due to limitations in Qbs, so we'll just use armv7a as the global default as it has been available and been a suitable default for a long time now. In NDK r17, the default STL will be libc++. Set Android.ndk.appStl to libc++_shared by default in r17 and above. Change-Id: If0a5a60af3ceb483d0614f88dca63c7d66d52b52 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.9 into masterChristian Kandeler2017-10-022-1/+6
|\ | | | | | | Change-Id: Ib391e8d1fc1b14849fe6b962d2e4b466dc46aa79
| * Fix default value of qbs.buildVariantsChristian Kandeler2017-09-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | It should be derived from qbs.buildVariant, not from qbs.defaultBuildVariant. Otherwise, overriding qbs.buildVariant from the command line will have no effect on Darwin platforms, where we always multiplex by qbs.buildVariants. Task-number: QBS-1202 Change-Id: I36655d03a1c0e8b01d7a853111d390685ef64a45 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * GCC: Add support for the AVR architectureChristian Kandeler2017-09-271-0/+5
| | | | | | | | | | | | | | Task-number: QBS-1203 Change-Id: Ide4121f007caf5c7c2ae47bbfd76d66079624081 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Use Module.priority to choose the right cpp module instanceJoerg Bornemann2017-09-279-3/+11
| | | | | | | | | | | | | | | | | | Replace the negating conditions in our cpp instances with module priorities. This removes the need of knowing about all other more specialized instances in more general instances. Change-Id: I511ba11f2cb69ea1458b786a2db4309de8910ebf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge remote-tracking branch 'origin/1.9'Joerg Bornemann2017-09-263-76/+105
|\| | | | | | | Change-Id: I40c1ea23e7351deac715958783158c089e65a02d
| * Remove @param comments from languagePropertyName()Joerg Bornemann2017-09-261-3/+0
| | | | | | | | | | | | | | | | These comments were outdated, and the remaining function arguments are simple enough. Change-Id: I27ee08a8b528f4ac9480bfdc534d4d315b844e70 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Add a PropertyListVariableExpander classJake Petroules2017-09-202-73/+105
| | | | | | | | | | | | | | | | | | | | | | | | This allows us to control exactly what warning message is displayed when the expandPlistEnvironmentVariables function encounters an unknown variable replacement, as opposed to whether or not a hardcoded message is shown. We use this new functionality in the Info.plist processor in order to give a much clearer message what went wrong and where the user might look to correct it. Change-Id: I967ea87c837f9aa2b67bad292e392b356fee8bed Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/1.9' into masterJoerg Bornemann2017-09-112-4/+1
|\| | | | | | | Change-Id: Ib18e50ecdc9be5f9deaebf68414c2082ddafcc8b
| * Fix deployment of dmgbuildJake Petroules2017-09-072-4/+1
| | | | | | | | | | | | | | | | | | Specifically, this fixes use of the module within Qt Creator. It happened to go unnoticed with the command line version of Qbs. Task-number: QBS-1182 Change-Id: I449099c1063595612dac621c735050c46ff866e5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Remove usage of deprecated apkbuilder toolJake Petroules2017-09-083-61/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead, we use aapt and apksigner/jarsigner. For the most part, ApkBuilder is simply a "dumb copy" machine. It takes the initial .ap_ (which is merely a ZIP archive) and adds the dex output and native shared libraries to it (-z and -nf options). We now just put all of these an a properly structured directory and tell aapt to package it. The sole purpose of "debug mode" (-d) is to determine whether to copy gdbserver in, but Qbs already handles this bit by not copying it to the input directory in the first place for release builds. Finally, apkbuilder signs the APK with the Android debug keystore by default. We instead defer that task to the purpose built and more flexible apksigner, or jarsigner from the JDK as a fallback for older versions of the Android SDK Build Tools. No functionality is lost, and this also helps pave the way for adding aar support as this will rely heavily on aapt as well. Note that there are now *two* invocations of aapt. One to generate R.java (which then gets compiled to a .class file and later added to the dex output), and one to actually package the APK from the assets, resources, dex output, native libraries, and manifest. Change-Id: I0fd6a2ea598856d38316a3f0c8ae15a67693ddfb Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Split off JdkVersionProbeJoerg Bornemann2017-09-073-8/+55
| | | | | | | | | | | | | | | | ...because detecting the JDK's location and version in one probe makes it impossible to set java.jdkPath in a profile. Change-Id: Ifc2c87f05021551ef4eb3b3d42785f116cd3c551 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Remove superfluous imports from JdkProbeJoerg Bornemann2017-09-071-3/+0
| | | | | | | | | | | | | | The imports are in the .js file these days. Change-Id: I58a1f3eb96217179e47236e57270e2a09b0cc9ac Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Change type of java.jdkPath from path to stringJoerg Bornemann2017-09-071-1/+1
| | | | | | | | | | | | | | | | The JDK is usually not located below the project root. A path property is not useful here. Change-Id: I2e150d0dfe0e9d925ff242b4fa46a606d750753e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Introduce property cpp.variantSuffixChristian Kandeler2017-09-015-8/+43
| | | | | | | | | | | | | | | | | | | | | | | | This property existed already, but was only used for Darwin. It is now fully functional and has proper platform-specific default values. [ChangeLog] Debug variants of libraries now get a name suffix on Darwin and Windows when multiplexing over qbs.buildVariants. Overriding is possible via cpp.variantSuffix. Change-Id: I5763f9641ead4f6335ab1f1800b9929bf84279e3 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge 1.9 into masterChristian Kandeler2017-09-011-1/+1
|\| | | | | | | Change-Id: I9229fc79aeadfbdfe1b7a4817ad58d42fb0a77a0
| * cpp module: fix detection of ARMv8 (32-bit) architectureJake Petroules2017-08-291-1/+1
| | | | | | | | | | | | | | | | qbs.architecture is now set to "armv8" instead of "arm" for this architecture. Change-Id: I6d33e9c34ae8e617d6d194981f6051b3a09f643a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | AndroidApk: don't error out if no AndroidManifest.xml file existsJake Petroules2017-08-301-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | If the AndroidManifest.xml files does not exist at the *default* file path, simply don't add it to the project. Only if the user explicitly specifies an AndroidManifest.xml do we error out now. This prepares for adding Manifest Merger support, which allows projects to omit an Android manifest file entirely, in which case Qbs will synthesize one from various properties. Change-Id: I7c7ff2290c4d0a02d215ab35228edabfa02c307d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Replace old rule workaround with requiresInputsJake Petroules2017-08-301-1/+3
| | | | | | | | | | Change-Id: Ic38b8bc9297d01f678968278d974b987ed614360 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix handling of gcc's -isystem optionJoerg Bornemann2017-08-301-3/+1
| | | | | | | | | | | | | | | | Even though it works to append the filepath directly to the option, the man page and common sense suggest to use separate arguments. Change-Id: I04312df1bf2f955630b0f105a347e0e9187153c7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix Android NDK probe for NDKs older than r11Joerg Bornemann2017-08-301-10/+25
| | | | | | | | | | | | | | | | | | Make sure we continue after the r11 check fails. Fix the file extension of RELEASE.TXT. Fix the regular expression that failed for "r10e-rc4 (64-bit)". Change-Id: I77806350b6951ca49dfb84b5cb4369e788eeaae9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.9 into masterChristian Kandeler2017-08-283-12/+53
|\| | | | | | | Change-Id: I5320b7c62d6a80089df75c2caca79c15602c01e5
| * mingw: Fix manifest ruleChristian Kandeler2017-08-281-2/+4
| | | | | | | | | | | | | | | | The "inputs" parameter is not an array. Change-Id: I30355eb5e6fad7749a28d15453196f05add8dd17 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * Support MSVC's /std optionChristian Kandeler2017-08-231-2/+23
| | | | | | | | | | | | | | | | | | | | We failed to notice that it was introduced with update 3 of VS 2013. [ChangeLog] The cpp.cxxLanguageVersion property now gets mapped to MSVC's /std option, if applicable. Change-Id: I00d45aecefb2ad27f2b5891d62d591179f2dbeec Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Android: Do not modify libraries in the NDKChristian Kandeler2017-08-221-8/+26
| | | | | | | | | | | | | | | | | | They don't belong to us, and they may not even be writable. Instead, make the strip command create a new file. Task-number: QBS-1176 Change-Id: Ifd387d3fbcf475e662344ceefa6d289b45c4ae16 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Introduce the cpufeatures moduleChristian Kandeler2017-08-284-0/+94
| | | | | | | | | | | | | | | | | | Provides an abstraction for the respective compiler flags. The initial set of properties is the superset of what Qt can configure and what MSVC supports. Change-Id: I1be90361f2f104a55d2a784a69625396680b0713 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Introduce property cpp.discardUnusedDataChristian Kandeler2017-08-253-0/+22
| | | | | | | | | | | | | | | | | | Maps to linker options that strip unneeded symbols or sections. [ChangeLog] Added new property cpp.discardUnusedData. Change-Id: I2f2c7f449e9ac426af859fac4d1e3b941be2a2ab Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | GCC: Do not call escapeLinkerFlags() all the timeChristian Kandeler2017-08-241-54/+37
| | | | | | | | | | | | | | | | It's wasteful and blows up the code. Instead, do it once for all non- stateful linker flags. Change-Id: I56c66acd259f97a8f0b0758d1f186cc699ae0dfa Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Remove java.manifestFileJoerg Bornemann2017-08-211-1/+0
| | | | | | | | | | | | | | This property was scheduled for removal in 1.9 already. Change-Id: I303a89e421575c01911222c9a53386639492a294 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Introduce the vcs moduleChristian Kandeler2017-08-181-0/+153
| | | | | | | | | | | | | | | | | | | | | | | | Every once in a while, users ask how they can best achieve to get access to their current git HEAD, so we provide a module that does it for them. [ChangeLog] Added the vcs module to provide VCS repository information. Git and Subversion are supported initially. Change-Id: Ib425547bf9f04406cda35bf81bcb878f6ea4b9ce Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Organize development-time scripts in a single placeJake Petroules2017-08-161-50/+0
| | | | | | | | | | | | | | Adapt scripts as necessary. Change-Id: Ib5ad4d1b6bc0e47cb6b4994cfb924efc1c3ebdc4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.9 into masterChristian Kandeler2017-08-144-14/+16
|\| | | | | | | Change-Id: I6da76b0a53bf87105c4e7b48724d9760cb68e831
| * Don't set the *_DEPLOYMENT_TARGET environment variables to empty stringJake Petroules2017-08-141-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a partial revert of a7247ff1cde96864243eba3bf5d36d6b5bded2d6, which caused Qbs to set the *_DEPLOYMENT_TARGET environment variables to the empty string if no value was provided for the deployment target. The empty string causes problems for some tools like `strip`, which passes the empty string verbatim to the -*_version_min flag of an internal invocation of `ld`, which is not allowed. Presumably the original intent was to influence the target platform that the compiler would use, but this does not work (at least with current toolchains) if the value is the empty string. It also shouldn't matter since we use -target now, which explicitly states the platform. In that case, the compiler will choose a minimum version internally if one is not explicitly given. Change-Id: I7d9f12bb52bf3289c0c5e3353a928c8cb0be9531 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Do not access the bundle module unconditionallyChristian Kandeler2017-08-021-3/+5
| | | | | | | | | | | | | | | | | | | | It is a mistake that the NativeBinary item currently pulls in the bundle module unconditionally (and also that the module is enabled everywhere). We want to change that. Prepare for the change by removing all unconditional accesses to the module's properties. Change-Id: If57b8222c1a0e2b09c33520882446fa71401f1f1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * cpp module: Fix the GCC compiler path probeChristian Kandeler2017-07-311-1/+1
| | | | | | | | | | | | | | | | | | The toolchain prefix was missing in the compiler file name, which lead to interesting effects, as the probe would potentially detect a wrong toolchain install path. Change-Id: I09fe63c5b9860506fe86ade60a74851d428438c8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Cpp module: Fix mingw's setupBuildEnvironment scriptChristian Kandeler2017-07-311-2/+2
| | | | | | | | | | | | | | The host OS is not necessarily Windows. Change-Id: Ie17349f215cbd3acd252755387a668b794ff2cbe Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix MSVC environmentJoerg Bornemann2017-08-141-1/+1
| | | | | | | | | | | | | | | | Return the right environment from the MsvcProbe. This amends commit d0404591. Change-Id: Iaedb862a07cd9f0c2966ed21714ee7df30927d17 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Automatically determine built-in compiler definesJake Petroules2017-08-119-28/+69
| | | | | | | | | | | | | | | | This provides users with access to the full list of macros defined by the MSVC, GCC, Clang, or MinGW compiler in use. Change-Id: I6e7f6841bbc18aed13958724b268283d97b17320 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Introduce dependency parameter Android.sdk.embedJarJake Petroules2017-08-092-8/+34
| | | | | | | | | | | | | | | | | | | | This can be used to embed dependent JAR files in Android APKs. [ChangeLog][Parameters] Added Android.sdk.embedJar dependency parameter to control embedding of JAR files in Android APKs. Change-Id: I76e71710ba5a891bce7feff13e3bd10887d25530 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Android SDK module: allow product.packageName property to be emptyJake Petroules2017-08-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is useful when adding a dependency on the Android SDK module from a Java JAR file in order to apply the correct Java language versions and other properties necessary for Android JARs. This is also needed for a subsequent patch. Change-Id: I4c66f9259394a707cb86a3b29d3d69078d1380ac Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Don't force -undefined into linker flagsJake Petroules2017-08-032-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | This is important if the user wants to use a different value than the ones supported here. Also, change the default of cpp.allowUnresolvedSymbols to undefined in accordance with the design philosophy that 'undefined' typically results in no flags passed. This will make no difference for user projects since the only platform affected is Darwin and on that platform '-undefined error' is default. Change-Id: I5557da37f4ed8c609e98a6f74ad4b553cae0b817 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add initial support for Universal Windows PlatformJake Petroules2017-08-014-2/+39
|/ | | | | | | | | | | [ChangeLog] Added initial support for the Universal Windows Platform (properties for which API families/partitions are available to code being compiled, and whether compiled binaries require an app container context to load/execute). Change-Id: Idd3e117bbb40bd547ae06c16318b2d2e38f07bb4 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* GCC: Don't assume the presence of sources in static library productsChristian Kandeler2017-07-211-2/+4
| | | | | | Task-number: QBS-1163 Change-Id: I56790b32796f33f7474ffbc95c7f3c86ee8d3c1d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Avoid hardcoded paths to the Windows system drive/root and shell pathJake Petroules2017-07-201-1/+1
| | | | | | Change-Id: Ib85025466b885734a607294245c63d7e361cc20b Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>