summaryrefslogtreecommitdiffstats
path: root/coin/instructions/qmake_examples/build_qmake_examples_inner_instructions.yaml
blob: 9bb765642db7fe45693f7871058f7d1f70433df0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
type: Group
instructions:
  - type: Group
    instructions:
      # Prepare directories to build examples with qmake.
      - type: ChangeDirectory
        directory: "{{.SourceDir}}"
      - type: MakeDirectory
        directory: "{{.SourceDir}}_qmake/examples"
      - type: SetBuildDirectory
        directory: "{{.SourceDir}}_qmake/examples"
      - type: ChangeDirectory
        directory: "{{.BuildDir}}"
      - !include "{{qt/qtbase}}/qmake_examples/get_examples_source_location.yaml"

      # Setup qemu cross-compiled qmake to work.
      - !include "{{qt/qtbase}}/coin_module_test_qemu_env_vars.yaml"

      # Set either host or target env prefix for qmake and make depending on
      # tested configuration.
      - type: Group
        instructions:
          - type: EnvironmentVariable
            variableName: CALL_MAKE_ENV_PREFIX
            variableValue: "{{.Env.ENV_PREFIX}}"
            enable_if:
              condition: runtime
              env_var: COIN_CONFIG_TYPE
              equals_value: "Host"
          - type: EnvironmentVariable
            variableName: CALL_MAKE_ENV_PREFIX
            variableValue: "{{.Env.TARGET_ENV_PREFIX}}"
            enable_if:
              condition: runtime
              env_var: COIN_CONFIG_TYPE
              equals_value: "Target"

      # Ensure that we have an examples/examples.pro file.
      # If it doesn't exist, write a dummy project file.
      # The CMake that does this is installed to INSTALL_LIBEXEC, which defaults to "bin" on Windows.
      - type: ExecuteCommand
        enable_if:
          condition: property
          property: host.os
          equals_value: Windows
        command: "cmake --trace-expand -DPRO_FILE={{.SourceDir}}\\examples\\examples.pro -P {{.InstallDir}}\\bin\\ensure_pro_file.cmake"
        maxTimeInSeconds: 20
        maxTimeBetweenOutput: 20
        userMessageOnFailure: >
          Failed to run cmake -P ensure_pro_file.cmake
      - type: ExecuteCommand
        disable_if:
          condition: property
          property: host.os
          equals_value: Windows
        command: "cmake --trace-expand -DPRO_FILE={{.SourceDir}}/examples/examples.pro -P {{.InstallDir}}/libexec/ensure_pro_file.cmake"
        maxTimeInSeconds: 20
        maxTimeBetweenOutput: 20
        userMessageOnFailure: >
          Failed to run cmake -P ensure_pro_file.cmake

      # Run qmake to configure the examples. The env prefix is important for qemu.
      - type: ExecuteCommand
        command: "{{.Env.CALL_MAKE_ENV_PREFIX}} {{.Env.COIN_QMAKE_LOCATION}} {{.Env.COIN_EXAMPLES_SOURCE_LOCATION}}"
        maxTimeInSeconds: 6000
        maxTimeBetweenOutput: 1200
        userMessageOnFailure: >
          Failed to run qmake to build examples.

      # Run make to build the examples.
      - !include "{{qt/qtbase}}/qmake/call_make.yaml"