aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/testdata
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/blackbox/testdata')
-rw-r--r--tests/auto/blackbox/testdata/allowed-values/allowed-values.qbs19
-rw-r--r--tests/auto/blackbox/testdata/allowed-values/modules/a/a.qbs18
-rw-r--r--tests/auto/blackbox/testdata/assembly/assembly.qbs16
-rw-r--r--tests/auto/blackbox/testdata/autotest-timeout/autotests-timeout.qbs12
-rw-r--r--tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs9
-rw-r--r--tests/auto/blackbox/testdata/autotests/autotests.qbs10
-rw-r--r--tests/auto/blackbox/testdata/badInterpreter/badInterpreter.qbs9
-rw-r--r--tests/auto/blackbox/testdata/build-variant-defaults/build-variant-defaults.qbs16
-rw-r--r--tests/auto/blackbox/testdata/build-variant-defaults/main.cpp (renamed from tests/auto/blackbox/testdata/path-probe/main.cpp)0
-rw-r--r--tests/auto/blackbox/testdata/buildenv-change/buildenv-change.qbs2
-rw-r--r--tests/auto/blackbox/testdata/capnproto/bar.capnp8
-rw-r--r--tests/auto/blackbox/testdata/capnproto/baz.capnp8
-rw-r--r--tests/auto/blackbox/testdata/capnproto/capnproto_absolute_import.cpp14
-rw-r--r--tests/auto/blackbox/testdata/capnproto/capnproto_absolute_import.qbs21
-rw-r--r--tests/auto/blackbox/testdata/capnproto/capnproto_cpp.cpp13
-rw-r--r--tests/auto/blackbox/testdata/capnproto/capnproto_cpp.qbs19
-rw-r--r--tests/auto/blackbox/testdata/capnproto/capnproto_relative_import.cpp14
-rw-r--r--tests/auto/blackbox/testdata/capnproto/capnproto_relative_import.qbs19
-rw-r--r--tests/auto/blackbox/testdata/capnproto/conanfile.txt6
-rw-r--r--tests/auto/blackbox/testdata/capnproto/foo.capnp6
-rw-r--r--tests/auto/blackbox/testdata/capnproto/greeter-client.cpp25
-rw-r--r--tests/auto/blackbox/testdata/capnproto/greeter-server.cpp27
-rw-r--r--tests/auto/blackbox/testdata/capnproto/greeter.capnp13
-rw-r--r--tests/auto/blackbox/testdata/capnproto/greeter_cpp.qbs39
-rw-r--r--tests/auto/blackbox/testdata/capnproto/imports/foo.capnp6
-rw-r--r--tests/auto/blackbox/testdata/change-in-imported-file/change-in-imported-file.qbs2
-rw-r--r--tests/auto/blackbox/testdata/change-tracking-and-multiplexing/change-tracking-and-multiplexing.qbs4
-rw-r--r--tests/auto/blackbox/testdata/choose-module-instance/other-searchpath/modules/limerick/generic.qbs2
-rw-r--r--tests/auto/blackbox/testdata/clean/clean.qbs2
-rw-r--r--tests/auto/blackbox/testdata/cli/dotnettest.qbs6
-rw-r--r--tests/auto/blackbox/testdata/command-file/command-file.qbs4
-rw-r--r--tests/auto/blackbox/testdata/compilerDefinesByLanguage/CppDefinesApp.qbs2
-rw-r--r--tests/auto/blackbox/testdata/conanfile-probe/testapp/conanfile-probe-project.qbs23
-rw-r--r--tests/auto/blackbox/testdata/conanfile-probe/testapp/conanfile.py26
-rw-r--r--tests/auto/blackbox/testdata/conanfile-probe/testlib/conanfile.py25
-rw-r--r--tests/auto/blackbox/testdata/concurrent-executor/concurrent-executor.qbs67
-rw-r--r--tests/auto/blackbox/testdata/concurrent-executor/util.js8
-rw-r--r--tests/auto/blackbox/testdata/conditional-filetagger/conditional-filetagger.qbs2
-rw-r--r--tests/auto/blackbox/testdata/configure/configure.qbs7
-rw-r--r--tests/auto/blackbox/testdata/configure/main.cpp2
-rw-r--r--tests/auto/blackbox/testdata/configure/modules/definition/module.qbs2
-rw-r--r--tests/auto/blackbox/testdata/conflicting-property-values/conflicting-property-values.qbs41
-rw-r--r--tests/auto/blackbox/testdata/cpu-features/cpu-features.qbs4
-rw-r--r--tests/auto/blackbox/testdata/cxx-language-version/cxx-language-version.qbs4
-rw-r--r--tests/auto/blackbox/testdata/date-property/date-property.qbs18
-rw-r--r--tests/auto/blackbox/testdata/dependenciesProperty/dependenciesProperty.qbs2
-rw-r--r--tests/auto/blackbox/testdata/dependency-profile-mismatch/dependency-profile-mismatch.qbs12
-rw-r--r--tests/auto/blackbox/testdata/dependency-scanning-loop/dependency-scanning-loop.qbs34
-rw-r--r--tests/auto/blackbox/testdata/dependency-scanning-loop/main.cpp1
-rw-r--r--tests/auto/blackbox/testdata/deprecated-property/deprecated-property.qbs4
-rw-r--r--tests/auto/blackbox/testdata/deprecated-property/modules/themodule/m.qbs8
-rw-r--r--tests/auto/blackbox/testdata/disappeared-profile/modules-dir/modules/m/m.qbs4
-rw-r--r--tests/auto/blackbox/testdata/discard-unused-data/discard-unused-data.qbs6
-rw-r--r--tests/auto/blackbox/testdata/distribution-include-paths/distribution-include-paths.qbs4
-rw-r--r--tests/auto/blackbox/testdata/distribution-include-paths/main.cpp8
-rw-r--r--tests/auto/blackbox/testdata/distribution-include-paths/subdir/gagagugu.h4
-rw-r--r--tests/auto/blackbox/testdata/dot-dot-pc-file/dot-dot-pc-file.qbs7
-rw-r--r--tests/auto/blackbox/testdata/dot-dot-pc-file/libdir/qbs.metatest.module.pc (renamed from tests/auto/blackbox/testdata/fallback-module-provider/libdir/qbsmetatestmodule.pc)2
-rw-r--r--tests/auto/blackbox/testdata/dot-dot-pc-file/main.cpp (renamed from tests/auto/blackbox/testdata/fallback-module-provider/main.cpp)0
-rw-r--r--tests/auto/blackbox/testdata/driver-linker-flags/driver-linker-flags.qbs2
-rw-r--r--tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs4
-rw-r--r--tests/auto/blackbox/testdata/dynamic-library-in-module/modules/thelib/thelib.qbs2
-rw-r--r--tests/auto/blackbox/testdata/dynamic-library-in-module/modules/theotherlib/theotherlib.qbs2
-rw-r--r--tests/auto/blackbox/testdata/dynamic-library-in-module/theapp.qbs8
-rw-r--r--tests/auto/blackbox/testdata/dynamic-project/dynamic-project.qbs3
-rw-r--r--tests/auto/blackbox/testdata/dynamicRuleOutputs/before/flexoptionsreader.js4
-rw-r--r--tests/auto/blackbox/testdata/empty-profile/empty-profile.qbs3
-rw-r--r--tests/auto/blackbox/testdata/empty-profile/main.cpp (renamed from tests/auto/blackbox/testdata/innosetupDependencies/main.c)0
-rw-r--r--tests/auto/blackbox/testdata/enableExceptions/exceptions.qbs2
-rw-r--r--tests/auto/blackbox/testdata/enableExceptions/none.qbs2
-rw-r--r--tests/auto/blackbox/testdata/env-merging/env-merging.qbs8
-rw-r--r--tests/auto/blackbox/testdata/escaped-linker-flags/escaped-linker-flags.qbs5
-rw-r--r--tests/auto/blackbox/testdata/export-rule/export-rule.qbs2
-rw-r--r--tests/auto/blackbox/testdata/exports-cmake/Foo.cpp5
-rw-r--r--tests/auto/blackbox/testdata/exports-cmake/Foo.h16
-rw-r--r--tests/auto/blackbox/testdata/exports-cmake/cmake/CMakeLists.txt7
-rw-r--r--tests/auto/blackbox/testdata/exports-cmake/cmake/main.cpp6
-rw-r--r--tests/auto/blackbox/testdata/exports-cmake/exports-cmake.qbs70
-rw-r--r--tests/auto/blackbox/testdata/exports-cmake/find-cmake.qbs46
-rw-r--r--tests/auto/blackbox/testdata/exports-pkgconfig/exports-pkgconfig.qbs9
-rw-r--r--tests/auto/blackbox/testdata/exports-qbs/consumer.qbs8
-rw-r--r--tests/auto/blackbox/testdata/exports-qbs/lib.qbs8
-rw-r--r--tests/auto/blackbox/testdata/exports-qbs/tool.qbs4
-rw-r--r--tests/auto/blackbox/testdata/external-libs/external-libs.qbs6
-rw-r--r--tests/auto/blackbox/testdata/fallback-module-provider/fallback-module-provider.qbs8
-rw-r--r--tests/auto/blackbox/testdata/fileDependencies/awesomelib/awesome.h2
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/bar.fbs9
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/baz.fbs9
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/conanfile.txt6
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat.c36
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat.cpp22
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_absolute_import.cpp25
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_absolute_import.qbs24
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_c.qbs21
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_cpp.qbs21
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_filename_extension.cpp22
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_filename_extension.qbs23
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_filename_suffix.cpp22
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_filename_suffix.qbs23
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_keep_prefix.cpp26
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_keep_prefix.qbs25
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_relative_import.cpp25
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/flat_relative_import.qbs22
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/foo.fbs8
-rw-r--r--tests/auto/blackbox/testdata/flatbuf/imports/imported_foo/imported_foo.fbs8
-rw-r--r--tests/auto/blackbox/testdata/freedesktop/freedesktop.qbs23
-rw-r--r--tests/auto/blackbox/testdata/freedesktop/main.cpp4
-rw-r--r--tests/auto/blackbox/testdata/freedesktop/myapp.appdata.xml15
-rw-r--r--tests/auto/blackbox/testdata/freedesktop/myapp.desktop4
-rw-r--r--tests/auto/blackbox/testdata/freedesktop/myapp.png (renamed from tests/auto/blackbox/testdata/concurrent-executor/dummy1.input)0
-rw-r--r--tests/auto/blackbox/testdata/generate-linker-map-file/generate-linker-map-file.qbs7
-rw-r--r--tests/auto/blackbox/testdata/generator/generator.qbs4
-rw-r--r--tests/auto/blackbox/testdata/groups-in-modules/groups-in-modules.qbs11
-rw-r--r--tests/auto/blackbox/testdata/groups-in-modules/imports/Helper7Base.qbs8
-rw-r--r--tests/auto/blackbox/testdata/groups-in-modules/modules/helper/helper.qbs2
-rw-r--r--tests/auto/blackbox/testdata/groups-in-modules/modules/helper7/helper7.c1
-rw-r--r--tests/auto/blackbox/testdata/groups-in-modules/modules/helper7/helper7.qbs3
-rw-r--r--tests/auto/blackbox/testdata/grpc/conanfile.txt7
-rw-r--r--tests/auto/blackbox/testdata/grpc/grpc.cpp4
-rw-r--r--tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs17
-rw-r--r--tests/auto/blackbox/testdata/host-os-properties/host-os-properties.qbs16
-rw-r--r--tests/auto/blackbox/testdata/host-os-properties/main.cpp7
-rw-r--r--tests/auto/blackbox/testdata/importing-product/importing-product.qbs2
-rw-r--r--tests/auto/blackbox/testdata/includeLookup/includeLookup.qbs7
-rw-r--r--tests/auto/blackbox/testdata/includeLookup/main.cpp2
-rw-r--r--tests/auto/blackbox/testdata/innosetup/innosetup.qbs22
-rw-r--r--tests/auto/blackbox/testdata/innosetup/test.iss6
-rw-r--r--tests/auto/blackbox/testdata/innosetupDependencies/innosetupDependencies.qbs72
-rw-r--r--tests/auto/blackbox/testdata/innosetupDependencies/test.iss8
-rw-r--r--tests/auto/blackbox/testdata/input-tags-change-tracking/input-tags-change-tracking.qbs4
-rw-r--r--tests/auto/blackbox/testdata/inputs-from-dependencies/inputs-from-dependencies.qbs2
-rw-r--r--tests/auto/blackbox/testdata/install-locations/install-locations.qbs26
-rw-r--r--tests/auto/blackbox/testdata/install-locations/theplugin.cpp3
-rw-r--r--tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs13
-rw-r--r--tests/auto/blackbox/testdata/installable/installable.qbs3
-rw-r--r--tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs2
-rw-r--r--tests/auto/blackbox/testdata/installpackage/installpackage.qbs4
-rw-r--r--tests/auto/blackbox/testdata/invalid-artifact-path/invalid-artifact-path.qbs18
-rw-r--r--tests/auto/blackbox/testdata/invalid-command-property/invalid-command-property.qbs2
-rw-r--r--tests/auto/blackbox/testdata/jsextensions-binaryfile/binaryfile.qbs3
-rw-r--r--tests/auto/blackbox/testdata/jsextensions-file/file.qbs4
-rw-r--r--tests/auto/blackbox/testdata/jsextensions-fileinfo/fileinfo.qbs2
-rw-r--r--tests/auto/blackbox/testdata/jsextensions-host/host.qbs31
-rw-r--r--tests/auto/blackbox/testdata/jsextensions-process/main.cpp10
-rw-r--r--tests/auto/blackbox/testdata/jsextensions-process/process.qbs11
-rw-r--r--tests/auto/blackbox/testdata/last-module-candidate-broken/last-module-candidate-broken.qbs5
-rw-r--r--tests/auto/blackbox/testdata/last-module-candidate-broken/main.cpp (renamed from tests/auto/blackbox/testdata/wixDependencies/main.c)0
-rw-r--r--tests/auto/blackbox/testdata/last-module-candidate-broken/qbs/modules/Foo/Foo1.qbs3
-rw-r--r--tests/auto/blackbox/testdata/last-module-candidate-broken/qbs/modules/Foo/Foo2.qbs2
-rw-r--r--tests/auto/blackbox/testdata/ld/ld.qbs2
-rw-r--r--tests/auto/blackbox/testdata/ld/main.cpp5
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs3
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs14
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs6
-rw-r--r--tests/auto/blackbox/testdata/linker-library-duplicates/setup-run-environment.qbs7
-rw-r--r--tests/auto/blackbox/testdata/linker-module-definition/linker-module-definition.qbs20
-rw-r--r--tests/auto/blackbox/testdata/linker-module-definition/testapp.cpp39
-rw-r--r--tests/auto/blackbox/testdata/linker-module-definition/testlib.cpp41
-rw-r--r--tests/auto/blackbox/testdata/linker-module-definition/testlib.def3
-rw-r--r--tests/auto/blackbox/testdata/linker-variant/linker-variant.qbs2
-rw-r--r--tests/auto/blackbox/testdata/linkerMode/darwin.s6
-rw-r--r--tests/auto/blackbox/testdata/linkerMode/linkerMode.qbs6
-rw-r--r--tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs7
-rw-r--r--tests/auto/blackbox/testdata/list-property-order/modules/lower/lower.qbs2
-rw-r--r--tests/auto/blackbox/testdata/list-property-order/product.qbs1
-rw-r--r--tests/auto/blackbox/testdata/loadablemodule/loadablemodule.qbs14
-rw-r--r--tests/auto/blackbox/testdata/localDeployment/localDeployment.qbs8
-rw-r--r--tests/auto/blackbox/testdata/lsp/lsp.qbs11
-rw-r--r--tests/auto/blackbox/testdata/lsp/modules/Prefix/m1/m1.qbs5
-rw-r--r--tests/auto/blackbox/testdata/lsp/modules/Prefix/m2/m2.qbs2
-rw-r--r--tests/auto/blackbox/testdata/lsp/modules/Prefix/m3/m3.qbs2
-rw-r--r--tests/auto/blackbox/testdata/lsp/modules/m/m.qbs2
-rw-r--r--tests/auto/blackbox/testdata/makefile-generator/app.qbs10
-rw-r--r--tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs9
-rw-r--r--tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs2
-rw-r--r--tests/auto/blackbox/testdata/minimumSystemVersion/fakewindows.qbs2
-rw-r--r--tests/auto/blackbox/testdata/minimumSystemVersion/macappstore.qbs9
-rw-r--r--tests/auto/blackbox/testdata/minimumSystemVersion/specific.qbs19
-rw-r--r--tests/auto/blackbox/testdata/minimumSystemVersion/unspecified-forced.qbs14
-rw-r--r--tests/auto/blackbox/testdata/minimumSystemVersion/unspecified.qbs14
-rw-r--r--tests/auto/blackbox/testdata/module-conditions/module-conditions.qbs2
-rw-r--r--tests/auto/blackbox/testdata/module-providers/main.cpp6
-rw-r--r--tests/auto/blackbox/testdata/module-providers/module-providers.qbs20
-rw-r--r--tests/auto/blackbox/testdata/module-providers/module-providers/mygenerator/provider.qbs31
-rw-r--r--tests/auto/blackbox/testdata/msvc-asm-flags/include/header.inc (renamed from tests/auto/blackbox/testdata/concurrent-executor/dummy2.input)0
-rw-r--r--tests/auto/blackbox/testdata/msvc-asm-flags/msvc-asm-flags.asm8
-rw-r--r--tests/auto/blackbox/testdata/msvc-asm-flags/msvc-asm-flags.qbs6
-rw-r--r--tests/auto/blackbox/testdata/multiplexed-tool/multiplexed-tool.qbs10
-rw-r--r--tests/auto/blackbox/testdata/nested-properties/modules/lowerlevel/lower-level.qbs2
-rw-r--r--tests/auto/blackbox/testdata/no-exported-symbols/no-exported-symbols.qbs2
-rw-r--r--tests/auto/blackbox/testdata/no-such-profile/no-such-profile.qbs2
-rw-r--r--tests/auto/blackbox/testdata/nodejs/hello.qbs8
-rw-r--r--tests/auto/blackbox/testdata/nsis/hello.qbs2
-rw-r--r--tests/auto/blackbox/testdata/nsisDependencies/nsisDependencies.qbs2
-rw-r--r--tests/auto/blackbox/testdata/output-redirection/output-redirection.qbs3
-rw-r--r--tests/auto/blackbox/testdata/overrideProjectProperties/helper_lib.qbs2
-rw-r--r--tests/auto/blackbox/testdata/path-list-in-probe/main.cpp4
-rw-r--r--tests/auto/blackbox/testdata/path-list-in-probe/path-list-in-probe.qbs18
-rw-r--r--tests/auto/blackbox/testdata/path-probe/BaseApp.qbs70
-rw-r--r--tests/auto/blackbox/testdata/path-probe/candidate-filter.qbs6
-rw-r--r--tests/auto/blackbox/testdata/path-probe/environment-paths.qbs10
-rw-r--r--tests/auto/blackbox/testdata/path-probe/mult-files-common-suffixes.qbs10
-rw-r--r--tests/auto/blackbox/testdata/path-probe/mult-files-mult-suffixes.qbs3
-rw-r--r--tests/auto/blackbox/testdata/path-probe/mult-files-mult-variants.qbs3
-rw-r--r--tests/auto/blackbox/testdata/path-probe/mult-files-suffixes.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/mult-files.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/name-filter.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/non-existent-selector.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/non-existent.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/single-file-mult-variants.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/single-file-selector-array.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/single-file-selector.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/single-file-suffixes.qbs3
-rw-r--r--tests/auto/blackbox/testdata/path-probe/single-file.qbs1
-rw-r--r--tests/auto/blackbox/testdata/path-probe/usr/bin/tool (renamed from tests/auto/blackbox/testdata/innosetup/inc/qbsinc.iss)0
-rw-r--r--tests/auto/blackbox/testdata/plugin-dependency/helper1.cpp4
-rw-r--r--tests/auto/blackbox/testdata/plugin-dependency/helper2.cpp4
-rw-r--r--tests/auto/blackbox/testdata/plugin-dependency/plugin-dependency.qbs8
-rw-r--r--tests/auto/blackbox/testdata/plugin-dependency/plugin1.cpp4
-rw-r--r--tests/auto/blackbox/testdata/plugin-dependency/plugin2.cpp4
-rw-r--r--tests/auto/blackbox/testdata/plugin-dependency/plugin3.cpp4
-rw-r--r--tests/auto/blackbox/testdata/plugin-dependency/plugin4.cpp4
-rw-r--r--tests/auto/blackbox/testdata/precompiled-headers-and-redefine/precompiled-headers-and-redefine.qbs2
-rw-r--r--tests/auto/blackbox/testdata/probe-in-exported-module/modules/depmodule/depmodule.qbs2
-rw-r--r--tests/auto/blackbox/testdata/probe-in-exported-module/modules/mymodule/mymodule.qbs2
-rw-r--r--tests/auto/blackbox/testdata/probeProperties/probeProperties.qbs51
-rw-r--r--tests/auto/blackbox/testdata/probes-and-array-properties/modules/mymodule/mymodule.qbs3
-rw-r--r--tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs4
-rw-r--r--tests/auto/blackbox/testdata/product-in-exported-module/modules/m/m.qbs3
-rw-r--r--tests/auto/blackbox/testdata/product-in-exported-module/product-in-exported-module.qbs10
-rw-r--r--tests/auto/blackbox/testdata/productproperties/header.qbs2
-rw-r--r--tests/auto/blackbox/testdata/proper quoting/main.cpp10
-rw-r--r--tests/auto/blackbox/testdata/proper quoting/my static lib.cpp5
-rw-r--r--tests/auto/blackbox/testdata/proper quoting/proper quoting.qbs10
-rw-r--r--tests/auto/blackbox/testdata/property-assignment-on-non-present-module/property-assignment-on-non-present-module.qbs4
-rw-r--r--tests/auto/blackbox/testdata/property-evaluation-context/modules/base/base.qbs4
-rw-r--r--tests/auto/blackbox/testdata/property-evaluation-context/modules/top/top.qbs6
-rw-r--r--tests/auto/blackbox/testdata/property-evaluation-context/property-evaluation-context.qbs34
-rw-r--r--tests/auto/blackbox/testdata/propertyChanges/modules/TestModule/module.qbs2
-rw-r--r--tests/auto/blackbox/testdata/propertyChanges/propertyChanges.qbs4
-rw-r--r--tests/auto/blackbox/testdata/protobuf-library-install/hello.proto8
-rw-r--r--tests/auto/blackbox/testdata/protobuf-library-install/hello/world.proto6
-rw-r--r--tests/auto/blackbox/testdata/protobuf-library-install/protobuf-library.qbs34
-rw-r--r--tests/auto/blackbox/testdata/protobuf/addressbook_cpp.qbs12
-rw-r--r--tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.options3
-rw-r--r--tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.proto38
-rw-r--r--tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.qbs29
-rw-r--r--tests/auto/blackbox/testdata/protobuf/addressbook_objc.qbs10
-rw-r--r--tests/auto/blackbox/testdata/protobuf/conanfile.txt6
-rw-r--r--tests/auto/blackbox/testdata/protobuf/create-proto-library.qbs53
-rw-r--r--tests/auto/blackbox/testdata/protobuf/import-main.cpp4
-rw-r--r--tests/auto/blackbox/testdata/protobuf/import.qbs12
-rw-r--r--tests/auto/blackbox/testdata/protobuf/main.cpp4
-rw-r--r--tests/auto/blackbox/testdata/protobuf/main.m4
-rw-r--r--tests/auto/blackbox/testdata/protobuf/main_nanopb.cpp61
-rw-r--r--tests/auto/blackbox/testdata/protobuf/needs-import-dir-main.cpp4
-rw-r--r--tests/auto/blackbox/testdata/protobuf/needs-import-dir.qbs12
-rw-r--r--tests/auto/blackbox/testdata/qbs-config-import-export/config.json11
-rw-r--r--tests/auto/blackbox/testdata/qbs-config-import-export/config.txt4
-rw-r--r--tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs2
-rw-r--r--tests/auto/blackbox/testdata/remove-duplicate-libs/remove-duplicate-libs.qbs4
-rw-r--r--tests/auto/blackbox/testdata/reproducible-build/reproducible-build.qbs5
-rw-r--r--tests/auto/blackbox/testdata/require-deprecated/blubb.js13
-rw-r--r--tests/auto/blackbox/testdata/require-deprecated/require.qbs21
-rw-r--r--tests/auto/blackbox/testdata/require-deprecated/zort.js11
-rw-r--r--tests/auto/blackbox/testdata/response-files/response-files.qbs10
-rw-r--r--tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication-lib.cpp3
-rw-r--r--tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication-main.cpp5
-rw-r--r--tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication.qbs47
-rw-r--r--tests/auto/blackbox/testdata/rule-with-non-required-inputs/rule-with-non-required-inputs.qbs2
-rw-r--r--tests/auto/blackbox/testdata/run-multiplexed/main.cpp1
-rw-r--r--tests/auto/blackbox/testdata/run-multiplexed/run-multiplexed.qbs21
-rw-r--r--tests/auto/blackbox/testdata/sanitizer/sanitizer.cpp4
-rw-r--r--tests/auto/blackbox/testdata/sanitizer/sanitizer.qbs44
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/app.h1
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/app.qbs4
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/main.cpp3
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-non-dependency/lib/lib.h3
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-non-dependency/other/other.qbs24
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-non-dependency/p.qbs6
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-other-product/app/app.h1
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-other-product/app/app.qbs4
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-other-product/app/main.cpp3
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-other-product/lib/lib.h3
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-other-product/lib/lib.qbs7
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-other-product/other/other.qbs24
-rw-r--r--tests/auto/blackbox/testdata/scan-result-in-other-product/p.qbs7
-rw-r--r--tests/auto/blackbox/testdata/separate-debug-info/separate-debug-info.qbs30
-rw-r--r--tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs25
-rw-r--r--tests/auto/blackbox/testdata/smart-relinking/smart-relinking.qbs2
-rw-r--r--tests/auto/blackbox/testdata/source-artifact-changes/source-artifact-changes.qbs4
-rw-r--r--tests/auto/blackbox/testdata/static-lib-without-sources/static-lib-without-sources.qbs2
-rw-r--r--tests/auto/blackbox/testdata/successive-changes/successive-changes.qbs2
-rw-r--r--tests/auto/blackbox/testdata/symbolLinkMode/lib.cpp4
-rw-r--r--tests/auto/blackbox/testdata/symbolLinkMode/main.cpp8
-rw-r--r--tests/auto/blackbox/testdata/symbolLinkMode/symbolLinkMode.qbs21
-rw-r--r--tests/auto/blackbox/testdata/system-include-paths/main.cpp2
-rw-r--r--tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs5
-rw-r--r--tests/auto/blackbox/testdata/trackAddFile/after/main.cpp2
-rw-r--r--tests/auto/blackbox/testdata/trackAddFile/after/trackAddFile.qbs8
-rw-r--r--tests/auto/blackbox/testdata/trackAddFile/after/zort.cpp2
-rw-r--r--tests/auto/blackbox/testdata/trackAddFile/before/main.cpp2
-rw-r--r--tests/auto/blackbox/testdata/trackAddFile/before/narf.cpp2
-rw-r--r--tests/auto/blackbox/testdata/trackAddFile/before/trackAddFile.qbs8
-rw-r--r--tests/auto/blackbox/testdata/trackExternalProductChanges/trackExternalProductChanges.qbs5
-rw-r--r--tests/auto/blackbox/testdata/trackFileTags/after/main.cpp2
-rw-r--r--tests/auto/blackbox/testdata/trackFileTags/after/trackFileTags.qbs8
-rw-r--r--tests/auto/blackbox/testdata/trackFileTags/before/main.cpp2
-rw-r--r--tests/auto/blackbox/testdata/trackFileTags/before/trackFileTags.qbs8
-rw-r--r--tests/auto/blackbox/testdata/trackProducts/after/zoo.cpp2
-rw-r--r--tests/auto/blackbox/testdata/trackProducts/before/bar.cpp2
-rw-r--r--tests/auto/blackbox/testdata/trackProducts/before/foo.cpp2
-rw-r--r--tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/a/a.qbs5
-rw-r--r--tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/b/b.qbs3
-rw-r--r--tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/c/c.qbs3
-rw-r--r--tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/d/d.qbs4
-rw-r--r--tests/auto/blackbox/testdata/transitive-invalid-dependencies/transitive-invalid-dependencies.qbs11
-rw-r--r--tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs13
-rw-r--r--tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs8
-rw-r--r--tests/auto/blackbox/testdata/vcs/vcstest.qbs8
-rw-r--r--tests/auto/blackbox/testdata/versionscript/versionscript.qbs6
-rw-r--r--tests/auto/blackbox/testdata/whole-archive/whole-archive.qbs3
-rw-r--r--tests/auto/blackbox/testdata/wildcards-and-change-tracking/nonrecursive/subdir1/file.txt0
-rw-r--r--tests/auto/blackbox/testdata/wildcards-and-change-tracking/nonrecursive/subdir2/file.txt0
-rw-r--r--tests/auto/blackbox/testdata/wildcards-and-change-tracking/recursive1/recursive.txt0
-rw-r--r--tests/auto/blackbox/testdata/wildcards-and-change-tracking/recursive2/recursive.txt0
-rw-r--r--tests/auto/blackbox/testdata/wildcards-and-change-tracking/wildcards-and-change-tracking.qbs16
-rw-r--r--tests/auto/blackbox/testdata/wildcards-and-rules/wildcards-and-rules.qbs2
-rw-r--r--tests/auto/blackbox/testdata/wix/ExampleScript.bat1
-rw-r--r--tests/auto/blackbox/testdata/wix/QbsBootstrapper.wxs10
-rw-r--r--tests/auto/blackbox/testdata/wix/QbsSetup.wxs34
-rw-r--r--tests/auto/blackbox/testdata/wix/Qt.wxs5
-rw-r--r--tests/auto/blackbox/testdata/wix/WiXInstallers.qbs38
-rw-r--r--tests/auto/blackbox/testdata/wix/de.wxl1
-rw-r--r--tests/auto/blackbox/testdata/wixDependencies/QbsSetup.wxs37
-rw-r--r--tests/auto/blackbox/testdata/wixDependencies/wixDependencies.qbs67
336 files changed, 2665 insertions, 802 deletions
diff --git a/tests/auto/blackbox/testdata/allowed-values/allowed-values.qbs b/tests/auto/blackbox/testdata/allowed-values/allowed-values.qbs
new file mode 100644
index 000000000..699713770
--- /dev/null
+++ b/tests/auto/blackbox/testdata/allowed-values/allowed-values.qbs
@@ -0,0 +1,19 @@
+Product {
+ Depends { name: "a" }
+ // tests VariantValue
+ property string prop
+ PropertyOptions {
+ name: "prop"
+ description: "Some prop"
+ allowedValues: "foo"
+ }
+ // tests JSValue
+ property string prop2 // setter for otherProp
+ property string otherProp: prop2
+ PropertyOptions {
+ name: "otherProp"
+ description: "Some other prop"
+ allowedValues: "foo"
+ }
+ name: "p"
+}
diff --git a/tests/auto/blackbox/testdata/allowed-values/modules/a/a.qbs b/tests/auto/blackbox/testdata/allowed-values/modules/a/a.qbs
new file mode 100644
index 000000000..2bbcde525
--- /dev/null
+++ b/tests/auto/blackbox/testdata/allowed-values/modules/a/a.qbs
@@ -0,0 +1,18 @@
+Module {
+ // tests VariantValue
+ property stringList prop
+ PropertyOptions {
+ name: "prop"
+ description: "Some prop"
+ allowedValues: ["foo", "bar"]
+ }
+ // tests JSValue
+ property stringList prop2 // setter for otherProp
+ property stringList otherProp: prop2
+ PropertyOptions {
+ name: "otherProp"
+ description: "Some other prop"
+ allowedValues: ["foo", "bar"]
+ }
+}
+
diff --git a/tests/auto/blackbox/testdata/assembly/assembly.qbs b/tests/auto/blackbox/testdata/assembly/assembly.qbs
index f7bd4ecad..9d5584af5 100644
--- a/tests/auto/blackbox/testdata/assembly/assembly.qbs
+++ b/tests/auto/blackbox/testdata/assembly/assembly.qbs
@@ -30,9 +30,9 @@ Project {
name : "testa"
files : [ "testa.s" ]
Depends { name: "cpp" }
- condition: qbs.toolchain.contains("gcc")
+ condition: qbs.toolchain.includes("gcc")
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
}
@@ -40,9 +40,9 @@ Project {
name : "testb"
files : [ "testb.S" ]
Depends { name: "cpp" }
- condition: qbs.toolchain.contains("gcc")
+ condition: qbs.toolchain.includes("gcc")
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
}
@@ -50,9 +50,9 @@ Project {
name : "testc"
files : [ "testc.sx" ]
Depends { name: "cpp" }
- condition: qbs.toolchain.contains("gcc")
+ condition: qbs.toolchain.includes("gcc")
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
}
@@ -63,10 +63,10 @@ Project {
files: ["testd_" + qbs.architecture + ".asm"]
}
Depends { name: "cpp" }
- condition: qbs.toolchain.contains("msvc")
+ condition: qbs.toolchain.includes("msvc")
&& (qbs.architecture === "x86" || qbs.architecture === "x86_64")
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
}
diff --git a/tests/auto/blackbox/testdata/autotest-timeout/autotests-timeout.qbs b/tests/auto/blackbox/testdata/autotest-timeout/autotests-timeout.qbs
index 49ee35d3a..b6094ed22 100644
--- a/tests/auto/blackbox/testdata/autotest-timeout/autotests-timeout.qbs
+++ b/tests/auto/blackbox/testdata/autotest-timeout/autotests-timeout.qbs
@@ -1,12 +1,20 @@
+import qbs.Host
+
Project {
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "testApp"
type: ["application", "autotest"]
Depends { name: "autotest" }
cpp.cxxLanguageVersion: "c++11"
cpp.minimumOsxVersion: "10.8" // For <chrono>
Properties {
- condition: qbs.toolchain.contains("gcc")
+ condition: qbs.toolchain.includes("gcc")
cpp.driverFlags: "-pthread"
}
files: "test-main.cpp"
@@ -14,7 +22,7 @@ Project {
AutotestRunner {
Depends {
name: "cpp" // Make sure build environment is set up properly.
- condition: qbs.hostOS.contains("windows") && qbs.toolchain.contains("gcc")
+ condition: Host.os().includes("windows") && qbs.toolchain.includes("gcc")
}
}
}
diff --git a/tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs b/tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs
index 7ae6cef73..bea74796a 100644
--- a/tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs
+++ b/tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs
@@ -1,7 +1,14 @@
import qbs.FileInfo
+import qbs.Host
Project {
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "helper-app"
type: ["application", "test-helper"]
consoleApplication: true
@@ -23,7 +30,7 @@ Project {
AutotestRunner {
Depends {
name: "cpp" // Make sure build environment is set up properly.
- condition: qbs.hostOS.contains("windows") && qbs.toolchain.contains("gcc")
+ condition: Host.os().includes("windows") && qbs.toolchain.includes("gcc")
}
arguments: FileInfo.joinPaths(qbs.installRoot, qbs.installPrefix, "bin")
auxiliaryInputs: "test-helper"
diff --git a/tests/auto/blackbox/testdata/autotests/autotests.qbs b/tests/auto/blackbox/testdata/autotests/autotests.qbs
index 10334156e..cfb7fc560 100644
--- a/tests/auto/blackbox/testdata/autotests/autotests.qbs
+++ b/tests/auto/blackbox/testdata/autotests/autotests.qbs
@@ -1,9 +1,17 @@
+import qbs.Host
+
Project {
references: ["test1", "test2", "test3"]
AutotestRunner {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
Depends {
name: "cpp" // Make sure build environment is set up properly.
- condition: qbs.hostOS.contains("windows") && qbs.toolchain.contains("gcc")
+ condition: Host.os().includes("windows") && qbs.toolchain.includes("gcc")
}
}
}
diff --git a/tests/auto/blackbox/testdata/badInterpreter/badInterpreter.qbs b/tests/auto/blackbox/testdata/badInterpreter/badInterpreter.qbs
index bef82a003..3c8f64c6c 100644
--- a/tests/auto/blackbox/testdata/badInterpreter/badInterpreter.qbs
+++ b/tests/auto/blackbox/testdata/badInterpreter/badInterpreter.qbs
@@ -1,4 +1,13 @@
+import qbs.Host
+
Project {
+ property bool enabled: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
+
qbsSearchPaths: base.concat(["qbs"])
Product {
diff --git a/tests/auto/blackbox/testdata/build-variant-defaults/build-variant-defaults.qbs b/tests/auto/blackbox/testdata/build-variant-defaults/build-variant-defaults.qbs
new file mode 100644
index 000000000..4015817ca
--- /dev/null
+++ b/tests/auto/blackbox/testdata/build-variant-defaults/build-variant-defaults.qbs
@@ -0,0 +1,16 @@
+CppApplication {
+ property bool validate: {
+ var valid = true;
+ if (qbs.buildVariant === "release") {
+ valid = !qbs.enableDebugCode && !qbs.debugInformation && qbs.optimization === "fast";
+ } else if (qbs.buildVariant === "debug") {
+ valid = qbs.enableDebugCode && qbs.debugInformation && qbs.optimization === "none";
+ } else if (qbs.buildVariant === "profiling") {
+ valid = !qbs.enableDebugCode && qbs.debugInformation && qbs.optimization === "fast";
+ }
+
+ if (!valid)
+ throw "Invalid defaults";
+ return valid;
+ }
+}
diff --git a/tests/auto/blackbox/testdata/path-probe/main.cpp b/tests/auto/blackbox/testdata/build-variant-defaults/main.cpp
index 76e819701..76e819701 100644
--- a/tests/auto/blackbox/testdata/path-probe/main.cpp
+++ b/tests/auto/blackbox/testdata/build-variant-defaults/main.cpp
diff --git a/tests/auto/blackbox/testdata/buildenv-change/buildenv-change.qbs b/tests/auto/blackbox/testdata/buildenv-change/buildenv-change.qbs
index 6c0bcc73e..54005e76a 100644
--- a/tests/auto/blackbox/testdata/buildenv-change/buildenv-change.qbs
+++ b/tests/auto/blackbox/testdata/buildenv-change/buildenv-change.qbs
@@ -3,7 +3,7 @@ CppApplication {
id: dummy
property stringList toolchain: qbs.toolchain
configure: {
- if (toolchain.contains("msvc"))
+ if (toolchain.includes("msvc"))
console.info("msvc");
}
}
diff --git a/tests/auto/blackbox/testdata/capnproto/bar.capnp b/tests/auto/blackbox/testdata/capnproto/bar.capnp
new file mode 100644
index 000000000..a0e8a0f8c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/bar.capnp
@@ -0,0 +1,8 @@
+@0xc967c84bcca70a1d;
+
+using Foo = import "foo.capnp";
+
+struct Bar {
+ foo @0 :Foo.Foo;
+ # Use type "Foo" defined in foo.capnp.
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/baz.capnp b/tests/auto/blackbox/testdata/capnproto/baz.capnp
new file mode 100644
index 000000000..8b2fe4faf
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/baz.capnp
@@ -0,0 +1,8 @@
+@0xc967c84bcca70a1d;
+
+using Foo = import "/imports/foo.capnp";
+
+struct Baz {
+ foo @0 :Foo.Foo;
+ # Use type "Foo" defined in foo.capnp.
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/capnproto_absolute_import.cpp b/tests/auto/blackbox/testdata/capnproto/capnproto_absolute_import.cpp
new file mode 100644
index 000000000..0e8979eec
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/capnproto_absolute_import.cpp
@@ -0,0 +1,14 @@
+#include "baz.capnp.h"
+
+#include <capnp/message.h>
+
+int main()
+{
+ ::capnp::MallocMessageBuilder message;
+
+ auto baz = message.initRoot<Baz>();
+ auto foo = baz.initFoo();
+ foo.setStr("hello");
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/capnproto_absolute_import.qbs b/tests/auto/blackbox/testdata/capnproto/capnproto_absolute_import.qbs
new file mode 100644
index 000000000..4674d6a6a
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/capnproto_absolute_import.qbs
@@ -0,0 +1,21 @@
+import qbs.Host
+
+CppApplication {
+ Depends { name: "capnproto.cpp"; required: false }
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ if (!capnproto.cpp.present)
+ console.info("capnproto is not present");
+ return result && capnproto.cpp.present;
+ }
+ cpp.minimumMacosVersion: "10.8"
+ capnproto.cpp.importPaths: "."
+ files: [
+ "baz.capnp",
+ "capnproto_absolute_import.cpp",
+ "imports/foo.capnp",
+ ]
+ qbs.buildVariant: "release"
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/capnproto_cpp.cpp b/tests/auto/blackbox/testdata/capnproto/capnproto_cpp.cpp
new file mode 100644
index 000000000..b9f729955
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/capnproto_cpp.cpp
@@ -0,0 +1,13 @@
+#include "foo.capnp.h"
+
+#include <capnp/message.h>
+
+int main()
+{
+ ::capnp::MallocMessageBuilder message;
+
+ auto foo = message.initRoot<Foo>();
+ foo.setStr("hello");
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/capnproto_cpp.qbs b/tests/auto/blackbox/testdata/capnproto/capnproto_cpp.qbs
new file mode 100644
index 000000000..9f287e906
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/capnproto_cpp.qbs
@@ -0,0 +1,19 @@
+import qbs.Host
+
+CppApplication {
+ Depends { name: "capnproto.cpp"; required: false }
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ if (!capnproto.cpp.present)
+ console.info("capnproto is not present");
+ return result && capnproto.cpp.present;
+ }
+ cpp.minimumMacosVersion: "10.8"
+ files: [
+ "capnproto_cpp.cpp",
+ "foo.capnp"
+ ]
+ qbs.buildVariant: "release"
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/capnproto_relative_import.cpp b/tests/auto/blackbox/testdata/capnproto/capnproto_relative_import.cpp
new file mode 100644
index 000000000..5116bd3d6
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/capnproto_relative_import.cpp
@@ -0,0 +1,14 @@
+#include "bar.capnp.h"
+
+#include <capnp/message.h>
+
+int main()
+{
+ ::capnp::MallocMessageBuilder message;
+
+ auto bar = message.initRoot<Bar>();
+ auto foo = bar.initFoo();
+ foo.setStr("hello");
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/capnproto_relative_import.qbs b/tests/auto/blackbox/testdata/capnproto/capnproto_relative_import.qbs
new file mode 100644
index 000000000..333a3cdb9
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/capnproto_relative_import.qbs
@@ -0,0 +1,19 @@
+import qbs.Host
+
+CppApplication {
+ Depends { name: "capnproto.cpp"; required: false }
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ if (!capnproto.cpp.present)
+ console.info("capnproto is not present");
+ return result && capnproto.cpp.present;
+ }
+ cpp.minimumMacosVersion: "10.8"
+ files: [
+ "bar.capnp",
+ "capnproto_relative_import.cpp",
+ "foo.capnp",
+ ]
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/conanfile.txt b/tests/auto/blackbox/testdata/capnproto/conanfile.txt
new file mode 100644
index 000000000..7313bb82e
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/conanfile.txt
@@ -0,0 +1,6 @@
+[requires]
+capnproto/1.0.2
+[tool_requires]
+capnproto/1.0.2
+[generators]
+QbsDeps
diff --git a/tests/auto/blackbox/testdata/capnproto/foo.capnp b/tests/auto/blackbox/testdata/capnproto/foo.capnp
new file mode 100644
index 000000000..146a2969f
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/foo.capnp
@@ -0,0 +1,6 @@
+@0x8a2efe67220790be;
+
+struct Foo {
+ num @0 :UInt32;
+ str @1 :Text;
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/greeter-client.cpp b/tests/auto/blackbox/testdata/capnproto/greeter-client.cpp
new file mode 100644
index 000000000..d3fcdb4e3
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/greeter-client.cpp
@@ -0,0 +1,25 @@
+#include "greeter.capnp.h"
+
+#include <capnp/ez-rpc.h>
+
+#include <iostream>
+
+int main(int argc, char *argv[])
+{
+ const char address[] = "localhost:5050";
+ capnp::EzRpcClient client(address);
+ Greeter::Client greeter = client.getMain<Greeter>();
+
+ auto& waitScope = client.getWaitScope();
+
+ for (int i = 0; i < 2; ++i) {
+ auto request = greeter.sayHelloRequest();
+ request.initRequest().setName("hello workd");
+ auto promise = request.send();
+
+ auto response = promise.wait(waitScope);
+ std::cout << response.getResponse().getName().cStr() << std::endl;
+ }
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/greeter-server.cpp b/tests/auto/blackbox/testdata/capnproto/greeter-server.cpp
new file mode 100644
index 000000000..a7f482cc8
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/greeter-server.cpp
@@ -0,0 +1,27 @@
+#include "greeter.capnp.h"
+
+#include <capnp/ez-rpc.h>
+#include <capnp/message.h>
+
+#include <iostream>
+
+class GreeterImpl final: public Greeter::Server
+{
+public:
+ ::kj::Promise<void> sayHello(SayHelloContext context) override
+ {
+ auto response = context.getResults().initResponse();
+ response.setName(context.getParams().getRequest().getName());
+ return kj::READY_NOW;
+ };
+};
+
+int main(int argc, char *argv[])
+{
+ const char address[] = "localhost:5050";
+ capnp::EzRpcServer server(kj::heap<GreeterImpl>(), address);
+
+ auto& waitScope = server.getWaitScope();
+ // Run forever, accepting connections and handling requests.
+ kj::NEVER_DONE.wait(waitScope);
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/greeter.capnp b/tests/auto/blackbox/testdata/capnproto/greeter.capnp
new file mode 100644
index 000000000..b9188f634
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/greeter.capnp
@@ -0,0 +1,13 @@
+@0x85150b117366d14b;
+
+struct HelloRequest {
+ name @0 :Text;
+}
+
+struct HelloResponse {
+ name @0 :Text;
+}
+
+interface Greeter {
+ sayHello @0 (request: HelloRequest) -> (response: HelloResponse);
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/greeter_cpp.qbs b/tests/auto/blackbox/testdata/capnproto/greeter_cpp.qbs
new file mode 100644
index 000000000..5fc5464b1
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/greeter_cpp.qbs
@@ -0,0 +1,39 @@
+import qbs.Host
+
+Project {
+ CppApplication {
+ Depends { name: "capnproto.cpp"; required: false }
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ if (!capnproto.cpp.present)
+ console.info("capnproto is not present");
+ return result && capnproto.cpp.present;
+ }
+ name: "server"
+ consoleApplication: true
+ cpp.minimumMacosVersion: "10.8"
+ // workaround for broken capnproto
+ cpp.staticLibraries: qbs.targetOS.contains("windows") ? "Advapi32" : []
+ capnproto.cpp.useRpc: true
+ files: [
+ "greeter.capnp",
+ "greeter-server.cpp"
+ ]
+ qbs.buildVariant: "release"
+ }
+ CppApplication {
+ Depends { name: "capnproto.cpp"; required: false }
+ name: "client"
+ consoleApplication: true
+ capnproto.cpp.useRpc: true
+ cpp.minimumMacosVersion: "10.8"
+ cpp.staticLibraries: qbs.targetOS.contains("windows") ? "Advapi32" : []
+ files: [
+ "greeter.capnp",
+ "greeter-client.cpp"
+ ]
+ qbs.buildVariant: "release"
+ }
+}
diff --git a/tests/auto/blackbox/testdata/capnproto/imports/foo.capnp b/tests/auto/blackbox/testdata/capnproto/imports/foo.capnp
new file mode 100644
index 000000000..146a2969f
--- /dev/null
+++ b/tests/auto/blackbox/testdata/capnproto/imports/foo.capnp
@@ -0,0 +1,6 @@
+@0x8a2efe67220790be;
+
+struct Foo {
+ num @0 :UInt32;
+ str @1 :Text;
+}
diff --git a/tests/auto/blackbox/testdata/change-in-imported-file/change-in-imported-file.qbs b/tests/auto/blackbox/testdata/change-in-imported-file/change-in-imported-file.qbs
index cf5354268..011eedc91 100644
--- a/tests/auto/blackbox/testdata/change-in-imported-file/change-in-imported-file.qbs
+++ b/tests/auto/blackbox/testdata/change-in-imported-file/change-in-imported-file.qbs
@@ -15,7 +15,7 @@ Product {
prepare: {
var cmd = new JavaScriptCommand();
PrepareHelper.prepare(cmd);
- cmd.description = "Creating output";
+ cmd.description = "creating output";
return [cmd];
}
}
diff --git a/tests/auto/blackbox/testdata/change-tracking-and-multiplexing/change-tracking-and-multiplexing.qbs b/tests/auto/blackbox/testdata/change-tracking-and-multiplexing/change-tracking-and-multiplexing.qbs
index d1215355c..096778cd3 100644
--- a/tests/auto/blackbox/testdata/change-tracking-and-multiplexing/change-tracking-and-multiplexing.qbs
+++ b/tests/auto/blackbox/testdata/change-tracking-and-multiplexing/change-tracking-and-multiplexing.qbs
@@ -1,8 +1,8 @@
StaticLibrary {
name: "l"
- Depends { condition: qbs.targetOS.contains("darwin"); name: "bundle" }
- Properties { condition: qbs.targetOS.contains("darwin"); bundle.isBundle: false }
+ Depends { condition: qbs.targetOS.includes("darwin"); name: "bundle" }
+ Properties { condition: qbs.targetOS.includes("darwin"); bundle.isBundle: false }
multiplexByQbsProperties: ["buildVariants"]
qbs.buildVariants: ["debug", "release"]
diff --git a/tests/auto/blackbox/testdata/choose-module-instance/other-searchpath/modules/limerick/generic.qbs b/tests/auto/blackbox/testdata/choose-module-instance/other-searchpath/modules/limerick/generic.qbs
index 2ebaaac11..bd8e901c7 100644
--- a/tests/auto/blackbox/testdata/choose-module-instance/other-searchpath/modules/limerick/generic.qbs
+++ b/tests/auto/blackbox/testdata/choose-module-instance/other-searchpath/modules/limerick/generic.qbs
@@ -1,3 +1,3 @@
Module {
- condition: !qbs.targetOS.contains("Beatles")
+ condition: !qbs.targetOS.includes("Beatles")
}
diff --git a/tests/auto/blackbox/testdata/clean/clean.qbs b/tests/auto/blackbox/testdata/clean/clean.qbs
index ce3a8eb12..10eca2d41 100644
--- a/tests/auto/blackbox/testdata/clean/clean.qbs
+++ b/tests/auto/blackbox/testdata/clean/clean.qbs
@@ -5,7 +5,7 @@ Project {
name: "dep"
files: "dep.cpp"
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
}
diff --git a/tests/auto/blackbox/testdata/cli/dotnettest.qbs b/tests/auto/blackbox/testdata/cli/dotnettest.qbs
index 9a10b8068..5685be8c4 100644
--- a/tests/auto/blackbox/testdata/cli/dotnettest.qbs
+++ b/tests/auto/blackbox/testdata/cli/dotnettest.qbs
@@ -1,7 +1,7 @@
Project {
Application {
Depends { name: "cli" }
- Depends { name: "HelloWorldModule"; condition: !qbs.toolchain.contains("mono") }
+ Depends { name: "HelloWorldModule"; condition: !qbs.toolchain.includes("mono") }
Depends { name: "NetLib" }
type: "application"
@@ -16,7 +16,7 @@ Project {
// Mono's VB compiler doesn't support modules yet, and if we try with C#, it crashes anyways
NetModule {
- condition: !qbs.toolchain.contains("mono")
+ condition: !qbs.toolchain.includes("mono")
Depends { name: "cli" }
name: "HelloWorldModule"
@@ -37,7 +37,7 @@ Project {
// fill-in for missing NetModule
Group {
- condition: qbs.toolchain.contains("mono")
+ condition: qbs.toolchain.includes("mono")
files: ["Module.cs"]
}
diff --git a/tests/auto/blackbox/testdata/command-file/command-file.qbs b/tests/auto/blackbox/testdata/command-file/command-file.qbs
index 8e25221c5..87dd0e054 100644
--- a/tests/auto/blackbox/testdata/command-file/command-file.qbs
+++ b/tests/auto/blackbox/testdata/command-file/command-file.qbs
@@ -4,7 +4,7 @@ Project {
destinationDirectory: project.buildDirectory
Depends { name: "cpp" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
files: ["lib.cpp"]
@@ -14,6 +14,6 @@ Project {
cpp.libraryPaths: project.buildDirectory
files: ["main.cpp"]
cpp.staticLibraries: ['@' + sourceDirectory + '/'
- + (qbs.toolchain.contains("msvc") ? "list.msvc" : "list.gcc")]
+ + (qbs.toolchain.includes("msvc") ? "list.msvc" : "list.gcc")]
}
}
diff --git a/tests/auto/blackbox/testdata/compilerDefinesByLanguage/CppDefinesApp.qbs b/tests/auto/blackbox/testdata/compilerDefinesByLanguage/CppDefinesApp.qbs
index b205ef2a7..f2da212f6 100644
--- a/tests/auto/blackbox/testdata/compilerDefinesByLanguage/CppDefinesApp.qbs
+++ b/tests/auto/blackbox/testdata/compilerDefinesByLanguage/CppDefinesApp.qbs
@@ -1,7 +1,7 @@
CppApplication {
files: ["app.c"]
- property bool enableObjectiveC: qbs.targetOS.contains("darwin")
+ property bool enableObjectiveC: qbs.targetOS.includes("darwin")
Group {
name: "C/C++"
diff --git a/tests/auto/blackbox/testdata/conanfile-probe/testapp/conanfile-probe-project.qbs b/tests/auto/blackbox/testdata/conanfile-probe/testapp/conanfile-probe-project.qbs
new file mode 100644
index 000000000..adcb2bd9c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/conanfile-probe/testapp/conanfile-probe-project.qbs
@@ -0,0 +1,23 @@
+import qbs.Probes
+import qbs.TextFile
+
+Project {
+ readonly property bool forceFailure: false
+
+ Probes.ConanfileProbe {
+ id: conan
+ conanfilePath: path + "/conanfile.py"
+ options: ({opt: "True", forceFailure: (project.forceFailure ? "True" : "False")})
+ settings: ({os: "AIX"})
+ }
+
+ property var check: {
+ var tf = new TextFile(buildDirectory + "/results.json", TextFile.WriteOnly);
+ var o = {
+ json: conan.json.deps_env_info["ENV_VAR"],
+ dependencies: conan.dependencies["testlib"].libs,
+ generatedFilesPath: conan.generatedFilesPath
+ };
+ tf.write(JSON.stringify(o));
+ }
+}
diff --git a/tests/auto/blackbox/testdata/conanfile-probe/testapp/conanfile.py b/tests/auto/blackbox/testdata/conanfile-probe/testapp/conanfile.py
new file mode 100644
index 000000000..59e40cc80
--- /dev/null
+++ b/tests/auto/blackbox/testdata/conanfile-probe/testapp/conanfile.py
@@ -0,0 +1,26 @@
+from conans import ConanFile
+
+class TestApp(ConanFile):
+ name = "testapp"
+ description = "Our project package, to be inspected by the Qbs ConanfileProbe"
+ license = "none"
+ version = "6.6.6"
+
+ settings = "os"
+ options = {"opt": [True, False], "forceFailure": [True, False]}
+ default_options = {"opt": False, "forceFailure": False}
+
+ requires = "testlib/1.2.3@qbs/testing"
+
+ def configure(self):
+ assert(not self.options.forceFailure)
+ self.options["testlib"].opt = self.options.opt
+
+ def source(self):
+ pass
+
+ def build(self):
+ pass
+
+ def package(self):
+ pass
diff --git a/tests/auto/blackbox/testdata/conanfile-probe/testlib/conanfile.py b/tests/auto/blackbox/testdata/conanfile-probe/testlib/conanfile.py
new file mode 100644
index 000000000..983c22599
--- /dev/null
+++ b/tests/auto/blackbox/testdata/conanfile-probe/testlib/conanfile.py
@@ -0,0 +1,25 @@
+from conans import ConanFile
+
+class Testlib(ConanFile):
+ name = "testlib"
+ description = "Represents an arbitrary package, for instance on bintray"
+ license = "none"
+ version = "1.2.3"
+
+ settings = "os"
+ options = {"opt": [True, False]}
+ default_options = {"opt": False}
+
+ def source(self):
+ pass
+
+ def build(self):
+ pass
+
+ def package(self):
+ pass
+
+ def package_info(self):
+ self.cpp_info.libs = ["testlib1","testlib2"]
+ self.env_info.ENV_VAR = "TESTLIB_ENV_VAL"
+ self.user_info.user_var = "testlib_user_val"
diff --git a/tests/auto/blackbox/testdata/concurrent-executor/concurrent-executor.qbs b/tests/auto/blackbox/testdata/concurrent-executor/concurrent-executor.qbs
deleted file mode 100644
index 802aa1450..000000000
--- a/tests/auto/blackbox/testdata/concurrent-executor/concurrent-executor.qbs
+++ /dev/null
@@ -1,67 +0,0 @@
-import qbs.File
-import qbs.TextFile
-import "util.js" as Utils
-
-Product {
- type: ["final1", "final2"]
- Group {
- files: ["dummy1.input"]
- fileTags: ["input1"]
- }
- Group {
- files: ["dummy2.input"]
- fileTags: ["input2"]
- }
- Rule {
- inputs: ["input1"]
- Artifact {
- filePath: project.buildDirectory + "/dummy1.final"
- fileTags: ["final1"]
- }
- prepare: {
- var cmds = [];
- for (var i = 0; i < 10; ++i) {
- var cmd = new JavaScriptCommand();
- cmd.silent = true;
- cmd.createFile = i == 9;
- cmd.sourceCode = function() {
- if (createFile) {
- console.info("Creating file");
- var file = new TextFile(output.filePath, TextFile.WriteOnly);
- file.close();
- }
- };
- cmds.push(cmd);
- }
- return cmds;
- }
- }
- Rule {
- inputs: ["input2"]
- Artifact {
- filePath: "dummy.intermediate"
- fileTags: ["intermediate"]
- }
- prepare: {
- var cmd = new JavaScriptCommand();
- cmd.silent = true;
- cmd.sourceCode = function() { };
- return [cmd];
- }
- }
- Rule {
- inputs: ["intermediate"]
- outputFileTags: "final2"
- prepare: {
- do
- Utils.sleep(6000);
- while (!File.exists(project.buildDirectory + "/dummy1.final"));
- var cmd = new JavaScriptCommand();
- cmd.silent = true;
- cmd.sourceCode = function() { };
- return [cmd];
- }
- }
-}
-
-
diff --git a/tests/auto/blackbox/testdata/concurrent-executor/util.js b/tests/auto/blackbox/testdata/concurrent-executor/util.js
deleted file mode 100644
index a37a8cbb1..000000000
--- a/tests/auto/blackbox/testdata/concurrent-executor/util.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function sleep(timeInMs)
-{
- var referenceTime = new Date();
- var time = null;
- do {
- time = new Date();
- } while (time - referenceTime < timeInMs);
-}
diff --git a/tests/auto/blackbox/testdata/conditional-filetagger/conditional-filetagger.qbs b/tests/auto/blackbox/testdata/conditional-filetagger/conditional-filetagger.qbs
index 5f0c93e46..f5d7ad676 100644
--- a/tests/auto/blackbox/testdata/conditional-filetagger/conditional-filetagger.qbs
+++ b/tests/auto/blackbox/testdata/conditional-filetagger/conditional-filetagger.qbs
@@ -1,7 +1,7 @@
CppApplication {
name: "theApp"
property bool enableTagger
- files: ["main.custom"];
+ files: ["main.custom"]
FileTagger {
condition: enableTagger
patterns: ["*.custom"]
diff --git a/tests/auto/blackbox/testdata/configure/configure.qbs b/tests/auto/blackbox/testdata/configure/configure.qbs
index af5638dde..be0e65247 100644
--- a/tests/auto/blackbox/testdata/configure/configure.qbs
+++ b/tests/auto/blackbox/testdata/configure/configure.qbs
@@ -1,6 +1,13 @@
import qbs.FileInfo
+import qbs.Host
Project {
+ property bool enabled: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
property string name: 'configure'
qbsSearchPaths: '.'
Product {
diff --git a/tests/auto/blackbox/testdata/configure/main.cpp b/tests/auto/blackbox/testdata/configure/main.cpp
index c7213c768..a91914f73 100644
--- a/tests/auto/blackbox/testdata/configure/main.cpp
+++ b/tests/auto/blackbox/testdata/configure/main.cpp
@@ -30,7 +30,7 @@
int main()
{
- printf("%s..\n", TEXT);
+ std::printf("%s..\n", TEXT);
return 0;
}
diff --git a/tests/auto/blackbox/testdata/configure/modules/definition/module.qbs b/tests/auto/blackbox/testdata/configure/modules/definition/module.qbs
index 1d647faa2..6a1dbe67d 100644
--- a/tests/auto/blackbox/testdata/configure/modules/definition/module.qbs
+++ b/tests/auto/blackbox/testdata/configure/modules/definition/module.qbs
@@ -12,7 +12,7 @@ Module {
var cmd;
var args;
var p = path;
- if (targetOS.contains("windows")) {
+ if (targetOS.includes("windows")) {
cmd = windowsShellPath;
args = ["/c", "date", "/t"];
} else {
diff --git a/tests/auto/blackbox/testdata/conflicting-property-values/conflicting-property-values.qbs b/tests/auto/blackbox/testdata/conflicting-property-values/conflicting-property-values.qbs
new file mode 100644
index 000000000..23b6ee5a3
--- /dev/null
+++ b/tests/auto/blackbox/testdata/conflicting-property-values/conflicting-property-values.qbs
@@ -0,0 +1,41 @@
+Project {
+ Product {
+ name: "low"
+ Export { property string prop: "low"; property string prop2: "low" }
+ }
+ Product {
+ name: "higher1"
+ Export { Depends { name: "low" } low.prop: "higher1" }
+ }
+ Product {
+ name: "higher2"
+ Export { Depends { name: "low" } low.prop: "higher2" }
+ }
+ Product {
+ name: "highest1"
+ Export {
+ Depends { name: "low" }
+ Depends { name: "higher1" }
+ Depends { name: "higher2" }
+ low.prop: "highest1"
+ low.prop2: "highest"
+ }
+ }
+ Product {
+ name: "highest2"
+ Export {
+ Depends { name: "low" }
+ Depends { name: "higher1" }
+ Depends { name: "higher2" }
+ low.prop: "highest2"
+ low.prop2: "highest"
+ }
+ }
+ Product {
+ name: "toplevel"
+ Depends { name: "highest1" }
+ Depends { name: "highest2" }
+ low.prop: name
+ property bool dummy: { console.info("final prop value: " + low.prop); }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/cpu-features/cpu-features.qbs b/tests/auto/blackbox/testdata/cpu-features/cpu-features.qbs
index 0bfdaceba..36e805516 100644
--- a/tests/auto/blackbox/testdata/cpu-features/cpu-features.qbs
+++ b/tests/auto/blackbox/testdata/cpu-features/cpu-features.qbs
@@ -8,7 +8,7 @@ CppApplication {
property bool dummy: {
console.info("is x86: " + (qbs.architecture === "x86"));
console.info("is x64: " + (qbs.architecture === "x86_64"));
- console.info("is gcc: " + qbs.toolchain.contains("gcc"));
- console.info("is msvc: " + qbs.toolchain.contains("msvc"));
+ console.info("is gcc: " + qbs.toolchain.includes("gcc"));
+ console.info("is msvc: " + qbs.toolchain.includes("msvc"));
}
}
diff --git a/tests/auto/blackbox/testdata/cxx-language-version/cxx-language-version.qbs b/tests/auto/blackbox/testdata/cxx-language-version/cxx-language-version.qbs
index 322ded85c..24c37951c 100644
--- a/tests/auto/blackbox/testdata/cxx-language-version/cxx-language-version.qbs
+++ b/tests/auto/blackbox/testdata/cxx-language-version/cxx-language-version.qbs
@@ -13,10 +13,10 @@ CppApplication {
var isEvenNewerMsvc;
var isOlderMsvc;
var isGcc;
- if (toolchain.contains("clang-cl")) {
+ if (toolchain.includes("clang-cl")) {
isEvenNewerMsvc = true;
isNewerMsvc = true;
- } else if (toolchain.contains("msvc")) {
+ } else if (toolchain.includes("msvc")) {
if (compilerVersion >= "19.12.25831")
isEvenNewerMsvc = true;
if (compilerVersion >= "18.00.30723")
diff --git a/tests/auto/blackbox/testdata/date-property/date-property.qbs b/tests/auto/blackbox/testdata/date-property/date-property.qbs
new file mode 100644
index 000000000..ffd584802
--- /dev/null
+++ b/tests/auto/blackbox/testdata/date-property/date-property.qbs
@@ -0,0 +1,18 @@
+Product {
+ type: "date"
+ property var theDate: new Date(1999, 11, 31);
+ Rule {
+ multiplex: true
+ Artifact { filePath: "dummy"; fileTags: "date" }
+ prepare: {
+ var cmd = new JavaScriptCommand;
+ cmd.silent = true;
+ cmd.sourceCode = function() {
+ var d = product.theDate;
+ console.info("The stored date was " + d.getFullYear() + '-' + (d.getMonth() + 1) + '-'
+ + d.getDate());
+ };
+ return cmd;
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/dependenciesProperty/dependenciesProperty.qbs b/tests/auto/blackbox/testdata/dependenciesProperty/dependenciesProperty.qbs
index 735bfffbc..681ffeab0 100644
--- a/tests/auto/blackbox/testdata/dependenciesProperty/dependenciesProperty.qbs
+++ b/tests/auto/blackbox/testdata/dependenciesProperty/dependenciesProperty.qbs
@@ -18,7 +18,7 @@ Project {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = 'generate ' + FileInfo.fileName(output.filePath);
+ cmd.description = 'generating ' + FileInfo.fileName(output.filePath);
cmd.highlight = 'codegen';
cmd.sourceCode = function() {
file = new TextFile(output.filePath, TextFile.WriteOnly);
diff --git a/tests/auto/blackbox/testdata/dependency-profile-mismatch/dependency-profile-mismatch.qbs b/tests/auto/blackbox/testdata/dependency-profile-mismatch/dependency-profile-mismatch.qbs
deleted file mode 100644
index 8a6f733c0..000000000
--- a/tests/auto/blackbox/testdata/dependency-profile-mismatch/dependency-profile-mismatch.qbs
+++ /dev/null
@@ -1,12 +0,0 @@
-Project {
- property string mainProfile
- property string depProfile
- Product {
- name: "dep"
- qbs.profiles: [project.depProfile]
- }
- Product {
- name: "main"
- Depends { name: "dep"; profiles: [project.mainProfile]; }
- }
-}
diff --git a/tests/auto/blackbox/testdata/dependency-scanning-loop/dependency-scanning-loop.qbs b/tests/auto/blackbox/testdata/dependency-scanning-loop/dependency-scanning-loop.qbs
new file mode 100644
index 000000000..ac8e7258c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/dependency-scanning-loop/dependency-scanning-loop.qbs
@@ -0,0 +1,34 @@
+import qbs.FileInfo
+import qbs.TextFile
+
+CppApplication {
+ name: "app"
+ cpp.includePaths: buildDirectory
+ Group {
+ files: "main.cpp"
+ fileTags: ["cpp", "custom.in"]
+ }
+ Rule {
+ inputs: "custom.in"
+ Artifact {
+ filePath: FileInfo.completeBaseName(input.filePath) + ".h"
+ fileTags: "hpp"
+ }
+ Artifact {
+ filePath: "custom.txt"
+ fileTags: "whatever"
+ }
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.description = "generating " + outputs.hpp[0].fileName;
+ cmd.sourceCode = function() {
+ var f = new TextFile(outputs.hpp[0].filePath, TextFile.WriteOnly);
+ f.writeLine("int main() {}");
+ f.close();
+ f = new TextFile(outputs.whatever[0].filePath, TextFile.WriteOnly);
+ f.close();
+ }
+ return cmd;
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/dependency-scanning-loop/main.cpp b/tests/auto/blackbox/testdata/dependency-scanning-loop/main.cpp
new file mode 100644
index 000000000..5e8dda41b
--- /dev/null
+++ b/tests/auto/blackbox/testdata/dependency-scanning-loop/main.cpp
@@ -0,0 +1 @@
+#include <main.h>
diff --git a/tests/auto/blackbox/testdata/deprecated-property/deprecated-property.qbs b/tests/auto/blackbox/testdata/deprecated-property/deprecated-property.qbs
index a8efb97b5..7d1550312 100644
--- a/tests/auto/blackbox/testdata/deprecated-property/deprecated-property.qbs
+++ b/tests/auto/blackbox/testdata/deprecated-property/deprecated-property.qbs
@@ -1,8 +1,6 @@
-import qbs
-
Product {
Depends { name: "themodule" }
themodule.newProp: true
- themodule.oldProp: false
+ themodule.expiringProp: false
themodule.veryOldProp: false
}
diff --git a/tests/auto/blackbox/testdata/deprecated-property/modules/themodule/m.qbs b/tests/auto/blackbox/testdata/deprecated-property/modules/themodule/m.qbs
index 106ed4135..58164e918 100644
--- a/tests/auto/blackbox/testdata/deprecated-property/modules/themodule/m.qbs
+++ b/tests/auto/blackbox/testdata/deprecated-property/modules/themodule/m.qbs
@@ -1,8 +1,8 @@
-import qbs
+import qbs.Environment
Module {
property bool newProp
- property bool oldProp
+ property bool expiringProp
property bool forgottenProp
PropertyOptions {
@@ -10,9 +10,9 @@ Module {
description: "Use this, it's good!"
}
PropertyOptions {
- name: "oldProp"
+ name: "expiringProp"
description: "Use newProp instead."
- removalVersion: "99.9"
+ removalVersion: Environment.getEnv("REMOVAL_VERSION")
}
PropertyOptions {
name: "veryOldProp"
diff --git a/tests/auto/blackbox/testdata/disappeared-profile/modules-dir/modules/m/m.qbs b/tests/auto/blackbox/testdata/disappeared-profile/modules-dir/modules/m/m.qbs
index 3e1747ade..fd755ce86 100644
--- a/tests/auto/blackbox/testdata/disappeared-profile/modules-dir/modules/m/m.qbs
+++ b/tests/auto/blackbox/testdata/disappeared-profile/modules-dir/modules/m/m.qbs
@@ -10,7 +10,7 @@ Module {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating " + output.fileName + " with " + product.m.p1;
+ cmd.description = "creating " + output.fileName + " with " + product.m.p1;
cmd.sourceCode = function() {};
return [cmd];
}
@@ -24,7 +24,7 @@ Module {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating " + output.fileName + " with " + product.m.p2;
+ cmd.description = "creating " + output.fileName + " with " + product.m.p2;
cmd.sourceCode = function() {};
return [cmd];
}
diff --git a/tests/auto/blackbox/testdata/discard-unused-data/discard-unused-data.qbs b/tests/auto/blackbox/testdata/discard-unused-data/discard-unused-data.qbs
index fdd3aa1f7..367bb665c 100644
--- a/tests/auto/blackbox/testdata/discard-unused-data/discard-unused-data.qbs
+++ b/tests/auto/blackbox/testdata/discard-unused-data/discard-unused-data.qbs
@@ -4,9 +4,9 @@ CppApplication {
files: "main.cpp"
- Depends { name: "bundle"; condition: qbs.targetOS.contains("darwin") }
+ Depends { name: "bundle"; condition: qbs.targetOS.includes("darwin") }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
@@ -17,7 +17,7 @@ CppApplication {
var cmd = new JavaScriptCommand();
cmd.silent = true;
cmd.sourceCode = function() {
- console.info("is Darwin: " + product.qbs.targetOS.contains("darwin"));
+ console.info("is Darwin: " + product.qbs.targetOS.includes("darwin"));
console.info("---" + product.cpp.nmPath + "---");
}
return [cmd];
diff --git a/tests/auto/blackbox/testdata/distribution-include-paths/distribution-include-paths.qbs b/tests/auto/blackbox/testdata/distribution-include-paths/distribution-include-paths.qbs
new file mode 100644
index 000000000..3e6fb9b00
--- /dev/null
+++ b/tests/auto/blackbox/testdata/distribution-include-paths/distribution-include-paths.qbs
@@ -0,0 +1,4 @@
+CppApplication {
+ files: ["main.cpp"]
+ cpp.distributionIncludePaths: ["subdir"]
+}
diff --git a/tests/auto/blackbox/testdata/distribution-include-paths/main.cpp b/tests/auto/blackbox/testdata/distribution-include-paths/main.cpp
new file mode 100644
index 000000000..10d376a31
--- /dev/null
+++ b/tests/auto/blackbox/testdata/distribution-include-paths/main.cpp
@@ -0,0 +1,8 @@
+#include <cstdio>
+#include <gagagugu.h>
+
+int main()
+{
+ printStuff();
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/distribution-include-paths/subdir/gagagugu.h b/tests/auto/blackbox/testdata/distribution-include-paths/subdir/gagagugu.h
new file mode 100644
index 000000000..b951d8855
--- /dev/null
+++ b/tests/auto/blackbox/testdata/distribution-include-paths/subdir/gagagugu.h
@@ -0,0 +1,4 @@
+void printStuff()
+{
+ puts("alalalalonglonglilonglonglong");
+}
diff --git a/tests/auto/blackbox/testdata/dot-dot-pc-file/dot-dot-pc-file.qbs b/tests/auto/blackbox/testdata/dot-dot-pc-file/dot-dot-pc-file.qbs
new file mode 100644
index 000000000..60c4ea2bc
--- /dev/null
+++ b/tests/auto/blackbox/testdata/dot-dot-pc-file/dot-dot-pc-file.qbs
@@ -0,0 +1,7 @@
+CppApplication {
+ name: "p"
+ Depends { name: "qbs-metatest-module"; }
+ files: "main.cpp"
+ moduleProviders.qbspkgconfig.libDirs: "libdir"
+ qbsModuleProviders: "qbspkgconfig"
+}
diff --git a/tests/auto/blackbox/testdata/fallback-module-provider/libdir/qbsmetatestmodule.pc b/tests/auto/blackbox/testdata/dot-dot-pc-file/libdir/qbs.metatest.module.pc
index ae4daba89..c00fd26d6 100644
--- a/tests/auto/blackbox/testdata/fallback-module-provider/libdir/qbsmetatestmodule.pc
+++ b/tests/auto/blackbox/testdata/dot-dot-pc-file/libdir/qbs.metatest.module.pc
@@ -1,4 +1,4 @@
-Name: qbsmetatestmodule
+Name: qbs.metatest.module
Description: just a test
Version: 0.0.1
diff --git a/tests/auto/blackbox/testdata/fallback-module-provider/main.cpp b/tests/auto/blackbox/testdata/dot-dot-pc-file/main.cpp
index 442b755bf..442b755bf 100644
--- a/tests/auto/blackbox/testdata/fallback-module-provider/main.cpp
+++ b/tests/auto/blackbox/testdata/dot-dot-pc-file/main.cpp
diff --git a/tests/auto/blackbox/testdata/driver-linker-flags/driver-linker-flags.qbs b/tests/auto/blackbox/testdata/driver-linker-flags/driver-linker-flags.qbs
index 5de0fe053..57f096494 100644
--- a/tests/auto/blackbox/testdata/driver-linker-flags/driver-linker-flags.qbs
+++ b/tests/auto/blackbox/testdata/driver-linker-flags/driver-linker-flags.qbs
@@ -8,7 +8,7 @@ CppApplication {
Probe {
id: toolchainProbe
- condition: qbs.toolchain.contains("gcc")
+ condition: qbs.toolchain.includes("gcc")
configure: {
console.info("toolchain is GCC-like");
found = true;
diff --git a/tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs b/tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs
index 1acf606dc..c95d88052 100644
--- a/tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs
+++ b/tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs
@@ -1,8 +1,8 @@
DynamicLibrary {
Depends { name: "cpp" }
- Depends { name: "bundle"; condition: qbs.targetOS.contains("darwin") }
+ Depends { name: "bundle"; condition: qbs.targetOS.includes("darwin") }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
cpp.minimumMacosVersion: "10.7" // For -rpath
}
diff --git a/tests/auto/blackbox/testdata/dynamic-library-in-module/modules/thelib/thelib.qbs b/tests/auto/blackbox/testdata/dynamic-library-in-module/modules/thelib/thelib.qbs
index 30f87337d..3059fa5e9 100644
--- a/tests/auto/blackbox/testdata/dynamic-library-in-module/modules/thelib/thelib.qbs
+++ b/tests/auto/blackbox/testdata/dynamic-library-in-module/modules/thelib/thelib.qbs
@@ -13,7 +13,7 @@ Module {
}
Group {
name: "thelib dll import"
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
files: FileInfo.joinPaths(product.thelib.baseDir, "thelib.lib")
fileTags: ["dynamiclibrary_import"]
filesAreTargets: true
diff --git a/tests/auto/blackbox/testdata/dynamic-library-in-module/modules/theotherlib/theotherlib.qbs b/tests/auto/blackbox/testdata/dynamic-library-in-module/modules/theotherlib/theotherlib.qbs
index 1eb1e01a5..f387feb80 100644
--- a/tests/auto/blackbox/testdata/dynamic-library-in-module/modules/theotherlib/theotherlib.qbs
+++ b/tests/auto/blackbox/testdata/dynamic-library-in-module/modules/theotherlib/theotherlib.qbs
@@ -13,7 +13,7 @@ Module {
}
Group {
name: "theotherlib dll import"
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
files: FileInfo.joinPaths(product.theotherlib.baseDir, "theotherlib.lib")
fileTags: ["dynamiclibrary_import"]
filesAreTargets: true
diff --git a/tests/auto/blackbox/testdata/dynamic-library-in-module/theapp.qbs b/tests/auto/blackbox/testdata/dynamic-library-in-module/theapp.qbs
index b9149d091..5ea8cef23 100644
--- a/tests/auto/blackbox/testdata/dynamic-library-in-module/theapp.qbs
+++ b/tests/auto/blackbox/testdata/dynamic-library-in-module/theapp.qbs
@@ -1,5 +1,13 @@
+import qbs.Host
+
Project {
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "theapp"
cpp.minimumMacosVersion: "10.7" // For -rpath
Depends { name: "theotherlib" }
diff --git a/tests/auto/blackbox/testdata/dynamic-project/dynamic-project.qbs b/tests/auto/blackbox/testdata/dynamic-project/dynamic-project.qbs
index 166648c80..5acdb8892 100644
--- a/tests/auto/blackbox/testdata/dynamic-project/dynamic-project.qbs
+++ b/tests/auto/blackbox/testdata/dynamic-project/dynamic-project.qbs
@@ -17,13 +17,12 @@ Project
var srcDir = FileInfo.joinPaths(sourceDir, "src");
var projectDirs = File.directoryEntries(srcDir, File.Dirs | File.NoDotAndDotDot);
var list = [];
- for (it in projectDirs) {
+ for (var it = 0; it < projectDirs.length; ++it) {
var name = projectDirs[it];
var productSrcDir = FileInfo.joinPaths(srcDir, name);
var productFilePath = FileInfo.joinPaths(tempDir, name + ".qbs");
var file = new TextFile(productFilePath, TextFile.WriteOnly);
try {
- file.writeLine("import qbs");
file.writeLine("CppApplication");
file.writeLine("{");
file.writeLine("\tfiles: [ \"" + productSrcDir + "/*.cpp\" ]");
diff --git a/tests/auto/blackbox/testdata/dynamicRuleOutputs/before/flexoptionsreader.js b/tests/auto/blackbox/testdata/dynamicRuleOutputs/before/flexoptionsreader.js
index bd596fbca..b925effcf 100644
--- a/tests/auto/blackbox/testdata/dynamicRuleOutputs/before/flexoptionsreader.js
+++ b/tests/auto/blackbox/testdata/dynamicRuleOutputs/before/flexoptionsreader.js
@@ -35,7 +35,7 @@
**
****************************************************************************/
-// needs import qbs.TextFile
+var TextFile = require("qbs.TextFile");
function readFlexOptions(filePath)
{
@@ -82,7 +82,7 @@ function readFlexOptions(filePath)
}
}
- var tf = new TextFile(input.filePath);
+ var tf = new TextFile(filePath);
var line;
var optrex = /^%option\s+(.*$)/;
var res;
diff --git a/tests/auto/blackbox/testdata/empty-profile/empty-profile.qbs b/tests/auto/blackbox/testdata/empty-profile/empty-profile.qbs
new file mode 100644
index 000000000..da7536315
--- /dev/null
+++ b/tests/auto/blackbox/testdata/empty-profile/empty-profile.qbs
@@ -0,0 +1,3 @@
+CppApplication {
+ files: ["main.cpp"]
+}
diff --git a/tests/auto/blackbox/testdata/innosetupDependencies/main.c b/tests/auto/blackbox/testdata/empty-profile/main.cpp
index 76e819701..76e819701 100644
--- a/tests/auto/blackbox/testdata/innosetupDependencies/main.c
+++ b/tests/auto/blackbox/testdata/empty-profile/main.cpp
diff --git a/tests/auto/blackbox/testdata/enableExceptions/exceptions.qbs b/tests/auto/blackbox/testdata/enableExceptions/exceptions.qbs
index 9a75043a8..e1d09f7e0 100644
--- a/tests/auto/blackbox/testdata/enableExceptions/exceptions.qbs
+++ b/tests/auto/blackbox/testdata/enableExceptions/exceptions.qbs
@@ -1,5 +1,5 @@
CppApplication {
files: ["main.cpp"]
cpp.treatWarningsAsErrors: true
- cpp.defines: qbs.toolchain.contains("msvc") && !cpp.enableExceptions ? ["FORCE_FAIL_VS"] : []
+ cpp.defines: qbs.toolchain.includes("msvc") && !cpp.enableExceptions ? ["FORCE_FAIL_VS"] : []
}
diff --git a/tests/auto/blackbox/testdata/enableExceptions/none.qbs b/tests/auto/blackbox/testdata/enableExceptions/none.qbs
index 8fb052476..439ea3037 100644
--- a/tests/auto/blackbox/testdata/enableExceptions/none.qbs
+++ b/tests/auto/blackbox/testdata/enableExceptions/none.qbs
@@ -2,7 +2,7 @@ CppApplication {
files: ["emptymain.cpp"]
Group {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
files: ["empty.m", "empty.mm"]
}
}
diff --git a/tests/auto/blackbox/testdata/env-merging/env-merging.qbs b/tests/auto/blackbox/testdata/env-merging/env-merging.qbs
index 6edeca444..eb681f36b 100644
--- a/tests/auto/blackbox/testdata/env-merging/env-merging.qbs
+++ b/tests/auto/blackbox/testdata/env-merging/env-merging.qbs
@@ -1,3 +1,5 @@
+import qbs.Host
+
Project {
CppApplication {
name: "tool"
@@ -5,6 +7,12 @@ Project {
}
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "p"
type: "custom"
Depends { name: "tool" }
diff --git a/tests/auto/blackbox/testdata/escaped-linker-flags/escaped-linker-flags.qbs b/tests/auto/blackbox/testdata/escaped-linker-flags/escaped-linker-flags.qbs
index f48bf8d1f..b4fb0df4d 100644
--- a/tests/auto/blackbox/testdata/escaped-linker-flags/escaped-linker-flags.qbs
+++ b/tests/auto/blackbox/testdata/escaped-linker-flags/escaped-linker-flags.qbs
@@ -10,4 +10,9 @@ CppApplication {
cpp.linkerFlags: ["-s"]
}
files: ["main.cpp"]
+ Probe {
+ id: checker
+ property bool isUnixGcc: qbs.toolchain.contains("gcc") && !qbs.targetOS.contains("macos")
+ configure: { console.info("is gcc: " + isUnixGcc); }
+ }
}
diff --git a/tests/auto/blackbox/testdata/export-rule/export-rule.qbs b/tests/auto/blackbox/testdata/export-rule/export-rule.qbs
index 29899e728..455ccba0d 100644
--- a/tests/auto/blackbox/testdata/export-rule/export-rule.qbs
+++ b/tests/auto/blackbox/testdata/export-rule/export-rule.qbs
@@ -13,7 +13,7 @@ Project {
Export {
Depends { name: "cpp" }
property bool enableTagger
- property string description: "Creating C++ source file.";
+ property string description: "creating C++ source file.";
FileTagger {
condition: enableTagger
patterns: ["*.blubb"]
diff --git a/tests/auto/blackbox/testdata/exports-cmake/Foo.cpp b/tests/auto/blackbox/testdata/exports-cmake/Foo.cpp
new file mode 100644
index 000000000..ea334f9af
--- /dev/null
+++ b/tests/auto/blackbox/testdata/exports-cmake/Foo.cpp
@@ -0,0 +1,5 @@
+#include "Foo.h"
+int someFooWork()
+{
+ return 42;
+}
diff --git a/tests/auto/blackbox/testdata/exports-cmake/Foo.h b/tests/auto/blackbox/testdata/exports-cmake/Foo.h
new file mode 100644
index 000000000..2f279f577
--- /dev/null
+++ b/tests/auto/blackbox/testdata/exports-cmake/Foo.h
@@ -0,0 +1,16 @@
+#ifndef FOO_H
+#define FOO_H
+#include <dllexport.h>
+
+#ifdef FOO_LIB_STATIC
+#define FOO_LIB_EXPORT
+#else
+#ifdef FOO_LIB
+#define FOO_LIB_EXPORT DLL_EXPORT
+#else
+#define FOO_LIB_EXPORT DLL_IMPORT
+#endif
+#endif
+
+FOO_LIB_EXPORT int someFooWork();
+#endif // FOO_H
diff --git a/tests/auto/blackbox/testdata/exports-cmake/cmake/CMakeLists.txt b/tests/auto/blackbox/testdata/exports-cmake/cmake/CMakeLists.txt
new file mode 100644
index 000000000..d874e0e92
--- /dev/null
+++ b/tests/auto/blackbox/testdata/exports-cmake/cmake/CMakeLists.txt
@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(qbs_import)
+
+find_package(Bar PATHS REQUIRED)
+add_executable(Consumer main.cpp)
+target_link_libraries(Consumer Bar)
diff --git a/tests/auto/blackbox/testdata/exports-cmake/cmake/main.cpp b/tests/auto/blackbox/testdata/exports-cmake/cmake/main.cpp
new file mode 100644
index 000000000..1a1fa90ec
--- /dev/null
+++ b/tests/auto/blackbox/testdata/exports-cmake/cmake/main.cpp
@@ -0,0 +1,6 @@
+#include <Foo.h>
+
+int main()
+{
+ return someFooWork();
+}
diff --git a/tests/auto/blackbox/testdata/exports-cmake/exports-cmake.qbs b/tests/auto/blackbox/testdata/exports-cmake/exports-cmake.qbs
new file mode 100644
index 000000000..6464af705
--- /dev/null
+++ b/tests/auto/blackbox/testdata/exports-cmake/exports-cmake.qbs
@@ -0,0 +1,70 @@
+import qbs.FileInfo
+
+Project {
+ property bool isStatic: false
+ property bool isBundle: false
+
+ property string headersInstallDir: "include"
+
+ Product {
+ name: "DllExport"
+ Depends { name: "Exporter.cmake" }
+ Group {
+ name: "API headers"
+ files: ["../dllexport.h"]
+ qbs.install: true
+ qbs.installDir: project.headersInstallDir
+ }
+ Group {
+ fileTagsFilter: ["Exporter.cmake.package"]
+ qbs.install: true
+ qbs.installDir: "/lib/cmake/DllExport"
+ }
+ Export {
+ Depends { name: "cpp" }
+ cpp.includePaths: FileInfo.joinPaths(
+ exportingProduct.qbs.installRoot,
+ exportingProduct.qbs.installPrefix,
+ project.headersInstallDir)
+ }
+ }
+
+ Library {
+ type: project.isStatic ? "staticlibrary" : "dynamiclibrary"
+ Depends { name: "cpp" }
+ Depends { name: "DllExport" }
+ Depends { name: "Exporter.cmake" }
+ Exporter.cmake.packageName: "Bar"
+ name: "Foo"
+ files: ["Foo.cpp"]
+ version: "1.2.3"
+ cpp.includePaths: "."
+ cpp.defines: "FOO_LIB"
+ Group {
+ name: "API headers"
+ files: ["Foo.h"]
+ qbs.install: true
+ qbs.installDir: project.headersInstallDir
+ }
+ install: true
+ installImportLib: true
+ Group {
+ fileTagsFilter: ["Exporter.cmake.package"]
+ qbs.install: true
+ qbs.installDir: "/lib/cmake/Bar"
+ }
+ Export {
+ Depends { name: "cpp" }
+ cpp.includePaths: FileInfo.joinPaths(
+ exportingProduct.qbs.installRoot,
+ exportingProduct.qbs.installPrefix,
+ project.headersInstallDir)
+ cpp.defines: ["FOO=1"].concat(project.isStatic ? ["FOO_LIB_STATIC"] : [])
+ cpp.commonCompilerFlags: "-DOTHER_DEF=1"
+ cpp.linkerFlags: exportingProduct.qbs.toolchain.contains("gcc") ? ["-s"] : []
+ }
+
+ Depends { name: 'bundle' }
+ bundle.isBundle: qbs.targetOS.includes("darwin") && project.isBundle
+ }
+}
diff --git a/tests/auto/blackbox/testdata/exports-cmake/find-cmake.qbs b/tests/auto/blackbox/testdata/exports-cmake/find-cmake.qbs
new file mode 100644
index 000000000..52f388966
--- /dev/null
+++ b/tests/auto/blackbox/testdata/exports-cmake/find-cmake.qbs
@@ -0,0 +1,46 @@
+import qbs.Probes
+
+Product {
+ Depends { name: "cpp" }
+
+ Probes.BinaryProbe {
+ id: cmakeProbe
+ names: "cmake"
+ }
+
+ Probes.BinaryProbe {
+ id: ninjaProbe
+ names: ["ninja"]
+ }
+
+ property bool test: {
+ var data = {
+ cmakeFound: cmakeProbe.found,
+ cmakeFilePath: cmakeProbe.filePath,
+ crossCompiling: qbs.targetPlatform !== qbs.hostPlatform,
+ installPrefix: qbs.installPrefix
+ };
+ data.buildEnv = {}
+ Object.assign(data.buildEnv, cpp.buildEnv); // deep copy buildEnv from a probe
+ if (qbs.toolchain.includes("gcc")) {
+ data.buildEnv["CC"] = cpp.cCompilerName;
+ data.buildEnv["CXX"] = cpp.cxxCompilerName;
+ } else {
+ data.buildEnv["CC"] = cpp.compilerName;
+ data.buildEnv["CXX"] = cpp.compilerName;
+ }
+
+ if (ninjaProbe.found) {
+ data.generator = "Ninja";
+ } else {
+ if (qbs.toolchain.includes("msvc")) {
+ data.generator = "NMake Makefiles"
+ } else if (qbs.toolchain.includes("mingw")) {
+ data.generator = "MinGW Makefiles";
+ } else if (qbs.toolchain.includes("gcc")) {
+ data.generator = "Unix Makefiles";
+ }
+ }
+ console.info("---" + JSON.stringify(data) + "---");
+ }
+}
diff --git a/tests/auto/blackbox/testdata/exports-pkgconfig/exports-pkgconfig.qbs b/tests/auto/blackbox/testdata/exports-pkgconfig/exports-pkgconfig.qbs
index 96d1cabb9..23331f93f 100644
--- a/tests/auto/blackbox/testdata/exports-pkgconfig/exports-pkgconfig.qbs
+++ b/tests/auto/blackbox/testdata/exports-pkgconfig/exports-pkgconfig.qbs
@@ -1,4 +1,5 @@
import qbs.FileInfo
+import qbs.Host
Project {
Product {
@@ -42,14 +43,14 @@ Project {
Depends { name: "Qt.core"; required: false }
Depends { name: "helper1" }
Depends { name: "helper3" }
- property bool someCondition: qbs.hostOS.contains("windows") // hostOS for easier testing
+ property bool someCondition: Host.os().includes("windows") // hostOS for easier testing
property bool someOtherCondition: someCondition
Properties {
condition: !someOtherCondition
cpp.driverFlags: ["-pthread"]
}
- cpp.defines: product.name
- cpp.includePaths: [FileInfo.joinPaths(product.qbs.installPrefix, "include")]
+ cpp.defines: exportingProduct.name
+ cpp.includePaths: [FileInfo.joinPaths(exportingProduct.qbs.installPrefix, "include")]
Qt.core.mocName: "muck"
}
@@ -94,7 +95,7 @@ Project {
Depends { name: "cpp" }
cpp.includePaths: [
"/opt/thesecondlib/include",
- product.sourceDirectory,
+ exportingProduct.sourceDirectory,
importingProduct.buildDirectory
]
property string hurz: importingProduct.name
diff --git a/tests/auto/blackbox/testdata/exports-qbs/consumer.qbs b/tests/auto/blackbox/testdata/exports-qbs/consumer.qbs
index 02affdfe8..073504400 100644
--- a/tests/auto/blackbox/testdata/exports-qbs/consumer.qbs
+++ b/tests/auto/blackbox/testdata/exports-qbs/consumer.qbs
@@ -1,4 +1,12 @@
+import qbs.Host
+
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "consumer"
qbsSearchPaths: "default/install-root/usr/qbs"
property string outTag: "cpp"
diff --git a/tests/auto/blackbox/testdata/exports-qbs/lib.qbs b/tests/auto/blackbox/testdata/exports-qbs/lib.qbs
index 53a472dbb..01f89a221 100644
--- a/tests/auto/blackbox/testdata/exports-qbs/lib.qbs
+++ b/tests/auto/blackbox/testdata/exports-qbs/lib.qbs
@@ -16,7 +16,7 @@ DynamicLibrary {
cpp.defines: ["MYLIB_BUILD"]
cpp.variantSuffix: qbs.buildVariant === "debug" ? "d" : ""
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
files: ["mylib.cpp"]
@@ -38,8 +38,8 @@ DynamicLibrary {
Export {
Depends { name: "cpp" }
- property string includeDir: product.sourceDirectory
- property var config: product.config
+ property string includeDir: exportingProduct.sourceDirectory
+ property var config: exportingProduct.config
Properties {
condition: true
cpp.includePaths: [includeDir]
@@ -52,7 +52,7 @@ DynamicLibrary {
condition: true
prefixMapping: [{
prefix: includeDir,
- replacement: FileInfo.joinPaths(qbs.installPrefix, product.headersInstallDir)
+ replacement: FileInfo.joinPaths(exportingProduct.qbs.installPrefix, exportingProduct.headersInstallDir)
}]
}
}
diff --git a/tests/auto/blackbox/testdata/exports-qbs/tool.qbs b/tests/auto/blackbox/testdata/exports-qbs/tool.qbs
index 655597cf7..d3626bead 100644
--- a/tests/auto/blackbox/testdata/exports-qbs/tool.qbs
+++ b/tests/auto/blackbox/testdata/exports-qbs/tool.qbs
@@ -33,7 +33,7 @@ CppApplication {
}
Export {
- property stringList toolTags: product.toolTags
+ property stringList toolTags: exportingProduct.toolTags
property stringList outTags: [importingProduct.outTag]
property var helper2Obj: Helper2
Rule {
@@ -49,7 +49,7 @@ CppApplication {
prepare: {
var cmd = new Command(explicitlyDependsOn["MyTool.tool"][0].filePath,
[input.filePath, output.filePath]);
- cmd.description = input.fileName + " -> " + output.fileName;
+ cmd.description = "compiling" + input.fileName + " to " + output.fileName;
return [cmd];
}
}
diff --git a/tests/auto/blackbox/testdata/external-libs/external-libs.qbs b/tests/auto/blackbox/testdata/external-libs/external-libs.qbs
index 619f40867..326bf5dae 100644
--- a/tests/auto/blackbox/testdata/external-libs/external-libs.qbs
+++ b/tests/auto/blackbox/testdata/external-libs/external-libs.qbs
@@ -1,13 +1,13 @@
import qbs.TextFile
Project {
- property string libDir: sourceDirectory + "/libs"
+ property string libDir: buildDirectory + "/libs"
StaticLibrary {
name: "lib1"
destinationDirectory: project.libDir
Depends { name: "cpp" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
files: ["lib1.cpp"]
@@ -18,7 +18,7 @@ Project {
Depends { name: "cpp" }
Depends { name: "lib1" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
files: ["lib2.cpp"]
diff --git a/tests/auto/blackbox/testdata/fallback-module-provider/fallback-module-provider.qbs b/tests/auto/blackbox/testdata/fallback-module-provider/fallback-module-provider.qbs
deleted file mode 100644
index a798e15b3..000000000
--- a/tests/auto/blackbox/testdata/fallback-module-provider/fallback-module-provider.qbs
+++ /dev/null
@@ -1,8 +0,0 @@
-CppApplication {
- name: "p"
- property bool fallbacksEnabled
- Depends { name: "pkgconfig"; required: false }
- Depends { name: "qbsmetatestmodule"; required: false; enableFallback: fallbacksEnabled }
- property bool dummy: { console.info("pkg-config present: " + pkgconfig.present); }
- files: "main.cpp"
-}
diff --git a/tests/auto/blackbox/testdata/fileDependencies/awesomelib/awesome.h b/tests/auto/blackbox/testdata/fileDependencies/awesomelib/awesome.h
index 4633f9746..8f1f25087 100644
--- a/tests/auto/blackbox/testdata/fileDependencies/awesomelib/awesome.h
+++ b/tests/auto/blackbox/testdata/fileDependencies/awesomelib/awesome.h
@@ -31,6 +31,6 @@
void doAwesomeStuff()
{
- printf(magnificentMessage);
+ std::printf(magnificentMessage);
}
diff --git a/tests/auto/blackbox/testdata/flatbuf/bar.fbs b/tests/auto/blackbox/testdata/flatbuf/bar.fbs
new file mode 100644
index 000000000..47148f800
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/bar.fbs
@@ -0,0 +1,9 @@
+include "foo.fbs";
+
+namespace QbsTest;
+
+table Bar {
+ foo:Foo;
+}
+
+root_type Bar;
diff --git a/tests/auto/blackbox/testdata/flatbuf/baz.fbs b/tests/auto/blackbox/testdata/flatbuf/baz.fbs
new file mode 100644
index 000000000..312183710
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/baz.fbs
@@ -0,0 +1,9 @@
+include "imported_foo/imported_foo.fbs";
+
+namespace QbsTest;
+
+table Baz {
+ foo:Foo;
+}
+
+root_type Baz;
diff --git a/tests/auto/blackbox/testdata/flatbuf/conanfile.txt b/tests/auto/blackbox/testdata/flatbuf/conanfile.txt
new file mode 100644
index 000000000..188da5897
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/conanfile.txt
@@ -0,0 +1,6 @@
+[requires]
+flatbuffers/24.3.25
+[tool_requires]
+flatbuffers/24.3.25
+[generators]
+QbsDeps
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat.c b/tests/auto/blackbox/testdata/flatbuf/flat.c
new file mode 100644
index 000000000..55e25e556
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat.c
@@ -0,0 +1,36 @@
+#include "foo_builder.h"
+
+#include <stdio.h>
+
+#undef ns
+#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(QbsTest, x) // Specified in the schema.
+
+#define test_assert(x) do { if (!(x)) { assert(0); return -1; }} while (0)
+
+int main()
+{
+ void *buffer = NULL;
+ size_t size = 0;
+
+ flatcc_builder_t builder;
+ flatcc_builder_init(&builder);
+
+ flatbuffers_string_ref_t name = flatbuffers_string_create_str(&builder, "John Doe");
+
+ ns(Foo_create_as_root(&builder, name, 42));
+
+ buffer = flatcc_builder_finalize_aligned_buffer(&builder, &size);
+
+ ns(Foo_table_t) foo = ns(Foo_as_root(buffer));
+
+ test_assert(strcmp(ns(Foo_name(foo)), "John Doe") == 0);
+ test_assert(ns(Foo_count(foo)) == 42);
+
+ free(buffer);
+
+ flatcc_builder_clear(&builder);
+
+ printf("The FlatBuffer was successfully created and accessed!\n");
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat.cpp b/tests/auto/blackbox/testdata/flatbuf/flat.cpp
new file mode 100644
index 000000000..56332bacd
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat.cpp
@@ -0,0 +1,22 @@
+#include "foo_generated.h"
+
+#include <iostream>
+
+using namespace QbsTest;
+
+int main()
+{
+ flatbuffers::FlatBufferBuilder builder;
+ auto name = builder.CreateString("John Doe");
+ auto newFoo = QbsTest::CreateFoo(builder, name, 42);
+ builder.Finish(newFoo);
+
+ auto foo = GetFoo(builder.GetBufferPointer());
+
+ assert(foo->name()->str() == "John Doe");
+ assert(foo->count() == 42);
+
+ std::cout << "The FlatBuffer was successfully created and accessed!" << std::endl;
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_absolute_import.cpp b/tests/auto/blackbox/testdata/flatbuf/flat_absolute_import.cpp
new file mode 100644
index 000000000..b7c43d8a5
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_absolute_import.cpp
@@ -0,0 +1,25 @@
+#include "baz_generated.h"
+
+#include <iostream>
+
+using namespace QbsTest;
+
+int main()
+{
+ flatbuffers::FlatBufferBuilder builder;
+
+ auto name = builder.CreateString("John Doe");
+ auto newFoo = QbsTest::CreateFoo(builder, name, 42);
+
+ auto newBaz = QbsTest::CreateBaz(builder, newFoo);
+ builder.Finish(newBaz);
+
+ auto baz = GetBaz(builder.GetBufferPointer());
+
+ assert(baz->foo()->name()->str() == "John Doe");
+ assert(baz->foo()->count() == 42);
+
+ std::cout << "The FlatBuffer was successfully created and accessed!" << std::endl;
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_absolute_import.qbs b/tests/auto/blackbox/testdata/flatbuf/flat_absolute_import.qbs
new file mode 100644
index 000000000..888bfd4e3
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_absolute_import.qbs
@@ -0,0 +1,24 @@
+CppApplication {
+ Depends { name: "flatbuf.cpp"; required: false }
+
+ consoleApplication: true
+ condition: {
+ var result = qbs.targetPlatform === qbs.hostPlatform;
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasFlatbuffers;
+ }
+ property bool hasFlatbuffers: {
+ console.info("has flatbuffers: " + flatbuf.cpp.present);
+ return flatbuf.cpp.present;
+ }
+
+ flatbuf.cpp.importPaths: "imports/"
+
+ files: [
+ "flat_absolute_import.cpp",
+ "baz.fbs",
+ "imports/imported_foo/imported_foo.fbs",
+ ]
+ qbsModuleProviders: "conan"
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_c.qbs b/tests/auto/blackbox/testdata/flatbuf/flat_c.qbs
new file mode 100644
index 000000000..6d365252e
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_c.qbs
@@ -0,0 +1,21 @@
+CppApplication {
+ Depends { name: "flatbuffers.c"; required: false }
+
+ consoleApplication: true
+ condition: {
+ var result = qbs.targetPlatform === qbs.hostPlatform;
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasFlatbuffers;
+ }
+ property bool hasFlatbuffers: {
+ console.info("has flatbuffers: " + flatbuffers.c.present);
+ return flatbuffers.c.present;
+ }
+
+ files: [
+ "flat.c",
+ "foo.fbs",
+ ]
+ qbsModuleProviders: "conan"
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_cpp.qbs b/tests/auto/blackbox/testdata/flatbuf/flat_cpp.qbs
new file mode 100644
index 000000000..99e89a5fa
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_cpp.qbs
@@ -0,0 +1,21 @@
+CppApplication {
+ Depends { name: "flatbuf.cpp"; required: false }
+
+ consoleApplication: true
+ condition: {
+ var result = qbs.targetPlatform === qbs.hostPlatform;
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasFlatbuffers;
+ }
+ property bool hasFlatbuffers: {
+ console.info("has flatbuffers: " + flatbuf.cpp.present);
+ return flatbuf.cpp.present;
+ }
+
+ files: [
+ "flat.cpp",
+ "foo.fbs",
+ ]
+ qbsModuleProviders: "conan"
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_filename_extension.cpp b/tests/auto/blackbox/testdata/flatbuf/flat_filename_extension.cpp
new file mode 100644
index 000000000..77ed64acd
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_filename_extension.cpp
@@ -0,0 +1,22 @@
+#include "foo_generated.hpp"
+
+#include <iostream>
+
+using namespace QbsTest;
+
+int main()
+{
+ flatbuffers::FlatBufferBuilder builder;
+ auto name = builder.CreateString("John Doe");
+ auto newFoo = QbsTest::CreateFoo(builder, name, 42);
+ builder.Finish(newFoo);
+
+ auto foo = GetFoo(builder.GetBufferPointer());
+
+ assert(foo->name()->str() == "John Doe");
+ assert(foo->count() == 42);
+
+ std::cout << "The FlatBuffer was successfully created and accessed!" << std::endl;
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_filename_extension.qbs b/tests/auto/blackbox/testdata/flatbuf/flat_filename_extension.qbs
new file mode 100644
index 000000000..31eec7629
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_filename_extension.qbs
@@ -0,0 +1,23 @@
+CppApplication {
+ Depends { name: "flatbuf.cpp"; required: false }
+
+ consoleApplication: true
+ condition: {
+ var result = qbs.targetPlatform === qbs.hostPlatform;
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasFlatbuffers;
+ }
+ property bool hasFlatbuffers: {
+ console.info("has flatbuffers: " + flatbuf.cpp.present);
+ return flatbuf.cpp.present;
+ }
+
+ flatbuf.cpp.filenameExtension: "hpp"
+
+ files: [
+ "flat_filename_extension.cpp",
+ "foo.fbs",
+ ]
+ qbsModuleProviders: "conan"
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_filename_suffix.cpp b/tests/auto/blackbox/testdata/flatbuf/flat_filename_suffix.cpp
new file mode 100644
index 000000000..630e4aaef
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_filename_suffix.cpp
@@ -0,0 +1,22 @@
+#include "foo.fbs.h"
+
+#include <iostream>
+
+using namespace QbsTest;
+
+int main()
+{
+ flatbuffers::FlatBufferBuilder builder;
+ auto name = builder.CreateString("John Doe");
+ auto newFoo = QbsTest::CreateFoo(builder, name, 42);
+ builder.Finish(newFoo);
+
+ auto foo = GetFoo(builder.GetBufferPointer());
+
+ assert(foo->name()->str() == "John Doe");
+ assert(foo->count() == 42);
+
+ std::cout << "The FlatBuffer was successfully created and accessed!" << std::endl;
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_filename_suffix.qbs b/tests/auto/blackbox/testdata/flatbuf/flat_filename_suffix.qbs
new file mode 100644
index 000000000..5103b041f
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_filename_suffix.qbs
@@ -0,0 +1,23 @@
+CppApplication {
+ Depends { name: "flatbuf.cpp"; required: false }
+
+ consoleApplication: true
+ condition: {
+ var result = qbs.targetPlatform === qbs.hostPlatform;
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasFlatbuffers;
+ }
+ property bool hasFlatbuffers: {
+ console.info("has flatbuffers: " + flatbuf.cpp.present);
+ return flatbuf.cpp.present;
+ }
+
+ flatbuf.cpp.filenameSuffix: ".fbs"
+
+ files: [
+ "flat_filename_suffix.cpp",
+ "foo.fbs",
+ ]
+ qbsModuleProviders: "conan"
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_keep_prefix.cpp b/tests/auto/blackbox/testdata/flatbuf/flat_keep_prefix.cpp
new file mode 100644
index 000000000..5f4b55e96
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_keep_prefix.cpp
@@ -0,0 +1,26 @@
+#include "baz_generated.h"
+#include "imported_foo/imported_foo_generated.h"
+
+#include <iostream>
+
+using namespace QbsTest;
+
+int main()
+{
+ flatbuffers::FlatBufferBuilder builder;
+
+ auto name = builder.CreateString("John Doe");
+ auto newFoo = QbsTest::CreateFoo(builder, name, 42);
+
+ auto newBaz = QbsTest::CreateBaz(builder, newFoo);
+ builder.Finish(newBaz);
+
+ auto baz = GetBaz(builder.GetBufferPointer());
+
+ assert(baz->foo()->name()->str() == "John Doe");
+ assert(baz->foo()->count() == 42);
+
+ std::cout << "The FlatBuffer was successfully created and accessed!" << std::endl;
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_keep_prefix.qbs b/tests/auto/blackbox/testdata/flatbuf/flat_keep_prefix.qbs
new file mode 100644
index 000000000..0ea0d1dac
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_keep_prefix.qbs
@@ -0,0 +1,25 @@
+CppApplication {
+ Depends { name: "flatbuf.cpp"; required: false }
+
+ consoleApplication: true
+ condition: {
+ var result = qbs.targetPlatform === qbs.hostPlatform;
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasFlatbuffers;
+ }
+ property bool hasFlatbuffers: {
+ console.info("has flatbuffers: " + flatbuf.cpp.present);
+ return flatbuf.cpp.present;
+ }
+
+ flatbuf.cpp.importPaths: "imports/"
+ flatbuf.cpp.keepPrefix: true
+
+ files: [
+ "flat_keep_prefix.cpp",
+ "baz.fbs",
+ "imports/imported_foo/imported_foo.fbs",
+ ]
+ qbsModuleProviders: "conan"
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_relative_import.cpp b/tests/auto/blackbox/testdata/flatbuf/flat_relative_import.cpp
new file mode 100644
index 000000000..bec6dadfd
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_relative_import.cpp
@@ -0,0 +1,25 @@
+#include "bar_generated.h"
+
+#include <iostream>
+
+using namespace QbsTest;
+
+int main()
+{
+ flatbuffers::FlatBufferBuilder builder;
+
+ auto name = builder.CreateString("John Doe");
+ auto newFoo = QbsTest::CreateFoo(builder, name, 42);
+
+ auto newBar = QbsTest::CreateBar(builder, newFoo);
+ builder.Finish(newBar);
+
+ auto bar = GetBar(builder.GetBufferPointer());
+
+ assert(bar->foo()->name()->str() == "John Doe");
+ assert(bar->foo()->count() == 42);
+
+ std::cout << "The FlatBuffer was successfully created and accessed!" << std::endl;
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/flat_relative_import.qbs b/tests/auto/blackbox/testdata/flatbuf/flat_relative_import.qbs
new file mode 100644
index 000000000..f5a2c5d0b
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/flat_relative_import.qbs
@@ -0,0 +1,22 @@
+CppApplication {
+ Depends { name: "flatbuf.cpp"; required: false }
+
+ consoleApplication: true
+ condition: {
+ var result = qbs.targetPlatform === qbs.hostPlatform;
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasFlatbuffers;
+ }
+ property bool hasFlatbuffers: {
+ console.info("has flatbuffers: " + flatbuf.cpp.present);
+ return flatbuf.cpp.present;
+ }
+
+ files: [
+ "flat_relative_import.cpp",
+ "bar.fbs",
+ "foo.fbs",
+ ]
+ qbsModuleProviders: "conan"
+}
diff --git a/tests/auto/blackbox/testdata/flatbuf/foo.fbs b/tests/auto/blackbox/testdata/flatbuf/foo.fbs
new file mode 100644
index 000000000..dff3b488f
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/foo.fbs
@@ -0,0 +1,8 @@
+namespace QbsTest;
+
+table Foo {
+ name:string;
+ count:int;
+}
+
+root_type Foo;
diff --git a/tests/auto/blackbox/testdata/flatbuf/imports/imported_foo/imported_foo.fbs b/tests/auto/blackbox/testdata/flatbuf/imports/imported_foo/imported_foo.fbs
new file mode 100644
index 000000000..dff3b488f
--- /dev/null
+++ b/tests/auto/blackbox/testdata/flatbuf/imports/imported_foo/imported_foo.fbs
@@ -0,0 +1,8 @@
+namespace QbsTest;
+
+table Foo {
+ name:string;
+ count:int;
+}
+
+root_type Foo;
diff --git a/tests/auto/blackbox/testdata/freedesktop/freedesktop.qbs b/tests/auto/blackbox/testdata/freedesktop/freedesktop.qbs
new file mode 100644
index 000000000..1efe5c91c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/freedesktop/freedesktop.qbs
@@ -0,0 +1,23 @@
+Project {
+ CppApplication {
+ name: "main"
+ install: true
+ files: [
+ "main.cpp",
+ "myapp.desktop",
+ "myapp.appdata.xml",
+ ]
+
+ Depends { name: "freedesktop" }
+
+ freedesktop.appName: "My App"
+ freedesktop.desktopKeys: ({
+ 'Icon': "myapp.png"
+ })
+
+ Group {
+ files: "myapp.png"
+ fileTags: "freedesktop.appIcon"
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/freedesktop/main.cpp b/tests/auto/blackbox/testdata/freedesktop/main.cpp
new file mode 100644
index 000000000..905869dfa
--- /dev/null
+++ b/tests/auto/blackbox/testdata/freedesktop/main.cpp
@@ -0,0 +1,4 @@
+int main()
+{
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/freedesktop/myapp.appdata.xml b/tests/auto/blackbox/testdata/freedesktop/myapp.appdata.xml
new file mode 100644
index 000000000..3cf0a5641
--- /dev/null
+++ b/tests/auto/blackbox/testdata/freedesktop/myapp.appdata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop">
+ <id>myapp.desktop</id>
+ <metadata_license>CC0</metadata_license>
+ <name>MyApp</name>
+ <summary>The coolest app ever</summary>
+
+ <description>
+ <p>This is a cool application.</p>
+ </description>
+
+ <url type="homepage">https://software.house/myapp</url>
+ <project_license>GPL-2.0+</project_license>
+ <developer_name>Coding Wizard</developer_name>
+</component>
diff --git a/tests/auto/blackbox/testdata/freedesktop/myapp.desktop b/tests/auto/blackbox/testdata/freedesktop/myapp.desktop
new file mode 100644
index 000000000..dac3014c3
--- /dev/null
+++ b/tests/auto/blackbox/testdata/freedesktop/myapp.desktop
@@ -0,0 +1,4 @@
+[Desktop Entry]
+GenericName=Image Editor
+Comment=Create images and edit photographs
+Icon=overridden.png
diff --git a/tests/auto/blackbox/testdata/concurrent-executor/dummy1.input b/tests/auto/blackbox/testdata/freedesktop/myapp.png
index e69de29bb..e69de29bb 100644
--- a/tests/auto/blackbox/testdata/concurrent-executor/dummy1.input
+++ b/tests/auto/blackbox/testdata/freedesktop/myapp.png
diff --git a/tests/auto/blackbox/testdata/generate-linker-map-file/generate-linker-map-file.qbs b/tests/auto/blackbox/testdata/generate-linker-map-file/generate-linker-map-file.qbs
index 815e64853..0d67fa54c 100644
--- a/tests/auto/blackbox/testdata/generate-linker-map-file/generate-linker-map-file.qbs
+++ b/tests/auto/blackbox/testdata/generate-linker-map-file/generate-linker-map-file.qbs
@@ -2,11 +2,14 @@ Project {
CppApplication {
name: "app-map"
files: ["main.cpp"]
+ // lld-link has different flag for map files, test it by switching to "lld" linkerVariant
+ Properties { condition: qbs.toolchain.includes("clang-cl"); cpp.linkerVariant: "lld" }
cpp.generateLinkerMapFile: true
}
CppApplication {
name: "app-nomap"
files: ["main.cpp"]
+ Properties { condition: qbs.toolchain.includes("clang-cl"); cpp.linkerVariant: "lld" }
cpp.generateLinkerMapFile: false
}
CppApplication {
@@ -16,8 +19,8 @@ Project {
Probe {
id: toolchainProbe
- property bool isUsed: qbs.toolchain.contains("msvc")
- || qbs.toolchain.contains("gcc")
+ property bool isUsed: qbs.toolchain.includes("msvc")
+ || qbs.toolchain.includes("gcc")
configure: {
console.info("use test: " + isUsed);
}
diff --git a/tests/auto/blackbox/testdata/generator/generator.qbs b/tests/auto/blackbox/testdata/generator/generator.qbs
index d0857beb5..9f6d452e7 100644
--- a/tests/auto/blackbox/testdata/generator/generator.qbs
+++ b/tests/auto/blackbox/testdata/generator/generator.qbs
@@ -18,12 +18,12 @@ CppApplication {
var f = new TextFile(input.filePath, TextFile.ReadOnly);
var content = f.readAll();
f.close();
- if (content.contains("file1")) {
+ if (content.includes("file1")) {
f = new TextFile(outputs.file1[0].filePath, TextFile.WriteOnly);
f.writeLine("void f1() {}");
f.close();
}
- if (content.contains("file2")) {
+ if (content.includes("file2")) {
f = new TextFile(outputs.file2[0].filePath, TextFile.WriteOnly);
f.writeLine("void f2() {}");
f.close();
diff --git a/tests/auto/blackbox/testdata/groups-in-modules/groups-in-modules.qbs b/tests/auto/blackbox/testdata/groups-in-modules/groups-in-modules.qbs
index 7347b1211..47275821f 100644
--- a/tests/auto/blackbox/testdata/groups-in-modules/groups-in-modules.qbs
+++ b/tests/auto/blackbox/testdata/groups-in-modules/groups-in-modules.qbs
@@ -1,11 +1,22 @@
+import qbs.Host
+
Project {
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
Depends { name: "dep" }
Depends { name: "helper" }
Depends {
name: "helper3"
required: false
}
+ Depends { name: "helper7" }
+ helper7.fileName: "helper7.c"
+
type: ["diamond"]
files: [
diff --git a/tests/auto/blackbox/testdata/groups-in-modules/imports/Helper7Base.qbs b/tests/auto/blackbox/testdata/groups-in-modules/imports/Helper7Base.qbs
new file mode 100644
index 000000000..cc55e6351
--- /dev/null
+++ b/tests/auto/blackbox/testdata/groups-in-modules/imports/Helper7Base.qbs
@@ -0,0 +1,8 @@
+Module {
+ property string directory
+ property string fileName
+ Group {
+ prefix: directory + "/"
+ files: fileName
+ }
+}
diff --git a/tests/auto/blackbox/testdata/groups-in-modules/modules/helper/helper.qbs b/tests/auto/blackbox/testdata/groups-in-modules/modules/helper/helper.qbs
index cbd30a35d..9dc903411 100644
--- a/tests/auto/blackbox/testdata/groups-in-modules/modules/helper/helper.qbs
+++ b/tests/auto/blackbox/testdata/groups-in-modules/modules/helper/helper.qbs
@@ -39,7 +39,7 @@ Module {
prepare: {
var cmd = new Command(FileInfo.joinPaths(product.buildDirectory, product.targetName), [input.filePath, output.filePath]);
- cmd.description = "compile " + input.fileName + " => " + output.fileName;
+ cmd.description = "compiling " + input.fileName + " to " + output.fileName;
return [cmd];
}
}
diff --git a/tests/auto/blackbox/testdata/groups-in-modules/modules/helper7/helper7.c b/tests/auto/blackbox/testdata/groups-in-modules/modules/helper7/helper7.c
new file mode 100644
index 000000000..a83f5476e
--- /dev/null
+++ b/tests/auto/blackbox/testdata/groups-in-modules/modules/helper7/helper7.c
@@ -0,0 +1 @@
+void helper7(void) {}
diff --git a/tests/auto/blackbox/testdata/groups-in-modules/modules/helper7/helper7.qbs b/tests/auto/blackbox/testdata/groups-in-modules/modules/helper7/helper7.qbs
new file mode 100644
index 000000000..90e1f11e2
--- /dev/null
+++ b/tests/auto/blackbox/testdata/groups-in-modules/modules/helper7/helper7.qbs
@@ -0,0 +1,3 @@
+Helper7Base {
+ directory: path
+}
diff --git a/tests/auto/blackbox/testdata/grpc/conanfile.txt b/tests/auto/blackbox/testdata/grpc/conanfile.txt
new file mode 100644
index 000000000..f88e6e8d6
--- /dev/null
+++ b/tests/auto/blackbox/testdata/grpc/conanfile.txt
@@ -0,0 +1,7 @@
+[requires]
+grpc/1.54.3
+[tool_requires]
+protobuf/3.21.12
+grpc/1.54.3
+[generators]
+QbsDeps
diff --git a/tests/auto/blackbox/testdata/grpc/grpc.cpp b/tests/auto/blackbox/testdata/grpc/grpc.cpp
index 81995601d..5f85c5b40 100644
--- a/tests/auto/blackbox/testdata/grpc/grpc.cpp
+++ b/tests/auto/blackbox/testdata/grpc/grpc.cpp
@@ -1,7 +1,7 @@
/****************************************************************************
**
-** Copyright (C) 2019 Ivan Komissarov
-** Contact: abbapoh@gmail.com
+** Copyright (C) 2019 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
diff --git a/tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs b/tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs
index 8ee3dd9c9..d1bdd5d60 100644
--- a/tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs
+++ b/tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs
@@ -1,20 +1,29 @@
-import qbs
+import qbs.Host
CppApplication {
name: "grpc_cpp"
consoleApplication: true
- condition: hasDependencies
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasDependencies;
+ }
Depends { name: "cpp" }
- cpp.cxxLanguageVersion: "c++11"
+ cpp.cxxLanguageVersion: "c++17"
+ cpp.minimumMacosVersion: "10.15"
cpp.warningLevel: "none"
+ qbs.buildVariant: "release"
Depends { name: "protobuf.cpp"; required: false }
+ Depends { name: "grpc++"; id: grpcpp; required: false }
protobuf.cpp.useGrpc: true
property bool hasDependencies: {
console.info("has grpc: " + protobuf.cpp.present);
- return protobuf.cpp.present;
+ console.info("has modules: " + grpcpp.present);
+ return protobuf.cpp.present && grpcpp.present;
}
files: "grpc.cpp"
diff --git a/tests/auto/blackbox/testdata/host-os-properties/host-os-properties.qbs b/tests/auto/blackbox/testdata/host-os-properties/host-os-properties.qbs
new file mode 100644
index 000000000..9d050e166
--- /dev/null
+++ b/tests/auto/blackbox/testdata/host-os-properties/host-os-properties.qbs
@@ -0,0 +1,16 @@
+import qbs.Host
+
+CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
+ consoleApplication: true
+ cpp.defines: [
+ 'HOST_ARCHITECTURE="' + Host.architecture() + '"',
+ 'HOST_PLATFORM="' + Host.platform() + '"'
+ ]
+ files: "main.cpp"
+}
diff --git a/tests/auto/blackbox/testdata/host-os-properties/main.cpp b/tests/auto/blackbox/testdata/host-os-properties/main.cpp
new file mode 100644
index 000000000..129c16379
--- /dev/null
+++ b/tests/auto/blackbox/testdata/host-os-properties/main.cpp
@@ -0,0 +1,7 @@
+#include <cstdio>
+
+int main() {
+ std::printf("HOST_ARCHITECTURE = %s\n", HOST_ARCHITECTURE);
+ std::printf("HOST_PLATFORM = %s\n", HOST_PLATFORM);
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/importing-product/importing-product.qbs b/tests/auto/blackbox/testdata/importing-product/importing-product.qbs
index dfc4cd65e..54ad727b7 100644
--- a/tests/auto/blackbox/testdata/importing-product/importing-product.qbs
+++ b/tests/auto/blackbox/testdata/importing-product/importing-product.qbs
@@ -16,7 +16,7 @@ Project {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Copying file";
+ cmd.description = "copying file";
cmd.sourceCode = function() {
File.copy(input.filePath, output.filePath);
}
diff --git a/tests/auto/blackbox/testdata/includeLookup/includeLookup.qbs b/tests/auto/blackbox/testdata/includeLookup/includeLookup.qbs
index 182d1e232..903d170d0 100644
--- a/tests/auto/blackbox/testdata/includeLookup/includeLookup.qbs
+++ b/tests/auto/blackbox/testdata/includeLookup/includeLookup.qbs
@@ -1,9 +1,16 @@
import qbs.FileInfo
+import qbs.Host
Project {
property string name: 'includeLookup'
qbsSearchPaths: '.'
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
type: 'application'
consoleApplication: true
name: project.name
diff --git a/tests/auto/blackbox/testdata/includeLookup/main.cpp b/tests/auto/blackbox/testdata/includeLookup/main.cpp
index c7213c768..a91914f73 100644
--- a/tests/auto/blackbox/testdata/includeLookup/main.cpp
+++ b/tests/auto/blackbox/testdata/includeLookup/main.cpp
@@ -30,7 +30,7 @@
int main()
{
- printf("%s..\n", TEXT);
+ std::printf("%s..\n", TEXT);
return 0;
}
diff --git a/tests/auto/blackbox/testdata/innosetup/innosetup.qbs b/tests/auto/blackbox/testdata/innosetup/innosetup.qbs
deleted file mode 100644
index c9f6a22e8..000000000
--- a/tests/auto/blackbox/testdata/innosetup/innosetup.qbs
+++ /dev/null
@@ -1,22 +0,0 @@
-import qbs.FileInfo
-
-Project {
- InnoSetup {
- name: "QbsSetup"
- targetName: "qbs.setup.test"
- version: "1.5"
- files: [
- "test.iss"
- ]
- innosetup.verboseOutput: true
- innosetup.includePaths: ["inc"]
- innosetup.defines: ["MyProgram=" + name, "MyProgramVersion=" + version]
- innosetup.compilerFlags: ["/V9"]
- qbs.targetPlatform: "windows"
- }
- InnoSetup {
- name: "Example1"
- files: [FileInfo.joinPaths(innosetup.toolchainInstallPath, "Examples", name + ".iss")]
- qbs.targetPlatform: "windows"
- }
-}
diff --git a/tests/auto/blackbox/testdata/innosetup/test.iss b/tests/auto/blackbox/testdata/innosetup/test.iss
deleted file mode 100644
index f9f9195a6..000000000
--- a/tests/auto/blackbox/testdata/innosetup/test.iss
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "qbsinc.iss"
-
-[Setup]
-AppName={#MyProgram}
-AppVersion={#MyProgramVersion}
-DefaultDirName={pf}\{#MyProgram}
diff --git a/tests/auto/blackbox/testdata/innosetupDependencies/innosetupDependencies.qbs b/tests/auto/blackbox/testdata/innosetupDependencies/innosetupDependencies.qbs
deleted file mode 100644
index db65e127f..000000000
--- a/tests/auto/blackbox/testdata/innosetupDependencies/innosetupDependencies.qbs
+++ /dev/null
@@ -1,72 +0,0 @@
-import qbs.TextFile
-
-Project {
- InnoSetup {
- Depends { name: "app" }
- Depends { name: "lib" }
- name: "QbsSetup"
- targetName: "qbs.setup.test"
- version: "1.5"
- files: [
- "test.iss"
- ]
- innosetup.verboseOutput: true
- innosetup.defines: [
- "MyProgram=" + name,
- "MyProgramVersion=" + version,
- "buildDirectory=" + project.buildDirectory
- ]
- innosetup.compilerFlags: ["/V9"]
- destinationDirectory: project.buildDirectory
- }
- Application {
- Depends { name: "cpp" }
- name: "app"
- files: ["main.c"]
- Group {
- fileTagsFilter: product.type
- qbs.install: true
- }
- destinationDirectory: project.buildDirectory
- }
- DynamicLibrary {
- Depends { name: "cpp" }
- name: "lib"
- files: ["main.c"]
- Group {
- fileTagsFilter: product.type
- qbs.install: true
- }
- Rule {
- // This rule tries to provoke the installer into building too early (and the test
- // verifies that it does not) by causing the build of the installables to take
- // a lot longer.
- multiplex: true
- outputFileTags: ["c"]
- outputArtifacts: {
- var artifacts = [];
- for (var i = 0; i < 96; ++i)
- artifacts.push({ filePath: "c" + i + ".c", fileTags: ["c"] });
- return artifacts;
- }
- prepare: {
- var cmd = new JavaScriptCommand();
- cmd.silent = true;
- cmd.sourceCode = function() {
- for (var i = 0; i < outputs["c"].length; ++i) {
- var tf;
- try {
- tf = new TextFile(outputs["c"][i].filePath, TextFile.WriteOnly);
- tf.writeLine("int main" + i + "() { return 0; }");
- } finally {
- if (tf)
- tf.close();
- }
- }
- };
- return [cmd];
- }
- }
- destinationDirectory: project.buildDirectory
- }
-}
diff --git a/tests/auto/blackbox/testdata/innosetupDependencies/test.iss b/tests/auto/blackbox/testdata/innosetupDependencies/test.iss
deleted file mode 100644
index 430f9941b..000000000
--- a/tests/auto/blackbox/testdata/innosetupDependencies/test.iss
+++ /dev/null
@@ -1,8 +0,0 @@
-[Setup]
-AppName={#MyProgram}
-AppVersion={#MyProgramVersion}
-DefaultDirName={pf}\{#MyProgram}
-
-[Files]
-Source: "{#buildDirectory}\app.exe"; DestDir: "{app}"
-Source: "{#buildDirectory}\lib.dll"; DestDir: "{app}"
diff --git a/tests/auto/blackbox/testdata/input-tags-change-tracking/input-tags-change-tracking.qbs b/tests/auto/blackbox/testdata/input-tags-change-tracking/input-tags-change-tracking.qbs
index ef2c5c55b..1e4248009 100644
--- a/tests/auto/blackbox/testdata/input-tags-change-tracking/input-tags-change-tracking.qbs
+++ b/tests/auto/blackbox/testdata/input-tags-change-tracking/input-tags-change-tracking.qbs
@@ -43,10 +43,10 @@ Product {
inputs: "txt"
outputFileTags: "p_tag"
outputArtifacts: {
- if (input.fileTags.contains("empty"))
+ if (input.fileTags.includes("empty"))
return [];
return [{
- filePath: input.fileTags.contains("y") ? "y.out" : "x.out",
+ filePath: input.fileTags.includes("y") ? "y.out" : "x.out",
fileTags: "p_tag"
}]
}
diff --git a/tests/auto/blackbox/testdata/inputs-from-dependencies/inputs-from-dependencies.qbs b/tests/auto/blackbox/testdata/inputs-from-dependencies/inputs-from-dependencies.qbs
index 919060c73..f9993ecf3 100644
--- a/tests/auto/blackbox/testdata/inputs-from-dependencies/inputs-from-dependencies.qbs
+++ b/tests/auto/blackbox/testdata/inputs-from-dependencies/inputs-from-dependencies.qbs
@@ -37,7 +37,7 @@ Project {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Gathering text files";
+ cmd.description = "gathering text files";
cmd.sourceCode = function() {
for (i in inputs.txt)
console.info(inputs.txt[i].filePath);
diff --git a/tests/auto/blackbox/testdata/install-locations/install-locations.qbs b/tests/auto/blackbox/testdata/install-locations/install-locations.qbs
index 8a97f74a1..ba51c0dc1 100644
--- a/tests/auto/blackbox/testdata/install-locations/install-locations.qbs
+++ b/tests/auto/blackbox/testdata/install-locations/install-locations.qbs
@@ -1,16 +1,24 @@
Project {
property bool dummy: {
- if (qbs.targetOS.contains("windows"))
+ if (qbs.targetOS.includes("windows")) {
console.info("is windows");
- else if (qbs.targetOS.contains("macos"))
- console.info("is mac");
- else
+ } else if (qbs.targetOS.includes("darwin")) {
+ console.info("is darwin");
+ if (qbs.targetOS.includes("macos"))
+ console.info("is mac");
+ } else {
console.info("is unix");
+ }
+
+ if (qbs.toolchain.includes("mingw"))
+ console.info("is mingw");
}
CppApplication {
name: "theapp"
install: true
+ installDebugInformation: true
files: "main.cpp"
+ cpp.separateDebugInformation: true
Group {
fileTagsFilter: "application"
fileTags: "some-tag"
@@ -20,7 +28,17 @@ Project {
name: "thelib"
install: true
installImportLib: true
+ installDebugInformation: true
Depends { name: "cpp" }
+ cpp.separateDebugInformation: true
files: "thelib.cpp"
}
+ LoadableModule {
+ name: "theplugin"
+ install: true
+ installDebugInformation: true
+ Depends { name: "cpp" }
+ cpp.separateDebugInformation: true
+ files: "theplugin.cpp"
+ }
}
diff --git a/tests/auto/blackbox/testdata/install-locations/theplugin.cpp b/tests/auto/blackbox/testdata/install-locations/theplugin.cpp
new file mode 100644
index 000000000..ac1ede090
--- /dev/null
+++ b/tests/auto/blackbox/testdata/install-locations/theplugin.cpp
@@ -0,0 +1,3 @@
+#include "../dllexport.h"
+
+DLL_EXPORT void pluginFunc() {}
diff --git a/tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs b/tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs
index 2d37e85d6..a445fc35b 100644
--- a/tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs
+++ b/tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs
@@ -1,10 +1,17 @@
import qbs.File
import qbs.FileInfo
+import qbs.Host
import qbs.TextFile
Project {
name: "p"
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "app"
Depends { name: "installed-header" }
Rule {
@@ -42,7 +49,7 @@ Project {
Export {
Depends { name: "cpp" }
- cpp.includePaths: FileInfo.joinPaths(qbs.installRoot, product.installDir);
+ cpp.includePaths: FileInfo.joinPaths(qbs.installRoot, exportingProduct.installDir);
}
Rule {
@@ -50,7 +57,7 @@ Project {
Artifact { filePath: "theheader.h.in"; fileTags: "header.in" }
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating " + output.fileName;
+ cmd.description = "creating " + output.fileName;
cmd.sourceCode = function() {
for (var i = 0; i < 1000; ++i) { // Artificial delay.
var file = new TextFile(output.filePath, TextFile.WriteOnly);
@@ -69,7 +76,7 @@ Project {
Artifact { filePath: "theheader.h"; fileTags: "header" }
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating " + output.fileName;
+ cmd.description = "creating " + output.fileName;
cmd.sourceCode = function() { File.copy(input.filePath, output.filePath); };
return [cmd];
}
diff --git a/tests/auto/blackbox/testdata/installable/installable.qbs b/tests/auto/blackbox/testdata/installable/installable.qbs
index 56feb6ec5..de93cf61f 100644
--- a/tests/auto/blackbox/testdata/installable/installable.qbs
+++ b/tests/auto/blackbox/testdata/installable/installable.qbs
@@ -11,6 +11,7 @@ Project {
}
install: true
+ installDebugInformation: false
installDir: ""
}
@@ -27,7 +28,7 @@ Project {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating " + output.fileName;
+ cmd.description = "creating " + output.fileName;
cmd.sourceCode = function() {
var file = new TextFile(output.filePath, TextFile.WriteOnly);
for (var i = 0; i < inputs.installable.length; ++i)
diff --git a/tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs b/tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs
index aa40b7691..6f84206be 100644
--- a/tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs
+++ b/tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs
@@ -18,7 +18,7 @@ Product {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating file:'" + output.fileName + "'";
+ cmd.description = "creating file:'" + output.fileName + "'";
cmd.highlight = "codegen";
cmd.sourceCode = function() {
var file = new TextFile(output.filePath, TextFile.WriteOnly);
diff --git a/tests/auto/blackbox/testdata/installpackage/installpackage.qbs b/tests/auto/blackbox/testdata/installpackage/installpackage.qbs
index a0649a578..3396b79a4 100644
--- a/tests/auto/blackbox/testdata/installpackage/installpackage.qbs
+++ b/tests/auto/blackbox/testdata/installpackage/installpackage.qbs
@@ -2,7 +2,7 @@ Project {
CppApplication {
name: "public_tool"
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
Depends { name: "mylib" }
@@ -20,7 +20,7 @@ Project {
}
DynamicLibrary {
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
Depends { name: "cpp" }
diff --git a/tests/auto/blackbox/testdata/invalid-artifact-path/invalid-artifact-path.qbs b/tests/auto/blackbox/testdata/invalid-artifact-path/invalid-artifact-path.qbs
new file mode 100644
index 000000000..650233d86
--- /dev/null
+++ b/tests/auto/blackbox/testdata/invalid-artifact-path/invalid-artifact-path.qbs
@@ -0,0 +1,18 @@
+Project {
+ property string artifactDir
+ Product {
+ type: "t"
+ Rule {
+ multiplex: true
+ Artifact {
+ filePath: project.artifactDir + "/file.out"
+ fileTags: "t"
+ }
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.sourceCode = function() {};
+ return cmd;
+ }
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/invalid-command-property/invalid-command-property.qbs b/tests/auto/blackbox/testdata/invalid-command-property/invalid-command-property.qbs
index b08fcd4a3..a07beda57 100644
--- a/tests/auto/blackbox/testdata/invalid-command-property/invalid-command-property.qbs
+++ b/tests/auto/blackbox/testdata/invalid-command-property/invalid-command-property.qbs
@@ -16,7 +16,7 @@ Product {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating output";
+ cmd.description = "creating output";
if (product.errorType === "qobject")
cmd.dummy = new TextFile(input.filePath, TextFile.ReadOnly);
else if (product.errorType === "input")
diff --git a/tests/auto/blackbox/testdata/jsextensions-binaryfile/binaryfile.qbs b/tests/auto/blackbox/testdata/jsextensions-binaryfile/binaryfile.qbs
index 1e7426744..5824fe518 100644
--- a/tests/auto/blackbox/testdata/jsextensions-binaryfile/binaryfile.qbs
+++ b/tests/auto/blackbox/testdata/jsextensions-binaryfile/binaryfile.qbs
@@ -36,6 +36,9 @@ Product {
destination.write(source.atEof() ? [ 0xFF ] : [ 0x00 ]);
source.close();
destination.close();
+ source = new BinaryFile("destination.dat", BinaryFile.ReadOnly);
+ destination = new BinaryFile("destination2.dat", BinaryFile.WriteOnly);
+ destination.write(source.read(8));
};
commands.push(cmd);
return commands;
diff --git a/tests/auto/blackbox/testdata/jsextensions-file/file.qbs b/tests/auto/blackbox/testdata/jsextensions-file/file.qbs
index 6adf714e2..7a47cf3cd 100644
--- a/tests/auto/blackbox/testdata/jsextensions-file/file.qbs
+++ b/tests/auto/blackbox/testdata/jsextensions-file/file.qbs
@@ -33,10 +33,10 @@ Product {
if (!created || !File.exists(zePath))
throw new Error("zePath was not created.");
var entries = File.directoryEntries(product.sourceDirectory, File.AllEntries | File.NoDotAndDotDot);
- if (entries.length < 3 || !entries.contains("file.qbs"))
+ if (entries.length < 3 || !entries.includes("file.qbs"))
throw new Error("Directory did not contain file.qbs");
entries = File.directoryEntries(product.sourceDirectory, File.Dirs | File.NoDotAndDotDot);
- if (entries.length < 1 || !entries.contains("zePath"))
+ if (entries.length < 1 || !entries.includes("zePath"))
throw new Error("Directory did not contain only zePath");
var moveSource = FileInfo.joinPaths(product.sourceDirectory, "tomove.txt");
var moveTarget = FileInfo.joinPaths(product.sourceDirectory, "moved.txt");
diff --git a/tests/auto/blackbox/testdata/jsextensions-fileinfo/fileinfo.qbs b/tests/auto/blackbox/testdata/jsextensions-fileinfo/fileinfo.qbs
index d63ba2962..0e727d04b 100644
--- a/tests/auto/blackbox/testdata/jsextensions-fileinfo/fileinfo.qbs
+++ b/tests/auto/blackbox/testdata/jsextensions-fileinfo/fileinfo.qbs
@@ -39,6 +39,8 @@ Product {
output.writeLine(FileInfo.relativePath("/tmp", "/blubb.tar.gz"));
output.writeLine(FileInfo.toWindowsSeparators("/tmp/blubb.tar.gz"));
output.writeLine(FileInfo.toWindowsSeparators("c:\\tmp\\blubb.tar.gz"));
+ output.writeLine(FileInfo.pathListSeparator());
+ output.writeLine(FileInfo.pathSeparator());
output.close();
};
return [cmd];
diff --git a/tests/auto/blackbox/testdata/jsextensions-host/host.qbs b/tests/auto/blackbox/testdata/jsextensions-host/host.qbs
new file mode 100644
index 000000000..08d13b25d
--- /dev/null
+++ b/tests/auto/blackbox/testdata/jsextensions-host/host.qbs
@@ -0,0 +1,31 @@
+import qbs.FileInfo
+import qbs.Host
+import qbs.TextFile
+
+Product {
+ type: ["dummy"]
+ Rule {
+ multiplex: true
+ outputFileTags: "dummy"
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.silent = true;
+ cmd.sourceCode = function() {
+ var output = new TextFile(FileInfo.joinPaths(product.sourceDirectory, "output.txt"),
+ TextFile.WriteOnly);
+ output.writeLine("architecture: " +Host.architecture());
+ output.writeLine("os: " + Host.os());
+ output.writeLine("platform: " + Host.platform());
+ output.writeLine("osVersion: " + Host.osVersion());
+ output.writeLine("osBuildVersion: " + Host.osBuildVersion());
+ output.writeLine("osVersionParts: " + Host.osVersionParts());
+ output.writeLine("osVersionMajor: " + Host.osVersionMajor());
+ output.writeLine("osVersionMinor: " + Host.osVersionMinor());
+ output.writeLine("osVersionPatch: " + Host.osVersionPatch());
+ output.writeLine("nullDevice: " + Host.nullDevice());
+ output.close();
+ };
+ return [cmd];
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/jsextensions-process/main.cpp b/tests/auto/blackbox/testdata/jsextensions-process/main.cpp
index df769de87..3f28fe091 100644
--- a/tests/auto/blackbox/testdata/jsextensions-process/main.cpp
+++ b/tests/auto/blackbox/testdata/jsextensions-process/main.cpp
@@ -4,17 +4,17 @@
int main(int argc, char *argv[])
{
- if (argc != 2 || strcmp(argv[1], "help") != 0) {
- fprintf(stderr, "First argument to this program must be 'help'.\n");
+ if (argc != 2 || std::strcmp(argv[1], "help") != 0) {
+ std::fprintf(stderr, "First argument to this program must be 'help'.\n");
return 1;
}
const char *env = std::getenv("SOME_ENV");
- if (!env || strcmp(env, "why, hello!") != 0) {
- fprintf(stderr, "The SOME_ENV environment variable must be 'why, hello!'.\n");
+ if (!env || std::strcmp(env, "why, hello!") != 0) {
+ std::fprintf(stderr, "The SOME_ENV environment variable must be 'why, hello!'.\n");
return 1;
}
- printf("qbs jsextensions-process test\n");
+ std::printf("qbs jsextensions-process test\n");
return 0;
}
diff --git a/tests/auto/blackbox/testdata/jsextensions-process/process.qbs b/tests/auto/blackbox/testdata/jsextensions-process/process.qbs
index eba95d005..50f22cdfc 100644
--- a/tests/auto/blackbox/testdata/jsextensions-process/process.qbs
+++ b/tests/auto/blackbox/testdata/jsextensions-process/process.qbs
@@ -1,10 +1,17 @@
import qbs.Environment
import qbs.FileInfo
+import qbs.Host
import qbs.Process
import qbs.TextFile
Project {
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
Depends { name: "cpp" }
type: ["dummy"]
name: "dummy"
@@ -48,7 +55,7 @@ Project {
// closeWriteChannel test
process = new Process();
- if (product.qbs.hostOS.contains("windows"))
+ if (Host.os().includes("windows"))
process.start(product.qbs.windowsShellPath,
["/C", product.qbs.windowsSystemRoot + "\\system32\\sort.exe"]);
else
@@ -69,7 +76,7 @@ Project {
testReadlineFile.close();
process = new Process();
- if (product.qbs.hostOS.contains("windows"))
+ if (Host.os().includes("windows"))
process.exec(product.qbs.windowsShellPath,
["/C", "type", "123.txt"],
true);
diff --git a/tests/auto/blackbox/testdata/last-module-candidate-broken/last-module-candidate-broken.qbs b/tests/auto/blackbox/testdata/last-module-candidate-broken/last-module-candidate-broken.qbs
new file mode 100644
index 000000000..db7dc2265
--- /dev/null
+++ b/tests/auto/blackbox/testdata/last-module-candidate-broken/last-module-candidate-broken.qbs
@@ -0,0 +1,5 @@
+CppApplication {
+ qbsSearchPaths: "qbs"
+ Depends { name: "Foo" }
+ files: "main.cpp"
+}
diff --git a/tests/auto/blackbox/testdata/wixDependencies/main.c b/tests/auto/blackbox/testdata/last-module-candidate-broken/main.cpp
index 76e819701..76e819701 100644
--- a/tests/auto/blackbox/testdata/wixDependencies/main.c
+++ b/tests/auto/blackbox/testdata/last-module-candidate-broken/main.cpp
diff --git a/tests/auto/blackbox/testdata/last-module-candidate-broken/qbs/modules/Foo/Foo1.qbs b/tests/auto/blackbox/testdata/last-module-candidate-broken/qbs/modules/Foo/Foo1.qbs
new file mode 100644
index 000000000..ba08b862b
--- /dev/null
+++ b/tests/auto/blackbox/testdata/last-module-candidate-broken/qbs/modules/Foo/Foo1.qbs
@@ -0,0 +1,3 @@
+Module {
+ condition: false
+}
diff --git a/tests/auto/blackbox/testdata/last-module-candidate-broken/qbs/modules/Foo/Foo2.qbs b/tests/auto/blackbox/testdata/last-module-candidate-broken/qbs/modules/Foo/Foo2.qbs
new file mode 100644
index 000000000..0bc383b86
--- /dev/null
+++ b/tests/auto/blackbox/testdata/last-module-candidate-broken/qbs/modules/Foo/Foo2.qbs
@@ -0,0 +1,2 @@
+Group {
+}
diff --git a/tests/auto/blackbox/testdata/ld/ld.qbs b/tests/auto/blackbox/testdata/ld/ld.qbs
index 25fede1b0..cb04d3d9a 100644
--- a/tests/auto/blackbox/testdata/ld/ld.qbs
+++ b/tests/auto/blackbox/testdata/ld/ld.qbs
@@ -5,7 +5,7 @@ Project {
targetName: "qbs can handle any file paths, even the crazy ones! ;)"
files: ["coreutils.cpp", "coreutils.h"]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
cpp.sonamePrefix: "@rpath"
}
diff --git a/tests/auto/blackbox/testdata/ld/main.cpp b/tests/auto/blackbox/testdata/ld/main.cpp
index fd6b72f3b..bcf293705 100644
--- a/tests/auto/blackbox/testdata/ld/main.cpp
+++ b/tests/auto/blackbox/testdata/ld/main.cpp
@@ -27,10 +27,11 @@
****************************************************************************/
#include "coreutils.h"
-#include <stdio.h>
+
+#include <cstdio>
int main(int argc, char *argv[])
{
- printf("%d\n", foo());
+ std::printf("%d\n", foo());
return 0;
}
diff --git a/tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs b/tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs
index 449b130e2..4cce9a1e3 100644
--- a/tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs
+++ b/tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs
@@ -1,4 +1,3 @@
-import qbs
import qbs.Process
Module {
@@ -8,7 +7,7 @@ Module {
property string yaccBinary: lex_yacc.yaccBinary
configure: {
var p = Process();
- found = p.exec(yaccBinary, ["-V"]) == 0 && p.readStdOut().contains("bison");
+ found = p.exec(yaccBinary, ["-V"]) == 0 && p.readStdOut().includes("bison");
p.close();
}
}
diff --git a/tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs b/tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs
index 6cd334247..faa5d1fac 100644
--- a/tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs
+++ b/tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs
@@ -1,4 +1,12 @@
+import qbs.Host
+
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
qbsSearchPaths: ".."
Depends { name: "bisonhelper" }
Depends { name: "lex_yacc" }
@@ -11,10 +19,10 @@ CppApplication {
Probe {
id: pathCheck
property string theDir: {
- if (qbs.targetOS.contains("windows")) {
- if (qbs.toolchain.contains("mingw"))
+ if (qbs.targetOS.includes("windows")) {
+ if (qbs.toolchain.includes("mingw"))
return cpp.toolchainInstallPath;
- if (qbs.toolchain.contains("clang") && qbs.sysroot)
+ if (qbs.toolchain.includes("clang") && qbs.sysroot)
return qbs.sysroot + "/bin";
}
}
diff --git a/tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs b/tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs
index 7b0c1e515..648860d9c 100644
--- a/tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs
+++ b/tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs
@@ -1,7 +1,13 @@
+import qbs.Host
+
CppApplication {
Depends { name: "lex_yacc" }
consoleApplication: true
cpp.includePaths: ".."
+ Properties {
+ condition: Host.os().includes("darwin") && qbs.toolchain.includes("clang")
+ cpp.cFlags: "-Wno-implicit-function-declaration"
+ }
files: [
"g1.l",
"g1.y",
diff --git a/tests/auto/blackbox/testdata/linker-library-duplicates/setup-run-environment.qbs b/tests/auto/blackbox/testdata/linker-library-duplicates/setup-run-environment.qbs
index 9723fd3f5..c41e8f1d7 100644
--- a/tests/auto/blackbox/testdata/linker-library-duplicates/setup-run-environment.qbs
+++ b/tests/auto/blackbox/testdata/linker-library-duplicates/setup-run-environment.qbs
@@ -1,5 +1,3 @@
-import qbs 1.0
-
Project {
DynamicLibrary {
id: idLib1
@@ -8,6 +6,11 @@ Project {
files: ["lib1.cpp"]
Depends { name: "bundle" }
bundle.isBundle: false
+ Probe {
+ id: checker
+ property bool isGcc: qbs.toolchain.contains("gcc")
+ configure: { console.info("is gcc: " + isGcc); }
+ }
}
DynamicLibrary {
diff --git a/tests/auto/blackbox/testdata/linker-module-definition/linker-module-definition.qbs b/tests/auto/blackbox/testdata/linker-module-definition/linker-module-definition.qbs
new file mode 100644
index 000000000..cae80e651
--- /dev/null
+++ b/tests/auto/blackbox/testdata/linker-module-definition/linker-module-definition.qbs
@@ -0,0 +1,20 @@
+import qbs.Host
+
+Project {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
+ DynamicLibrary {
+ name: "testlib"
+ Depends { name: "cpp"}
+ files: ["testlib.cpp", "testlib.def"]
+ }
+ CppApplication {
+ name: "testapp"
+ Depends { name: "testlib"}
+ files: ["testapp.cpp"]
+ }
+}
diff --git a/tests/auto/blackbox/testdata/linker-module-definition/testapp.cpp b/tests/auto/blackbox/testdata/linker-module-definition/testapp.cpp
new file mode 100644
index 000000000..7cb5ee901
--- /dev/null
+++ b/tests/auto/blackbox/testdata/linker-module-definition/testapp.cpp
@@ -0,0 +1,39 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 Denis Shienkov <denis.shienkov@gmail.com>
+** Contact: http://www.qt.io/licensing
+**
+** This file is part of Qbs.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms and
+** conditions see http://www.qt.io/terms-conditions. For further information
+** use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+extern void foo();
+extern void bar();
+
+int main()
+{
+ foo();
+ bar();
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/linker-module-definition/testlib.cpp b/tests/auto/blackbox/testdata/linker-module-definition/testlib.cpp
new file mode 100644
index 000000000..4af8dd9bb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/linker-module-definition/testlib.cpp
@@ -0,0 +1,41 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 Denis Shienkov <denis.shienkov@gmail.com>
+** Contact: http://www.qt.io/licensing
+**
+** This file is part of Qbs.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms and
+** conditions see http://www.qt.io/terms-conditions. For further information
+** use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#include <cstdio>
+
+void foo()
+{
+ std::printf("foo\n");
+}
+
+void bar()
+{
+ std::printf("bar\n");
+}
diff --git a/tests/auto/blackbox/testdata/linker-module-definition/testlib.def b/tests/auto/blackbox/testdata/linker-module-definition/testlib.def
new file mode 100644
index 000000000..36967ddd5
--- /dev/null
+++ b/tests/auto/blackbox/testdata/linker-module-definition/testlib.def
@@ -0,0 +1,3 @@
+EXPORTS
+foo
+bar
diff --git a/tests/auto/blackbox/testdata/linker-variant/linker-variant.qbs b/tests/auto/blackbox/testdata/linker-variant/linker-variant.qbs
index 57bd4ccba..9256bf767 100644
--- a/tests/auto/blackbox/testdata/linker-variant/linker-variant.qbs
+++ b/tests/auto/blackbox/testdata/linker-variant/linker-variant.qbs
@@ -3,7 +3,7 @@ CppApplication {
property string linkerVariant
Probe {
id: gccProbe
- property bool isGcc: qbs.toolchain.contains("gcc")
+ property bool isGcc: qbs.toolchain.includes("gcc")
configure: {
console.info("is GCC: " + isGcc);
if (isGcc)
diff --git a/tests/auto/blackbox/testdata/linkerMode/darwin.s b/tests/auto/blackbox/testdata/linkerMode/darwin.s
new file mode 100644
index 000000000..fb165114b
--- /dev/null
+++ b/tests/auto/blackbox/testdata/linkerMode/darwin.s
@@ -0,0 +1,6 @@
+.globl _main
+.globl main
+
+_main:
+main:
+ ret
diff --git a/tests/auto/blackbox/testdata/linkerMode/linkerMode.qbs b/tests/auto/blackbox/testdata/linkerMode/linkerMode.qbs
index 1be50c0aa..176730ce0 100644
--- a/tests/auto/blackbox/testdata/linkerMode/linkerMode.qbs
+++ b/tests/auto/blackbox/testdata/linkerMode/linkerMode.qbs
@@ -2,7 +2,7 @@ Project {
CppApplication {
consoleApplication: true
name: "LinkedProduct-Assembly"
- files: ["main.s"]
+ files: qbs.targetOS.includes("darwin") ? "darwin.s" : "main.s"
cpp.linkerPath: cpp.compilerPathByLanguage["c"]
@@ -24,7 +24,7 @@ Project {
}
CppApplication {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
consoleApplication: true
name: "LinkedProduct-Objective-C"
@@ -50,7 +50,7 @@ Project {
}
CppApplication {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
consoleApplication: true
name: "LinkedProduct-Objective-C++"
diff --git a/tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs b/tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs
index 0b4de0ab9..6d068b6a2 100644
--- a/tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs
+++ b/tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs
@@ -55,6 +55,13 @@ DynamicLibrary {
}
}
+ Probe {
+ id: checker
+ property bool isGcc: qbs.toolchain.contains("gcc")
+ property bool isLinux: qbs.targetOS.contains("linux")
+ configure: { console.info("is Linux gcc: " + (isGcc && isLinux)) }
+ }
+
qbs.installPrefix: ""
install: true
installDir: ""
diff --git a/tests/auto/blackbox/testdata/list-property-order/modules/lower/lower.qbs b/tests/auto/blackbox/testdata/list-property-order/modules/lower/lower.qbs
index df9181641..c47a40aea 100644
--- a/tests/auto/blackbox/testdata/list-property-order/modules/lower/lower.qbs
+++ b/tests/auto/blackbox/testdata/list-property-order/modules/lower/lower.qbs
@@ -1,5 +1,5 @@
Module {
- property stringList listProp
+ property stringList listProp: [ "lower" ]
Rule {
inputs: ["intype"]
diff --git a/tests/auto/blackbox/testdata/list-property-order/product.qbs b/tests/auto/blackbox/testdata/list-property-order/product.qbs
index e92494693..bec122214 100644
--- a/tests/auto/blackbox/testdata/list-property-order/product.qbs
+++ b/tests/auto/blackbox/testdata/list-property-order/product.qbs
@@ -4,6 +4,7 @@ Product {
Depends { name: "higher1" }
Depends { name: "higher2" }
Depends { name: "higher3" }
+ lower.listProp: ["product"]
Group {
files: ["dummy.txt"]
fileTags: ["intype"]
diff --git a/tests/auto/blackbox/testdata/loadablemodule/loadablemodule.qbs b/tests/auto/blackbox/testdata/loadablemodule/loadablemodule.qbs
index ec5b0b358..8023eed36 100644
--- a/tests/auto/blackbox/testdata/loadablemodule/loadablemodule.qbs
+++ b/tests/auto/blackbox/testdata/loadablemodule/loadablemodule.qbs
@@ -1,8 +1,10 @@
+import qbs.Host
+
Project {
LoadableModule {
Depends { name: "cpp" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
name: "CoolPlugIn"
@@ -15,6 +17,12 @@ Project {
}
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
Depends { name: "cpp" }
Depends { name: "CoolPlugIn"; cpp.link: false }
consoleApplication: true
@@ -22,10 +30,10 @@ Project {
files: ["main.cpp"]
cpp.cxxLanguageVersion: "c++11"
- cpp.dynamicLibraries: [qbs.targetOS.contains("windows") ? "kernel32" : "dl"]
+ cpp.dynamicLibraries: [qbs.targetOS.includes("windows") ? "kernel32" : "dl"]
Properties {
- condition: qbs.targetOS.contains("unix") && !qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("unix") && !qbs.targetOS.includes("darwin")
cpp.rpaths: [cpp.rpathOrigin]
}
diff --git a/tests/auto/blackbox/testdata/localDeployment/localDeployment.qbs b/tests/auto/blackbox/testdata/localDeployment/localDeployment.qbs
index 650f07104..b3fa86d32 100644
--- a/tests/auto/blackbox/testdata/localDeployment/localDeployment.qbs
+++ b/tests/auto/blackbox/testdata/localDeployment/localDeployment.qbs
@@ -1,5 +1,13 @@
+import qbs.Host
+
Project {
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
type: ["application"]
consoleApplication: true
name: "HelloWorld"
diff --git a/tests/auto/blackbox/testdata/lsp/lsp.qbs b/tests/auto/blackbox/testdata/lsp/lsp.qbs
new file mode 100644
index 000000000..24479e0ec
--- /dev/null
+++ b/tests/auto/blackbox/testdata/lsp/lsp.qbs
@@ -0,0 +1,11 @@
+Project {
+ Product {
+ name: "dep"
+ Depends { name: "m" }
+ Depends { name: "Prefix"; submodules: ["m1", "m2", "m3"] }
+
+ }
+ Product {
+ Depends { name: "dep" }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/lsp/modules/Prefix/m1/m1.qbs b/tests/auto/blackbox/testdata/lsp/modules/Prefix/m1/m1.qbs
new file mode 100644
index 000000000..09bac2dc2
--- /dev/null
+++ b/tests/auto/blackbox/testdata/lsp/modules/Prefix/m1/m1.qbs
@@ -0,0 +1,5 @@
+Module {
+ property bool p1
+ property string p2
+ property bool x
+}
diff --git a/tests/auto/blackbox/testdata/lsp/modules/Prefix/m2/m2.qbs b/tests/auto/blackbox/testdata/lsp/modules/Prefix/m2/m2.qbs
new file mode 100644
index 000000000..84957060c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/lsp/modules/Prefix/m2/m2.qbs
@@ -0,0 +1,2 @@
+Module {
+}
diff --git a/tests/auto/blackbox/testdata/lsp/modules/Prefix/m3/m3.qbs b/tests/auto/blackbox/testdata/lsp/modules/Prefix/m3/m3.qbs
new file mode 100644
index 000000000..84957060c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/lsp/modules/Prefix/m3/m3.qbs
@@ -0,0 +1,2 @@
+Module {
+}
diff --git a/tests/auto/blackbox/testdata/lsp/modules/m/m.qbs b/tests/auto/blackbox/testdata/lsp/modules/m/m.qbs
new file mode 100644
index 000000000..84957060c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/lsp/modules/m/m.qbs
@@ -0,0 +1,2 @@
+Module {
+}
diff --git a/tests/auto/blackbox/testdata/makefile-generator/app.qbs b/tests/auto/blackbox/testdata/makefile-generator/app.qbs
index dfd67276e..fd3fbb91b 100644
--- a/tests/auto/blackbox/testdata/makefile-generator/app.qbs
+++ b/tests/auto/blackbox/testdata/makefile-generator/app.qbs
@@ -1,11 +1,19 @@
+import qbs.Host
+
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "the app"
consoleApplication: true
cpp.cxxLanguageVersion: "c++11"
cpp.separateDebugInformation: false
Properties {
- condition: qbs.targetOS.contains("macos")
+ condition: qbs.targetOS.includes("macos")
bundle.embedInfoPlist: false
cpp.minimumMacosVersion: "10.7"
}
diff --git a/tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs b/tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs
index 320494d00..9f41570f8 100644
--- a/tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs
+++ b/tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs
@@ -4,10 +4,13 @@ CppApplication {
Probe {
id: osProbe
- property stringList toolchain: qbs.toolchain
+ property string toolchainType: qbs.toolchainType
+ property string compilerVersion: cpp.compilerVersion
configure: {
- if (toolchain.contains("msvc"))
- console.info("is msvc");
+ console.info("is msvc: " + (toolchainType === "msvc" || toolchainType === "clang-cl"));
+ var isOld = (toolchainType === "msvc" && compilerVersion < "19.29.30138")
+ || (toolchainType === "clang-cl" && compilerVersion < "13");
+ console.info("is old msvc: " + isOld);
found = true;
}
}
diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs
index f99932b10..305cb29f1 100644
--- a/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs
+++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs
@@ -1,4 +1,4 @@
Module {
Depends { name: "cpp" }
- cpp.cxxLanguageVersion: "c++17"
+ cpp.cxxLanguageVersion: "c++23"
}
diff --git a/tests/auto/blackbox/testdata/minimumSystemVersion/fakewindows.qbs b/tests/auto/blackbox/testdata/minimumSystemVersion/fakewindows.qbs
index 1a56e0b7e..da836e609 100644
--- a/tests/auto/blackbox/testdata/minimumSystemVersion/fakewindows.qbs
+++ b/tests/auto/blackbox/testdata/minimumSystemVersion/fakewindows.qbs
@@ -4,7 +4,7 @@ import qbs.Utilities
// (but will still compile and link since we avoid passing a
// bad value to the linker)
CppApplication {
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
files: ["main.cpp"]
consoleApplication: true
cpp.minimumWindowsVersion: "5.3"
diff --git a/tests/auto/blackbox/testdata/minimumSystemVersion/macappstore.qbs b/tests/auto/blackbox/testdata/minimumSystemVersion/macappstore.qbs
index 8440da779..26a94e132 100644
--- a/tests/auto/blackbox/testdata/minimumSystemVersion/macappstore.qbs
+++ b/tests/auto/blackbox/testdata/minimumSystemVersion/macappstore.qbs
@@ -1,8 +1,15 @@
// just to make sure three-digit minimum versions work on macOS
// this only affects the value of __MAC_OS_X_VERSION_MIN_REQUIRED,
// not the actual LC_VERSION_MIN_MACOSX command which is limited to two
+import qbs.Host
+
CppApplication {
- condition: qbs.targetOS.contains("macos")
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && qbs.targetOS.includes("macos");
+ }
files: ["main.mm"]
consoleApplication: true
cpp.frameworks: "Foundation"
diff --git a/tests/auto/blackbox/testdata/minimumSystemVersion/specific.qbs b/tests/auto/blackbox/testdata/minimumSystemVersion/specific.qbs
index f6ecab418..b2b67642a 100644
--- a/tests/auto/blackbox/testdata/minimumSystemVersion/specific.qbs
+++ b/tests/auto/blackbox/testdata/minimumSystemVersion/specific.qbs
@@ -3,22 +3,29 @@ import qbs.Utilities
// a specific version of the operating systems is specified
// when the application is run its output should confirm
// that the given values took effect
+import qbs.Host
+
CppApplication {
- condition: qbs.targetOS.contains("windows") || qbs.targetOS.contains("macos")
- files: [qbs.targetOS.contains("darwin") ? "main.mm" : "main.cpp"]
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && qbs.targetOS.includes("windows") || qbs.targetOS.includes("macos");
+ }
+ files: [qbs.targetOS.includes("darwin") ? "main.mm" : "main.cpp"]
consoleApplication: true
Properties {
- condition: qbs.targetOS.contains("windows")
- cpp.minimumWindowsVersion: "6.0"
+ condition: qbs.targetOS.includes("windows")
+ cpp.minimumWindowsVersion: "6.2"
cpp.defines: [
- "QBS_WINVER=0x600",
+ "QBS_WINVER=0x602",
"TOOLCHAIN_INSTALL_PATH=" + Utilities.cStringQuote(cpp.toolchainInstallPath)
]
}
Properties {
- condition: qbs.targetOS.contains("macos")
+ condition: qbs.targetOS.includes("macos")
cpp.frameworks: "Foundation"
cpp.minimumMacosVersion: "10.7"
}
diff --git a/tests/auto/blackbox/testdata/minimumSystemVersion/unspecified-forced.qbs b/tests/auto/blackbox/testdata/minimumSystemVersion/unspecified-forced.qbs
index a5ea620fd..adb61a6d8 100644
--- a/tests/auto/blackbox/testdata/minimumSystemVersion/unspecified-forced.qbs
+++ b/tests/auto/blackbox/testdata/minimumSystemVersion/unspecified-forced.qbs
@@ -2,8 +2,16 @@ import qbs.Utilities
// no minimum versions are specified, and explicitly set to undefined in
// case the profile has set it
+import qbs.Host
+
CppApplication {
- files: [qbs.targetOS.contains("darwin") ? "main.mm" : "main.cpp"]
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
+ files: [qbs.targetOS.includes("darwin") ? "main.mm" : "main.cpp"]
consoleApplication: true
cpp.minimumWindowsVersion: undefined
cpp.minimumMacosVersion: undefined
@@ -11,12 +19,12 @@ CppApplication {
cpp.minimumAndroidVersion: undefined
Properties {
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
cpp.defines: ["TOOLCHAIN_INSTALL_PATH=" + Utilities.cStringQuote(cpp.toolchainInstallPath)]
}
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.frameworks: "Foundation"
}
}
diff --git a/tests/auto/blackbox/testdata/minimumSystemVersion/unspecified.qbs b/tests/auto/blackbox/testdata/minimumSystemVersion/unspecified.qbs
index 0eeb2d547..3c6559c39 100644
--- a/tests/auto/blackbox/testdata/minimumSystemVersion/unspecified.qbs
+++ b/tests/auto/blackbox/testdata/minimumSystemVersion/unspecified.qbs
@@ -1,17 +1,25 @@
import qbs.Utilities
// no minimum versions are specified so the profile defaults will be used
+import qbs.Host
+
CppApplication {
- files: [qbs.targetOS.contains("darwin") ? "main.mm" : "main.cpp"]
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
+ files: [qbs.targetOS.includes("darwin") ? "main.mm" : "main.cpp"]
consoleApplication: true
Properties {
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
cpp.defines: ["TOOLCHAIN_INSTALL_PATH=" + Utilities.cStringQuote(cpp.toolchainInstallPath)]
}
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.frameworks: "Foundation"
}
}
diff --git a/tests/auto/blackbox/testdata/module-conditions/module-conditions.qbs b/tests/auto/blackbox/testdata/module-conditions/module-conditions.qbs
index dc3768203..207df5ded 100644
--- a/tests/auto/blackbox/testdata/module-conditions/module-conditions.qbs
+++ b/tests/auto/blackbox/testdata/module-conditions/module-conditions.qbs
@@ -1,5 +1,3 @@
-import qbs
-
Project {
Product {
name: "p1"
diff --git a/tests/auto/blackbox/testdata/module-providers/main.cpp b/tests/auto/blackbox/testdata/module-providers/main.cpp
deleted file mode 100644
index 9cd29b1fe..000000000
--- a/tests/auto/blackbox/testdata/module-providers/main.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <iostream>
-
-int main()
-{
- std::cout << "The letters are " << LETTER1 << " and " << LETTER2 << std::endl;
-}
diff --git a/tests/auto/blackbox/testdata/module-providers/module-providers.qbs b/tests/auto/blackbox/testdata/module-providers/module-providers.qbs
deleted file mode 100644
index d1ff79269..000000000
--- a/tests/auto/blackbox/testdata/module-providers/module-providers.qbs
+++ /dev/null
@@ -1,20 +0,0 @@
-Project {
- CppApplication {
- name: "app1"
- Depends { name: "mygenerator.module1" }
- Depends { name: "mygenerator.module2" }
- moduleProviders.mygenerator.chooseLettersFrom: "beginning"
- files: "main.cpp"
- }
- CppApplication {
- name: "app2"
- Depends { name: "mygenerator.module1" }
- Depends { name: "mygenerator.module2" }
- Profile {
- name: "myProfile"
- moduleProviders.mygenerator.chooseLettersFrom: "end"
- }
- qbs.profile: "myProfile"
- files: "main.cpp"
- }
-}
diff --git a/tests/auto/blackbox/testdata/module-providers/module-providers/mygenerator/provider.qbs b/tests/auto/blackbox/testdata/module-providers/module-providers/mygenerator/provider.qbs
deleted file mode 100644
index dae02c03a..000000000
--- a/tests/auto/blackbox/testdata/module-providers/module-providers/mygenerator/provider.qbs
+++ /dev/null
@@ -1,31 +0,0 @@
-import qbs.File;
-import qbs.FileInfo;
-import qbs.TextFile;
-
-ModuleProvider {
- property string chooseLettersFrom
- relativeSearchPaths: {
- console.info("Running setup script for " + name);
- var startAtBeginning = chooseLettersFrom === "beginning";
- var moduleBaseDir = FileInfo.joinPaths(outputBaseDir, "modules", "mygenerator");
- var module1Dir = FileInfo.joinPaths(moduleBaseDir, "module1");
- File.makePath(module1Dir);
- var module1 = new TextFile(FileInfo.joinPaths(module1Dir, "module1.qbs"), TextFile.WriteOnly);
- module1.writeLine("Module {");
- module1.writeLine(" Depends { name: 'cpp' }");
- module1.writeLine(" cpp.defines: 'LETTER1=" + (startAtBeginning ? "\\\'A\\\'" : "\\\'Z\\\'")
- + "'");
- module1.writeLine("}");
- module1.close();
- var module2Dir = FileInfo.joinPaths(moduleBaseDir, "module2");
- File.makePath(module2Dir);
- var module2 = new TextFile(FileInfo.joinPaths(module2Dir, "module2.qbs"), TextFile.WriteOnly);
- module2.writeLine("Module {");
- module2.writeLine(" Depends { name: 'cpp' }");
- module2.writeLine(" cpp.defines: 'LETTER2=" + (startAtBeginning ? "\\\'B\\\'" : "\\\'Y\\\'")
- + "'");
- module2.writeLine("}");
- module2.close();
- return "";
- }
-}
diff --git a/tests/auto/blackbox/testdata/concurrent-executor/dummy2.input b/tests/auto/blackbox/testdata/msvc-asm-flags/include/header.inc
index e69de29bb..e69de29bb 100644
--- a/tests/auto/blackbox/testdata/concurrent-executor/dummy2.input
+++ b/tests/auto/blackbox/testdata/msvc-asm-flags/include/header.inc
diff --git a/tests/auto/blackbox/testdata/msvc-asm-flags/msvc-asm-flags.asm b/tests/auto/blackbox/testdata/msvc-asm-flags/msvc-asm-flags.asm
new file mode 100644
index 000000000..eddc49131
--- /dev/null
+++ b/tests/auto/blackbox/testdata/msvc-asm-flags/msvc-asm-flags.asm
@@ -0,0 +1,8 @@
+include header.inc
+
+.code
+main proc
+ mov ecx, 16
+main endp
+
+end \ No newline at end of file
diff --git a/tests/auto/blackbox/testdata/msvc-asm-flags/msvc-asm-flags.qbs b/tests/auto/blackbox/testdata/msvc-asm-flags/msvc-asm-flags.qbs
new file mode 100644
index 000000000..d632098c9
--- /dev/null
+++ b/tests/auto/blackbox/testdata/msvc-asm-flags/msvc-asm-flags.qbs
@@ -0,0 +1,6 @@
+StaticLibrary {
+ condition: qbs.toolchain.includes("msvc")
+ Depends { name: "cpp" }
+ files: "msvc-asm-flags.asm"
+ cpp.assemblerFlags: ["/I", "include"]
+}
diff --git a/tests/auto/blackbox/testdata/multiplexed-tool/multiplexed-tool.qbs b/tests/auto/blackbox/testdata/multiplexed-tool/multiplexed-tool.qbs
index 3994bd95f..1ec51c354 100644
--- a/tests/auto/blackbox/testdata/multiplexed-tool/multiplexed-tool.qbs
+++ b/tests/auto/blackbox/testdata/multiplexed-tool/multiplexed-tool.qbs
@@ -1,13 +1,23 @@
+import qbs.Host
+
Project {
CppApplication {
name: "tool"
consoleApplication: true
+ property bool _testPlatform: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
Profile {
name: "debugProfile"
+ baseProfile: project.profile
qbs.buildVariant: "debug"
}
Profile {
name: "releaseProfile"
+ baseProfile: project.profile
qbs.buildVariant: "release"
}
multiplexByQbsProperties: "profiles"
diff --git a/tests/auto/blackbox/testdata/nested-properties/modules/lowerlevel/lower-level.qbs b/tests/auto/blackbox/testdata/nested-properties/modules/lowerlevel/lower-level.qbs
index f8b6a7dc0..a5a6c7d4b 100644
--- a/tests/auto/blackbox/testdata/nested-properties/modules/lowerlevel/lower-level.qbs
+++ b/tests/auto/blackbox/testdata/nested-properties/modules/lowerlevel/lower-level.qbs
@@ -10,7 +10,7 @@ Module {
var cmd = new JavaScriptCommand();
cmd.sourceCode = function() { };
var prop = product.lowerlevel.prop;
- cmd.description = "lowerlevel.prop is '" + prop + "'.";
+ cmd.description = "lowerlevel.prop is '" + prop + "'";
return [cmd];
}
}
diff --git a/tests/auto/blackbox/testdata/no-exported-symbols/no-exported-symbols.qbs b/tests/auto/blackbox/testdata/no-exported-symbols/no-exported-symbols.qbs
index 346a94e21..9aad3d032 100644
--- a/tests/auto/blackbox/testdata/no-exported-symbols/no-exported-symbols.qbs
+++ b/tests/auto/blackbox/testdata/no-exported-symbols/no-exported-symbols.qbs
@@ -12,7 +12,7 @@ Project {
id: toolchainProbe
property stringList toolchain: qbs.toolchain
configure: {
- if (toolchain.contains("msvc") && !toolchain.contains("clang-cl"))
+ if (toolchain.includes("msvc") && !toolchain.includes("clang-cl"))
console.info("compiler is MSVC")
else
console.info("compiler is not MSVC")
diff --git a/tests/auto/blackbox/testdata/no-such-profile/no-such-profile.qbs b/tests/auto/blackbox/testdata/no-such-profile/no-such-profile.qbs
index 8e64ba478..1de3a4b10 100644
--- a/tests/auto/blackbox/testdata/no-such-profile/no-such-profile.qbs
+++ b/tests/auto/blackbox/testdata/no-such-profile/no-such-profile.qbs
@@ -1,5 +1,3 @@
-import qbs
-
Product {
name: "theProduct"
property int p
diff --git a/tests/auto/blackbox/testdata/nodejs/hello.qbs b/tests/auto/blackbox/testdata/nodejs/hello.qbs
index c19e455db..849a8789f 100644
--- a/tests/auto/blackbox/testdata/nodejs/hello.qbs
+++ b/tests/auto/blackbox/testdata/nodejs/hello.qbs
@@ -1,4 +1,12 @@
+import qbs.Host
+
NodeJSApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
nodejs.applicationFile: "hello.js"
name: "hello"
}
diff --git a/tests/auto/blackbox/testdata/nsis/hello.qbs b/tests/auto/blackbox/testdata/nsis/hello.qbs
index a161a6998..f70f27e2b 100644
--- a/tests/auto/blackbox/testdata/nsis/hello.qbs
+++ b/tests/auto/blackbox/testdata/nsis/hello.qbs
@@ -1,5 +1,5 @@
NSISSetup {
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
name: "Qbs Hello"
targetName: "qbs-hello-" + qbs.architecture
files: ["hello.nsi", "hello.bat"]
diff --git a/tests/auto/blackbox/testdata/nsisDependencies/nsisDependencies.qbs b/tests/auto/blackbox/testdata/nsisDependencies/nsisDependencies.qbs
index d8185aabf..a4ce92067 100644
--- a/tests/auto/blackbox/testdata/nsisDependencies/nsisDependencies.qbs
+++ b/tests/auto/blackbox/testdata/nsisDependencies/nsisDependencies.qbs
@@ -2,7 +2,7 @@ import qbs.FileInfo
import qbs.TextFile
Project {
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
NSISSetup {
Depends { name: "app" }
diff --git a/tests/auto/blackbox/testdata/output-redirection/output-redirection.qbs b/tests/auto/blackbox/testdata/output-redirection/output-redirection.qbs
index 3ee443438..d2474cecf 100644
--- a/tests/auto/blackbox/testdata/output-redirection/output-redirection.qbs
+++ b/tests/auto/blackbox/testdata/output-redirection/output-redirection.qbs
@@ -1,4 +1,5 @@
import qbs.FileInfo
+import qbs.Host
Product {
name: "the-product"
@@ -21,7 +22,7 @@ Product {
prepare: {
var binary;
var prefixArgs;
- if (product.qbs.hostOS.contains("windows")) {
+ if (Host.os().includes("windows")) {
binary = product.qbs.windowsShellPath;
prefixArgs = ["/c", "type"];
} else {
diff --git a/tests/auto/blackbox/testdata/overrideProjectProperties/helper_lib.qbs b/tests/auto/blackbox/testdata/overrideProjectProperties/helper_lib.qbs
index b69dd0da8..c7eab99e2 100644
--- a/tests/auto/blackbox/testdata/overrideProjectProperties/helper_lib.qbs
+++ b/tests/auto/blackbox/testdata/overrideProjectProperties/helper_lib.qbs
@@ -3,7 +3,7 @@ DynamicLibrary {
files: "helperlib.cpp"
Depends { name: "cpp" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
}
diff --git a/tests/auto/blackbox/testdata/path-list-in-probe/main.cpp b/tests/auto/blackbox/testdata/path-list-in-probe/main.cpp
new file mode 100644
index 000000000..5bc549337
--- /dev/null
+++ b/tests/auto/blackbox/testdata/path-list-in-probe/main.cpp
@@ -0,0 +1,4 @@
+int main()
+{
+ return 0;
+} \ No newline at end of file
diff --git a/tests/auto/blackbox/testdata/path-list-in-probe/path-list-in-probe.qbs b/tests/auto/blackbox/testdata/path-list-in-probe/path-list-in-probe.qbs
new file mode 100644
index 000000000..3bf36367a
--- /dev/null
+++ b/tests/auto/blackbox/testdata/path-list-in-probe/path-list-in-probe.qbs
@@ -0,0 +1,18 @@
+Project {
+ CppApplication {
+ Probe {
+ id: theProbe
+ property pathList result
+ configure: {
+ result = ["main.cpp"]
+ found = true
+ }
+ }
+ property pathList res: theProbe.found ? theProbe.result : []
+
+ Group {
+ name: "files"
+ files: res
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/path-probe/BaseApp.qbs b/tests/auto/blackbox/testdata/path-probe/BaseApp.qbs
index 84c00c240..62871698e 100644
--- a/tests/auto/blackbox/testdata/path-probe/BaseApp.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/BaseApp.qbs
@@ -28,9 +28,10 @@
**
****************************************************************************/
+import qbs.FileInfo
import qbs.Probes
-CppApplication {
+Product {
property varList inputSelectors
property varList inputNames
@@ -38,8 +39,10 @@ CppApplication {
property pathList inputSearchPaths
property var inputNameFilter
property var inputCandidateFilter
+ property stringList inputEnvironmentPaths
property stringList outputFilePaths
+ property var outputCandidatePaths
Probes.PathProbe {
id: probe
@@ -49,6 +52,8 @@ CppApplication {
nameFilter: inputNameFilter
candidateFilter: inputCandidateFilter
searchPaths: inputSearchPaths
+ platformSearchPaths: []
+ environmentPaths: inputEnvironmentPaths
}
property bool validate: {
@@ -56,21 +61,72 @@ CppApplication {
if (lhs.length !== rhs.length)
return false;
for (var i = 0; i < lhs.length; ++i) {
- if (lhs[i] !== rhs[i])
+ if ((lhs[i] instanceof Array) && (rhs[i] instanceof Array)) {
+ if (!compareArrays(lhs[i], rhs[i]))
+ return false;
+ } else if (FileInfo.resolvePath(path, lhs[i]) !== FileInfo.resolvePath(path, rhs[i])) {
return false;
+ }
}
return true;
};
- if (!probe.found)
+ if (outputCandidatePaths) {
+ var actual = probe.allResults.map(function(file) { return file.candidatePaths; });
+ if (!compareArrays(actual, outputCandidatePaths)) {
+ throw "Invalid canndidatePaths: actual = " + JSON.stringify(actual)
+ + ", expected = " + JSON.stringify(outputCandidatePaths);
+ }
+ }
+
+ if (!probe.found) {
+ if (probe.filePath) {
+ throw "Invalid filePath: actual = " + JSON.stringify(probe.filePath)
+ + ", expected = 'undefined'";
+ }
+ if (probe.fileName) {
+ throw "Invalid fileName: actual = " + JSON.stringify(probe.fileName)
+ + ", expected = 'undefined'";
+ }
+ if (probe.path) {
+ throw "Invalid path: actual = " + JSON.stringify(probe.path)
+ + ", expected = 'undefined'";
+ }
+
throw "Probe failed to find files";
+ }
if (outputFilePaths) {
var actual = probe.allResults.map(function(file) { return file.filePath; });
- if (!compareArrays(actual, outputFilePaths))
- throw "Invalid filePaths: actual = " + actual + ", expected = " + outputFilePaths;
+ if (!compareArrays(actual, outputFilePaths)) {
+ throw "Invalid filePaths: actual = " + JSON.stringify(actual)
+ + ", expected = " + JSON.stringify(outputFilePaths);
+ }
}
- }
- files: ["main.cpp"]
+ if (probe.allResults.length !== 1)
+ return;
+
+ // check that single-file interface matches the first value in allResults
+ var expectedFilePath = probe.allResults[0].filePath;
+ if (probe.filePath !== expectedFilePath) {
+ throw "Invalid filePath: actual = " + probe.filePath
+ + ", expected = " + expectedFilePath;
+ }
+ var expectedFileName = probe.allResults[0].fileName;
+ if (probe.fileName !== expectedFileName) {
+ throw "Invalid fileName: actual = " + probe.fileName
+ + ", expected = " + expectedFileName;
+ }
+ var expectedPath = probe.allResults[0].path;
+ if (FileInfo.resolvePath(path, probe.path) !== FileInfo.resolvePath(path, expectedPath)) {
+ throw "Invalid path: actual = " + probe.path
+ + ", expected = " + expectedPath;
+ }
+ var expectedCandidatePaths = probe.allResults[0].candidatePaths;
+ if (!compareArrays(probe.candidatePaths, expectedCandidatePaths)) {
+ throw "Invalid candidatePaths: actual = " + JSON.stringify(probe.candidatePaths)
+ + ", expected = " + JSON.stringify(expectedCandidatePaths);
+ }
+ }
}
diff --git a/tests/auto/blackbox/testdata/path-probe/candidate-filter.qbs b/tests/auto/blackbox/testdata/path-probe/candidate-filter.qbs
index a65256a68..5c259ae9b 100644
--- a/tests/auto/blackbox/testdata/path-probe/candidate-filter.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/candidate-filter.qbs
@@ -3,10 +3,12 @@ import qbs.FileInfo
BaseApp {
inputNames: ["tool.1", "tool.2"]
inputSearchPaths: "bin"
- outputFilePaths: ["bin/tool.2"]
inputCandidateFilter: {
+ var fi = FileInfo;
return function(f) {
- return FileInfo.fileName(f) == "tool.2";
+ return fi.fileName(f) == "tool.2";
}
}
+ outputFilePaths: ["bin/tool.2"]
+ outputCandidatePaths: [["bin/tool.1", "bin/tool.2"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/environment-paths.qbs b/tests/auto/blackbox/testdata/path-probe/environment-paths.qbs
new file mode 100644
index 000000000..fca824bfb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/path-probe/environment-paths.qbs
@@ -0,0 +1,10 @@
+import qbs.FileInfo
+
+BaseApp {
+ inputNames: "tool"
+ inputSearchPaths: ["bin", "usr/bin"]
+ // env takes precedence
+ inputEnvironmentPaths: "SEARCH_PATH"
+ outputFilePaths: ["usr/bin/tool"]
+ outputCandidatePaths: [["usr/bin/tool"]]
+}
diff --git a/tests/auto/blackbox/testdata/path-probe/mult-files-common-suffixes.qbs b/tests/auto/blackbox/testdata/path-probe/mult-files-common-suffixes.qbs
new file mode 100644
index 000000000..c4d53a715
--- /dev/null
+++ b/tests/auto/blackbox/testdata/path-probe/mult-files-common-suffixes.qbs
@@ -0,0 +1,10 @@
+BaseApp {
+ inputSelectors: [
+ {names : "tool"},
+ {names : "super-tool"},
+ ]
+ inputNameSuffixes: ".1"
+ inputSearchPaths: "bin"
+ outputFilePaths: ["bin/tool.1", "bin/super-tool.1"]
+ outputCandidatePaths: [["bin/tool.1"], ["bin/super-tool.1"]]
+}
diff --git a/tests/auto/blackbox/testdata/path-probe/mult-files-mult-suffixes.qbs b/tests/auto/blackbox/testdata/path-probe/mult-files-mult-suffixes.qbs
index b112db44d..33656d4e6 100644
--- a/tests/auto/blackbox/testdata/path-probe/mult-files-mult-suffixes.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/mult-files-mult-suffixes.qbs
@@ -1,8 +1,9 @@
BaseApp {
inputSelectors: [
- {names : "tool", nameSuffixes: [".1", ".2"]},
+ {names : "tool", nameSuffixes: [".0", ".1", ".2"]},
{names : "super-tool", nameSuffixes: [".1"]},
]
inputSearchPaths: "bin"
outputFilePaths: ["bin/tool.1", "bin/super-tool.1"]
+ outputCandidatePaths: [["bin/tool.0", "bin/tool.1"], ["bin/super-tool.1"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/mult-files-mult-variants.qbs b/tests/auto/blackbox/testdata/path-probe/mult-files-mult-variants.qbs
index 60c56e6b4..dd0b58aa2 100644
--- a/tests/auto/blackbox/testdata/path-probe/mult-files-mult-variants.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/mult-files-mult-variants.qbs
@@ -1,9 +1,10 @@
BaseApp {
inputSelectors: [
"tool",
- ["tool.1", "tool.2"],
+ ["tool.0", "tool.1", "tool.2"],
{names : ["tool.3", "tool.4"]},
]
inputSearchPaths: "bin"
outputFilePaths: ["bin/tool", "bin/tool.1", "bin/tool.3"]
+ outputCandidatePaths: [["bin/tool"], ["bin/tool.0", "bin/tool.1"], ["bin/tool.3"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/mult-files-suffixes.qbs b/tests/auto/blackbox/testdata/path-probe/mult-files-suffixes.qbs
index 5e4fc27ca..7ae78de24 100644
--- a/tests/auto/blackbox/testdata/path-probe/mult-files-suffixes.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/mult-files-suffixes.qbs
@@ -5,4 +5,5 @@ BaseApp {
]
inputSearchPaths: "bin"
outputFilePaths: ["bin/tool.2", "bin/super-tool.1"]
+ outputCandidatePaths: [["bin/tool.2"], ["bin/super-tool.1"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/mult-files.qbs b/tests/auto/blackbox/testdata/path-probe/mult-files.qbs
index 08727ac01..aa08befc8 100644
--- a/tests/auto/blackbox/testdata/path-probe/mult-files.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/mult-files.qbs
@@ -7,4 +7,5 @@ BaseApp {
]
inputSearchPaths: "bin"
outputFilePaths: ["bin/tool.1", "bin/tool.2", "bin/tool.3", "bin/tool.4"]
+ outputCandidatePaths: [["bin/tool.1"], ["bin/tool.2"], ["bin/tool.3"], ["bin/tool.4"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/name-filter.qbs b/tests/auto/blackbox/testdata/path-probe/name-filter.qbs
index 406988fed..b2840443b 100644
--- a/tests/auto/blackbox/testdata/path-probe/name-filter.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/name-filter.qbs
@@ -7,4 +7,5 @@ BaseApp {
};
}
outputFilePaths: ["bin/tool.2"]
+ outputCandidatePaths: [["bin/tool.2"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/non-existent-selector.qbs b/tests/auto/blackbox/testdata/path-probe/non-existent-selector.qbs
index aaa27042c..aabb0fe7b 100644
--- a/tests/auto/blackbox/testdata/path-probe/non-existent-selector.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/non-existent-selector.qbs
@@ -5,4 +5,5 @@ BaseApp {
"tool.2",
]
inputSearchPaths: "bin"
+ outputCandidatePaths: [["bin/tool.1"], ["bin/nonexistent"], ["bin/tool.2"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/non-existent.qbs b/tests/auto/blackbox/testdata/path-probe/non-existent.qbs
index f0c58fa6c..aad01c31b 100644
--- a/tests/auto/blackbox/testdata/path-probe/non-existent.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/non-existent.qbs
@@ -1,4 +1,5 @@
BaseApp {
inputNames: "nonexistent"
inputSearchPaths: "bin"
+ outputCandidatePaths: [["bin/nonexistent"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/single-file-mult-variants.qbs b/tests/auto/blackbox/testdata/path-probe/single-file-mult-variants.qbs
index 992a0bea4..98f5b141a 100644
--- a/tests/auto/blackbox/testdata/path-probe/single-file-mult-variants.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/single-file-mult-variants.qbs
@@ -2,4 +2,5 @@ BaseApp {
inputNames: ["tool.1", "tool.2"]
inputSearchPaths: "bin"
outputFilePaths: ["bin/tool.1"]
+ outputCandidatePaths: [["bin/tool.1"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/single-file-selector-array.qbs b/tests/auto/blackbox/testdata/path-probe/single-file-selector-array.qbs
index 697665242..292df4add 100644
--- a/tests/auto/blackbox/testdata/path-probe/single-file-selector-array.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/single-file-selector-array.qbs
@@ -2,4 +2,5 @@ BaseApp {
inputSelectors: ["tool"]
inputSearchPaths: "bin"
outputFilePaths: ["bin/tool"]
+ outputCandidatePaths: [["bin/tool"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/single-file-selector.qbs b/tests/auto/blackbox/testdata/path-probe/single-file-selector.qbs
index d57700baf..cf7cfe436 100644
--- a/tests/auto/blackbox/testdata/path-probe/single-file-selector.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/single-file-selector.qbs
@@ -2,4 +2,5 @@ BaseApp {
inputSelectors: "tool"
inputSearchPaths: "bin"
outputFilePaths: ["bin/tool"]
+ outputCandidatePaths: [["bin/tool"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/single-file-suffixes.qbs b/tests/auto/blackbox/testdata/path-probe/single-file-suffixes.qbs
index 4442e719a..3436a49c3 100644
--- a/tests/auto/blackbox/testdata/path-probe/single-file-suffixes.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/single-file-suffixes.qbs
@@ -1,6 +1,7 @@
BaseApp {
inputNames: "tool"
inputSearchPaths: "bin"
- inputNameSuffixes: [".1", ".2"]
+ inputNameSuffixes: [".0", ".1", ".2"]
outputFilePaths: ["bin/tool.1"]
+ outputCandidatePaths: [["bin/tool.0", "bin/tool.1"]]
}
diff --git a/tests/auto/blackbox/testdata/path-probe/single-file.qbs b/tests/auto/blackbox/testdata/path-probe/single-file.qbs
index 3590e7664..e22d7ba0d 100644
--- a/tests/auto/blackbox/testdata/path-probe/single-file.qbs
+++ b/tests/auto/blackbox/testdata/path-probe/single-file.qbs
@@ -2,4 +2,5 @@ BaseApp {
inputNames: "tool"
inputSearchPaths: "bin"
outputFilePaths: ["bin/tool"]
+ outputCandidatePaths: [["bin/tool"]]
}
diff --git a/tests/auto/blackbox/testdata/innosetup/inc/qbsinc.iss b/tests/auto/blackbox/testdata/path-probe/usr/bin/tool
index e69de29bb..e69de29bb 100644
--- a/tests/auto/blackbox/testdata/innosetup/inc/qbsinc.iss
+++ b/tests/auto/blackbox/testdata/path-probe/usr/bin/tool
diff --git a/tests/auto/blackbox/testdata/plugin-dependency/helper1.cpp b/tests/auto/blackbox/testdata/plugin-dependency/helper1.cpp
index 72331da80..15a3e0d86 100644
--- a/tests/auto/blackbox/testdata/plugin-dependency/helper1.cpp
+++ b/tests/auto/blackbox/testdata/plugin-dependency/helper1.cpp
@@ -1,4 +1,4 @@
-#include <stdio.h>
+#include <cstdio>
#if defined(_WIN32) || defined(WIN32)
# define EXPORT __declspec(dllexport)
@@ -12,5 +12,5 @@
EXPORT void helper1_hello()
{
- puts("helper1 says hello!");
+ std::puts("helper1 says hello!");
}
diff --git a/tests/auto/blackbox/testdata/plugin-dependency/helper2.cpp b/tests/auto/blackbox/testdata/plugin-dependency/helper2.cpp
index cdcdfc942..dccd72a04 100644
--- a/tests/auto/blackbox/testdata/plugin-dependency/helper2.cpp
+++ b/tests/auto/blackbox/testdata/plugin-dependency/helper2.cpp
@@ -1,7 +1,7 @@
#include "../dllexport.h"
-#include <stdio.h>
+#include <cstdio>
DLL_EXPORT void helper2_hello()
{
- puts("Hello from helper2!");
+ std::puts("Hello from helper2!");
}
diff --git a/tests/auto/blackbox/testdata/plugin-dependency/plugin-dependency.qbs b/tests/auto/blackbox/testdata/plugin-dependency/plugin-dependency.qbs
index c619b33ef..752673b78 100644
--- a/tests/auto/blackbox/testdata/plugin-dependency/plugin-dependency.qbs
+++ b/tests/auto/blackbox/testdata/plugin-dependency/plugin-dependency.qbs
@@ -1,16 +1,18 @@
+import qbs.Host
+
Project {
CppApplication {
name: "myapp"
files: ["main.cpp"]
Depends {
name: "plugin1" // not to be linked
- cpp.link: qbs.hostOS === undefined
+ cpp.link: Host.os() === undefined
}
Depends { name: "plugin2" } // not to be linked
Depends {
name: "plugin3" // supposed to be linked
- //property bool theCondition: true
- cpp.link: /*theCondition && */product.name === "myapp" // TODO: Make this work
+ property bool theCondition: true
+ cpp.link: theCondition && product.name === "myapp"
}
Depends { name: "plugin4" } // supposed to be linked
Depends { name: "helper1" } // supposed to be linked
diff --git a/tests/auto/blackbox/testdata/plugin-dependency/plugin1.cpp b/tests/auto/blackbox/testdata/plugin-dependency/plugin1.cpp
index 2535bd85e..8cf7e3851 100644
--- a/tests/auto/blackbox/testdata/plugin-dependency/plugin1.cpp
+++ b/tests/auto/blackbox/testdata/plugin-dependency/plugin1.cpp
@@ -1,7 +1,7 @@
#include "../dllexport.h"
-#include <stdio.h>
+#include <cstdio>
DLL_EXPORT void plugin1_hello()
{
- puts("plugin1 says hello!");
+ std::puts("plugin1 says hello!");
}
diff --git a/tests/auto/blackbox/testdata/plugin-dependency/plugin2.cpp b/tests/auto/blackbox/testdata/plugin-dependency/plugin2.cpp
index fb2030d60..9efc83e2b 100644
--- a/tests/auto/blackbox/testdata/plugin-dependency/plugin2.cpp
+++ b/tests/auto/blackbox/testdata/plugin-dependency/plugin2.cpp
@@ -1,7 +1,7 @@
#include "../dllexport.h"
-#include <stdio.h>
+#include <cstdio>
DLL_EXPORT void plugin2_hello()
{
- puts("plugin2 says hello!");
+ std::puts("plugin2 says hello!");
}
diff --git a/tests/auto/blackbox/testdata/plugin-dependency/plugin3.cpp b/tests/auto/blackbox/testdata/plugin-dependency/plugin3.cpp
index 8a9f5ee76..0e08ac85a 100644
--- a/tests/auto/blackbox/testdata/plugin-dependency/plugin3.cpp
+++ b/tests/auto/blackbox/testdata/plugin-dependency/plugin3.cpp
@@ -1,7 +1,7 @@
#include "../dllexport.h"
-#include <stdio.h>
+#include <cstdio>
DLL_EXPORT void plugin3_hello()
{
- puts("plugin3 says hello!");
+ std::puts("plugin3 says hello!");
}
diff --git a/tests/auto/blackbox/testdata/plugin-dependency/plugin4.cpp b/tests/auto/blackbox/testdata/plugin-dependency/plugin4.cpp
index 4663247fa..cee2362ec 100644
--- a/tests/auto/blackbox/testdata/plugin-dependency/plugin4.cpp
+++ b/tests/auto/blackbox/testdata/plugin-dependency/plugin4.cpp
@@ -1,7 +1,7 @@
#include "../dllexport.h"
-#include <stdio.h>
+#include <cstdio>
DLL_EXPORT void plugin4_hello()
{
- puts("plugin4 says hello!");
+ std::puts("plugin4 says hello!");
}
diff --git a/tests/auto/blackbox/testdata/precompiled-headers-and-redefine/precompiled-headers-and-redefine.qbs b/tests/auto/blackbox/testdata/precompiled-headers-and-redefine/precompiled-headers-and-redefine.qbs
index 55b53a7af..3974b514e 100644
--- a/tests/auto/blackbox/testdata/precompiled-headers-and-redefine/precompiled-headers-and-redefine.qbs
+++ b/tests/auto/blackbox/testdata/precompiled-headers-and-redefine/precompiled-headers-and-redefine.qbs
@@ -8,7 +8,7 @@ CppApplication {
Group {
files: ["file.cpp"]
cpp.defines: ["MYDEF=1"]
- cpp.cxxFlags: base.concat(qbs.toolchain.contains("clang-cl") ? ["-Wno-clang-cl-pch"] : [])
+ cpp.cxxFlags: base.concat(qbs.toolchain.includes("clang-cl") ? ["-Wno-clang-cl-pch"] : [])
}
cpp.treatWarningsAsErrors: true
diff --git a/tests/auto/blackbox/testdata/probe-in-exported-module/modules/depmodule/depmodule.qbs b/tests/auto/blackbox/testdata/probe-in-exported-module/modules/depmodule/depmodule.qbs
index 41c6cfe50..45b8e157f 100644
--- a/tests/auto/blackbox/testdata/probe-in-exported-module/modules/depmodule/depmodule.qbs
+++ b/tests/auto/blackbox/testdata/probe-in-exported-module/modules/depmodule/depmodule.qbs
@@ -7,7 +7,7 @@ Module {
outputFileTags: "dep-out"
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating dep-out artifact";
+ cmd.description = "creating dep-out artifact";
cmd.sourceCode = function() {
console.info("prop: " + product.depmodule.prop);
console.info("listProp: " + product.depmodule.listProp);
diff --git a/tests/auto/blackbox/testdata/probe-in-exported-module/modules/mymodule/mymodule.qbs b/tests/auto/blackbox/testdata/probe-in-exported-module/modules/mymodule/mymodule.qbs
index 89d544f7e..31275aa40 100644
--- a/tests/auto/blackbox/testdata/probe-in-exported-module/modules/mymodule/mymodule.qbs
+++ b/tests/auto/blackbox/testdata/probe-in-exported-module/modules/mymodule/mymodule.qbs
@@ -13,7 +13,7 @@ Module {
outputFileTags: "out"
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating out artifact";
+ cmd.description = "creating out artifact";
cmd.sourceCode = function() {
console.info("found: " + product.mymodule.found);
};
diff --git a/tests/auto/blackbox/testdata/probeProperties/probeProperties.qbs b/tests/auto/blackbox/testdata/probeProperties/probeProperties.qbs
index 9846eacef..ce89d11f4 100644
--- a/tests/auto/blackbox/testdata/probeProperties/probeProperties.qbs
+++ b/tests/auto/blackbox/testdata/probeProperties/probeProperties.qbs
@@ -1,29 +1,40 @@
import qbs.Probes
-CppApplication {
- Probes.PathProbe {
- id: probe1
- names: ["bin/tool"]
- platformSearchPaths: [product.sourceDirectory]
- }
+Project {
- Probes.PathProbe {
- id: probe2
- names: ["tool"]
- platformSearchPaths: [product.sourceDirectory + "/bin"]
- }
+ CppApplication {
+ Probes.PathProbe {
+ id: probe1
+ names: ["bin/tool"]
+ platformSearchPaths: [product.sourceDirectory]
+ }
- targetName: {
- console.info("probe1.fileName=" + probe1.fileName);
- console.info("probe1.path=" + probe1.path);
- console.info("probe1.filePath=" + probe1.filePath);
+ Probes.PathProbe {
+ id: probe2
+ names: ["tool"]
+ platformSearchPaths: [product.sourceDirectory + "/bin"]
+ }
- console.info("probe2.fileName=" + probe2.fileName);
- console.info("probe2.path=" + probe2.path);
- console.info("probe2.filePath=" + probe2.filePath);
+ targetName: {
+ console.info("probe1.fileName=" + probe1.fileName);
+ console.info("probe1.path=" + probe1.path);
+ console.info("probe1.filePath=" + probe1.filePath);
- return name;
+ console.info("probe2.fileName=" + probe2.fileName);
+ console.info("probe2.path=" + probe2.path);
+ console.info("probe2.filePath=" + probe2.filePath);
+
+ console.info("probe3.fileName=" + probe3.fileName);
+ console.info("probe3.path=" + probe3.path);
+ console.info("probe3.filePath=" + probe3.filePath);
+ return name;
+ }
+ }
+
+ Probes.PathProbe {
+ id: probe3
+ names: ["tool"]
+ platformSearchPaths: [project.sourceDirectory + "/bin"]
}
- files: ["main.c"]
}
diff --git a/tests/auto/blackbox/testdata/probes-and-array-properties/modules/mymodule/mymodule.qbs b/tests/auto/blackbox/testdata/probes-and-array-properties/modules/mymodule/mymodule.qbs
index e5c368a88..92ece5be7 100644
--- a/tests/auto/blackbox/testdata/probes-and-array-properties/modules/mymodule/mymodule.qbs
+++ b/tests/auto/blackbox/testdata/probes-and-array-properties/modules/mymodule/mymodule.qbs
@@ -3,8 +3,7 @@ Module {
id: propProbe
property stringList prop: []
configure: {
- prop = [];
- prop.push("probe");
+ prop = ["probe"];
found = true;
}
}
diff --git a/tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs b/tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs
index 8fa761a2d..8e1f291f3 100644
--- a/tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs
+++ b/tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs
@@ -91,7 +91,7 @@ Project {
name: "lib-product"
files: "main.cpp"
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
}
@@ -116,7 +116,7 @@ Project {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Collecting apps";
+ cmd.description = "collecting apps";
cmd.sourceCode = function() {
var file = new TextFile(output.filePath, TextFile.WriteOnly);
for (var i = 0; i < inputs["application"].length; ++i)
diff --git a/tests/auto/blackbox/testdata/product-in-exported-module/modules/m/m.qbs b/tests/auto/blackbox/testdata/product-in-exported-module/modules/m/m.qbs
new file mode 100644
index 000000000..0e79d0abe
--- /dev/null
+++ b/tests/auto/blackbox/testdata/product-in-exported-module/modules/m/m.qbs
@@ -0,0 +1,3 @@
+Module {
+ Depends { name: "dummy"; condition: { console.info("product: " + product.name); return false; } }
+}
diff --git a/tests/auto/blackbox/testdata/product-in-exported-module/product-in-exported-module.qbs b/tests/auto/blackbox/testdata/product-in-exported-module/product-in-exported-module.qbs
new file mode 100644
index 000000000..3ead0ca6c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/product-in-exported-module/product-in-exported-module.qbs
@@ -0,0 +1,10 @@
+Project {
+ Product {
+ name: "importing"
+ Depends { name: "dep" }
+ }
+ Product {
+ name: "dep"
+ Export { Depends { name: "m" } }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/productproperties/header.qbs b/tests/auto/blackbox/testdata/productproperties/header.qbs
index 42f9c88d9..13a62035f 100644
--- a/tests/auto/blackbox/testdata/productproperties/header.qbs
+++ b/tests/auto/blackbox/testdata/productproperties/header.qbs
@@ -29,6 +29,6 @@ Product {
Export {
Depends { name: "cpp" }
- cpp.includePaths: product.buildDirectory
+ cpp.includePaths: exportingProduct.buildDirectory
}
}
diff --git a/tests/auto/blackbox/testdata/proper quoting/main.cpp b/tests/auto/blackbox/testdata/proper quoting/main.cpp
index 22cafeaa9..6e9be6df1 100644
--- a/tests/auto/blackbox/testdata/proper quoting/main.cpp
+++ b/tests/auto/blackbox/testdata/proper quoting/main.cpp
@@ -26,16 +26,16 @@
**
****************************************************************************/
-#include <stdio.h>
+#include <cstdio>
int bla();
int main()
{
- printf(DEFINE"\n");
- printf(DEFINEWITHSPACE"\n");
- printf(DEFINEWITHTAB"\n");
- printf(DEFINEWITHBACKSLASH"\n");
+ std::printf(DEFINE"\n");
+ std::printf(DEFINEWITHSPACE"\n");
+ std::printf(DEFINEWITHTAB"\n");
+ std::printf(DEFINEWITHBACKSLASH"\n");
return bla();
}
diff --git a/tests/auto/blackbox/testdata/proper quoting/my static lib.cpp b/tests/auto/blackbox/testdata/proper quoting/my static lib.cpp
index e7490e807..7c07fd4c9 100644
--- a/tests/auto/blackbox/testdata/proper quoting/my static lib.cpp
+++ b/tests/auto/blackbox/testdata/proper quoting/my static lib.cpp
@@ -26,12 +26,13 @@
**
****************************************************************************/
-#include <stdio.h>
#include <some helper.h>
+#include <cstdio>
+
int bla()
{
int n = getSomeNumber();
- printf("Hello World! The magic number is %d.", n);
+ std::printf("Hello World! The magic number is %d.", n);
return n;
}
diff --git a/tests/auto/blackbox/testdata/proper quoting/proper quoting.qbs b/tests/auto/blackbox/testdata/proper quoting/proper quoting.qbs
index 184ee13e3..1587940a2 100644
--- a/tests/auto/blackbox/testdata/proper quoting/proper quoting.qbs
+++ b/tests/auto/blackbox/testdata/proper quoting/proper quoting.qbs
@@ -1,7 +1,13 @@
-import qbs 1.0
+import qbs.Host
Project {
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
type: "application"
consoleApplication: true
name: "Hello World"
@@ -34,7 +40,7 @@ Project {
Depends { name: "cpp" }
Export {
Depends { name: "cpp" }
- cpp.includePaths: [product.sourceDirectory + '/some helper']
+ cpp.includePaths: [exportingProduct.sourceDirectory + '/some helper']
}
}
}
diff --git a/tests/auto/blackbox/testdata/property-assignment-on-non-present-module/property-assignment-on-non-present-module.qbs b/tests/auto/blackbox/testdata/property-assignment-on-non-present-module/property-assignment-on-non-present-module.qbs
deleted file mode 100644
index a01d6c561..000000000
--- a/tests/auto/blackbox/testdata/property-assignment-on-non-present-module/property-assignment-on-non-present-module.qbs
+++ /dev/null
@@ -1,4 +0,0 @@
-Product {
- Depends { name: "nein"; required: false }
- nein.doch: "ohhh!"
-}
diff --git a/tests/auto/blackbox/testdata/property-evaluation-context/modules/base/base.qbs b/tests/auto/blackbox/testdata/property-evaluation-context/modules/base/base.qbs
new file mode 100644
index 000000000..a97538751
--- /dev/null
+++ b/tests/auto/blackbox/testdata/property-evaluation-context/modules/base/base.qbs
@@ -0,0 +1,4 @@
+Module {
+ property string productInBase: product.name
+ property string productInTop: ""
+}
diff --git a/tests/auto/blackbox/testdata/property-evaluation-context/modules/top/top.qbs b/tests/auto/blackbox/testdata/property-evaluation-context/modules/top/top.qbs
new file mode 100644
index 000000000..fa073ff78
--- /dev/null
+++ b/tests/auto/blackbox/testdata/property-evaluation-context/modules/top/top.qbs
@@ -0,0 +1,6 @@
+Module {
+ Depends { name: "base" }
+ base.productInTop: product.name
+ property string productInTop: product.name
+ property string productInExport: ""
+}
diff --git a/tests/auto/blackbox/testdata/property-evaluation-context/property-evaluation-context.qbs b/tests/auto/blackbox/testdata/property-evaluation-context/property-evaluation-context.qbs
new file mode 100644
index 000000000..ede32cf74
--- /dev/null
+++ b/tests/auto/blackbox/testdata/property-evaluation-context/property-evaluation-context.qbs
@@ -0,0 +1,34 @@
+Project {
+ qbsSearchPaths: [ path ]
+ Product {
+ name: "mylib"
+ Export {
+ Depends { name: "top" }
+ top.productInExport: exportingProduct.name
+ }
+ }
+
+ Product {
+ type: "rule-output"
+ name: "myapp"
+ Depends { name: "mylib" }
+
+ Rule {
+ alwaysRun: true
+ multiplex: true
+ requiresInputs: false
+ outputFileTags: "rule-output"
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.silent = true;
+ cmd.sourceCode = function() {
+ console.info("base.productInBase evaluated in: " + product.base.productInBase);
+ console.info("base.productInTop evaluated in: " + product.base.productInTop);
+ console.info("top.productInExport evaluated in: " + product.top.productInExport);
+ console.info("top.productInTop evaluated in: " + product.top.productInTop);
+ }
+ return [cmd];
+ }
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/propertyChanges/modules/TestModule/module.qbs b/tests/auto/blackbox/testdata/propertyChanges/modules/TestModule/module.qbs
index b1e4a1fdc..590736f6a 100644
--- a/tests/auto/blackbox/testdata/propertyChanges/modules/TestModule/module.qbs
+++ b/tests/auto/blackbox/testdata/propertyChanges/modules/TestModule/module.qbs
@@ -18,7 +18,7 @@ Module {
prepare: {
var cmd = new JavaScriptCommand();
cmd.highlight = "codegen";
- cmd.description = "Making output from input";
+ cmd.description = "making output from input";
cmd.sourceCode = function() {
// console.info('Change in source code');
console.info(input.TestModule.testProperty);
diff --git a/tests/auto/blackbox/testdata/propertyChanges/propertyChanges.qbs b/tests/auto/blackbox/testdata/propertyChanges/propertyChanges.qbs
index f13b1986e..29365a887 100644
--- a/tests/auto/blackbox/testdata/propertyChanges/propertyChanges.qbs
+++ b/tests/auto/blackbox/testdata/propertyChanges/propertyChanges.qbs
@@ -27,7 +27,7 @@ Project {
name: "library"
files: "lib.cpp"
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
}
@@ -80,7 +80,7 @@ Project {
prepare: {
var cmd = new JavaScriptCommand();
cmd.highlight = "codegen";
- cmd.description = "Making output from other output";
+ cmd.description = "making output from other output";
cmd.sourceCode = function() { File.copy(input.filePath, output.filePath); }
return cmd;
}
diff --git a/tests/auto/blackbox/testdata/protobuf-library-install/hello.proto b/tests/auto/blackbox/testdata/protobuf-library-install/hello.proto
new file mode 100644
index 000000000..946108ddc
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf-library-install/hello.proto
@@ -0,0 +1,8 @@
+syntax = "proto3";
+package protobuf.library;
+
+import "hello/world.proto";
+
+message Hello {
+ hello.World world = 1;
+};
diff --git a/tests/auto/blackbox/testdata/protobuf-library-install/hello/world.proto b/tests/auto/blackbox/testdata/protobuf-library-install/hello/world.proto
new file mode 100644
index 000000000..f718621b6
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf-library-install/hello/world.proto
@@ -0,0 +1,6 @@
+syntax = "proto3";
+package protobuf.library.hello;
+
+message World {
+ int32 value = 1;
+};
diff --git a/tests/auto/blackbox/testdata/protobuf-library-install/protobuf-library.qbs b/tests/auto/blackbox/testdata/protobuf-library-install/protobuf-library.qbs
new file mode 100644
index 000000000..501675c15
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf-library-install/protobuf-library.qbs
@@ -0,0 +1,34 @@
+import qbs.Host
+
+StaticLibrary {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasProtobuf;
+ }
+
+ Depends { name: "cpp" }
+ cpp.cxxLanguageVersion: "c++11"
+ cpp.minimumMacosVersion: "10.8"
+
+ protobuf.cpp.importPaths: product.sourceDirectory
+
+ Depends { name: "protobuf.cpp"; required: false }
+ property bool hasProtobuf: {
+ console.info("has protobuf: " + protobuf.cpp.present);
+ return protobuf.cpp.present;
+ }
+
+ Group {
+ fileTagsFilter: "protobuf.hpp"
+ qbs.installDir: "include"
+ qbs.installSourceBase: protobuf.cpp.outputDir
+ qbs.install: true
+ }
+
+ files: [
+ "hello.proto",
+ "hello/world.proto",
+ ]
+}
diff --git a/tests/auto/blackbox/testdata/protobuf/addressbook_cpp.qbs b/tests/auto/blackbox/testdata/protobuf/addressbook_cpp.qbs
index a5a4caf75..959552ea5 100644
--- a/tests/auto/blackbox/testdata/protobuf/addressbook_cpp.qbs
+++ b/tests/auto/blackbox/testdata/protobuf/addressbook_cpp.qbs
@@ -1,16 +1,22 @@
-import qbs
+import qbs.Host
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasProtobuf;
+ }
name: "addressbook_cpp"
consoleApplication: true
- condition: hasProtobuf
Depends { name: "cpp" }
- cpp.cxxLanguageVersion: "c++11"
+ cpp.minimumMacosVersion: "10.15"
Depends { name: "protobuf.cpp"; required: false }
property bool hasProtobuf: {
console.info("has protobuf: " + protobuf.cpp.present);
+ console.info("has modules: " + protobuflib.present);
return protobuf.cpp.present;
}
diff --git a/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.options b/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.options
new file mode 100644
index 000000000..60726de93
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.options
@@ -0,0 +1,3 @@
+tutorial.Person.name max_size:128
+tutorial.Person.email max_size:256
+tutorial.Person.phones max_count:16
diff --git a/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.proto b/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.proto
new file mode 100644
index 000000000..5db0bedbf
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.proto
@@ -0,0 +1,38 @@
+// See README.txt for information and build instructions.
+//
+// Note: START and END tags are used in comments to define sections used in
+// tutorials. They are not part of the syntax for Protocol Buffers.
+//
+// To get an in-depth walkthrough of this file and the related examples, see:
+// https://developers.google.com/protocol-buffers/docs/tutorials
+
+// [START declaration]
+syntax = "proto3";
+package tutorial;
+// [END declaration]
+
+// [START messages]
+message Person {
+ string name = 1;
+ int32 id = 2; // Unique ID number for this person.
+ string email = 3;
+
+ enum PhoneType {
+ MOBILE = 0;
+ HOME = 1;
+ WORK = 2;
+ }
+
+ message PhoneNumber {
+ string number = 1;
+ PhoneType type = 2;
+ }
+
+ repeated PhoneNumber phones = 4;
+}
+
+// Our address book file is just one of these.
+message AddressBook {
+ repeated Person people = 1;
+}
+// [END messages]
diff --git a/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.qbs b/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.qbs
new file mode 100644
index 000000000..3dfc911e1
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf/addressbook_nanopb.qbs
@@ -0,0 +1,29 @@
+import qbs.Host
+
+CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasProtobuf;
+ }
+ name: "addressbook_nanopb"
+ consoleApplication: true
+
+ Depends { name: "cpp" }
+ cpp.minimumMacosVersion: "10.8"
+
+ Depends { name: "protobuf.nanopb"; required: false }
+ property bool hasProtobuf: {
+ console.info("has protobuf: " + protobuf.nanopb.present);
+ console.info("has modules: false");
+ return protobuf.nanopb.present;
+ }
+ protobuf.nanopb.importPaths: product.sourceDirectory
+
+ files: [
+ "addressbook_nanopb.proto",
+ "addressbook_nanopb.options",
+ "main_nanopb.cpp",
+ ]
+}
diff --git a/tests/auto/blackbox/testdata/protobuf/addressbook_objc.qbs b/tests/auto/blackbox/testdata/protobuf/addressbook_objc.qbs
index be68abfee..7f0b999aa 100644
--- a/tests/auto/blackbox/testdata/protobuf/addressbook_objc.qbs
+++ b/tests/auto/blackbox/testdata/protobuf/addressbook_objc.qbs
@@ -1,14 +1,20 @@
-import qbs
+import qbs.Host
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasProtobuf;
+ }
name: "addressbook_objc"
consoleApplication: true
- condition: hasProtobuf
Depends { name: "cpp" }
Depends { name: "protobuf.objc"; required: false }
property bool hasProtobuf: {
console.info("has protobuf: " + protobuf.objc.present);
+ console.info("has modules: false");
return protobuf.objc.present;
}
diff --git a/tests/auto/blackbox/testdata/protobuf/conanfile.txt b/tests/auto/blackbox/testdata/protobuf/conanfile.txt
new file mode 100644
index 000000000..e7d849b1a
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf/conanfile.txt
@@ -0,0 +1,6 @@
+[requires]
+protobuf/3.21.12
+[tool_requires]
+protobuf/3.21.12
+[generators]
+QbsDeps
diff --git a/tests/auto/blackbox/testdata/protobuf/create-proto-library.qbs b/tests/auto/blackbox/testdata/protobuf/create-proto-library.qbs
new file mode 100644
index 000000000..005752fd8
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf/create-proto-library.qbs
@@ -0,0 +1,53 @@
+import qbs.Host
+
+Project {
+ StaticLibrary {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasProtobuf;
+ }
+ name: "proto_lib"
+
+ Depends { name: "cpp" }
+ cpp.minimumMacosVersion: "10.8"
+
+ protobuf.cpp.importPaths: product.sourceDirectory
+
+ Depends { name: "protobuf.cpp"; required: false }
+ property bool hasProtobuf: {
+ console.info("has protobuf: " + protobuf.cpp.present);
+ console.info("has modules: " + protobuflib.present);
+ return protobuf.cpp.present;
+ }
+
+ files: [
+ "import.proto",
+ "subdir/myenum.proto",
+ ]
+
+ Export {
+ Depends { name: "cpp" }
+ Depends { name: "protobuf.cpp"; required: false }
+ cpp.cxxLanguageVersion: "c++11"
+ cpp.minimumMacosVersion: "10.8"
+ cpp.includePaths: exportingProduct.protobuf.cpp.outputDir
+ }
+ }
+
+ CppApplication {
+ condition: proto_lib.present
+ name: "consumes_proto_lib"
+ consoleApplication: true
+
+ files: [
+ "import-main.cpp",
+ ]
+
+ Depends {
+ name: "proto_lib"
+ required: false
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/protobuf/import-main.cpp b/tests/auto/blackbox/testdata/protobuf/import-main.cpp
index 6d90cdf16..65048dd83 100644
--- a/tests/auto/blackbox/testdata/protobuf/import-main.cpp
+++ b/tests/auto/blackbox/testdata/protobuf/import-main.cpp
@@ -1,7 +1,7 @@
/****************************************************************************
**
-** Copyright (C) 2018 Ivan Komissarov
-** Contact: abbapoh@gmail.com
+** Copyright (C) 2018 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
diff --git a/tests/auto/blackbox/testdata/protobuf/import.qbs b/tests/auto/blackbox/testdata/protobuf/import.qbs
index 4c4de063f..56d489de8 100644
--- a/tests/auto/blackbox/testdata/protobuf/import.qbs
+++ b/tests/auto/blackbox/testdata/protobuf/import.qbs
@@ -1,17 +1,23 @@
-import qbs
+import qbs.Host
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasProtobuf;
+ }
name: "app"
consoleApplication: true
- condition: hasProtobuf
protobuf.cpp.importPaths: [sourceDirectory]
- cpp.cxxLanguageVersion: "c++11"
+ cpp.minimumMacosVersion: "10.8"
Depends { name: "protobuf.cpp"; required: false }
property bool hasProtobuf: {
console.info("has protobuf: " + protobuf.cpp.present);
+ console.info("has modules: " + protobuflib.present);
return protobuf.cpp.present;
}
diff --git a/tests/auto/blackbox/testdata/protobuf/main.cpp b/tests/auto/blackbox/testdata/protobuf/main.cpp
index c93c46717..d4b1c431b 100644
--- a/tests/auto/blackbox/testdata/protobuf/main.cpp
+++ b/tests/auto/blackbox/testdata/protobuf/main.cpp
@@ -1,7 +1,7 @@
/****************************************************************************
**
-** Copyright (C) 2018 Ivan Komissarov
-** Contact: abbapoh@gmail.com
+** Copyright (C) 2018 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
diff --git a/tests/auto/blackbox/testdata/protobuf/main.m b/tests/auto/blackbox/testdata/protobuf/main.m
index e9d7ce66a..414d1aa2f 100644
--- a/tests/auto/blackbox/testdata/protobuf/main.m
+++ b/tests/auto/blackbox/testdata/protobuf/main.m
@@ -1,7 +1,7 @@
/****************************************************************************
**
-** Copyright (C) 2018 Ivan Komissarov
-** Contact: abbapoh@gmail.com
+** Copyright (C) 2018 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
diff --git a/tests/auto/blackbox/testdata/protobuf/main_nanopb.cpp b/tests/auto/blackbox/testdata/protobuf/main_nanopb.cpp
new file mode 100644
index 000000000..76fa03fca
--- /dev/null
+++ b/tests/auto/blackbox/testdata/protobuf/main_nanopb.cpp
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 Kai Dohmen (psykai1993@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms and
+** conditions see http://www.qt.io/terms-conditions. For further information
+** use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#include <array>
+#include <cassert>
+#include <pb_encode.h>
+
+#include "addressbook_nanopb.pb.h"
+
+static_assert(std::is_array<decltype(std::declval<tutorial_Person>().name)>::value, "");
+static_assert(std::is_array<decltype(std::declval<tutorial_Person>().email)>::value, "");
+static_assert(std::is_array<decltype(std::declval<tutorial_Person>().phones)>::value, "");
+
+bool writeString(pb_ostream_t *stream, const pb_field_t *field, void *const *)
+{
+ constexpr auto str = "0123456789";
+ if (!pb_encode_tag_for_field(stream, field))
+ return false;
+ return pb_encode_string(stream, reinterpret_cast<const uint8_t*>(str), strlen(str));
+}
+
+int main()
+{
+ std::array<uint8_t, 32> buffer = {};
+
+ tutorial_Person_PhoneNumber phoneNumber;
+ phoneNumber.number.funcs.encode = writeString;
+ phoneNumber.type = tutorial_Person_PhoneType_WORK;
+
+ auto ostream = pb_ostream_from_buffer(buffer.data(), buffer.size());
+ assert(pb_encode(&ostream, tutorial_Person_PhoneNumber_fields, &phoneNumber));
+
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/protobuf/needs-import-dir-main.cpp b/tests/auto/blackbox/testdata/protobuf/needs-import-dir-main.cpp
index d6faf9e84..5d62a0d06 100644
--- a/tests/auto/blackbox/testdata/protobuf/needs-import-dir-main.cpp
+++ b/tests/auto/blackbox/testdata/protobuf/needs-import-dir-main.cpp
@@ -1,7 +1,7 @@
/****************************************************************************
**
-** Copyright (C) 2018 Ivan Komissarov
-** Contact: abbapoh@gmail.com
+** Copyright (C) 2018 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
diff --git a/tests/auto/blackbox/testdata/protobuf/needs-import-dir.qbs b/tests/auto/blackbox/testdata/protobuf/needs-import-dir.qbs
index 788bbc93c..07be566cb 100644
--- a/tests/auto/blackbox/testdata/protobuf/needs-import-dir.qbs
+++ b/tests/auto/blackbox/testdata/protobuf/needs-import-dir.qbs
@@ -1,18 +1,24 @@
-import qbs
+import qbs.Host
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result && hasProtobuf;
+ }
name: "app"
consoleApplication: true
- condition: hasProtobuf
property path theImportDir
protobuf.cpp.importPaths: (theImportDir ? [theImportDir] : []).concat([sourceDirectory])
- cpp.cxxLanguageVersion: "c++11"
+ cpp.minimumMacosVersion: "10.8"
Depends { name: "protobuf.cpp"; required: false }
property bool hasProtobuf: {
console.info("has protobuf: " + protobuf.cpp.present);
+ console.info("has modules: " + protobuflib.present);
return protobuf.cpp.present;
}
diff --git a/tests/auto/blackbox/testdata/qbs-config-import-export/config.json b/tests/auto/blackbox/testdata/qbs-config-import-export/config.json
new file mode 100644
index 000000000..edcaf238a
--- /dev/null
+++ b/tests/auto/blackbox/testdata/qbs-config-import-export/config.json
@@ -0,0 +1,11 @@
+{
+ "group": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "key": "value",
+ "listKey": [
+ "valueOne",
+ "valueTwo"
+ ]
+}
diff --git a/tests/auto/blackbox/testdata/qbs-config-import-export/config.txt b/tests/auto/blackbox/testdata/qbs-config-import-export/config.txt
new file mode 100644
index 000000000..2bd19c422
--- /dev/null
+++ b/tests/auto/blackbox/testdata/qbs-config-import-export/config.txt
@@ -0,0 +1,4 @@
+group.key1: "value1"
+group.key2: "value2"
+key: "value"
+listKey: ["valueOne", "valueTwo"]
diff --git a/tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs b/tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs
index 4e9da01d3..4fc275877 100644
--- a/tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs
+++ b/tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs
@@ -23,7 +23,7 @@ Product {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating " + output.fileName;
+ cmd.description = "creating " + output.fileName;
cmd.sourceCode = function() {
var inputList = explicitlyDependsOn["txt.in"];
var fileNameList = [];
diff --git a/tests/auto/blackbox/testdata/remove-duplicate-libs/remove-duplicate-libs.qbs b/tests/auto/blackbox/testdata/remove-duplicate-libs/remove-duplicate-libs.qbs
index 4ffb8d0e2..d89e47414 100644
--- a/tests/auto/blackbox/testdata/remove-duplicate-libs/remove-duplicate-libs.qbs
+++ b/tests/auto/blackbox/testdata/remove-duplicate-libs/remove-duplicate-libs.qbs
@@ -1,11 +1,13 @@
import "MyStaticLib.qbs" as MyStaticLib
+import qbs.Host
Project {
property bool removeDuplicates
property string libDir: buildDirectory + "/lib"
property bool dummy: {
+ // most BSD systems (including macOS) use LLVM linker now
console.info("is bfd linker: "
- + (qbs.toolchain.contains("gcc") && !qbs.hostOS.contains("macos")))
+ + (qbs.toolchain.includes("gcc") && !Host.os().includes("bsd")))
}
qbsSearchPaths: "."
diff --git a/tests/auto/blackbox/testdata/reproducible-build/reproducible-build.qbs b/tests/auto/blackbox/testdata/reproducible-build/reproducible-build.qbs
index f7ed8e61a..fabdf48db 100644
--- a/tests/auto/blackbox/testdata/reproducible-build/reproducible-build.qbs
+++ b/tests/auto/blackbox/testdata/reproducible-build/reproducible-build.qbs
@@ -2,4 +2,9 @@ CppApplication {
name: "the product"
files: ["file1.cpp", "file2.cpp", "main.cpp"]
cpp.cxxFlags: ["-flto"]
+ Probe {
+ id: checker
+ property bool isGcc: qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang")
+ configure: { console.info("is gcc: " + isGcc); }
+ }
}
diff --git a/tests/auto/blackbox/testdata/require-deprecated/blubb.js b/tests/auto/blackbox/testdata/require-deprecated/blubb.js
deleted file mode 100644
index 9acc13968..000000000
--- a/tests/auto/blackbox/testdata/require-deprecated/blubb.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var TextFile = loadExtension("qbs.TextFile")
-var zort = loadFile("zort.js")
-
-function createCommands(filePaths) {
- var cmd = new JavaScriptCommand();
- cmd.description = "Write an empty file";
- cmd.filePath = filePaths[0];
- cmd.sourceCode = function() {
- var f = new TextFile(filePath, TextFile.WriteOnly);
- f.close();
- }
- return [cmd, zort.createCommand(filePaths)];
-}
diff --git a/tests/auto/blackbox/testdata/require-deprecated/require.qbs b/tests/auto/blackbox/testdata/require-deprecated/require.qbs
deleted file mode 100644
index 87d8b054b..000000000
--- a/tests/auto/blackbox/testdata/require-deprecated/require.qbs
+++ /dev/null
@@ -1,21 +0,0 @@
-import 'blubb.js' as blubb
-
-Product {
- type: ["text"]
- Rule {
- multiplex: true
- Artifact {
- fileTags: ["text"]
- filePath: "one.txt"
- }
- Artifact {
- fileTags: ["text"]
- filePath: "two.txt"
- }
- prepare: {
- var filePaths = outputs.text.map(function (artifact) {return artifact.filePath; });
- return blubb.createCommands(filePaths);
- }
- }
-}
-
diff --git a/tests/auto/blackbox/testdata/require-deprecated/zort.js b/tests/auto/blackbox/testdata/require-deprecated/zort.js
deleted file mode 100644
index 0dcffb767..000000000
--- a/tests/auto/blackbox/testdata/require-deprecated/zort.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var File = loadExtension("qbs.File")
-
-function createCommand(filePaths) {
- var cmd = new JavaScriptCommand();
- cmd.description = "Create another empty file";
- cmd.filePaths = filePaths;
- cmd.sourceCode = function() {
- File.copy(filePaths[0], filePaths[1]);
- };
- return cmd;
-}
diff --git a/tests/auto/blackbox/testdata/response-files/response-files.qbs b/tests/auto/blackbox/testdata/response-files/response-files.qbs
index fbb6f0518..c18fcac43 100644
--- a/tests/auto/blackbox/testdata/response-files/response-files.qbs
+++ b/tests/auto/blackbox/testdata/response-files/response-files.qbs
@@ -1,4 +1,5 @@
import qbs.FileInfo
+import qbs.Host
import qbs.TextFile
Project {
@@ -8,6 +9,12 @@ Project {
cpp.enableExceptions: true
}
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "response-file-text"
type: ["text"]
Depends { name: "cpp" }
@@ -38,6 +45,9 @@ Project {
Product {
name: "lotsofobjects"
type: ["dynamiclibrary"]
+ // clang-cl does not use response file internally, thus linker complains that command is
+ // too long. This can be worked around by calling the linker directly
+ cpp.linkerMode: qbs.toolchain.includes("clang-cl") ? "manual" : original
Depends { name: "cpp" }
Rule {
multiplex: true
diff --git a/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication-lib.cpp b/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication-lib.cpp
new file mode 100644
index 000000000..6418df94d
--- /dev/null
+++ b/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication-lib.cpp
@@ -0,0 +1,3 @@
+int dynamicFunc() {
+ return 1;
+} \ No newline at end of file
diff --git a/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication-main.cpp b/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication-main.cpp
new file mode 100644
index 000000000..60f8494f6
--- /dev/null
+++ b/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication-main.cpp
@@ -0,0 +1,5 @@
+extern int dynamicFunc();
+
+int main() {
+ return dynamicFunc();
+} \ No newline at end of file
diff --git a/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication.qbs b/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication.qbs
new file mode 100644
index 000000000..adb63872a
--- /dev/null
+++ b/tests/auto/blackbox/testdata/rpathlink-deduplication/rpathlink-deduplication.qbs
@@ -0,0 +1,47 @@
+Project {
+ DynamicLibrary {
+ Depends { name: "bundle" }
+ Depends { name: "cpp" }
+
+ bundle.isBundle: false
+ name: "DynamicLibraryA"
+ files: ["rpathlink-deduplication-lib.cpp"]
+ }
+
+ DynamicLibrary {
+ Depends { name: "bundle" }
+ Depends { name: "cpp" }
+ Depends { name: "DynamicLibraryA" }
+
+ bundle.isBundle: false
+ name: "DynamicLibraryB"
+ files: ["rpathlink-deduplication-lib.cpp"]
+ }
+
+ DynamicLibrary {
+ Depends { name: "bundle" }
+ Depends { name: "cpp" }
+ Depends { name: "DynamicLibraryA" }
+
+ bundle.isBundle: false
+ name: "DynamicLibraryC"
+ files: ["rpathlink-deduplication-lib.cpp"]
+ }
+
+ CppApplication {
+ Depends { name: "bundle" }
+ Depends { name: "DynamicLibraryB" }
+ Depends { name: "DynamicLibraryC" }
+ consoleApplication: true
+ bundle.isBundle: false
+ cpp.removeDuplicateLibraries: false
+ files: "rpathlink-deduplication-main.cpp"
+ property bool test: {
+ if (cpp.useRPathLink)
+ console.info("useRPathLink: true");
+ else
+ console.info("useRPathLink: false");
+ console.info("===" + cpp.rpathLinkFlag + "===");
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/auto/blackbox/testdata/rule-with-non-required-inputs/rule-with-non-required-inputs.qbs b/tests/auto/blackbox/testdata/rule-with-non-required-inputs/rule-with-non-required-inputs.qbs
index 1bd9beebf..9d861b674 100644
--- a/tests/auto/blackbox/testdata/rule-with-non-required-inputs/rule-with-non-required-inputs.qbs
+++ b/tests/auto/blackbox/testdata/rule-with-non-required-inputs/rule-with-non-required-inputs.qbs
@@ -22,7 +22,7 @@ Product {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Generating " + output.fileName;
+ cmd.description = "generating " + output.fileName;
cmd.sourceCode = function() {
var f = new TextFile(output.filePath, TextFile.WriteOnly);
f.write('(');
diff --git a/tests/auto/blackbox/testdata/run-multiplexed/main.cpp b/tests/auto/blackbox/testdata/run-multiplexed/main.cpp
new file mode 100644
index 000000000..237c8ce18
--- /dev/null
+++ b/tests/auto/blackbox/testdata/run-multiplexed/main.cpp
@@ -0,0 +1 @@
+int main() {}
diff --git a/tests/auto/blackbox/testdata/run-multiplexed/run-multiplexed.qbs b/tests/auto/blackbox/testdata/run-multiplexed/run-multiplexed.qbs
new file mode 100644
index 000000000..11577b54a
--- /dev/null
+++ b/tests/auto/blackbox/testdata/run-multiplexed/run-multiplexed.qbs
@@ -0,0 +1,21 @@
+import qbs.Host
+
+CppApplication {
+ aggregate: false
+ consoleApplication: true
+ name: "app"
+ multiplexByQbsProperties: "buildVariants"
+
+ qbs.buildVariants: ["debug", "release"]
+
+ files: "main.cpp"
+
+ Probe {
+ id: checker
+ property string targetPlatform: qbs.targetPlatform
+ configure: {
+ if (targetPlatform !== Host.platform())
+ console.info("targetPlatform differs from hostPlatform");
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/sanitizer/sanitizer.cpp b/tests/auto/blackbox/testdata/sanitizer/sanitizer.cpp
new file mode 100644
index 000000000..4a7c3ee32
--- /dev/null
+++ b/tests/auto/blackbox/testdata/sanitizer/sanitizer.cpp
@@ -0,0 +1,4 @@
+int main(int argc, char *argv[])
+{
+ return 0;
+}
diff --git a/tests/auto/blackbox/testdata/sanitizer/sanitizer.qbs b/tests/auto/blackbox/testdata/sanitizer/sanitizer.qbs
new file mode 100644
index 000000000..438f3cc39
--- /dev/null
+++ b/tests/auto/blackbox/testdata/sanitizer/sanitizer.qbs
@@ -0,0 +1,44 @@
+CppApplication {
+ Depends { name: "Sanitizers.address" }
+ Sanitizers.address.enabled: sanitizer === "address"
+ property string sanitizer
+
+ property bool supportsSanitizer: {
+ if (qbs.toolchain.includes("mingw"))
+ return false;
+ if (sanitizer === "address")
+ return Sanitizers.address._supported;
+ if (qbs.toolchain.includes("clang-cl")) {
+ if (cpp.toolchainInstallPath.includes("Microsoft Visual Studio")
+ && qbs.architecture === "x86_64") {
+ // 32 bit sanitizer shipped with VS misses the x86_64 libraries
+ return false;
+ }
+ // only these are supported
+ return sanitizer === "address" || sanitizer === "undefined";
+ }
+ if (!qbs.toolchain.includes("gcc"))
+ return false;
+ if (qbs.targetOS.includes("ios")) {
+ // thread sanitizer is not supported
+ return sanitizer !== "thread";
+ }
+ return true;
+ }
+
+ condition: {
+ if (!sanitizer)
+ return true;
+ if (!supportsSanitizer)
+ console.info("Compiler does not support sanitizer");
+ return supportsSanitizer;
+ }
+ qbs.buildVariant: "release"
+ cpp.cxxLanguageVersion: "c++11"
+ cpp.minimumMacosVersion: "10.8"
+ consoleApplication: true
+ cpp.runtimeLibrary: "static"
+ cpp.driverFlags: sanitizer && sanitizer !== "address" ? ["-fsanitize=" + sanitizer] : []
+ cpp.debugInformation: true
+ files: "sanitizer.cpp"
+}
diff --git a/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/app.h b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/app.h
new file mode 100644
index 000000000..a82b12fbd
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/app.h
@@ -0,0 +1 @@
+#include "lib.h"
diff --git a/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/app.qbs b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/app.qbs
new file mode 100644
index 000000000..e931b853c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/app.qbs
@@ -0,0 +1,4 @@
+CppApplication {
+ cpp.includePaths: project.sourceDirectory + "/lib"
+ files: "main.cpp"
+}
diff --git a/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/main.cpp b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/main.cpp
new file mode 100644
index 000000000..2e7bedac8
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/app/main.cpp
@@ -0,0 +1,3 @@
+#include "app.h"
+
+int main() { }
diff --git a/tests/auto/blackbox/testdata/scan-result-in-non-dependency/lib/lib.h b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/lib/lib.h
new file mode 100644
index 000000000..af6f627b7
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/lib/lib.h
@@ -0,0 +1,3 @@
+#pragma once
+
+void lib1_foo(); \ No newline at end of file
diff --git a/tests/auto/blackbox/testdata/scan-result-in-non-dependency/other/other.qbs b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/other/other.qbs
new file mode 100644
index 000000000..29682da1c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/other/other.qbs
@@ -0,0 +1,24 @@
+import qbs.TextFile
+
+Product {
+ type: "testproduct"
+ files: "../lib/lib.h"
+
+ Rule {
+ multiplex: true
+ Artifact {
+ fileTags: ["testproduct"]
+ filePath: "fubar"
+ }
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.description = "generating text file";
+ cmd.sourceCode = function() {
+ var tf = new TextFile(output.filePath, TextFile.WriteOnly);
+ tf.writeLine("blubb");
+ tf.close();
+ }
+ return cmd;
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/scan-result-in-non-dependency/p.qbs b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/p.qbs
new file mode 100644
index 000000000..bcbd5ebce
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-non-dependency/p.qbs
@@ -0,0 +1,6 @@
+Project {
+ references: [
+ "app/app.qbs",
+ "other/other.qbs",
+ ]
+}
diff --git a/tests/auto/blackbox/testdata/scan-result-in-other-product/app/app.h b/tests/auto/blackbox/testdata/scan-result-in-other-product/app/app.h
new file mode 100644
index 000000000..a82b12fbd
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-other-product/app/app.h
@@ -0,0 +1 @@
+#include "lib.h"
diff --git a/tests/auto/blackbox/testdata/scan-result-in-other-product/app/app.qbs b/tests/auto/blackbox/testdata/scan-result-in-other-product/app/app.qbs
new file mode 100644
index 000000000..984e9aca9
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-other-product/app/app.qbs
@@ -0,0 +1,4 @@
+CppApplication {
+ Depends { name: "lib" }
+ files: "main.cpp"
+}
diff --git a/tests/auto/blackbox/testdata/scan-result-in-other-product/app/main.cpp b/tests/auto/blackbox/testdata/scan-result-in-other-product/app/main.cpp
new file mode 100644
index 000000000..2e7bedac8
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-other-product/app/main.cpp
@@ -0,0 +1,3 @@
+#include "app.h"
+
+int main() { }
diff --git a/tests/auto/blackbox/testdata/scan-result-in-other-product/lib/lib.h b/tests/auto/blackbox/testdata/scan-result-in-other-product/lib/lib.h
new file mode 100644
index 000000000..af6f627b7
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-other-product/lib/lib.h
@@ -0,0 +1,3 @@
+#pragma once
+
+void lib1_foo(); \ No newline at end of file
diff --git a/tests/auto/blackbox/testdata/scan-result-in-other-product/lib/lib.qbs b/tests/auto/blackbox/testdata/scan-result-in-other-product/lib/lib.qbs
new file mode 100644
index 000000000..a6ed0c990
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-other-product/lib/lib.qbs
@@ -0,0 +1,7 @@
+Product {
+ files: "lib.h"
+ Export {
+ Depends { name: "cpp" }
+ cpp.includePaths: exportingProduct.sourceDirectory
+ }
+}
diff --git a/tests/auto/blackbox/testdata/scan-result-in-other-product/other/other.qbs b/tests/auto/blackbox/testdata/scan-result-in-other-product/other/other.qbs
new file mode 100644
index 000000000..29682da1c
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-other-product/other/other.qbs
@@ -0,0 +1,24 @@
+import qbs.TextFile
+
+Product {
+ type: "testproduct"
+ files: "../lib/lib.h"
+
+ Rule {
+ multiplex: true
+ Artifact {
+ fileTags: ["testproduct"]
+ filePath: "fubar"
+ }
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.description = "generating text file";
+ cmd.sourceCode = function() {
+ var tf = new TextFile(output.filePath, TextFile.WriteOnly);
+ tf.writeLine("blubb");
+ tf.close();
+ }
+ return cmd;
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/scan-result-in-other-product/p.qbs b/tests/auto/blackbox/testdata/scan-result-in-other-product/p.qbs
new file mode 100644
index 000000000..fedf84989
--- /dev/null
+++ b/tests/auto/blackbox/testdata/scan-result-in-other-product/p.qbs
@@ -0,0 +1,7 @@
+Project {
+ references: [
+ "app/app.qbs",
+ "lib/lib.qbs",
+ "other/other.qbs",
+ ]
+}
diff --git a/tests/auto/blackbox/testdata/separate-debug-info/separate-debug-info.qbs b/tests/auto/blackbox/testdata/separate-debug-info/separate-debug-info.qbs
index 0b16d1984..4198b863f 100644
--- a/tests/auto/blackbox/testdata/separate-debug-info/separate-debug-info.qbs
+++ b/tests/auto/blackbox/testdata/separate-debug-info/separate-debug-info.qbs
@@ -8,9 +8,13 @@ Project {
Probe {
id: osProbe
property stringList targetOS: qbs.targetOS
+ property stringList toolchain: qbs.toolchain
configure: {
- console.info("is windows: " + (targetOS.contains("windows") ? "yes" : "no"));
- console.info("is darwin: " + (targetOS.contains("darwin") ? "yes" : "no"));
+ console.info("is windows: " + (targetOS.includes("windows") ? "yes" : "no"));
+ console.info("is macos: " + (targetOS.includes("macos") ? "yes" : "no"));
+ console.info("is darwin: " + (targetOS.includes("darwin") ? "yes" : "no"));
+ console.info("is gcc: " + (toolchain.includes("gcc") ? "yes" : "no"));
+ console.info("is msvc: " + (toolchain.includes("msvc") ? "yes" : "no"));
}
}
}
@@ -54,7 +58,7 @@ Project {
files: ["main.cpp"]
cpp.separateDebugInformation: true
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.dsymutilFlags: ["--flat"]
}
}
@@ -65,7 +69,7 @@ Project {
files: ["foo.cpp"]
cpp.separateDebugInformation: true
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.dsymutilFlags: ["--flat"]
}
}
@@ -75,7 +79,7 @@ Project {
files: ["foo.cpp"]
cpp.separateDebugInformation: true
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.dsymutilFlags: ["--flat"]
}
}
@@ -93,7 +97,7 @@ Project {
type: ["dynamiclibrary"]
files: ["foo.cpp"]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
cpp.separateDebugInformation: true
@@ -103,7 +107,7 @@ Project {
name: "bar4"
files: ["foo.cpp"]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
cpp.separateDebugInformation: true
@@ -114,12 +118,12 @@ Project {
type: ["application"]
files: ["main.cpp"]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
cpp.separateDebugInformation: true
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.dsymutilFlags: ["--flat"]
}
}
@@ -129,12 +133,12 @@ Project {
type: ["dynamiclibrary"]
files: ["foo.cpp"]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
cpp.separateDebugInformation: true
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.dsymutilFlags: ["--flat"]
}
}
@@ -143,12 +147,12 @@ Project {
name: "bar5"
files: ["foo.cpp"]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
cpp.separateDebugInformation: true
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.dsymutilFlags: ["--flat"]
}
}
diff --git a/tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs b/tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs
index d2d47b767..b1310c005 100644
--- a/tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs
+++ b/tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs
@@ -1,4 +1,5 @@
import qbs.FileInfo
+import qbs.Host
Project {
DynamicLibrary { // Product dependency, installed
@@ -7,13 +8,13 @@ Project {
files: ["lib1.cpp"]
- install: !qbs.targetOS.contains("darwin")
+ install: !qbs.targetOS.includes("darwin")
installImportLib: true
installDir: "lib1"
importLibInstallDir: installDir
Group {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
fileTagsFilter: ["bundle.content"]
qbs.install: true
qbs.installSourceBase: destinationDirectory
@@ -26,7 +27,7 @@ Project {
Depends { name: "lib5" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
@@ -40,7 +41,7 @@ Project {
files: ["lib3.cpp"]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
@@ -57,14 +58,14 @@ Project {
files: ["lib4.cpp"]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
// Testing shows that clang (8.0) does not find dynamic libraries via
// the -L<dir> and -l<libname> mechanism unless the name is "lib<libname>.a".
Properties {
- condition: qbs.hostOS.contains("windows") && qbs.toolchain.contains("clang")
+ condition: Host.os().includes("windows") && qbs.toolchain.includes("clang")
cpp.dynamicLibraryPrefix: "lib"
cpp.dynamicLibraryImportSuffix: ".a"
}
@@ -82,7 +83,7 @@ Project {
Depends { name: "cpp" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
@@ -90,6 +91,12 @@ Project {
}
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: "app"
consoleApplication: true
files: "main.cpp"
@@ -101,7 +108,7 @@ Project {
property string fullInstallPrefix: FileInfo.joinPaths(qbs.installRoot, qbs.installPrefix)
property string lib3FilePath: FileInfo.joinPaths(fullInstallPrefix, "lib3",
- cpp.dynamicLibraryPrefix + "lib3" + (qbs.targetOS.contains("windows")
+ cpp.dynamicLibraryPrefix + "lib3" + (qbs.targetOS.includes("windows")
? cpp.dynamicLibraryImportSuffix
: cpp.dynamicLibrarySuffix))
cpp.dynamicLibraries: [lib3FilePath, "lib4"]
@@ -110,7 +117,7 @@ Project {
Probe {
id: osPrinter
- property bool isWindows: qbs.targetOS.contains("windows")
+ property bool isWindows: qbs.targetOS.includes("windows")
configure: {
console.info("is windows");
found = true;
diff --git a/tests/auto/blackbox/testdata/smart-relinking/smart-relinking.qbs b/tests/auto/blackbox/testdata/smart-relinking/smart-relinking.qbs
index aac0692a8..29e6c2e17 100644
--- a/tests/auto/blackbox/testdata/smart-relinking/smart-relinking.qbs
+++ b/tests/auto/blackbox/testdata/smart-relinking/smart-relinking.qbs
@@ -5,7 +5,7 @@ Project {
property stringList toolchain: qbs.toolchain
property stringList targetOS: qbs.targetOS
configure: {
- found = toolchain.contains("gcc") && targetOS.contains("unix");
+ found = toolchain.includes("gcc") && targetOS.includes("unix");
if (!found)
console.info("project disabled");
}
diff --git a/tests/auto/blackbox/testdata/source-artifact-changes/source-artifact-changes.qbs b/tests/auto/blackbox/testdata/source-artifact-changes/source-artifact-changes.qbs
index de56376df..a53819753 100644
--- a/tests/auto/blackbox/testdata/source-artifact-changes/source-artifact-changes.qbs
+++ b/tests/auto/blackbox/testdata/source-artifact-changes/source-artifact-changes.qbs
@@ -4,7 +4,7 @@ CppApplication {
consoleApplication: true
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.embedInfoPlist: false
}
@@ -12,7 +12,7 @@ CppApplication {
id: toolchainProbe
property stringList toolchain: qbs.toolchain
configure: {
- console.info("is gcc: " + toolchain.contains("gcc"));
+ console.info("is gcc: " + toolchain.includes("gcc"));
found = true;
}
}
diff --git a/tests/auto/blackbox/testdata/static-lib-without-sources/static-lib-without-sources.qbs b/tests/auto/blackbox/testdata/static-lib-without-sources/static-lib-without-sources.qbs
index 32a58c94b..54ec5e230 100644
--- a/tests/auto/blackbox/testdata/static-lib-without-sources/static-lib-without-sources.qbs
+++ b/tests/auto/blackbox/testdata/static-lib-without-sources/static-lib-without-sources.qbs
@@ -6,7 +6,7 @@ StaticLibrary {
}
Product {
- type: qbs.targetOS.contains("darwin") ? undefined : ["staticlibrary"]
+ type: qbs.targetOS.includes("darwin") ? undefined : ["staticlibrary"]
name: "b"
Depends { name: "cpp" }
Depends { name: "a" }
diff --git a/tests/auto/blackbox/testdata/successive-changes/successive-changes.qbs b/tests/auto/blackbox/testdata/successive-changes/successive-changes.qbs
index 77df81e39..c33e24d34 100644
--- a/tests/auto/blackbox/testdata/successive-changes/successive-changes.qbs
+++ b/tests/auto/blackbox/testdata/successive-changes/successive-changes.qbs
@@ -17,7 +17,7 @@ Project {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating output";
+ cmd.description = "creating output";
cmd.sourceCode = function() {
var f = new TextFile(output.filePath, TextFile.WriteOnly);
f.write(project.version);
diff --git a/tests/auto/blackbox/testdata/symbolLinkMode/lib.cpp b/tests/auto/blackbox/testdata/symbolLinkMode/lib.cpp
index 8d96f5094..9dcb48738 100644
--- a/tests/auto/blackbox/testdata/symbolLinkMode/lib.cpp
+++ b/tests/auto/blackbox/testdata/symbolLinkMode/lib.cpp
@@ -3,9 +3,9 @@ int somefunction()
return 42;
}
-#include <stdio.h>
+#include <cstdio>
static const auto func = []() {
- printf("Lib was loaded!\n");
+ std::printf("Lib was loaded!\n");
return 0;
}();
diff --git a/tests/auto/blackbox/testdata/symbolLinkMode/main.cpp b/tests/auto/blackbox/testdata/symbolLinkMode/main.cpp
index 801491634..4d847ba19 100644
--- a/tests/auto/blackbox/testdata/symbolLinkMode/main.cpp
+++ b/tests/auto/blackbox/testdata/symbolLinkMode/main.cpp
@@ -1,15 +1,15 @@
extern WEAK_IMPORT int somefunction();
extern void indirect();
-#include <stdio.h>
+#include <cstdio>
int main()
{
- printf("meow\n");
+ std::printf("meow\n");
if (&somefunction != nullptr)
- printf("somefunction existed and it returned %d\n", somefunction());
+ std::printf("somefunction existed and it returned %d\n", somefunction());
else
- printf("somefunction did not exist\n");
+ std::printf("somefunction did not exist\n");
#if SHOULD_INSTALL_LIB
indirect();
#endif
diff --git a/tests/auto/blackbox/testdata/symbolLinkMode/symbolLinkMode.qbs b/tests/auto/blackbox/testdata/symbolLinkMode/symbolLinkMode.qbs
index 2d3d64b00..49bcd9951 100644
--- a/tests/auto/blackbox/testdata/symbolLinkMode/symbolLinkMode.qbs
+++ b/tests/auto/blackbox/testdata/symbolLinkMode/symbolLinkMode.qbs
@@ -1,15 +1,22 @@
import qbs.FileInfo
+import qbs.Host
Project {
property bool shouldInstallLibrary: true
property bool lazy: false
Application {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
Depends { name: "cpp" }
Depends {
name: "functions";
cpp.symbolLinkMode: product.symbolLinkMode
- cpp.link: !(product.qbs.targetOS.contains("linux") && product.symbolLinkMode === "weak")
+ cpp.link: !(product.qbs.targetOS.includes("linux") && product.symbolLinkMode === "weak")
}
property string symbolLinkMode: project.lazy ? "lazy" : "weak"
@@ -20,7 +27,7 @@ Project {
property string installLib: "SHOULD_INSTALL_LIB=" + project.shouldInstallLibrary
cpp.defines: {
if (symbolLinkMode === "weak") {
- return qbs.targetOS.contains("darwin")
+ return qbs.targetOS.includes("darwin")
? ["WEAK_IMPORT=__attribute__((weak_import))", installLib]
: ["WEAK_IMPORT=__attribute__((weak))", installLib];
}
@@ -42,7 +49,7 @@ Project {
Depends { name: "indirect"; cpp.symbolLinkMode: "reexport" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
name: "functions"
@@ -52,7 +59,7 @@ Project {
cpp.rpaths: [cpp.rpathOrigin]
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
cpp.sonamePrefix: "@rpath"
}
@@ -65,7 +72,7 @@ Project {
Export {
// let the autotest pass on Linux where reexport is not supported
- Depends { name: "indirect"; condition: !qbs.targetOS.contains("darwin") }
+ Depends { name: "indirect"; condition: !qbs.targetOS.includes("darwin") }
// on Linux, there is no LC_WEAK_LOAD_DYLIB equivalent (the library is simply omitted
// from the list of load commands entirely), so use LD_PRELOAD to emulate
@@ -84,7 +91,7 @@ Project {
Depends { name: "cpp" }
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
bundle.isBundle: false
}
name: "indirect"
@@ -93,7 +100,7 @@ Project {
cpp.minimumMacosVersion: "10.7"
Properties {
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
// reexport is incompatible with rpath,
// "ERROR: ld: file not found: @rpath/libindirect.dylib for architecture x86_64"
cpp.sonamePrefix: qbs.installRoot + "/lib"
diff --git a/tests/auto/blackbox/testdata/system-include-paths/main.cpp b/tests/auto/blackbox/testdata/system-include-paths/main.cpp
index e449173d3..10d376a31 100644
--- a/tests/auto/blackbox/testdata/system-include-paths/main.cpp
+++ b/tests/auto/blackbox/testdata/system-include-paths/main.cpp
@@ -1,4 +1,4 @@
-#include <stdio.h>
+#include <cstdio>
#include <gagagugu.h>
int main()
diff --git a/tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs b/tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs
index 6e2137173..35dd7a00f 100644
--- a/tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs
+++ b/tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs
@@ -20,4 +20,9 @@ Project {
cpp.rpaths: qbs.installRoot + "/lib"
cpp.systemRunPaths: project.setRunPaths ? [qbs.installRoot + "/lib"] : []
}
+ Probe {
+ id: checker
+ property bool isUnix: qbs.targetOS.contains("unix")
+ configure: { console.info("is unix: " + isUnix); }
+ }
}
diff --git a/tests/auto/blackbox/testdata/trackAddFile/after/main.cpp b/tests/auto/blackbox/testdata/trackAddFile/after/main.cpp
index 0e474b221..d108825d6 100644
--- a/tests/auto/blackbox/testdata/trackAddFile/after/main.cpp
+++ b/tests/auto/blackbox/testdata/trackAddFile/after/main.cpp
@@ -31,7 +31,7 @@
int main(int argc, char **argv)
{
- printf("Hello World!\n");
+ std::printf("Hello World!\n");
Narf narf;
narf.shout();
Zort zort;
diff --git a/tests/auto/blackbox/testdata/trackAddFile/after/trackAddFile.qbs b/tests/auto/blackbox/testdata/trackAddFile/after/trackAddFile.qbs
index f4b9ba21f..4d454d4ff 100644
--- a/tests/auto/blackbox/testdata/trackAddFile/after/trackAddFile.qbs
+++ b/tests/auto/blackbox/testdata/trackAddFile/after/trackAddFile.qbs
@@ -1,5 +1,13 @@
+import qbs.Host
+
Project {
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: 'someapp'
type: 'application'
consoleApplication: true
diff --git a/tests/auto/blackbox/testdata/trackAddFile/after/zort.cpp b/tests/auto/blackbox/testdata/trackAddFile/after/zort.cpp
index 1915ea869..55a9dfa6d 100644
--- a/tests/auto/blackbox/testdata/trackAddFile/after/zort.cpp
+++ b/tests/auto/blackbox/testdata/trackAddFile/after/zort.cpp
@@ -30,6 +30,6 @@
void Zort::shout()
{
- printf("ZORT!\n");
+ std::printf("ZORT!\n");
}
diff --git a/tests/auto/blackbox/testdata/trackAddFile/before/main.cpp b/tests/auto/blackbox/testdata/trackAddFile/before/main.cpp
index f989e1d9b..e8915030e 100644
--- a/tests/auto/blackbox/testdata/trackAddFile/before/main.cpp
+++ b/tests/auto/blackbox/testdata/trackAddFile/before/main.cpp
@@ -30,7 +30,7 @@
int main(int argc, char **argv)
{
- printf("Hello World!\n");
+ std::printf("Hello World!\n");
Narf narf;
narf.shout();
return 0;
diff --git a/tests/auto/blackbox/testdata/trackAddFile/before/narf.cpp b/tests/auto/blackbox/testdata/trackAddFile/before/narf.cpp
index 280d5f3bd..c301b57df 100644
--- a/tests/auto/blackbox/testdata/trackAddFile/before/narf.cpp
+++ b/tests/auto/blackbox/testdata/trackAddFile/before/narf.cpp
@@ -30,6 +30,6 @@
void Narf::shout()
{
- printf("NARF!\n");
+ std::printf("NARF!\n");
}
diff --git a/tests/auto/blackbox/testdata/trackAddFile/before/trackAddFile.qbs b/tests/auto/blackbox/testdata/trackAddFile/before/trackAddFile.qbs
index bb0ab7d44..fd858b247 100644
--- a/tests/auto/blackbox/testdata/trackAddFile/before/trackAddFile.qbs
+++ b/tests/auto/blackbox/testdata/trackAddFile/before/trackAddFile.qbs
@@ -1,5 +1,13 @@
+import qbs.Host
+
Project {
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: 'someapp'
type: 'application'
consoleApplication: true
diff --git a/tests/auto/blackbox/testdata/trackExternalProductChanges/trackExternalProductChanges.qbs b/tests/auto/blackbox/testdata/trackExternalProductChanges/trackExternalProductChanges.qbs
index 534f49ff2..0e28e5687 100644
--- a/tests/auto/blackbox/testdata/trackExternalProductChanges/trackExternalProductChanges.qbs
+++ b/tests/auto/blackbox/testdata/trackExternalProductChanges/trackExternalProductChanges.qbs
@@ -11,4 +11,9 @@ CppApplication {
name: "file that needs help from the environment to find a header"
files: "including.cpp"
}
+ Probe {
+ id: checker
+ property bool isGcc: qbs.toolchain.contains("gcc")
+ configure: { console.info("is gcc: " + isGcc); }
+ }
}
diff --git a/tests/auto/blackbox/testdata/trackFileTags/after/main.cpp b/tests/auto/blackbox/testdata/trackFileTags/after/main.cpp
index 1d2c8ebb7..7520b5ed7 100644
--- a/tests/auto/blackbox/testdata/trackFileTags/after/main.cpp
+++ b/tests/auto/blackbox/testdata/trackFileTags/after/main.cpp
@@ -31,7 +31,7 @@ int foo();
int main(int argc, char **argv)
{
- printf("there's %d foo here\n", foo());
+ std::printf("there's %d foo here\n", foo());
return 0;
}
diff --git a/tests/auto/blackbox/testdata/trackFileTags/after/trackFileTags.qbs b/tests/auto/blackbox/testdata/trackFileTags/after/trackFileTags.qbs
index 869ce238b..1c5b6b56f 100644
--- a/tests/auto/blackbox/testdata/trackFileTags/after/trackFileTags.qbs
+++ b/tests/auto/blackbox/testdata/trackFileTags/after/trackFileTags.qbs
@@ -1,7 +1,15 @@
import qbs.TextFile
+import qbs.Host
+
Project {
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: 'someapp'
type: 'application'
consoleApplication: true
diff --git a/tests/auto/blackbox/testdata/trackFileTags/before/main.cpp b/tests/auto/blackbox/testdata/trackFileTags/before/main.cpp
index 3016f8bb1..b4d71f995 100644
--- a/tests/auto/blackbox/testdata/trackFileTags/before/main.cpp
+++ b/tests/auto/blackbox/testdata/trackFileTags/before/main.cpp
@@ -29,7 +29,7 @@
int main(int argc, char **argv)
{
- printf("there's no foo here\n");
+ std::printf("there's no foo here\n");
return 0;
}
diff --git a/tests/auto/blackbox/testdata/trackFileTags/before/trackFileTags.qbs b/tests/auto/blackbox/testdata/trackFileTags/before/trackFileTags.qbs
index ebe31bf26..86771ab8f 100644
--- a/tests/auto/blackbox/testdata/trackFileTags/before/trackFileTags.qbs
+++ b/tests/auto/blackbox/testdata/trackFileTags/before/trackFileTags.qbs
@@ -1,7 +1,15 @@
import qbs.TextFile
+import qbs.Host
+
Project {
Product {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
name: 'someapp'
type: 'application'
consoleApplication: true
diff --git a/tests/auto/blackbox/testdata/trackProducts/after/zoo.cpp b/tests/auto/blackbox/testdata/trackProducts/after/zoo.cpp
index b65fb3f9d..fc0d13e4b 100644
--- a/tests/auto/blackbox/testdata/trackProducts/after/zoo.cpp
+++ b/tests/auto/blackbox/testdata/trackProducts/after/zoo.cpp
@@ -30,5 +30,5 @@
int main()
{
- printf("zoo\n");
+ std::printf("zoo\n");
}
diff --git a/tests/auto/blackbox/testdata/trackProducts/before/bar.cpp b/tests/auto/blackbox/testdata/trackProducts/before/bar.cpp
index 7880c8669..3664897de 100644
--- a/tests/auto/blackbox/testdata/trackProducts/before/bar.cpp
+++ b/tests/auto/blackbox/testdata/trackProducts/before/bar.cpp
@@ -30,5 +30,5 @@
int main()
{
- printf("bar\n");
+ std::printf("bar\n");
}
diff --git a/tests/auto/blackbox/testdata/trackProducts/before/foo.cpp b/tests/auto/blackbox/testdata/trackProducts/before/foo.cpp
index 865fb1299..fb5c32769 100644
--- a/tests/auto/blackbox/testdata/trackProducts/before/foo.cpp
+++ b/tests/auto/blackbox/testdata/trackProducts/before/foo.cpp
@@ -30,5 +30,5 @@
int main()
{
- printf("foo\n");
+ std::printf("foo\n");
}
diff --git a/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/a/a.qbs b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/a/a.qbs
new file mode 100644
index 000000000..fd52488fb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/a/a.qbs
@@ -0,0 +1,5 @@
+Module {
+ validate: {
+ throw "Module cannot be loaded";
+ }
+}
diff --git a/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/b/b.qbs b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/b/b.qbs
new file mode 100644
index 000000000..605a2aaee
--- /dev/null
+++ b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/b/b.qbs
@@ -0,0 +1,3 @@
+Module {
+ Depends { name: "a" }
+}
diff --git a/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/c/c.qbs b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/c/c.qbs
new file mode 100644
index 000000000..ac7dbbec6
--- /dev/null
+++ b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/c/c.qbs
@@ -0,0 +1,3 @@
+Module {
+ Depends { name: "a"; required: false }
+}
diff --git a/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/d/d.qbs b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/d/d.qbs
new file mode 100644
index 000000000..0bdd8c3b7
--- /dev/null
+++ b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/modules/d/d.qbs
@@ -0,0 +1,4 @@
+Module {
+ Depends { name: "b"; }
+ Depends { name: "c"; }
+}
diff --git a/tests/auto/blackbox/testdata/transitive-invalid-dependencies/transitive-invalid-dependencies.qbs b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/transitive-invalid-dependencies.qbs
new file mode 100644
index 000000000..209b1e47d
--- /dev/null
+++ b/tests/auto/blackbox/testdata/transitive-invalid-dependencies/transitive-invalid-dependencies.qbs
@@ -0,0 +1,11 @@
+Product {
+ property bool modulePresent: {
+ console.info("b.present = " + b.present);
+ console.info("c.present = " + c.present);
+ console.info("d.present = " + d.present);
+ }
+
+ Depends { name: "b"; required: false }
+ Depends { name: "c"; required: false }
+ Depends { name: "d"; required: false }
+}
diff --git a/tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs b/tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs
new file mode 100644
index 000000000..4a738afcc
--- /dev/null
+++ b/tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs
@@ -0,0 +1,13 @@
+import qbs.File
+import qbs.FileInfo
+
+Product {
+ name: "undefined-target-platform"
+ qbs.targetPlatform: undefined
+
+ readonly property bool _validate: {
+ if ((qbs.targetOS instanceof Array) && qbs.targetOS.length === 0)
+ return true;
+ throw "Invalid qbs.targetOS value: " + qbs.targetOS;
+ }
+}
diff --git a/tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs b/tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs
index b6e025e4c..1131e6a2f 100644
--- a/tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs
+++ b/tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs
@@ -1,8 +1,8 @@
StaticLibrary {
name: "l"
- Depends { condition: qbs.targetOS.contains("darwin"); name: "bundle" }
- Properties { condition: qbs.targetOS.contains("darwin"); bundle.isBundle: false }
+ Depends { condition: qbs.targetOS.includes("darwin"); name: "bundle" }
+ Properties { condition: qbs.targetOS.includes("darwin"); bundle.isBundle: false }
aggregate: false
property string variantSuffix
@@ -31,8 +31,8 @@ StaticLibrary {
id: targetOSProbe
property stringList targetOS: qbs.targetOS
configure: {
- console.info("is Windows: " + targetOS.contains("windows"));
- console.info("is Apple: " + targetOS.contains("darwin"));
+ console.info("is Windows: " + targetOS.includes("windows"));
+ console.info("is Apple: " + targetOS.includes("darwin"));
}
}
}
diff --git a/tests/auto/blackbox/testdata/vcs/vcstest.qbs b/tests/auto/blackbox/testdata/vcs/vcstest.qbs
index 5d359e2c7..4f861654b 100644
--- a/tests/auto/blackbox/testdata/vcs/vcstest.qbs
+++ b/tests/auto/blackbox/testdata/vcs/vcstest.qbs
@@ -1,4 +1,12 @@
+import qbs.Host
+
CppApplication {
+ condition: {
+ var result = qbs.targetPlatform === Host.platform();
+ if (!result)
+ console.info("targetPlatform differs from hostPlatform");
+ return result;
+ }
Depends { name: "vcs" }
vcs.headerFileName: "my-repo-state.h"
files: ["main.cpp"]
diff --git a/tests/auto/blackbox/testdata/versionscript/versionscript.qbs b/tests/auto/blackbox/testdata/versionscript/versionscript.qbs
index cc5c7b1cc..fcb4314a2 100644
--- a/tests/auto/blackbox/testdata/versionscript/versionscript.qbs
+++ b/tests/auto/blackbox/testdata/versionscript/versionscript.qbs
@@ -20,6 +20,12 @@ DynamicLibrary {
return [cmd];
}
}
+ Probe {
+ id: checker
+ property bool isLinux: qbs.targetOS.includes("linux")
+ property bool isGcc: qbs.toolchain.contains("gcc")
+ configure: { console.info("is gcc for Linux: " + (isLinux && isGcc)); }
+ }
qbs.installPrefix: ""
install: true
diff --git a/tests/auto/blackbox/testdata/whole-archive/whole-archive.qbs b/tests/auto/blackbox/testdata/whole-archive/whole-archive.qbs
index f3bcff2cd..c138e46c0 100644
--- a/tests/auto/blackbox/testdata/whole-archive/whole-archive.qbs
+++ b/tests/auto/blackbox/testdata/whole-archive/whole-archive.qbs
@@ -32,7 +32,8 @@ Project {
property string compilerVersion: cpp.compilerVersion
property string dummy: product.linkWholeArchive // To force probe re-execution
configure: {
- if (!toolchain.contains("msvc")
+ if (!toolchain.includes("msvc")
+ || toolchain.includes("clang-cl")
|| Utilities.versionCompare(compilerVersion, "19.0.24215.1") >= 0) {
console.info("can link whole archives");
} else {
diff --git a/tests/auto/blackbox/testdata/wildcards-and-change-tracking/nonrecursive/subdir1/file.txt b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/nonrecursive/subdir1/file.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/nonrecursive/subdir1/file.txt
diff --git a/tests/auto/blackbox/testdata/wildcards-and-change-tracking/nonrecursive/subdir2/file.txt b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/nonrecursive/subdir2/file.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/nonrecursive/subdir2/file.txt
diff --git a/tests/auto/blackbox/testdata/wildcards-and-change-tracking/recursive1/recursive.txt b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/recursive1/recursive.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/recursive1/recursive.txt
diff --git a/tests/auto/blackbox/testdata/wildcards-and-change-tracking/recursive2/recursive.txt b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/recursive2/recursive.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/recursive2/recursive.txt
diff --git a/tests/auto/blackbox/testdata/wildcards-and-change-tracking/wildcards-and-change-tracking.qbs b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/wildcards-and-change-tracking.qbs
new file mode 100644
index 000000000..0a889bab3
--- /dev/null
+++ b/tests/auto/blackbox/testdata/wildcards-and-change-tracking/wildcards-and-change-tracking.qbs
@@ -0,0 +1,16 @@
+Product {
+ Group {
+ name: "recursive"
+ files: "**/file.txt"
+ }
+ Group {
+ name: "directories"
+ prefix: "nonrecursive/"
+ files: "subdi?/file.txt"
+ }
+ Group {
+ prefix: "nonrecursive/empty/"
+ name: "no files"
+ files: "*.txt"
+ }
+}
diff --git a/tests/auto/blackbox/testdata/wildcards-and-rules/wildcards-and-rules.qbs b/tests/auto/blackbox/testdata/wildcards-and-rules/wildcards-and-rules.qbs
index f6662529d..fe6088943 100644
--- a/tests/auto/blackbox/testdata/wildcards-and-rules/wildcards-and-rules.qbs
+++ b/tests/auto/blackbox/testdata/wildcards-and-rules/wildcards-and-rules.qbs
@@ -22,7 +22,7 @@ Product {
}
prepare: {
var cmd = new JavaScriptCommand();
- cmd.description = "Creating output artifact";
+ cmd.description = "creating output artifact";
cmd.highlight = "codegen";
cmd.sourceCode = function() {
var file = new TextFile(output.filePath, TextFile.WriteOnly);
diff --git a/tests/auto/blackbox/testdata/wix/ExampleScript.bat b/tests/auto/blackbox/testdata/wix/ExampleScript.bat
deleted file mode 100644
index 3af583cd8..000000000
--- a/tests/auto/blackbox/testdata/wix/ExampleScript.bat
+++ /dev/null
@@ -1 +0,0 @@
-echo Hello world!
diff --git a/tests/auto/blackbox/testdata/wix/QbsBootstrapper.wxs b/tests/auto/blackbox/testdata/wix/QbsBootstrapper.wxs
deleted file mode 100644
index 272f6af5b..000000000
--- a/tests/auto/blackbox/testdata/wix/QbsBootstrapper.wxs
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <Bundle Name="QbsBootstrapper" Version="1.0.0.0" Manufacturer="Qt Project" UpgradeCode="7b05b159-c9ce-477c-9fb5-7fce3cd50396">
- <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
-
- <Chain>
- <MsiPackage SourceFile="$(var.msiName)" />
- </Chain>
- </Bundle>
-</Wix>
diff --git a/tests/auto/blackbox/testdata/wix/QbsSetup.wxs b/tests/auto/blackbox/testdata/wix/QbsSetup.wxs
deleted file mode 100644
index 8f97ff667..000000000
--- a/tests/auto/blackbox/testdata/wix/QbsSetup.wxs
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <Product Id="*" Name="QbsSetup" Language="1033" Version="1.0.0.0" Manufacturer="Qt Project" UpgradeCode="f60f643e-b002-44d5-b3f4-edafd078314c">
- <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
-
- <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
- <MediaTemplate />
-
- <Feature Id="ProductFeature" Title="QbsSetup" Level="1">
- <ComponentGroupRef Id="ProductComponents" />
- </Feature>
- </Product>
-
- <Fragment>
- <Directory Id="TARGETDIR" Name="SourceDir">
- <?ifdef Win64 ?>
- <?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
- <?else ?>
- <?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
- <?endif ?>
- <Directory Id="$(var.PlatformProgramFilesFolder)">
- <Directory Id="INSTALLFOLDER" Name="QbsSetup" />
- </Directory>
- </Directory>
- </Fragment>
-
- <Fragment>
- <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
- <Component Id="ProductComponent">
- <File Source="$(var.project.path)/$(var.scriptName)" />
- </Component>
- </ComponentGroup>
- </Fragment>
-</Wix>
diff --git a/tests/auto/blackbox/testdata/wix/Qt.wxs b/tests/auto/blackbox/testdata/wix/Qt.wxs
deleted file mode 100644
index fbd992c43..000000000
--- a/tests/auto/blackbox/testdata/wix/Qt.wxs
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <Fragment>
- </Fragment>
-</Wix>
diff --git a/tests/auto/blackbox/testdata/wix/WiXInstallers.qbs b/tests/auto/blackbox/testdata/wix/WiXInstallers.qbs
deleted file mode 100644
index 07f61ba2c..000000000
--- a/tests/auto/blackbox/testdata/wix/WiXInstallers.qbs
+++ /dev/null
@@ -1,38 +0,0 @@
-import qbs.FileInfo
-
-Project {
- WindowsInstallerPackage {
- name: "QbsSetup"
- targetName: "qbs"
- files: ["QbsSetup.wxs", "ExampleScript.bat"]
- wix.defines: ["scriptName=ExampleScript.bat"]
- wix.extensions: ["WixBalExtension", "WixUIExtension"]
- qbs.targetPlatform: "windows"
-
- Export {
- Depends { name: "wix" }
- wix.defines: base.concat(["msiName=" +
- FileInfo.joinPaths(product.buildDirectory,
- product.targetName + wix.windowsInstallerSuffix)])
- }
- }
-
- WindowsSetupPackage {
- Depends { name: "QbsSetup" }
- condition: qbs.hostOS.contains("windows") // currently does not work in Wine with WiX 3.9
- name: "QbsBootstrapper"
- targetName: "qbs-setup-" + qbs.architecture
- files: ["QbsBootstrapper.wxs"]
- qbs.architecture: original || "x86"
- qbs.targetPlatform: "windows"
- }
-
- WindowsInstallerPackage {
- name: "RegressionBuster9000"
- files: ["QbsSetup.wxs", "Qt.wxs", "de.wxl"]
- wix.defines: ["scriptName=ExampleScript.bat"]
- wix.cultures: []
- qbs.architecture: original || "x86"
- qbs.targetPlatform: "windows"
- }
-}
diff --git a/tests/auto/blackbox/testdata/wix/de.wxl b/tests/auto/blackbox/testdata/wix/de.wxl
deleted file mode 100644
index 75394cfdd..000000000
--- a/tests/auto/blackbox/testdata/wix/de.wxl
+++ /dev/null
@@ -1 +0,0 @@
-<WixLocalization xmlns="http://schemas.microsoft.com/wix/2006/localization"/>
diff --git a/tests/auto/blackbox/testdata/wixDependencies/QbsSetup.wxs b/tests/auto/blackbox/testdata/wixDependencies/QbsSetup.wxs
deleted file mode 100644
index ec839a269..000000000
--- a/tests/auto/blackbox/testdata/wixDependencies/QbsSetup.wxs
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <Product Id="*" Name="QbsSetup" Language="1033" Version="1.0.0.0" Manufacturer="Qt Project" UpgradeCode="f60f643e-b002-44d5-b3f4-edafd078314c">
- <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
-
- <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
- <MediaTemplate />
-
- <Feature Id="ProductFeature" Title="QbsSetup" Level="1">
- <ComponentGroupRef Id="ProductComponents" />
- </Feature>
- </Product>
-
- <Fragment>
- <Directory Id="TARGETDIR" Name="SourceDir">
- <?ifdef Win64 ?>
- <?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
- <?else ?>
- <?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
- <?endif ?>
- <Directory Id="$(var.PlatformProgramFilesFolder)">
- <Directory Id="INSTALLFOLDER" Name="QbsSetup" />
- </Directory>
- </Directory>
- </Fragment>
-
- <Fragment>
- <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
- <Component Id="ProductComponent">
- <File Source="$(var.project.buildDirectory)/app.exe" />
- </Component>
- <Component Id="ProductComponent2">
- <File Source="$(var.project.buildDirectory)/lib.dll" />
- </Component>
- </ComponentGroup>
- </Fragment>
-</Wix>
diff --git a/tests/auto/blackbox/testdata/wixDependencies/wixDependencies.qbs b/tests/auto/blackbox/testdata/wixDependencies/wixDependencies.qbs
deleted file mode 100644
index d42a18054..000000000
--- a/tests/auto/blackbox/testdata/wixDependencies/wixDependencies.qbs
+++ /dev/null
@@ -1,67 +0,0 @@
-import qbs.TextFile
-
-Project {
- WindowsInstallerPackage {
- Depends { name: "app" }
- Depends { name: "lib" }
- name: "QbsSetup"
- targetName: "qbs"
- files: ["QbsSetup.wxs"]
- wix.extensions: ["WixBalExtension", "WixUIExtension"]
- destinationDirectory: project.buildDirectory
- }
-
- Application {
- Depends { name: "cpp" }
- name: "app"
- files: ["main.c"]
- Group {
- fileTagsFilter: product.type
- qbs.install: true
- }
- destinationDirectory: project.buildDirectory
- }
-
- DynamicLibrary {
- Depends { name: "cpp" }
- name: "lib"
- files: ["main.c"]
- Group {
- fileTagsFilter: product.type
- qbs.install: true
- }
- Rule {
- // This rule tries to provoke the installer into building too early (and the test
- // verifies that it does not) by causing the build of the installables to take
- // a lot longer.
- multiplex: true
- outputFileTags: ["c"]
- outputArtifacts: {
- var artifacts = [];
- for (var i = 0; i < 96; ++i)
- artifacts.push({ filePath: "c" + i + ".c", fileTags: ["c"] });
- return artifacts;
- }
- prepare: {
- var cmd = new JavaScriptCommand();
- cmd.silent = true;
- cmd.sourceCode = function() {
- for (var j = 0; j < 1000; ++j) { // Artificial delay.
- for (var i = 0; i < outputs["c"].length; ++i) {
- var tf;
- try {
- tf = new TextFile(outputs["c"][i].filePath, TextFile.WriteOnly);
- tf.writeLine("int main" + i + "() { return 0; }");
- } finally {
- if (tf)
- tf.close();
- }
- }
- }
- };
- return [cmd];
- }
- }
- destinationDirectory: project.buildDirectory
- }
-}