summaryrefslogtreecommitdiffstats
path: root/src/core/gn_run.pro
blob: 5bb90d8b6c48f62b42af623730aaae66c6841dc4 (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
isQtMinimum(5, 8) {
    include($$QTWEBENGINE_OUT_ROOT/qtwebengine-config.pri)
    QT_FOR_CONFIG += webengine-private
}

TEMPLATE = aux

build_pass|!debug_and_release {

    linux: include(config/desktop_linux.pri)
    isEmpty(gn_args): error(No gn_args found please make sure you have valid configuration.)

    ninja_binary = ninja
    gn_binary = gn

    runninja.target = run_ninja
    rungn.target = run_gn

    !qtConfig(system-ninja) {
        ninja_binary = $$shell_quote($$shell_path($$ninjaPath()))
        buildninja.target = build_ninja
        buildninja.commands = $$buildNinja()
        QMAKE_EXTRA_TARGETS += buildninja
        runninja.depends = buildninja
    }

    CONFIG(release, debug|release):
        gn_args += is_debug=false

    gn_args += "qtwebengine_target=\"$$shell_path($$OUT_PWD/$$getConfigDir()):QtWebEngineCore\""

    !qtConfig(system-gn) {
        gn_binary = $$shell_quote($$shell_path($$gnPath()))
        buildgn.target = build_gn
        buildgn.commands = $$buildGn($$gn_args)
        !qtConfig(system-ninja) {
            buildgn.depends = buildninja
            rungn.depends = buildninja
        }
        QMAKE_EXTRA_TARGETS += buildgn
    }

    gn_args = $$shell_quote($$gn_args)
    gn_src_root = $$shell_quote($$shell_path($$QTWEBENGINE_ROOT/$$getChromiumSrcDir()))
    gn_build_root = $$shell_quote($$shell_path($$OUT_PWD/$$getConfigDir()))
    rungn.commands = $$gn_binary gen $$gn_build_root --args=$$gn_args --root=$$gn_src_root
    QMAKE_EXTRA_TARGETS += rungn

    runninja.commands = $$ninja_binary \$\(NINJAFLAGS\) -v -C $$shell_quote($$OUT_PWD/$$getConfigDir()) QtWebEngineCore
    runninja.depends += rungn
    QMAKE_EXTRA_TARGETS += runninja

    build_pass:build_all: default_target.target = all
    else: default_target.target = first
    default_target.depends = runninja

    QMAKE_EXTRA_TARGETS += default_target
} else {
    # Special GNU make target for the meta Makefile that ensures that our debug and release Makefiles won't both run ninja in parallel.
    notParallel.target = .NOTPARALLEL
    QMAKE_EXTRA_TARGETS += notParallel
}