summaryrefslogtreecommitdiffstats
path: root/src/pdf/gn_run.pro
blob: d00406193587b81c8966c1aa2e264049b1bf6447 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
include($$QTWEBENGINE_OUT_ROOT/src/buildtools/qtbuildtools-config.pri)
QT_FOR_CONFIG += buildtools-private

TEMPLATE = aux

qtConfig(debug_and_release): CONFIG += debug_and_release
qtConfig(build_all): CONFIG += build_all

qtConfig(webengine-system-ninja) {
    QT_TOOL.ninja.binary = ninja
} else {
    QT_TOOL.ninja.binary = $$shell_quote($$shell_path($$ninjaPath()))
}

win32 {
    # Add the gnuwin32/bin subdir of qt5.git to PATH. Needed for calling bison and friends.
    gnuwin32path.name = PATH
    gnuwin32path.value = $$shell_path($$clean_path($$QTWEBENGINE_ROOT/../gnuwin32/bin))
    gnuwin32path.CONFIG += prepend
    exists($$gnuwin32path.value): QT_TOOL_ENV = gnuwin32path
}

qtPrepareTool(NINJA, ninja)
QT_TOOL_ENV =

build_pass|!debug_and_release {
    gn_binary = gn

    runninja.target = run_ninja
    QMAKE_EXTRA_TARGETS += runninja

    # fixme: refine args
    gn_args = $$gnPdfArgs()

    # fixme:
    !qtConfig(webengine-system-gn) {
        gn_binary = $$system_quote($$system_path($$gnPath()))
    }

    gn_src_root = $$system_quote($$system_path($$QTWEBENGINE_ROOT/$$getChromiumSrcDir()))
    gn_python = "--script-executable=$$pythonPathForSystem()"

    ninjaflags = $$(NINJAFLAGS)
    isEmpty(ninjaflags):!silent: ninjaflags = "-v"

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

    isUniversal(){
        for(arch, QT_ARCHS) {
            # fixme: qtwebengine_target
            gn_target = "qtwebengine_target=\"$$system_path($$OUT_PWD/$$arch/$$getConfigDir()):QtPdf\""
            gn_args_per_arch = $$system_quote($$gn_args $$gn_target target_cpu=\"$$gnArch($$arch)\")
            gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$arch/$$getConfigDir()))
            gn_run = $$gn_binary gen $$gn_build_root $$gn_python --args=$$gn_args_per_arch --root=$$gn_src_root
            message("Running for $$arch: $$gn_run")
            !system($$gn_run) {
                 error("GN run error for $$arch!")
            }
            runninja_$${arch}.target = run_ninja_$${arch}
            runninja_$${arch}.commands = $$NINJA $$ninjaflags -C $$gn_build_root QtPdf
            QMAKE_EXTRA_TARGETS += runninja_$${arch}
            runninja.depends += runninja_$${arch}
        }
    } else {
        gn_args+= "qtwebengine_target=\"$$system_path($$OUT_PWD/$$getConfigDir()):QtPdf\""
        gn_args = $$system_quote($$gn_args)
        gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$getConfigDir()))
        gn_run = $$gn_binary gen $$gn_build_root $$gn_python --args=$$gn_args --root=$$gn_src_root
        message("Running: $$gn_run for $$arch")
        !system($$gn_run) {
            error("GN run error!")
        }
        runninja.commands = $$NINJA $$ninjaflags -C $$gn_build_root QtPdf
    }

}

!build_pass:debug_and_release {
    # 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
}