diff options
Diffstat (limited to 'coin/module_config.yaml')
-rw-r--r-- | coin/module_config.yaml | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/coin/module_config.yaml b/coin/module_config.yaml new file mode 100644 index 0000000000..4de47d1e40 --- /dev/null +++ b/coin/module_config.yaml @@ -0,0 +1,198 @@ +version: 1 +accept_configuration: + condition: property + property: host.os + equals_property: target.os + +windows_specific_instrucitons: + - &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 + +build_instructions: + - type: MakeDirectory + directory: .git + - type: SetBuildDirectory + directory: "{{.SourceDir}}" + - type: ChangeDirectory + directory: "{{.BuildDir}}" + - *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}} -GNinja {{.SourceDir}}" + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 120 + userMessageOnFailure: > + Failed to call cmake. Contact Liang then. + - type: EnvironmentVariable + variableName: DESTDIR + variableValue: "{{.InstallRoot}}" + - 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}} ninja install" + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 120 + userMessageOnFailure: > + Failed to build sources. In the current state bug can be everywhere. Contact Liang first. + - 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 +test_instructions: + - type: ExecuteCommand + command: echo "hello world - test" + maxTimeInSeconds: 60 + maxTimeBetweenOutput: 12 + userMessageOnFailure: > + Failed to call echo. Contact Liang then. |