diff --git a/.github/workflows/edenscm-hg_linux.yml b/.github/workflows/edenscm-hg_linux.yml new file mode 100644 index 0000000000..5f97ad85e8 --- /dev/null +++ b/.github/workflows/edenscm-hg_linux.yml @@ -0,0 +1,147 @@ +# This file was @generated by getdeps.py + +name: EdenSCM HG Linux + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + - name: Install Rust Stable + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + default: true + profile: minimal + - name: Install Python 2.7 + uses: actions/setup-python@v2 + with: + python-version: '2.7' + - name: Install system deps + run: sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive eden_scm + - name: Fetch fb303-source + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fb303-source + - name: Fetch fbthrift-source + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fbthrift-source + - name: Fetch openssl + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests openssl + - name: Fetch boost + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests boost + - name: Fetch ninja + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests ninja + - name: Fetch cmake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests cmake + - name: Fetch fmt + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fmt + - name: Fetch googletest + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests googletest + - name: Fetch python-six + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests python-six + - name: Fetch zstd + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests zstd + - name: Fetch double-conversion + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests double-conversion + - name: Fetch gflags + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests gflags + - name: Fetch glog + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests glog + - name: Fetch libevent + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libevent + - name: Fetch lz4 + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests lz4 + - name: Fetch snappy + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests snappy + - name: Fetch folly + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests folly + - name: Fetch autoconf + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests autoconf + - name: Fetch automake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests automake + - name: Fetch libtool + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libtool + - name: Fetch bison + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests bison + - name: Fetch libsodium + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libsodium + - name: Fetch fizz + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fizz + - name: Fetch flex + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests flex + - name: Fetch wangle + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests wangle + - name: Fetch fbthrift + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fbthrift + - name: Fetch rust-shed + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests rust-shed + - name: Build fb303-source + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fb303-source + - name: Build fbthrift-source + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fbthrift-source + - name: Build openssl + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests openssl + - name: Build boost + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests boost + - name: Build ninja + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests ninja + - name: Build cmake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests cmake + - name: Build fmt + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fmt + - name: Build googletest + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests googletest + - name: Build python-six + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests python-six + - name: Build zstd + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests zstd + - name: Build double-conversion + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests double-conversion + - name: Build gflags + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests gflags + - name: Build glog + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests glog + - name: Build libevent + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libevent + - name: Build lz4 + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests lz4 + - name: Build snappy + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests snappy + - name: Build folly + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests folly + - name: Build autoconf + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests autoconf + - name: Build automake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests automake + - name: Build libtool + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libtool + - name: Build bison + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests bison + - name: Build libsodium + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libsodium + - name: Build fizz + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fizz + - name: Build flex + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests flex + - name: Build wangle + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests wangle + - name: Build fbthrift + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fbthrift + - name: Build rust-shed + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests rust-shed + - name: Build eden_scm + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. eden_scm --project-install-prefix eden_scm:/usr/local + - name: Copy artifacts + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fixup-dyn-deps --strip --src-dir=. eden_scm _artifacts/linux --project-install-prefix eden_scm:/usr/local --final-install-prefix /usr/local + - uses: actions/upload-artifact@master + with: + name: eden_scm + path: _artifacts + - name: Test eden_scm + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages test --src-dir=. eden_scm --project-install-prefix eden_scm:/usr/local diff --git a/.github/workflows/edenscm-hg_mac.yml b/.github/workflows/edenscm-hg_mac.yml new file mode 100644 index 0000000000..4d5e48e060 --- /dev/null +++ b/.github/workflows/edenscm-hg_mac.yml @@ -0,0 +1,149 @@ +# This file was @generated by getdeps.py + +name: EdenSCM HG Mac + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: macOS-latest + env: + DEVELOPER_DIR: /Applications/Xcode_10.3.app/Contents/Developer + steps: + - uses: actions/checkout@v1 + - name: Install Rust Stable + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + default: true + profile: minimal + - name: Install Python 2.7 + uses: actions/setup-python@v2 + with: + python-version: '2.7' + - name: Install system deps + run: sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive eden_scm + - name: Fetch fb303-source + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fb303-source + - name: Fetch fbthrift-source + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fbthrift-source + - name: Fetch openssl + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests openssl + - name: Fetch boost + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests boost + - name: Fetch ninja + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests ninja + - name: Fetch cmake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests cmake + - name: Fetch fmt + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fmt + - name: Fetch googletest + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests googletest + - name: Fetch python-six + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests python-six + - name: Fetch zstd + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests zstd + - name: Fetch double-conversion + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests double-conversion + - name: Fetch gflags + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests gflags + - name: Fetch glog + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests glog + - name: Fetch libevent + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libevent + - name: Fetch lz4 + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests lz4 + - name: Fetch snappy + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests snappy + - name: Fetch folly + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests folly + - name: Fetch autoconf + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests autoconf + - name: Fetch automake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests automake + - name: Fetch libtool + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libtool + - name: Fetch bison + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests bison + - name: Fetch libsodium + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libsodium + - name: Fetch fizz + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fizz + - name: Fetch flex + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests flex + - name: Fetch wangle + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests wangle + - name: Fetch fbthrift + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fbthrift + - name: Fetch rust-shed + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests rust-shed + - name: Build fb303-source + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fb303-source + - name: Build fbthrift-source + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fbthrift-source + - name: Build openssl + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests openssl + - name: Build boost + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests boost + - name: Build ninja + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests ninja + - name: Build cmake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests cmake + - name: Build fmt + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fmt + - name: Build googletest + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests googletest + - name: Build python-six + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests python-six + - name: Build zstd + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests zstd + - name: Build double-conversion + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests double-conversion + - name: Build gflags + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests gflags + - name: Build glog + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests glog + - name: Build libevent + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libevent + - name: Build lz4 + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests lz4 + - name: Build snappy + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests snappy + - name: Build folly + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests folly + - name: Build autoconf + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests autoconf + - name: Build automake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests automake + - name: Build libtool + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libtool + - name: Build bison + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests bison + - name: Build libsodium + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libsodium + - name: Build fizz + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fizz + - name: Build flex + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests flex + - name: Build wangle + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests wangle + - name: Build fbthrift + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fbthrift + - name: Build rust-shed + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests rust-shed + - name: Build eden_scm + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. eden_scm --project-install-prefix eden_scm:/usr/local + - name: Copy artifacts + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fixup-dyn-deps --src-dir=. eden_scm _artifacts/mac --project-install-prefix eden_scm:/usr/local --final-install-prefix /usr/local + - uses: actions/upload-artifact@master + with: + name: eden_scm + path: _artifacts + - name: Test eden_scm + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages test --src-dir=. eden_scm --project-install-prefix eden_scm:/usr/local diff --git a/build/fbcode_builder/getdeps/builder.py b/build/fbcode_builder/getdeps/builder.py index 1560375f6a..25c70b0027 100644 --- a/build/fbcode_builder/getdeps/builder.py +++ b/build/fbcode_builder/getdeps/builder.py @@ -990,7 +990,6 @@ class CargoBuilder(BuilderBase): def run_cargo(self, install_dirs, operation, args=None): args = args or [] env = self._compute_env(install_dirs) - self.add_openssl_to_env(env, install_dirs) # Enable using nightly features with stable compiler env["RUSTC_BOOTSTRAP"] = "1" env["LIBZ_SYS_STATIC"] = "1" @@ -1002,17 +1001,6 @@ class CargoBuilder(BuilderBase): ] + args self._run_cmd(cmd, cwd=self.workspace_dir(), env=env) - def add_openssl_to_env(self, env, install_dirs): - openssl_candidates = [d for d in install_dirs if "openssl" in d] - if len(openssl_candidates) > 1: - raise Exception( - "Found more than one candidate for openssl directory: {}.".format( - openssl_candidates - ) - ) - elif len(openssl_candidates) == 1: - env["OPENSSL_DIR"] = openssl_candidates[0] - def build_source_dir(self): return os.path.join(self.build_dir, "source") diff --git a/build/fbcode_builder/getdeps/buildopts.py b/build/fbcode_builder/getdeps/buildopts.py index 0d6a1b3079..9bc7e0cdbf 100644 --- a/build/fbcode_builder/getdeps/buildopts.py +++ b/build/fbcode_builder/getdeps/buildopts.py @@ -184,6 +184,9 @@ class BuildOptions(object): else: env = Env() + env["GETDEPS_BUILD_DIR"] = os.path.join(self.scratch_dir, "build") + env["GETDEPS_INSTALL_DIR"] = self.install_dir + if self.fbsource_dir: env["YARN_YARN_OFFLINE_MIRROR"] = os.path.join( self.fbsource_dir, "xplat/third-party/yarn/offline-mirror" @@ -247,16 +250,28 @@ class BuildOptions(object): # If rustc is present in the `bin` directory, set RUSTC to prevent # cargo uses the rustc installed in the system. if self.is_windows(): + cargo_path = os.path.join(bindir, "cargo.bat") rustc_path = os.path.join(bindir, "rustc.bat") rustdoc_path = os.path.join(bindir, "rustdoc.bat") else: + cargo_path = os.path.join(bindir, "cargo") rustc_path = os.path.join(bindir, "rustc") rustdoc_path = os.path.join(bindir, "rustdoc") if os.path.isfile(rustc_path): + env["CARGO_BIN"] = cargo_path env["RUSTC"] = rustc_path env["RUSTDOC"] = rustdoc_path + if self.is_windows(): + libcrypto = os.path.join(d, "lib/libcrypto.lib") + else: + libcrypto = os.path.join(d, "lib/libcrypto.so") + openssl_include = os.path.join(d, "include/openssl") + if os.path.isfile(libcrypto) and os.path.isdir(openssl_include): + # This must be the openssl library, let Rust know about it + env["OPENSSL_DIR"] = d + return env diff --git a/build/fbcode_builder/getdeps/runcmd.py b/build/fbcode_builder/getdeps/runcmd.py index 89cfe395bc..b479a09e3f 100644 --- a/build/fbcode_builder/getdeps/runcmd.py +++ b/build/fbcode_builder/getdeps/runcmd.py @@ -24,13 +24,13 @@ class RunCommandError(Exception): pass -def _print_env_diff(env): +def _print_env_diff(env, log_fn): current_keys = set(os.environ.keys()) wanted_env = set(env.keys()) unset_keys = current_keys.difference(wanted_env) for k in sorted(unset_keys): - print("+ unset %s" % k) + log_fn("+ unset %s\n" % k) added_keys = wanted_env.difference(current_keys) for k in wanted_env.intersection(current_keys): @@ -39,11 +39,11 @@ def _print_env_diff(env): for k in sorted(added_keys): if ("PATH" in k) and (os.pathsep in env[k]): - print("+ %s=\\" % k) + log_fn("+ %s=\\\n" % k) for elem in env[k].split(os.pathsep): - print("+ %s%s\\" % (shellquote(elem), os.pathsep)) + log_fn("+ %s%s\\\n" % (shellquote(elem), os.pathsep)) else: - print("+ %s=%s \\" % (k, shellquote(env[k]))) + log_fn("+ %s=%s \\\n" % (k, shellquote(env[k]))) def run_cmd(cmd, env=None, cwd=None, allow_fail=False, log_file=None): @@ -76,7 +76,7 @@ def _run_cmd(cmd, env, cwd, allow_fail, log_fn): if env: assert isinstance(env, Env) - _print_env_diff(env) + _print_env_diff(env, log_fn) # Convert from our Env type to a regular dict. # This is needed because python3 looks up b'PATH' and 'PATH' diff --git a/build/fbcode_builder/manifests/eden_scm b/build/fbcode_builder/manifests/eden_scm index a6e687cc71..225e3723e3 100644 --- a/build/fbcode_builder/manifests/eden_scm +++ b/build/fbcode_builder/manifests/eden_scm @@ -43,8 +43,10 @@ fbcode/fboss/common = common \.pyc$ [dependencies] -fb303 +fb303-source fbthrift +fbthrift-source +openssl rust-shed [dependencies.fb=on] diff --git a/build/fbcode_builder/manifests/fb303-source b/build/fbcode_builder/manifests/fb303-source new file mode 100644 index 0000000000..ea160c5001 --- /dev/null +++ b/build/fbcode_builder/manifests/fb303-source @@ -0,0 +1,15 @@ +[manifest] +name = fb303-source +fbsource_path = fbcode/fb303 +shipit_project = fb303 +shipit_fbcode_builder = false + +[git] +repo_url = https://github.com/facebook/fb303.git + +[build] +builder = nop + +[shipit.pathmap] +fbcode/fb303/github = . +fbcode/fb303 = fb303 diff --git a/build/fbcode_builder/manifests/fbthrift-rust b/build/fbcode_builder/manifests/fbthrift-source similarity index 94% rename from build/fbcode_builder/manifests/fbthrift-rust rename to build/fbcode_builder/manifests/fbthrift-source index 95141a8967..72cfc3f107 100644 --- a/build/fbcode_builder/manifests/fbthrift-rust +++ b/build/fbcode_builder/manifests/fbthrift-source @@ -1,5 +1,5 @@ [manifest] -name = fbthrift-rust +name = fbthrift-source fbsource_path = fbcode/thrift shipit_project = fbthrift shipit_fbcode_builder = true diff --git a/build/fbcode_builder/manifests/mononoke b/build/fbcode_builder/manifests/mononoke index 8ee8e5210b..9103a34289 100644 --- a/build/fbcode_builder/manifests/mononoke +++ b/build/fbcode_builder/manifests/mononoke @@ -36,7 +36,7 @@ tools/rust/ossconfigs = . ^fbcode/configerator/structs/scm/mononoke/(?!public_autocargo).+/Cargo\.toml$ [dependencies] -fbthrift-rust +fbthrift-source rust-shed [dependencies.fb=on] diff --git a/eden/scm/Makefile b/eden/scm/Makefile index 40ce997987..d30249f5cb 100644 --- a/eden/scm/Makefile +++ b/eden/scm/Makefile @@ -100,25 +100,16 @@ build: wheel: FORCE_SETUPTOOLS=1 $(PYTHON) setup.py $(PURE) bdist_wheel $(COMPILERFLAG) -getdepshelper: -ifeq ($(OS),Windows_NT) - mkdir ../../../../build/eden_scm - mklink ../../../../build/eden_scm build - mklink ../fbthrift/thrift ../../thrift - nklink ../fb303/fb303 ../../fb303 - mkdir ../../common/rust - mklink ../../../rust-shed/shed ../../common/rust/shed -else - mkdir -p ../../../../build/eden_scm - ln -sf ../../../../build/eden_scm build - ln -sf ../fbthrift/thrift ../../thrift - ln -sf ../fb303/fb303 ../../fb303 +getdepsbuild: + mkdir -p $(GETDEPS_BUILD_DIR)/eden_scm + ln -sf $(GETDEPS_BUILD_DIR)/eden_scm build + ln -sf $(GETDEPS_INSTALL_DIR)/fbthrift-source/thrift ../../thrift + ln -sf $(GETDEPS_INSTALL_DIR)/fb303-source/fb303 ../../fb303 mkdir -p ../../common/rust - ln -sf ../../../rust-shed/shed ../../common/rust/shed -endif - -getdepsbuild: export GETDEPS_BUILD=1 -getdepsbuild: getdepshelper build + ln -sf $(GETDEPS_INSTALL_DIR)/rust-shed/shed ../../common/rust/shed + GETDEPS_BUILD=1 \ + THRIFT="$(GETDEPS_INSTALL_DIR)/fbthrift/bin/thrift1" \ + $(PYTHON) setup.py $(PURE) build $(COMPILERFLAG) cleanbutpackages: -$(PYTHON) setup.py clean --all # ignore errors from this command @@ -145,9 +136,8 @@ install: build install-home: build $(PYTHON) setup.py $(PURE) install --home="$(HOME)" --prefix="" --force -install-getdeps: export GETDEPS_BUILD=1 install-getdeps: getdepsbuild - $(PYTHON) setup.py $(PURE) install --root="$(DESTDIR)/" --prefix="$(PREFIX)" --force + GETDEPS_BUILD=1 $(PYTHON) setup.py $(PURE) install --root="$(DESTDIR)/" --prefix="$(PREFIX)" --force check: tests @@ -188,4 +178,4 @@ i18n/hg.pot: $(PYFILES) $(DOCFILES) i18n/posplit i18n/hggettext # Packaging targets -.PHONY: help all local local3 build cleanbutpackages clean install install-home install-getdeps getdepsbuild getdepshelper +.PHONY: help all local local3 build cleanbutpackages clean install install-home install-getdeps getdepsbuild diff --git a/eden/scm/distutils_rust/__init__.py b/eden/scm/distutils_rust/__init__.py index b1eaededbf..62567e3db1 100644 --- a/eden/scm/distutils_rust/__init__.py +++ b/eden/scm/distutils_rust/__init__.py @@ -401,7 +401,7 @@ replace-with = "vendored-sources" return os.environ.get("RUST_VENDORED_CRATES_DIR") def rust_binary_paths(self): - return {"cargo": "cargo"} + return {"cargo": os.environ.get("CARGO_BIN", "cargo")} class InstallRustExt(distutils.command.install_scripts.install_scripts): diff --git a/eden/scm/setup.py b/eden/scm/setup.py index cdba3c359a..440e095829 100644 --- a/eden/scm/setup.py +++ b/eden/scm/setup.py @@ -779,7 +779,7 @@ class thriftasset(asset): thriftfile = pjoin(thriftdir, thriftdest) subprocess.check_call( [ - "../../../../installed/fbthrift/bin/thrift1", + os.environ["THRIFT"], "-I", thriftdir, "-gen", diff --git a/eden/scm/setup3.py b/eden/scm/setup3.py index cdd618d31d..bda88ab0bb 100644 --- a/eden/scm/setup3.py +++ b/eden/scm/setup3.py @@ -717,7 +717,7 @@ class thriftasset(asset): thriftfile = pjoin(thriftdir, thriftdest) subprocess.check_call( [ - "../../../../installed/fbthrift/bin/thrift1", + os.environ["THRIFT"], "-I", thriftdir, "-gen",