tor-browser

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

mac_sdk.star (2669B)


      1 # -*- bazel-starlark -*-
      2 # Copyright 2024 The Chromium Authors
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 """Siso configuration for mac sdk."""
      6 
      7 load("@builtin//lib/gn.star", "gn")
      8 load("@builtin//runtime.star", "runtime")
      9 load("@builtin//struct.star", "module")
     10 load("./gn_logs.star", "gn_logs")
     11 
     12 def __enabled(ctx):
     13     if "args.gn" in ctx.metadata:
     14         gn_args = gn.args(ctx)
     15         if gn_args.get("target_os") in ('"mac"', '"ios"'):
     16             return True
     17     return runtime.os == "darwin"
     18 
     19 def __filegroups(ctx):
     20     sdk_includes = [
     21         "*.framework",
     22         "*.h",
     23         "*.json",
     24         "*.modulemap",
     25         "Current",
     26         "Frameworks",
     27         "Headers",
     28         "Modules",
     29         "crt*.o",
     30         "usr/include/c++/v1/*",
     31         "usr/include/c++/v1/*/*",
     32     ]
     33     fg = {
     34         "build/mac_files/xcode_binaries/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk:headers": {
     35             "type": "glob",
     36             "includes": sdk_includes,
     37         },
     38     }
     39     if gn.args(ctx).get("use_remoteexec") == "true":
     40         # precompute subtree for sysroot/frameworks for siso scandeps,
     41         # which is not complex enough to handle C preprocessor tricks
     42         # and need system include dirs when using deps log of -MMD.
     43         # need to add new entries when new version is used.
     44         #
     45         # if use_remoteexec is not true, these dirs are not under exec root
     46         # and failed to create filegroup for such dirs. crbug.com/352216756
     47         gn_logs_data = gn_logs.read(ctx)
     48         if gn_logs_data.get("mac_sdk_path"):
     49             fg[ctx.fs.canonpath("./" + gn_logs_data.get("mac_sdk_path")) + ":headers"] = {
     50                 "type": "glob",
     51                 "includes": sdk_includes,
     52             }
     53             fg[ctx.fs.canonpath("./" + gn_logs_data.get("mac_sdk_path")) + ":link"] = {
     54                 "type": "glob",
     55                 "includes": [
     56                     "*.framework",
     57                     "*.o",
     58                     "*.tbd",
     59                     "Current",
     60                     "Frameworks",
     61                 ],
     62             }
     63         if gn_logs_data.get("ios_sdk_path"):
     64             fg[ctx.fs.canonpath("./" + gn_logs_data.get("ios_sdk_path")) + ":headers"] = {
     65                 "type": "glob",
     66                 "includes": sdk_includes,
     67             }
     68 
     69     fg[ctx.fs.canonpath("./sdk/xcode_links/iPhoneSimulator.platform/Developer/Library/Frameworks") + ":headers"] = {
     70         "type": "glob",
     71         "includes": sdk_includes,
     72     }
     73     return fg
     74 
     75 mac_sdk = module(
     76     "mac_sdk",
     77     enabled = __enabled,
     78     filegroups = __filegroups,
     79 )