mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 12:49:10 +00:00
Add deno2 prototype from external repo.
This commit is contained in:
parent
fe9ea6dcf8
commit
110ddab670
24 changed files with 4668 additions and 0 deletions
67
deno2/tools/build.py
Executable file
67
deno2/tools/build.py
Executable file
|
@ -0,0 +1,67 @@
|
|||
#!/usr/bin/env python
|
||||
# Get Depot Tools and make sure it's in your path.
|
||||
# http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
|
||||
# Use .gclient to modify the deps.
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import argparse
|
||||
|
||||
TARGET = "deno"
|
||||
|
||||
parser = argparse.ArgumentParser(description="build.py")
|
||||
parser.add_argument('--debug', dest='debug', action='store_true')
|
||||
parser.add_argument('--use_ccache', dest='use_ccache', action='store_true')
|
||||
parser.add_argument('--sync', dest='sync', action='store_true')
|
||||
parser.set_defaults(debug=False, use_ccache=False, sync=False)
|
||||
args = parser.parse_args()
|
||||
|
||||
root_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
||||
|
||||
|
||||
def main():
|
||||
os.chdir(root_path)
|
||||
buildName = "Debug" if args.debug else "Default"
|
||||
buildDir = os.path.join(root_path, "out", buildName)
|
||||
# Run sync if any of the dep dirs don't exist.
|
||||
# Or the user supplied the --sync flag.
|
||||
if args.sync or dirsMissing():
|
||||
run(["gclient", "sync", "--no-history"])
|
||||
|
||||
# Run gn gen out/Default if out doesn't exist.
|
||||
if not os.path.exists(buildDir):
|
||||
gn_gen = ["gn", "gen", buildDir]
|
||||
gn_args = []
|
||||
if args.debug:
|
||||
gn_args.append("is_debug=true")
|
||||
if args.use_ccache:
|
||||
gn_args.append("cc_wrapper=\"ccache\"")
|
||||
if len(gn_args) > 0:
|
||||
gn_gen += ["--args=%s" % " ".join(gn_args)]
|
||||
run(gn_gen)
|
||||
|
||||
# Always run ninja.
|
||||
run(["ninja", "-C", buildDir, TARGET])
|
||||
|
||||
|
||||
def run(args):
|
||||
print " ".join(args)
|
||||
env = os.environ.copy()
|
||||
subprocess.check_call(args, env=env)
|
||||
|
||||
|
||||
def dirsMissing():
|
||||
dirsToLoad = [
|
||||
"v8",
|
||||
"third_party/protobuf",
|
||||
"tools/protoc_wrapper",
|
||||
"third_party/zlib",
|
||||
]
|
||||
for d in dirsToLoad:
|
||||
if not os.path.exists(d):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
if '__main__' == __name__:
|
||||
main()
|
Loading…
Add table
Add a link
Reference in a new issue