aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Version bumpChristian Kandeler2018-01-181-1/+1
| | | | | Change-Id: Idbdff9bda794ee2e4bda0ff152189915d49274a6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Replace some uses of find_if with any_of and none_ofJoerg Bornemann2018-01-174-14/+21
| | | | | | | | | | Calls to find_if that just compare the result with an end iterator are replaced by calls to any_of or none_of. This leads to shorter, more expressive code. For increased readability, versions of any_of/none_of are provided that operate on whole containers instead of iterators. Change-Id: Ia4ff449176f22f1820635e810724983866d3265e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Qt templates: Remove phonon.qbsChristian Kandeler2018-01-173-31/+0
| | | | | | | This is just a generic module with no special contents. Change-Id: Ifa123d0c3ab07bdaab3252cd96ce6d68f2d74034 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge remote-tracking branch 'origin/1.10'Joerg Bornemann2018-01-1712-9/+146
|\ | | | | | | | | | | | | | | | | Conflicts: src/lib/qtprofilesetup/qtprofilesetup.cpp src/lib/qtprofilesetup/templates/QtModule.qbs src/lib/qtprofilesetup/templates/core.qbs Change-Id: I342608a47f1a90b53eb12cc14fc3ff116063d15f
| * Qt module templates: Fix for Qt 4Christian Kandeler2018-01-155-3/+30
| | | | | | | | | | | | | | | | - Qt.phonon is special. - QT_ARCH has bogus value on Windows. Change-Id: I2f429463acb70a0871f9557c8124e980639e4698 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * GCC: Reorder prefixHeaders and precompiled headersArrigo Zanette2018-01-087-6/+113
| | | | | | | | | | | | | | | | Prefix headers should follow precompiled headers on the gcc command line. Testcase added. Change-Id: I3dfba8cae9c894932acce5c0a67f16d7d072c94b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix id pointer of base itemsJoerg Bornemann2018-01-178-11/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the following example the name of the derived product should be "derived", but it was "base". ---BaseProduct.qbs--- Product { id: baseProduct property string foo: "base" name: baseProduct.foo } --derived.qbs-- BaseProduct { foo: "derived" } The id baseProduct still pointed to the Product item originally imported from BaseProduct.qbs. Fix the item pointers in the base id scopes when handling item inheritance. Task-number: QBS-1016 Task-number: QBS-1262 Change-Id: Id11b98aa6780f8bbbda86fda5a7d11a0e006d889 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Correct the name of the base item variable in code dealing with inheritanceJoerg Bornemann2018-01-151-9/+8
| | | | | | | | | | | | | | | | We now call the base item baseItem instead of inheritorItem. An "inheritor item" would be the item inheriting from the base item. Change-Id: I10b9246764bb11ec25ddc06d9e0d2d9a3bf2eb0b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix setupBuildEnvironment in cli moduleJoerg Bornemann2018-01-151-1/+1
| | | | | | | | | | | | | | | | | | Module properties must be accessed via product. This amends 2ff14a89. Change-Id: Icab99041377c82cbe0ea75786075baff05da9aca Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Generators: Fix some includesChristian Kandeler2018-01-122-4/+1
| | | | | | | | | | | | | | A public header was including a non-public one. Change-Id: I4ee209248cea04e03f618708f5299699e8cc2e3e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Executor: Add missing check for module target artifactChristian Kandeler2018-01-123-0/+9
| | | | | | | | | | | | | | | | Such files are not to be matched against Rule.inputs. This part was forgotten in 8ca922793f. Change-Id: I0a01b3642f4a16c09d189e8c2228205fd0e9962b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Properly take the --dry-run option into account in the "run" commandChristian Kandeler2018-01-124-53/+80
| | | | | | | | | | | | | | Do not try to execute the virtual binary. Change-Id: I19b0a9e7600b33cb42c4ab60f689dd4c3329930b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Install missing header filesChristian Kandeler2018-01-112-2/+20
| | | | | | | | | | Change-Id: I2fb8540ceba602f88d7bae16b09b1d95e5047abf Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | qbs build: Remove exported qbsbuildconfig dependencyChristian Kandeler2018-01-111-1/+0
| | | | | | | | | | | | | | It was left over. Change-Id: I0104b5ef046a0d31b3d780a079f8ecc5c9abb5e6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Remove duplicated script error handling codeJoerg Bornemann2018-01-103-42/+38
| | | | | | | | | | | | | | | | | | Add throwOnEvaluationError to evaluator.h. That function takes a function argument that provides a fallback error location in case the location cannot be extracted from the script error itself. Change-Id: I4ad5d87f5876b9025e7ab4c65285171e05b4d2f6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix include guard commentJoerg Bornemann2018-01-091-1/+1
| | | | | | | | | | Change-Id: Ie427f9d33f9f60e8f4f2a9560a3b705856cd820e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Let the archive product simply depend on all Qbs applicationsJake Petroules2018-01-081-8/+1
| | | | | | | | | | | | | | ...instead of listing each one explicitly. Change-Id: I14bac3372081b3a73855d78e3585fdfa77105751 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Move the Qt library installation out of the archive productJake Petroules2018-01-085-64/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows Qt to be installed as part of Qbs by default instead of only when the archive package is built. Currently, this is enabled by default only for installations of Qt on macOS which are relocatable (have rpath in QT_CONFIG). This way it will not interfere with package managers like Homebrew/MacPorts which do not use rpath - for example, when building against a version of Qt installed by a package manager (which is typically built with absolute sonames), you're assumed to be building software to be packaged by that package manager, and therefore you want to rely on Qt as a "system" package and not copy it locally. It can also be explicitly switched off on the command line using products.qbsqt.deployQt:false This also refactors the logic a bit. Change-Id: I70b46d8fac08d34520ceab18405fa8a672158711 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Simplify some autotestsChristian Kandeler2018-01-084-28/+6
| | | | | | | | | | | | | | ... by using "qbs run" instead of manually executing the applications. Change-Id: I548f7721acff3aac6644944ad7436ad8bcfa1867 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Fix docs regarding help2man - it's not a "Perl module"Jake Petroules2018-01-081-1/+1
| | | | | | | | | | | | | | Amends 8027000 Change-Id: I7f79e93c9160bef626aa49f4af4d507efc12cb77 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | setupRunEnvironment: Heuristic for WindowsChristian Kandeler2018-01-081-2/+13
| | | | | | | | | | | | | | | | | | | | On Windows, we typically link against an import library rather than the actual dll. The dll location is not known to us, but the file is often in a "bin" directory alongside a "lib" directory that contains the import library. In such a case, add the "bin" directory to the PATH. Change-Id: I21103a7ca6267d1d80c2911a19144e583c2eba95 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | ModuleLoader: Add missing base values when merging Export itemsChristian Kandeler2018-01-083-1/+11
| | | | | | | | | | | | | | | | We forgot to do this for alternatives, meaning that in Properties items in Export items, "base" would not be properly set up. Change-Id: Ieafe4933696074469aaf497d4e153ca92fa8f73b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Account for the Qbs docs build now requiring additional dependenciesJake Petroules2018-01-055-4/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Document it, and install the dependencies in the Docker images. For the man page build, the installed version of the qbs app is now used to get the help text rather than the non-installed version, since the non-installed version may not be able to find all library dependencies (like Qt) on some platforms by default. The build also now depends on the other executables as well since their presence affects the output of qbs --help. Change-Id: Ic9896231aa76a346180bf30f7b2483391f5e4ea0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.10 into masterChristian Kandeler2018-01-0510-28/+54
|\| | | | | | | Change-Id: I29a74f96381a1b77c6cb1959547314786690baa4
| * Don't crash when calling methods on empty IMultiplexableContainersJake Petroules2018-01-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | Default-constructed GeneratableProjectData objects may be passed to generator methods as placeholders (in the case of the Visual Studio generator) and calling methods on such objects must not dereference invalid iterators. Task-number: QBS-1257 Change-Id: I1c2bfff015efc98cbfb66d02b497320429b6c6da Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix build with Qt 5.6Christian Kandeler2018-01-031-1/+1
| | | | | | | | | | Change-Id: I6a8ff3557bbaa5e38f3df0f4334e5d0331349565 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * lexyacc test: explicitly declare yylvalJake Petroules2018-01-021-0/+1
| | | | | | | | | | | | | | | | Apparently this is not declared in y.tab.h on all platforms (such as Fedora). Change-Id: I1ae92a8cd415afaa623a34ac7765eb44e5235320 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix possible false negative in reproducibleBuild autotestJake Petroules2018-01-021-4/+6
| | | | | | | | | | | | | | | | | | | | | | We only need to guarantee that the object file contents are equivalent if we explicitly requested a reproducible build. This does NOT imply that a non-reproducible build is *guaranteed* to produce different object files. This is the case on Fedora systems as uncovered by that platform's Qbs packagers. Change-Id: I8e46610f08a8b0c2b59ff84da94e9529c030baba Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix convenience command-line override syntax for qbs propertiesChristian Kandeler2017-12-234-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | Users can write "qbs.xyz" instead of "modules.qbs.xyz", but we only applied that during module prototype loading, meaning that using that syntax (and only that syntax) would not override values set in project files, which was obviously quite confusing to users. Now the two variants behave exactly the same. Task-number: QBS-1244 Change-Id: Ie9c5de1ac42e33205b80335566e0721d61718947 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * Fix scopes of dependency parametersChristian Kandeler2017-12-234-24/+17
| | | | | | | | | | | | | | | | | | | | | | Only the values in Depends items of products had a scope, and that one did not allow to access module instances. Now the scope always is the surrounding item, which should be a sensible one in all contexts. Task-number: QBS-1253 Change-Id: Iedca2d98f82f71887373579f8e4dc91f057eded3 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Mark values that were set up as the defaults of built-in item propertiesChristian Kandeler2018-01-058-15/+24
| | | | | | | | | | | | | | | | | | | | | | There are several contexts in which we need to find out whether a property value of a built-in item is the default one that was created by us when initializing the item. Rather than using heuristics for that, we now set a flag on such values, so we can always get the correct information. Change-Id: Ieb0d87a423d6c6836a2c1d60ccf503fa0b4f801b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Executor: Improve unbuilt products outputChristian Kandeler2018-01-051-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | It is helpful to print a list of unbuilt products after a failed build, but putting each one on a line of its own takes up too much space for larger projects, potentially scrolling the actual error message(s) out of view. Put the product names on one line instead. Also sort them, so users can easily look for a specific product. Change-Id: Ib21b987196350264462940dade2f6af2625a2e81 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Improve the documentation for cpp.separateDebugInformationJake Petroules2018-01-031-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | This adds information about what types of files this property causes Qbs to generate, in order to help user discovery of the property, for example by searching for "pdb" or "dSYM". This change also corrects the default value listed for cpp.separateDebugInformation, by mentioning that it also defaults to true on Apple platforms. Change-Id: Ida51a55a236e823b56cc05e2d8d528614d2a5dda Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Internal::Set: use the size_type that is actually advertisedJake Petroules2018-01-033-16/+18
| | | | | | | | | | | | | | This gives better compatibility with STL anyways. Change-Id: Ie7f25b8ab8ccf4b50c7ad8e35f6dd4b5ca4cc4a2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Doc: Describe constructing the path to the installation target dirLeena Miettinen2018-01-032-2/+47
| | | | | | | | | | | | | | | | Add an example that specifies values for the properties. Task-number: QBS-1237 Change-Id: I645a1b0bca099411035fae98acdbf27e7a942d3d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Doc: Add links to CLI command optionsLeena Miettinen2018-01-035-7/+13
| | | | | | | | | | | | | | | | | | Added targets to the file where the options are documented, to avoid having to use the weird URLs automatically generated by QDoc. Change-Id: I3bffa79b564ffb9582f814124881dcd0cc60aa7d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | ModuleLoader: Run property checks also for Module itemsChristian Kandeler2017-12-234-6/+24
| | | | | | | | | | | | | | | | The comments around the code that skipped these checks made little sense and were likely just outdated. Change-Id: I8ff714a4d717359dd8dde39b55a41d233f84fd08 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge "Merge 1.10 into master"Christian Kandeler2017-12-2213-30/+49
|\ \
| * | Merge 1.10 into masterChristian Kandeler2017-12-2213-30/+49
| |\| | | | | | | | | | Change-Id: Iecddc2722d22d7c15d4b32efd676fa8e7c00e99f
| | * qbs.Environment: Normalize key values on WindowsChristian Kandeler2017-12-224-2/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | The names of environment variables are case-insensitive on Windows. Convert them to upper case when handing out the environment, so that users can count on the names being canonical. Change-Id: Iba2ce768b7cd22270dd2d240d15fc1a78915e3a7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * Fix invalid property assignments in Qt.core templateChristian Kandeler2017-12-211-2/+1
| | | | | | | | | | | | | | | Change-Id: I2de622c33e579b5d4a075aeb832ea0fec250a88a Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * Fix qtquickcompiler support properlyChristian Kandeler2017-12-203-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This partially reverts 193f3f02aa. The findOutput() function was really supposed to take a file name. The fact that file paths could come in was due to a subtle mis-use of JavaScript's String.replace() function, of which you (absurdly) have to use the regex variant if you want to replace more than one occurrence. Task-number: QBS-1261 Change-Id: I8aa90e2c008c1acd7c4a9e445954d7a4d8f2234a Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * cpp module: Init all suffix and prefix properties to the empty stringChristian Kandeler2017-12-195-21/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...rather than leaving them undefined. This way, the string "undefined" will not end up in file names. It's safer to do it this way compared to checking for "undefined" in all the places that could make use of the properties. Due to the semantics of these properties, there is also no value in treating "undefined" in a special way. Task-number: QBS-1265 Change-Id: I6ce7626485baa284a6c782b513740f9d150e18c3 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | | Doc: Add some more links to Item docsLeena Miettinen2017-12-228-20/+27
| | | | | | | | | | | | | | | | | | | | | Mostly replacing the \c command with the \l command. Change-Id: Ifbda6488cff7a249c554c5213054b627bfc687d5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | | Doc: Delete obsolete information about StaticLibrary itemLeena Miettinen2017-12-221-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | There are no additional dependencies or properties for Android targets. Change-Id: I4e790976b54c02c54ba5b6fde070b80340687306 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | | Doc: Use the \QBS macro for the product nameLeena Miettinen2017-12-221-3/+3
| | | | | | | | | | | | | | | Change-Id: I5cf6c06035af309fc8460ae0246af10308eea57b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | | Doc: Add some links to commands and propertiesLeena Miettinen2017-12-224-84/+82
|/ / | | | | | | | | | | | | Usually, replace the \c command with the \l command. Change-Id: I062e9a3f34874e832c972773b88d58225e1621b0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix GccBinaryProbe for mingwChristian Kandeler2017-12-221-0/+2
| | | | | | | | | | Change-Id: I1af7bfa2583417245235363ccc7a7a5fe5f25304 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Process commands: Fix environment merging for some path list variablesChristian Kandeler2017-12-225-6/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | The value of Command.environment is supposed to be added to the general build environment. Variables containing lists should be merged rather than overwritten, as the code has done so far. This is difficult to get right in the general case, as we'd need a way to find out which variables contain lists. For now, use a fixed set of well-known and important path list variables (PATH is particularly relevant). Change-Id: I860302550b8005cbe10ee7d06dcca2b5edfaf475 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Doc: Move external link URL to the external-resources fileLeena Miettinen2017-12-222-1/+6
| | | | | | | | | | Change-Id: I924e1354e870df990accb5f4778b4d34797535c1 Reviewed-by: Jake Petroules <jake.petroules@qt.io>