d0183527d4
By using the new environment variable for the generator selection introduced in 3.15, we can later select the visual studio generator once the qtbase build is fixed. This will simplify the VS selection code in this file and allow getting rid of the ENV_PREFIX and .bat file. Change-Id: I9f76b5714450ffa60b496aef0ce5a0c21e843bef Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
248 lines
8.7 KiB
YAML
248 lines
8.7 KiB
YAML
version: 1
|
|
accept_configuration:
|
|
condition: property
|
|
property: host.os
|
|
equals_property: target.os
|
|
|
|
windows_specific_instructions:
|
|
- &export_target_architecture_and_sdk
|
|
# Export TARGET_ARCHITECTURE and WINDOWS_SDK_VERSION for MSVC cross compilation
|
|
type: Group
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
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
|
|
- 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
|
|
in_values: ["WINRT", "WINPHONE", "WINCE"]
|
|
- type: EnvironmentVariable
|
|
variableName: WINDOWS_SDK_VERSION
|
|
variableValue: "10.0.14393.0"
|
|
enable_if:
|
|
condition: property
|
|
property: target.os
|
|
equals_value: WINRT
|
|
- type: EnvironmentVariable
|
|
variableName: WINDOWS_SDK_VERSION
|
|
variableValue: ""
|
|
disable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: WINRT # TODO set windows sdk version for desktop windows as well
|
|
|
|
- &find_path_to_compiler
|
|
# 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.
|
|
type: Group
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
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
|
|
|
|
icc_specific_instructions: &icc_export_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
|
|
|
|
build_instructions:
|
|
- type: MakeDirectory
|
|
directory: .git
|
|
- type: SetBuildDirectory
|
|
directory: "{{.SourceDir}}"
|
|
- type: ChangeDirectory
|
|
directory: "{{.BuildDir}}"
|
|
- type: EnvironmentVariable
|
|
variableName: CMAKE_GENERATOR
|
|
variableValue: Ninja
|
|
- *icc_export_variables
|
|
- *export_target_architecture_and_sdk
|
|
- *find_path_to_compiler
|
|
# With MSVC we need setup the environment before every subprocess call.
|
|
- 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:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
- type: EnvironmentVariable
|
|
variableName: ENV_PREFIX
|
|
variableValue: "c:\\users\\qt\\prefix.bat"
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
- type: EnvironmentVariable
|
|
variableName: ENV_PREFIX
|
|
variableValue: ""
|
|
disable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake {{.Env.CONFIGURE_ARGS}} -DCMAKE_INSTALL_PREFIX:PATH={{.InstallDir}} -DBUILD_TESTING=OFF {{.SourceDir}}"
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to call cmake. Contact Liang then.
|
|
- type: ExecuteCommand # TODO: remove me, just debuging
|
|
command: cmd.exe /c type {{.BuildDir}}\\CMakeCache.txt
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
maxTimeInSeconds: 60
|
|
userMessageOnFailure: Could not print the file cmake config file. This should not be possible.
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake --build ."
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to build sources. In the current state bug can be everywhere. Contact Liang first.
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake --install ."
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to install package.
|
|
- type: EnvironmentVariable
|
|
variableName: DESTDIR
|
|
variableValue: "{{.InstallRoot}}"
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake --install ."
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to install package for archiving.
|
|
- type: SignPackage
|
|
enable_if:
|
|
condition: property
|
|
property: host.os
|
|
equals_value: Windows
|
|
directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}"
|
|
maxTimeInSeconds: 1200
|
|
maxTimeBetweenOutput: 1200
|
|
- type: UploadArtifact
|
|
archiveDirectory: "{{.InstallRoot}}/{{.AgentWorkingDir}}"
|
|
transferType: UploadModuleBuildArtifact
|
|
maxTimeInSeconds: 1200
|
|
maxTimeBetweenOutput: 1200
|
|
- type: ChangeDirectory
|
|
directory: "{{.SourceDir}}/tests"
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake {{.Env.CONFIGURE_ARGS}} -DCMAKE_PREFIX_PATH:PATH={{.InstallDir}} {{.SourceDir}}/tests"
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to call cmake. Contact Liang then.
|
|
- type: ExecuteCommand
|
|
command: "{{.Env.ENV_PREFIX}} cmake --build ."
|
|
maxTimeInSeconds: 6000
|
|
maxTimeBetweenOutput: 120
|
|
userMessageOnFailure: >
|
|
Failed to build sources. In the current state bug can be everywhere. Contact Liang first.
|
|
- type: UploadTestArtifact
|
|
transferType: UploadModuleTestsArtifact
|
|
archiveDirectory: "{{.SourceDir}}/tests"
|
|
maxTimeInSeconds: 1200
|
|
maxTimeBetweenOutput: 1200
|
|
test_instructions:
|
|
- type: ExecuteCommand
|
|
command: echo "hello world - test"
|
|
maxTimeInSeconds: 60
|
|
maxTimeBetweenOutput: 12
|
|
userMessageOnFailure: >
|
|
Failed to call echo. Contact Liang then.
|