##// END OF EJS Templates
git: correctly handle p1() on dirstate when underlying git repo is empty...
git: correctly handle p1() on dirstate when underlying git repo is empty This shows up in my next change, which ends up making an empty git repo and then running hg. Differential Revision: https://phab.mercurial-scm.org/D8271

File last commit:

r44868:6689ceba default
r44976:eb061d27 default
Show More
pyoxidizer.bzl
60 lines | 1.6 KiB | text/x-python | PythonLexer
Gregory Szorc
packaging: add support for PyOxidizer...
r44697 # Instructions:
#
# 1. cargo install --version 0.5.0 pyoxidizer
# 2. cd /path/to/hg
# 3. pyoxidizer build --path contrib/packaging [--release]
# 4. Run build/pyoxidizer/<arch>/<debug|release>/app/hg
#
# If you need to build again, you need to remove the build/lib.* and
# build/temp.* directories, otherwise PyOxidizer fails to pick up C
# extensions. This is a bug in PyOxidizer.
ROOT = CWD + "/../.."
set_build_path(ROOT + "/build/pyoxidizer")
def make_exe():
dist = default_python_distribution()
code = "import hgdemandimport; hgdemandimport.enable(); from mercurial import dispatch; dispatch.run()"
config = PythonInterpreterConfig(
raw_allocator = "system",
run_eval = code,
Martin von Zweigbergk
pyoxidizer: allow extensions to be loaded from the file system...
r44868 # We want to let the user load extensions from the file system
filesystem_importer = True,
Gregory Szorc
packaging: add support for PyOxidizer...
r44697 # We need this to make resourceutil happy, since it looks for sys.frozen.
sys_frozen = True,
Matt Harbison
pyoxidizer: use `legacy_windows_stdio` on Windows...
r44770 legacy_windows_stdio = True,
Gregory Szorc
packaging: add support for PyOxidizer...
r44697 )
exe = dist.to_python_executable(
name = "hg",
config = config,
)
# Use setup.py install to build Mercurial and collect Python resources to
# embed in the executable.
resources = dist.setup_py_install(ROOT)
exe.add_python_resources(resources)
return exe
def make_install(exe):
m = FileManifest()
# `hg` goes in root directory.
m.add_python_resource(".", exe)
templates = glob(
include=[ROOT + "/mercurial/templates/**/*"],
strip_prefix = ROOT + "/mercurial/",
)
m.add_manifest(templates)
return m
register_target("exe", make_exe)
register_target("app", make_install, depends = ["exe"], default = True)
resolve_targets()