File: generate_configs.py

package info (click to toggle)
chromium 120.0.6099.224-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,112,112 kB
  • sloc: cpp: 32,907,025; ansic: 8,148,123; javascript: 3,679,536; python: 2,031,248; asm: 959,718; java: 804,675; xml: 617,256; sh: 111,417; objc: 100,835; perl: 88,443; cs: 53,032; makefile: 29,579; fortran: 24,137; php: 21,162; tcl: 21,147; sql: 20,809; ruby: 17,735; pascal: 12,864; yacc: 8,045; lisp: 3,388; lex: 1,323; ada: 727; awk: 329; jsp: 267; csh: 117; exp: 43; sed: 37
file content (63 lines) | stat: -rwxr-xr-x 1,746 bytes parent folder | download
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
#!/usr/bin/env python
#
# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Creates config files for building libwayland."""

import os
import shutil
import subprocess
import tempfile


MESON = ['meson']

DEFAULT_BUILD_ARGS = [
    '-Ddocumentation=false',
    '-Dtests=false',
]


def GetAbsPath(relative_path):
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), relative_path)


def PrintAndCheckCall(argv, *args, **kwargs):
    print('\n-------------------------------------------------\nRunning %s' %
          ' '.join(argv))
    c = subprocess.check_call(argv, *args, **kwargs)


def CallMesonGenerator(build_dir):
    PrintAndCheckCall(
        MESON + DEFAULT_BUILD_ARGS + [build_dir],
        cwd=GetAbsPath('src'),
        env=os.environ)


def CopyFileToDestination(file, src_dir, dest_dir):
    if not os.path.exists(dest_dir):
        os.makedirs(dest_dir)

    shutil.copy(os.path.join(src_dir, file), dest_dir)
    print("Copied %s to %s from %s" % (file, dest_dir, src_dir))


def main():
    # Creates a directory that will be used by meson to generate build configs.
    temp_dir = tempfile.mkdtemp()

    # Calls meson for //third_party/wayland/src and generates build files.
    CallMesonGenerator(temp_dir)
    # Copies config.h to //third_party/wayland/include
    CopyFileToDestination('config.h', temp_dir, GetAbsPath('include'))
    # Copies wayland-version.h to //third_party/wayland/include/src
    CopyFileToDestination('wayland-version.h', temp_dir + '/src', GetAbsPath('include/src'))

    # Removes the directory we used for meson config.
    shutil.rmtree(temp_dir)


if __name__ == '__main__':
    main()