tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

moz.build (4692B)


      1 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
      2 # vim: set filetype=python:
      3 # This Source Code Form is subject to the terms of the Mozilla Public
      4 # License, v. 2.0. If a copy of the MPL was not distributed with this
      5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      6 
      7 with Files("**"):
      8     BUG_COMPONENT = ("Firefox Build System", "General")
      9 
     10 # This cannot be named "build" because of bug 922191.
     11 SPHINX_TREES["buildsystem"] = "docs"
     12 
     13 with Files("docs/**"):
     14     SCHEDULES.exclusive = ["docs"]
     15 
     16 if CONFIG["OS_ARCH"] == "WINNT":
     17     DIRS += ["win32"]
     18 else:
     19     DIRS += ["unix"]
     20 
     21 if CONFIG["MOZ_STDCXX_COMPAT"]:
     22     DIRS += ["unix/stdc++compat"]
     23 
     24 if CONFIG["RUSTC"]:
     25     DIRS += ["rust/mozbuild"]
     26 
     27 DEFINES["ACCEPTED_MAR_CHANNEL_IDS"] = CONFIG["ACCEPTED_MAR_CHANNEL_IDS"]
     28 
     29 PYTHON_UNITTEST_MANIFESTS += [
     30     "compare-mozconfig/python.toml",
     31 ]
     32 
     33 PYTHON_UNITTEST_MANIFESTS += [
     34     "test/python/python.ini",
     35 ]
     36 
     37 if CONFIG["ENABLE_TESTS"] or CONFIG["MOZ_DMD"]:
     38     FINAL_TARGET_FILES += ["/tools/rb/fix_stacks.py"]
     39 
     40 if CONFIG["MOZ_DMD"]:
     41     FINAL_TARGET_FILES += ["/memory/replace/dmd/dmd.py"]
     42 
     43 # Put a useful .gdbinit and .gdbinit.py in $objdir/build, to be picked up
     44 # automatically by GDB via either libxul.so-gdb.py or js-gdb.py.
     45 OBJDIR_PP_FILES.build += [".gdbinit.py.in"]
     46 OBJDIR_FILES.build += [".gdbinit.loader"]
     47 OBJDIR_FILES.build += [".gdbinit"]
     48 
     49 # Install the clang-cl runtime library for ASAN next to the binaries we produce.
     50 if CONFIG["MOZ_ASAN"] and CONFIG["CC_TYPE"] == "clang-cl":
     51     FINAL_TARGET_FILES += ["%" + CONFIG["MOZ_CLANG_RT_ASAN_LIB_PATH"]]
     52     FINAL_TARGET_FILES += [
     53         "%" + CONFIG["MOZ_CLANG_RT_ASAN_LIB_PATH"].replace(".dll", ".pdb")
     54     ]
     55 
     56 if CONFIG["MOZ_ASAN"] or CONFIG["MOZ_UBSAN"] or CONFIG["MOZ_TSAN"]:
     57     DIRS += ["sanitizers"]
     58 
     59 # Install the clang runtime library for ASAN next to the binaries we produce.
     60 if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android" and CONFIG["MOZ_ASAN"]:
     61     FINAL_TARGET_FILES += ["%" + CONFIG["MOZ_CLANG_RT_ASAN_LIB_PATH"]]
     62 
     63 if CONFIG["MOZ_WIDGET_TOOLKIT"] != "android" and CONFIG["LLVM_SYMBOLIZER"]:
     64     FINAL_TARGET_FILES += ["/" + CONFIG["LLVM_SYMBOLIZER"]]
     65 
     66 if CONFIG["MOZ_APP_BASENAME"]:
     67     appini_defines = {
     68         "TOPOBJDIR": TOPOBJDIR,
     69     }
     70 
     71     for var in (
     72         "GRE_MILESTONE",
     73         "MOZ_APP_VERSION",
     74         "MOZ_APP_BASENAME",
     75         "MOZ_APP_VENDOR",
     76         "MOZ_APP_ID",
     77         "MAR_CHANNEL_ID",
     78         "MOZ_APP_REMOTINGNAME",
     79         "MOZ_CRASHREPORTER_URL",
     80         "BB_UPDATER_URL",
     81     ):
     82         appini_defines[var] = CONFIG[var]
     83 
     84     if CONFIG["MOZ_APP_DISPLAYNAME"] != CONFIG["MOZ_APP_BASENAME"]:
     85         appini_defines["MOZ_APP_DISPLAYNAME"] = CONFIG["MOZ_APP_DISPLAYNAME"]
     86 
     87     if CONFIG["MOZ_BUILD_APP"] == "browser":
     88         appini_defines["MOZ_BUILD_APP_IS_BROWSER"] = True
     89 
     90     if CONFIG["MOZ_APP_PROFILE"]:
     91         appini_defines["MOZ_APP_PROFILE"] = CONFIG["MOZ_APP_PROFILE"]
     92 
     93     for var in ("MOZ_CRASHREPORTER", "MOZ_PROFILE_MIGRATOR", "MOZ_UPDATER"):
     94         if CONFIG[var]:
     95             appini_defines[var] = True
     96 
     97     appini_defines["MOZ_APPUPDATE_HOST"] = "aus5.mozilla.org"
     98     if CONFIG["MOZ_APPUPDATE_HOST"]:
     99         appini_defines["MOZ_APPUPDATE_HOST"] = CONFIG["MOZ_APPUPDATE_HOST"]
    100 
    101     GeneratedFile(
    102         "application.ini",
    103         script="../python/mozbuild/mozbuild/action/preprocessor.py",
    104         entry_point="generate",
    105         inputs=["application.ini.in"],
    106         flags=[
    107             "-D%s=%s" % (k, "1" if v is True else v)
    108             for k, v in sorted(appini_defines.items(), key=lambda t: t[0])
    109         ],
    110     )
    111 
    112     FINAL_TARGET_FILES += ["!application.ini"]
    113     if (
    114         CONFIG["MOZ_WIDGET_TOOLKIT"] not in ("android", "cocoa")
    115         and CONFIG["MOZ_UPDATER"]
    116     ):
    117         FINAL_TARGET_PP_FILES += ["update-settings.ini"]
    118 
    119     GeneratedFile(
    120         "application.ini.h", script="appini_header.py", inputs=["!application.ini"]
    121     )
    122 
    123 
    124 # Put a .lldbinit in the bin directory and the objdir, to be picked up
    125 # automatically by LLDB when we debug executables using either of those two
    126 # directories as the current working directory.  The .lldbinit file will
    127 # load $(topsrcdir)/.lldbinit, which is where the actual debugging commands are.
    128 DEFINES["topsrcdir"] = TOPSRCDIR
    129 DEFINES["topobjdir"] = TOPOBJDIR
    130 FINAL_TARGET_PP_FILES += [".lldbinit.in"]
    131 OBJDIR_FILES += ["!/dist/bin/.lldbinit"]
    132 
    133 # Put the .ycm_extra_conf.py file at the root of the objdir. It is used by
    134 # the vim plugin YouCompleteMe.
    135 OBJDIR_FILES += ["/.ycm_extra_conf.py"]
    136 
    137 if CONFIG["MOZ_VALGRIND"]:
    138     OBJDIR_FILES._valgrind += [
    139         "valgrind/cross-architecture.sup",
    140         "valgrind/i386-pc-linux-gnu.sup",
    141         "valgrind/x86_64-pc-linux-gnu.sup",
    142     ]