type: Group
instructions:
  - type: ChangeDirectory
    directory: "{{.SourceDir}}"
  - type: MakeDirectory
    directory: .git
  - type: MakeDirectory
    directory: "{{.SourceDir}}_build"
  - type: SetBuildDirectory
    directory: "{{.SourceDir}}_build"
  - type: ChangeDirectory
    directory: "{{.BuildDir}}"

  - type: EnvironmentVariable
    variableName: COIN_CONFIGURE_ARGS
    variableValue: "{{.Env.NON_QTBASE_CONFIGURE_ARGS}}"
  - type: EnvironmentVariable
    variableName: COIN_CMAKE_ARGS
    variableValue: "{{.Env.NON_QTBASE_CMAKE_ARGS}} {{.Env.COMMON_NON_QTBASE_CMAKE_ARGS}}"
  - type: EnvironmentVariable
    variableName: CONFIGURE_ENV_PREFIX
    variableValue: "{{.Env.ENV_PREFIX}}"
  - !include "{{qt/qtbase}}/call_configure_module.yaml"

  - type: EnvironmentVariable
    variableName: CMAKE_BUILD_TIMEOUT
    variableValue: "6000"
    enable_if:
      condition: runtime
      env_var: CMAKE_BUILD_TIMEOUT
      equals_value: null
  - type: EnvironmentVariable
    variableName: CMAKE_BUILD_OUTPUT_TIMEOUT
    variableValue: "1200"
    enable_if:
      condition: runtime
      env_var: CMAKE_BUILD_OUTPUT_TIMEOUT
      equals_value: null
  - type: ExecuteCommand
    command: "{{.Env.CONFIGURE_ENV_PREFIX}} cmake --build . --parallel -v"
    maxTimeInSeconds: "{{.Env.CMAKE_BUILD_TIMEOUT}}"
    maxTimeBetweenOutput: "{{.Env.CMAKE_BUILD_OUTPUT_TIMEOUT}}"
    userMessageOnFailure: >
      Failed to build sources.
  - type: EnvironmentVariable
    variableName: COIN_CMAKE_INSTALL_DIR
    variableValue: "{{.InstallDir}}"
  - type: EnvironmentVariable
    variableName: COIN_CMAKE_INSTALL_LIBEXEC_DIR
    variableValue: "{{.Env.COIN_CMAKE_INSTALL_DIR}}{{.Env.CI_PATH_SEP}}libexec"
    disable_if:
      condition: and
      conditions:
        - condition: property
          property: host.os
          equals_value: Windows
        - condition: property
          property: target.osVersion
          not_in_values: [WebAssembly, Android_ANY]
  - type: EnvironmentVariable
    variableName: COIN_CMAKE_INSTALL_LIBEXEC_DIR
    variableValue: "{{.Env.COIN_CMAKE_INSTALL_DIR}}{{.Env.CI_PATH_SEP}}bin"
    enable_if:
      condition: and
      conditions:
        - condition: property
          property: host.os
          equals_value: Windows
        - condition: property
          property: target.osVersion
          not_in_values: [WebAssembly, Android_ANY]
  - !include "{{qt/qtbase}}/call_host_install.yaml"
  - type: EnvironmentVariable
    variableName: DESTDIR
    variableValue: "{{.InstallRoot}}"
  - !include "{{qt/qtbase}}/call_host_install.yaml"
  - 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: EnvironmentVariable
    variableName: COIN_CONFIG_TYPE
    variableValue: "Host"
  - !include "{{qt/qtbase}}/qmake/get_qmake_location_host.yaml"
  - !include "{{qt/qtbase}}/qmake_examples/build_qmake_examples_instructions.yaml"