aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/cpp/GenericGCC.qbs
Commit message (Collapse)AuthorAgeFilesLines
* deprecate Artifact.fileName in favor of Artifact.filePathJoerg Bornemann2014-07-161-12/+12
| | | | | | | | This property is actually a file path, not a mere name. Task-number: QBS-579 Change-Id: I04e8f03eac97b5f86fe743a4923888a3d2a82c5d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* make the GCC linkerName different from compilerNameJoerg Bornemann2014-07-111-1/+1
| | | | | | | | In a subsequent commit we want to use "gcc" for compilerName but keep "g++" for linkerName. Same for clang. Change-Id: Id179ef9152e6fe3d729505f53fc57e39cb46d99e Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* introduce cpp.entryPointJoerg Bornemann2014-06-021-0/+2
| | | | | | | | | Set cpp.entryPoint to specify the entry point symbol for an executable or dynamic library. Task-number: QBS-602 Change-Id: I83e7c13b4ab7675a1cfa0cc8a2234cba0f850b3d Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* use {input|output}.fileName where appropriateJoerg Bornemann2014-05-201-10/+10
| | | | | | Change-Id: I793210ba6eeeb3a15e78282e14b8e5ad6459c078 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Introduce sensible build directory values.Christian Kandeler2014-05-131-1/+1
| | | | | | | | | | | | | | | | Currently, all products share the same build directory, and rules are responsible for making their artifact file paths unique, which is annoying for module authors and introduces lots of code duplication. Instead, make the product build directories unique and let these directories be the base directory of relative artifact file paths. Also export the top-level build dir as project.buildDirectory to the JavaScript side so rules can refer to that one if necessary. Task-number: QBS-567 Change-Id: I257d37cad01ec6dece3e214799b917149677d80c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix usages of WindowsUtilsJoerg Bornemann2014-04-251-1/+2
| | | | | | | | This amends 661de9d74ee8e74dbe85a5c52563094f63ee03c0. Change-Id: Ie8ed84ceb44046797b7be55536cdbebb62fa0b83 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Refactor JavaScript functions into more sensible locations.Jake Petroules2014-04-141-1/+2
| | | | | | | NOTE: Gcc.removePrefixAndSuffix had no callers and was removed. Change-Id: I9668ba213953698bc438ef3777cef77665a09072 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Pass the product to PathTools functions for proper encapsulation.Jake Petroules2014-04-141-7/+7
| | | | | Change-Id: Idcfbb37830e56b09af56d087b710b7e64fb66c0c Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Move several JS files in the cpp module to imports.Jake Petroules2014-04-141-1/+1
| | | | | | | | | | | | | | | | | | All of these files are generically useful and not specific to C++. - BundleTools/DarwinTools are useful on OS X in general and are used by both the C++ and Interface Builder modules. PathTools also uses DarwinTools. - PathTools is currently only used by the C++ module but contains general filename functions that can be shared across multiple native language modules, like C++, Go, etc. - WindowsUtils contains functions general to the Windows OS. These imports should not yet be documented as further refactoring is necessary. Change-Id: I503773af268eabf8a77ebfc8a5809b9ddcad7af2 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix library dependency orderJoerg Bornemann2014-03-141-3/+3
| | | | | | | | | Autotest from the bug report added. Task-number: QBS-524 Change-Id: I2ef3485db749424339a2ea96900e49fa5d1363d4 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* move import of bundle-tools.js to path-tools.jsJoerg Bornemann2014-02-281-1/+0
| | | | | | | And remove it from where it isn't needed. Change-Id: I51dc33e1dce4fd43b7b3080ef6e277e7c6b9b725 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* move import of windows.js out of GenericGCC.qbsJoerg Bornemann2014-02-281-1/+0
| | | | | Change-Id: I5429af5524cc4adbf889e305cafce55f409624f1 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* use filePath instead of fileName where applicableJoerg Bornemann2014-02-251-16/+16
| | | | | | | | This fixes the recently introduced deprecation warnings. Task-number: QBS-258 Change-Id: I10660270895ec89a1444d596922c22e9658ca3ab Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix typo in smart relinking code.Christian Kandeler2014-02-201-1/+1
| | | | | | | | This one was not noticed in initial testing, as it hits only if the symbol count is the same. Change-Id: Id89cae0a526557a15bd6b809aca64aacfecaef78 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Ignore object addresses and sizes when doing smart relinking.Christian Kandeler2014-02-191-1/+17
| | | | | | | Only symbol name and type are interesting. Change-Id: Ife3373644a06b4aaca9159f5f4f887ddcfc912bd Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Check for dynamic symbols when doing smart re-linking.Christian Kandeler2014-02-171-1/+1
| | | | | | | | | By default, nm lists the symbols from the normal symbol table, which get removed when stripping. As a result, the current implementation fails for release builds. Change-Id: I922623fb24694340a675804ffa13057ce12c70f2 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix order of libraries in gcc link command lineJoerg Bornemann2014-01-301-4/+5
| | | | | | | | | | | Array.uniqueConcat cannot be used to remove duplicates, because the right-most duplicates are removed. To keep the dependencies ordered correctly, we must remove the left-most duplicates instead. Task-number: QBS-503 Change-Id: I5a2834905f650e0921bc42f9cffe15b71128ff7e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* fix duplicate arguments in linker command lineJoerg Bornemann2014-01-291-2/+2
| | | | | | | Task-number: QBS-501 Change-Id: I103041729bcdef35bd62a3ed8ec9190c684d17b5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove ModUtils.uniqueConcat in favor of Array.uniqueConcatJoerg Bornemann2014-01-291-1/+1
| | | | | Change-Id: Ia74e0733006066529f1c257f1f1ebab7446a7142 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Make ModUtils a proper import.Christian Kandeler2014-01-211-1/+1
| | | | | | | | So we don't have to duplicate the file for the qtprofilesetup library. We still consider it internal, though. Change-Id: Iea92b141830bc7af821b13c0270372b784f1feb7 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make it possible to link with unresolved symbols.Christian Kandeler2014-01-151-12/+0
| | | | | | | Task-number: QBS-476 Change-Id: I697cc562b4212a5aa89ba973081571f99c08ba37 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add support for embedding Info.plist into unbundled executable products.Jake Petroules2014-01-091-1/+12
| | | | | | | Task-number: QBS-468 Change-Id: I0b2cbb1b0aba3f73baf17d703eac5ecb687f54a0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Do smart re-linking for GCC-like toolchains.Christian Kandeler2013-12-091-14/+60
| | | | | | | | | | Make a copy of the actual library and link against it. The copy is updated only if the list of global symbols changed. Task-number: QBS-464 Change-Id: I220129c3332c320dcc6c219e88b5fb940f354f74 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Do not list library symlinks as input to linker rule.Christian Kandeler2013-12-051-1/+1
| | | | | | | | There is no reason for that. Change-Id: I76e280c38340a4e5bd528c16b3810605ad88d74f Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Rename Gcc.libraryLinkerFlags() to Gcc.linkerFlags().Christian Kandeler2013-12-031-2/+2
| | | | | | | They are used for applications as well. Change-Id: Ieea025f981ca9c4816dfb0c5eb2618d5914440f9 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2013-11-221-1/+1
|\ | | | | | | | | | | | | | | | | Conflicts: src/lib/language/moduleloader.cpp src/lib/language/tst_language.cpp src/lib/language/tst_language.h Change-Id: Iaaf4e015a234cdd9f51630ad218daec1b83b2a84
| * Let cpp.linkerName default to cpp.compilerName for gcc-like compilers.Christian Kandeler2013-11-201-1/+1
| | | | | | | | | | | | | | | | | | The hardcoded default value might not be the right one in all cases (e.g. mingw). This solution is better than setting the linker name in detect-toolchains, because it will also work with existing profiles. Change-Id: Ib658090218b3191a6f554ea397c689a94c804c61 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/1.1'Joerg Bornemann2013-11-141-2/+4
|\| | | | | | | Change-Id: I7475c4a71c15c83c59400c44ef96d73d15caea58
| * introduce cpp.linkerName and cpp.linkerPathJoerg Bornemann2013-11-131-2/+4
| | | | | | | | | | | | | | Like the compilerName/Path, the linker must be configurable. Change-Id: I50f9511dedbff29dbf55b41b96e213f238be187f Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* | fix deprecation warnings in GCC cpp moduleJoerg Bornemann2013-11-141-3/+3
|/ | | | | | | Use FileTagger.patterns instead of FileTagger.pattern. Change-Id: Ib02d9ef029588dc20337459f0aa514b5dfc6dd90 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add support for compiling assembler files with GCC.Tim Sander2013-11-071-1/+16
| | | | | | Task-number: QBS-437 Change-Id: I7d4b64df16f5a260d41a6d34335fe0cc1a36b712 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix ln command highlighting.Christian Kandeler2013-11-061-1/+1
| | | | | | | We set the wrong property by mistake. Change-Id: I04c9bde3d389dd1b78f09e7feb1505b49e658cb4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add missing description for "ln" commands.Christian Kandeler2013-11-041-0/+3
| | | | | | | | | These missing descriptions are the cause for weird empty lines appearing in Qt Creator's compile output. Change-Id: I67af9adf816496595d5fd3d8bdb372e06aa7c8b1 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove duplicates when transitively adding library dependencies.Christian Kandeler2013-10-291-4/+5
| | | | | | | | | | When not doing that, the number of redundant linker arguments can reach enormous values rather quickly. For instance, the size of Qt Creator's build graph on Linux goes down by 10 per cent due to this change. Task-number: QBS-435 Change-Id: I772fc6a6c90696b5d0a3e0ebd65315cf0773552f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Move a number of cpp module properties to the base module.Jake Petroules2013-10-221-2/+0
| | | | | | | Task-number: QBS-409 Change-Id: I7cd6942626e2543e8e4f75ee10f499d8f1f25e81 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Remove Artifact conditions in GenericGcc module.Christian Kandeler2013-10-211-3/+0
| | | | | | | | | The current implementation is bogus, and the "correct-looking way" (using product.moduleProperty) does not work either. This is another victim of QBS-370. Change-Id: I5d7fa13def32ee4a8aee73755552505b1e9ab28d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add missing "product." prefix in GenericGCC module.Christian Kandeler2013-10-211-1/+1
| | | | | | Change-Id: I96728e0919e596cb08da0eda4643c0894750fe9f Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Change property types from "string" to "path" where applicable.Christian Kandeler2013-09-301-4/+4
| | | | | Change-Id: I09cb3d854d8bd0e95760eae8c0e9a06d760498b4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* fix calling of prepare script functionJoerg Bornemann2013-09-241-5/+5
| | | | | | | | | The scope that contains inputs, outputs and friends was bound to the function object, which is wrong when applying the function later on. Instead, we're passing those variables as function arguments now. Change-Id: I7ad7b6a742091fae889ed57b7c9cbceea4a2ead2 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add support for C, Objective-C and Objective-C++ precompiled headers.Jake Petroules2013-09-191-92/+41
| | | | | | | Task-number: QBS-278 Change-Id: I2999a64168f70aff21007e55d52314433425e84e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* gcc: use an absolute path for the precompiled header includeJoerg Bornemann2013-09-021-13/+4
| | | | | | | Task-number: QBS-378 Change-Id: I024ab50578a02e7c48c8488becabdd2fe003d4f6 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Fix regression caused by 954eba8ec6607e4b8e0afd46845842ae09a4093c.Jake Petroules2013-09-021-0/+1
| | | | | Change-Id: I44f6b6b9ed0f9d4cf23c1d894de3133fea7e5306 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* introduce Rule.auxiliaryInputsJoerg Bornemann2013-07-311-0/+1
| | | | | | | | | | This eliminates the need of putting "hpp" into Module.additionalProductFileTags to produce ui_XXX.h files. Instead, we're making all hpp producing rules dependent on the compiler rule. Change-Id: I345cb3bee20d8080e40ca678d4db822ccd1af92e Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Revert "Add executable suffix to compiler"Orgad Shaneh2013-07-311-1/+1
| | | | | | | | | | | * Refers to target OS instead of host OS * Breaks Creator integration (which uses full path including the suffix) This reverts commit cbabc2a263fafdc0df2b428ace563b6033b5d041 Change-Id: I419ef5b144790208587c0b694a9b5bf2e1b2dacb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add executable suffix to compilerOrgad Shaneh2013-07-291-1/+1
| | | | | Change-Id: Iadff34d9ce3e505f9f80fd7d6a03f51e2b4f012f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Do not use an "as" specifier for URI imports.Christian Kandeler2013-07-051-1/+1
| | | | | | | | Also rename "fileinfo" to "FileInfo" and "probes" to "Probes", to make the default name more conventional. Change-Id: I86ed29e299b8a9c2f40244c098d57a3ec8b68397 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* introduce cpp.compilerWrapperJoerg Bornemann2013-07-021-1/+8
| | | | | | | Task-number: QBS-312 Change-Id: I516443a16d2d485f31bcfc1d646e9b38044a47b6 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove superfluous property declarationJoerg Bornemann2013-06-281-1/+1
| | | | | | | compilerPath is already declared in CppModule.qbs. Change-Id: Id4177f3ec4874d5315c441153f4b9db48bae1da8 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* remove outdated todo commentsJoerg Bornemann2013-06-281-1/+0
| | | | | | | | | We claim that the build dir is opaque and thus don't need to make the object file dir overridable. Change-Id: I42d2cf3398f00356b9e4845a9b8a8d4e27c59cd7 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
* Add dynamic library symlinks as Artifacts of the Rule.Jake Petroules2013-06-281-21/+60
| | | | | Change-Id: I9d83d45ba101563e356f2c3290d3b1a077e06a1c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>