2019-07-03 06:26:24 +00:00
|
|
|
# Prepares environment for building Qt module. It sets all important environment variables in particular
|
|
|
|
# configures the right compiler and cmake generator
|
|
|
|
type: Group
|
|
|
|
instructions:
|
|
|
|
|
|
|
|
# Set default cmake generator, it may be overwritten later
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: CMAKE_GENERATOR
|
|
|
|
variableValue: Ninja
|
|
|
|
|
2021-12-15 18:29:28 +00:00
|
|
|
# Set path separator based on host platform.
|
|
|
|
# \ on Windows (double \\ for escaping the backslash)
|
|
|
|
# / on UNIX
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: CI_PATH_SEP
|
|
|
|
variableValue: "\\"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.os
|
|
|
|
equals_value: Windows
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: CI_PATH_SEP
|
|
|
|
variableValue: "/"
|
|
|
|
disable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.os
|
|
|
|
equals_value: Windows
|
|
|
|
|
2019-07-03 06:26:24 +00:00
|
|
|
|
|
|
|
# Export ICC specific env. variables
|
|
|
|
- type: Group
|
|
|
|
instructions:
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: LD_LIBRARY_PATH
|
|
|
|
variableValue: "{{.Env.ICC64_18_LDLP}}"
|
|
|
|
- type: PrependToEnvironmentVariable
|
|
|
|
variableName: PATH
|
|
|
|
variableValue: "{{.Env.ICC64_18_PATH}}"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: ICC_18
|
|
|
|
|
|
|
|
|
|
|
|
# Set CMAKE_C[XX]_COMPILER otherwise cmake may prioritize a wrong compiler
|
|
|
|
- type: Group
|
|
|
|
instructions:
|
|
|
|
- type: PrependToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_CMAKE_ARGS
|
2019-07-03 06:26:24 +00:00
|
|
|
variableValue: "-DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc "
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
contains_value: ICC
|
|
|
|
- type: PrependToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_CMAKE_ARGS
|
2019-07-03 06:26:24 +00:00
|
|
|
variableValue: "-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ "
|
|
|
|
enable_if:
|
2020-04-28 11:52:35 +00:00
|
|
|
condition: or
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: host.compiler
|
|
|
|
contains_value: GCC
|
|
|
|
- condition: property
|
|
|
|
property: host.compiler
|
|
|
|
contains_value: Mingw
|
2019-07-03 06:26:24 +00:00
|
|
|
- type: PrependToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_CMAKE_ARGS
|
2019-07-03 06:26:24 +00:00
|
|
|
variableValue: "-DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe "
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
contains_value: MSVC
|
|
|
|
- type: PrependToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_CMAKE_ARGS
|
2019-07-03 06:26:24 +00:00
|
|
|
variableValue: "-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ "
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
contains_value: Clang
|
2021-05-28 07:47:41 +00:00
|
|
|
disable_if:
|
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: runtime
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
env_var: COMMON_CMAKE_ARGS
|
2021-05-28 07:47:41 +00:00
|
|
|
contains_value: "-DCMAKE_C_COMPILER="
|
|
|
|
- condition: runtime
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
env_var: COMMON_CMAKE_ARGS
|
2021-05-28 07:47:41 +00:00
|
|
|
contains_value: "-DCMAKE_CXX_COMPILER="
|
2019-07-03 06:26:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Export TARGET_ARCHITECTURE and WINDOWS_SDK_VERSION for MSVC cross compilation
|
|
|
|
- type: Group
|
|
|
|
enable_if:
|
2020-04-28 11:52:35 +00:00
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: host.os
|
|
|
|
equals_value: Windows
|
|
|
|
- condition: property
|
|
|
|
property: host.compiler
|
|
|
|
not_contains_value: Mingw
|
2019-07-03 06:26:24 +00:00
|
|
|
instructions:
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: TARGET_ARCHITECTURE
|
|
|
|
variableValue: amd64 # TODO add something like "{{toLower .Config host.arch}}"
|
|
|
|
disable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.arch
|
|
|
|
not_equals_property: target.arch
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: TARGET_ARCHITECTURE
|
|
|
|
variableValue: amd64_x86
|
|
|
|
enable_if:
|
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: target.arch
|
|
|
|
equals_property: X86
|
|
|
|
- condition: property
|
|
|
|
property: host.arch
|
|
|
|
equals_property: X86_64
|
2021-01-12 09:19:30 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: TARGET_ARCHITECTURE
|
|
|
|
variableValue: x64_arm64
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: target.arch
|
|
|
|
equals_value: ARM64
|
2019-07-03 06:26:24 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
# HACK. Overwrite TARGET_ARCHITECTURE as we do not use standard MSVC cross
|
|
|
|
# compilation targets here. The target architecture will be detected by Qt.
|
|
|
|
variableName: TARGET_ARCHITECTURE
|
|
|
|
variableValue: x86
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: target.os
|
2020-03-26 15:27:57 +00:00
|
|
|
in_values: ["WinRT", "WinPhone", "WinCE"]
|
2019-07-03 06:26:24 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: WINDOWS_SDK_VERSION
|
|
|
|
variableValue: "10.0.14393.0"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: target.os
|
2020-03-26 15:27:57 +00:00
|
|
|
equals_value: "WinRT"
|
2019-07-03 06:26:24 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: WINDOWS_SDK_VERSION
|
|
|
|
variableValue: ""
|
|
|
|
disable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.os
|
2020-03-26 15:27:57 +00:00
|
|
|
equals_value: "WinRT" # TODO set windows sdk version for desktop windows as well
|
2019-07-03 06:26:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
# MSVC is installed in somehow arbitrary places. To reduce amount of combinations we need to make a variable.
|
|
|
|
# This seems inverted, but on 64 bit hosts VS is installed into the x86 path, otherwise the regular one
|
|
|
|
# TODO cleanup, that step could be removed if we have same installation paths or we read the path from registry
|
|
|
|
# or we use compiler specific generator (probably superior solution as it allows to get rid of ENV_PREFIX).
|
|
|
|
- type: Group
|
|
|
|
enable_if:
|
2020-04-28 11:52:35 +00:00
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: host.os
|
|
|
|
equals_value: Windows
|
|
|
|
- condition: property
|
|
|
|
property: host.compiler
|
2020-09-30 11:04:48 +00:00
|
|
|
contains_value: MSVC
|
2019-07-03 06:26:24 +00:00
|
|
|
instructions:
|
|
|
|
# Try to pick one of many coexistent MSVC installation to use
|
|
|
|
# TODO cleanup, that could be much simpler if all tools are installed to similar paths, so it would
|
|
|
|
# be enough to substitute compiler name.
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%VS90COMNTOOLS%\\vsvars32.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2008
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%VS100COMNTOOLS%\\vsvars32.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2010
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio 11.0\\VC\\vcvarsall.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2012
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio 12.0\\VC\\vcvarsall.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2013
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2015
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio\\2017\\Professional\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2017
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%ProgramFiles(x86)%\\Microsoft Visual Studio\\2019\\Professional\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2019
|
2021-09-02 07:50:06 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%ProgramFiles%\\Microsoft Visual Studio\\2022\\Preview\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2022_PREVIEW
|
2021-11-17 09:41:42 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: VC_SCRIPT
|
|
|
|
variableValue: "%ProgramFiles%\\Microsoft Visual Studio\\2022\\Professional\\VC\\Auxiliary\\Build\\vcvarsall.bat"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2022
|
2019-07-03 06:26:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
# With MSVC we need setup the environment before every subprocess call, the group below creates a script that
|
|
|
|
# does it. It is enough to prepand it to every call (it is safe to add it even on other OSes)
|
|
|
|
- type: Group
|
|
|
|
instructions:
|
|
|
|
- type: WriteFile
|
|
|
|
fileContents: "call \"{{.Env.VC_SCRIPT}}\" {{.Env.TARGET_ARCHITECTURE}} {{.Env.WINDOWS_SDK_VERSION}}\r\ncmd /c %*"
|
|
|
|
filename: c:\\users\\qt\\prefix.bat
|
|
|
|
fileMode: 420
|
|
|
|
maxTimeInSeconds: 20
|
|
|
|
maxTimeBetweenOutput: 20
|
|
|
|
enable_if:
|
2020-04-28 11:52:35 +00:00
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: host.os
|
|
|
|
equals_value: Windows
|
|
|
|
- condition: property
|
|
|
|
property: host.compiler
|
2020-09-30 11:04:48 +00:00
|
|
|
contains_value: MSVC
|
2019-07-03 06:26:24 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: ENV_PREFIX
|
|
|
|
variableValue: "c:\\users\\qt\\prefix.bat"
|
|
|
|
enable_if:
|
2020-04-28 11:52:35 +00:00
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: host.os
|
|
|
|
equals_value: Windows
|
|
|
|
- condition: property
|
|
|
|
property: host.compiler
|
2020-09-30 11:04:48 +00:00
|
|
|
contains_value: MSVC
|
2019-07-03 06:26:24 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: ENV_PREFIX
|
|
|
|
variableValue: ""
|
|
|
|
disable_if:
|
2020-04-28 11:52:35 +00:00
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: host.os
|
|
|
|
equals_value: Windows
|
|
|
|
- condition: property
|
|
|
|
property: host.compiler
|
2020-09-30 11:04:48 +00:00
|
|
|
contains_value: MSVC
|
2020-04-28 09:58:06 +00:00
|
|
|
|
|
|
|
- type: Group
|
|
|
|
instructions:
|
2020-10-22 16:30:50 +00:00
|
|
|
# Need to unset QMAKESPEC, so that the pre-installed boot2qt mkspec is not picked up.
|
2020-04-28 09:58:06 +00:00
|
|
|
- type: WriteFile
|
2022-02-18 15:01:53 +00:00
|
|
|
fileContents: "#!/bin/bash\nunset LD_LIBRARY_PATH\n. {{.Env.QT_YOCTO_ENVSETUP}}\nexport PATH={{.Env.QT_CMAKE_DIR}}:$PATH;\nunset QMAKESPEC\n\"$@\""
|
2020-04-28 09:58:06 +00:00
|
|
|
filename: "{{.Env.HOME}}/prefix.sh"
|
|
|
|
fileMode: 493
|
|
|
|
maxTimeInSeconds: 20
|
|
|
|
maxTimeBetweenOutput: 20
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: target.osVersion
|
|
|
|
equals_value: QEMU
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: TARGET_ENV_PREFIX
|
|
|
|
variableValue: "{{.Env.HOME}}/prefix.sh"
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: target.osVersion
|
2022-01-13 12:28:55 +00:00
|
|
|
in_values: [QEMU]
|
2020-04-28 09:58:06 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: TARGET_ENV_PREFIX
|
|
|
|
variableValue: ""
|
|
|
|
disable_if:
|
|
|
|
condition: property
|
|
|
|
property: target.osVersion
|
2022-01-13 12:28:55 +00:00
|
|
|
in_values: [QEMU]
|
2020-12-01 14:07:03 +00:00
|
|
|
|
2021-01-12 09:19:30 +00:00
|
|
|
# Windows on Arm, cross-compilation with MSVC
|
|
|
|
- type: Group
|
|
|
|
enable_if:
|
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: host.compiler
|
|
|
|
equals_value: MSVC2019
|
|
|
|
- condition: property
|
|
|
|
property: target.arch
|
|
|
|
equals_value: ARM64
|
|
|
|
instructions:
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: TARGET_ENV_PREFIX
|
|
|
|
variableValue: "c:\\users\\qt\\prefix.bat"
|
|
|
|
|
2020-12-01 14:07:03 +00:00
|
|
|
# QNX variables
|
|
|
|
- type: Group
|
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: target.os
|
|
|
|
equals_value: QNX
|
|
|
|
instructions:
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: QNX_TARGET
|
|
|
|
variableValue: "{{.Env.QNX_710}}/target/qnx7"
|
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: QNX_CONFIGURATION_EXCLUSIVE
|
2022-04-05 06:52:34 +00:00
|
|
|
variableValue: "{{.Env.HOME}}/.qnx"
|
2020-12-01 14:07:03 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: QNX_CONFIGURATION
|
2022-04-05 06:52:34 +00:00
|
|
|
variableValue: "{{.Env.HOME}}/.qnx"
|
2020-12-01 14:07:03 +00:00
|
|
|
- type: PrependToEnvironmentVariable
|
|
|
|
variableName: PATH
|
|
|
|
variableValue: "{{.Env.QNX_710}}/host/linux/x86_64/usr/bin:"
|
|
|
|
- type: PrependToEnvironmentVariable
|
|
|
|
variableName: PATH
|
|
|
|
variableValue: "{{.Env.QNX_710}}/host/common/bin:"
|
|
|
|
- type: PrependToEnvironmentVariable
|
|
|
|
variableName: PATH
|
2022-04-05 06:52:34 +00:00
|
|
|
variableValue: "{{.Env.HOME}}/.qnx:"
|
2020-12-01 14:07:03 +00:00
|
|
|
- type: EnvironmentVariable
|
|
|
|
variableName: QNX_HOST
|
|
|
|
variableValue: "{{.Env.QNX_710}}/host/linux/x86_64"
|
2021-09-27 15:02:52 +00:00
|
|
|
- type: AppendToEnvironmentVariable
|
|
|
|
variableName: PATH
|
|
|
|
variableValue: ":{{.Env.QEMUARMV7_TOOLCHAIN_SYSROOT}}/../x86_64-pokysdk-linux/usr/bin:"
|
2020-12-01 14:07:03 +00:00
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: host.os
|
|
|
|
equals_value: Linux
|
|
|
|
|
2021-11-02 11:25:40 +00:00
|
|
|
# Enable warnings are errors
|
|
|
|
- type: Group
|
|
|
|
instructions:
|
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_CMAKE_ARGS
|
2021-11-02 11:25:40 +00:00
|
|
|
variableValue: " -DWARNINGS_ARE_ERRORS=ON"
|
2022-03-24 13:20:16 +00:00
|
|
|
- type: AppendToEnvironmentVariable
|
|
|
|
variableName: COMMON_TARGET_CMAKE_ARGS
|
|
|
|
variableValue: " -DWARNINGS_ARE_ERRORS=ON"
|
2021-11-02 11:25:40 +00:00
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: features
|
|
|
|
contains_value: WarningsAreErrors
|
2021-11-02 11:32:49 +00:00
|
|
|
|
2021-12-15 18:15:42 +00:00
|
|
|
- type: Group
|
|
|
|
instructions:
|
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_CMAKE_ARGS
|
2022-03-02 17:11:17 +00:00
|
|
|
variableValue: " -DQT_BUILD_TESTS=OFF -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS"
|
2021-12-15 18:15:42 +00:00
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_NON_QTBASE_CMAKE_ARGS
|
2022-03-02 17:11:17 +00:00
|
|
|
variableValue: " -DQT_BUILD_TESTS=OFF -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS"
|
2021-12-15 18:15:42 +00:00
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_TEST_CMAKE_ARGS
|
2022-03-02 17:11:17 +00:00
|
|
|
variableValue: " -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS"
|
2021-12-15 18:15:42 +00:00
|
|
|
|
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_TARGET_CMAKE_ARGS
|
2022-03-02 17:11:17 +00:00
|
|
|
variableValue: " -DQT_BUILD_TESTS=OFF -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS"
|
2021-12-15 18:15:42 +00:00
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_NON_QTBASE_TARGET_CMAKE_ARGS
|
2022-03-02 17:11:17 +00:00
|
|
|
variableValue: " -DQT_BUILD_TESTS=OFF -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS"
|
2021-12-15 18:15:42 +00:00
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_TARGET_TEST_CMAKE_ARGS
|
2022-03-02 17:11:17 +00:00
|
|
|
variableValue: " -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS"
|
2021-12-15 18:15:42 +00:00
|
|
|
|
2021-11-02 11:32:49 +00:00
|
|
|
# Sccache
|
|
|
|
- type: Group
|
|
|
|
instructions:
|
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_CMAKE_ARGS
|
2021-11-02 11:32:49 +00:00
|
|
|
variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
|
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_NON_QTBASE_CMAKE_ARGS
|
2021-11-02 11:32:49 +00:00
|
|
|
variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
|
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_TEST_CMAKE_ARGS
|
2021-11-02 11:32:49 +00:00
|
|
|
variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
|
2021-12-15 18:17:41 +00:00
|
|
|
|
2021-11-02 11:32:49 +00:00
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_TARGET_CMAKE_ARGS
|
2021-11-02 11:32:49 +00:00
|
|
|
variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
|
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_NON_QTBASE_TARGET_CMAKE_ARGS
|
2021-11-02 11:32:49 +00:00
|
|
|
variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
|
2021-12-15 18:17:41 +00:00
|
|
|
- type: AppendToEnvironmentVariable
|
coin: Use configure and qt-configure-module in instructions
We want to use configure and qt-configure-module when building in
Coin, rather than pure cmake and qt-cmake.
There are a few benefits:
- CI tests the scripts, making sure we don't introduce regressions
- CI uses the same scripts that we mention in our documentation for
developers to use
- The platform configurations become a bit less verbose and easier to
read due to less shouty-case CMake options
To ensure a more gradual porting, Coin will only use the new
instructions if the 'UseConfigure' feature is set on a platform
configuration in qt5.git. This allows going back to the old
instructions in case if something isn't working properly.
Due the opt-in, we need to support both old and new instructions in
the implementation.
The change strives to remove as much duplicate code as possible,
by moving it into common includes.
The README.md is updated to mention the overview of how the different
environment variables are used.
There are a few important things to point out.
1) Because during the porting we have to allow mixing of the old style
and new style, platform configs have to separate CMake-style options
from configure-style options in different environment variables.
Otherwise the instructions wouldn't be able to create a valid
configure call, where all CMake-style options have to go at the end
after a double dash --.
After all platform configs are ported to the new style, it should be
possible to combine all the options in a single environment variable
if that is desired, but it will require another round of porting to
remove all the '-D' prefixes in CMake-style options, and just use
regular variable assignment which configure supports.
e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be
mixed in-between configure-style args.
2) Configure is more strict in that it doesn't allow passing
unknown options. Due to that, we can't pass non-qtbase configure
options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would
error out in the repos where the configure option is unknown.
Because we don't have a Coin configure variable for each repo,
we circumvent the issue by continuing to pass CMake-style options via
NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks.
In the future, we could introduce a configure flag that disables
the validation checks.
Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-02-15 12:59:33 +00:00
|
|
|
variableName: COMMON_TARGET_TEST_CMAKE_ARGS
|
2021-12-15 18:17:41 +00:00
|
|
|
variableValue: " -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
|
2021-11-02 11:32:49 +00:00
|
|
|
enable_if:
|
|
|
|
condition: property
|
|
|
|
property: features
|
|
|
|
contains_value: Sccache
|
2021-11-11 09:44:21 +00:00
|
|
|
|
2021-12-15 18:29:28 +00:00
|
|
|
# Specify a custom examples installation directory, so that the built example binaries are not
|
|
|
|
# packaged into the artifact archive together with the Qt libraries.
|
|
|
|
- type: Group
|
|
|
|
instructions:
|
|
|
|
- type: AppendToEnvironmentVariable
|
|
|
|
variableName: COMMON_CMAKE_ARGS
|
|
|
|
variableValue: " -DQT_INTERNAL_EXAMPLES_INSTALL_PREFIX={{unixPathSeparators .BuildDir}}/installed_examples"
|
|
|
|
- type: AppendToEnvironmentVariable
|
|
|
|
variableName: COMMON_TARGET_CMAKE_ARGS
|
|
|
|
variableValue: " -DQT_INTERNAL_EXAMPLES_INSTALL_PREFIX={{unixPathSeparators .BuildDir}}/installed_examples"
|
|
|
|
enable_if:
|
|
|
|
# Only set the custom installation dir if examples are built.
|
|
|
|
condition: or
|
|
|
|
conditions:
|
|
|
|
# qtbase host case
|
|
|
|
- condition: runtime
|
|
|
|
env_var: CONFIGURE_ARGS
|
|
|
|
contains_value: "QT_BUILD_EXAMPLES=ON"
|
|
|
|
# qtbase target case
|
|
|
|
- condition: runtime
|
|
|
|
env_var: TARGET_CONFIGURE_ARGS
|
|
|
|
contains_value: "QT_BUILD_EXAMPLES=ON"
|
|
|
|
# non-qtbase host case
|
|
|
|
- condition: runtime
|
|
|
|
env_var: NON_QTBASE_CONFIGURE_ARGS
|
|
|
|
contains_value: "QT_BUILD_EXAMPLES=ON"
|
|
|
|
# non-qtbase target case
|
|
|
|
- condition: runtime
|
|
|
|
env_var: NON_QTBASE_TARGET_CONFIGURE_ARGS
|
|
|
|
contains_value: "QT_BUILD_EXAMPLES=ON"
|
|
|
|
# Same as above, but for configurations marked with UseConfigure
|
|
|
|
# qtbase host case
|
|
|
|
- condition: runtime
|
|
|
|
env_var: CONFIGURE_ARGS
|
|
|
|
contains_value: "-make examples"
|
|
|
|
# qtbase target case
|
|
|
|
- condition: runtime
|
|
|
|
env_var: TARGET_CONFIGURE_ARGS
|
|
|
|
contains_value: "-make examples"
|
|
|
|
# non-qtbase host case
|
|
|
|
- condition: runtime
|
|
|
|
env_var: NON_QTBASE_CONFIGURE_ARGS
|
|
|
|
contains_value: "-make examples"
|
|
|
|
# non-qtbase target case
|
|
|
|
- condition: runtime
|
|
|
|
env_var: NON_QTBASE_TARGET_CONFIGURE_ARGS
|
|
|
|
contains_value: "-make examples"
|
|
|
|
|
2021-11-11 09:44:21 +00:00
|
|
|
- type: SetEnvironmentFromScript
|
|
|
|
command: [C:\Utils\emsdk\emsdk_env.bat]
|
|
|
|
userMessageOnFailure: "Failed to set emscripten environment"
|
|
|
|
maxTimeInSeconds: 60
|
|
|
|
maxTimeBetweenOutput: 60
|
|
|
|
enable_if:
|
|
|
|
condition: and
|
|
|
|
conditions:
|
|
|
|
- condition: property
|
|
|
|
property: target.osVersion
|
|
|
|
contains_value: WebAssembly
|
|
|
|
- condition: property
|
|
|
|
property: host.os
|
|
|
|
contains_value: Windows
|