Commit Graph

98 Commits

Author SHA1 Message Date
Chiichen
4dd87b2dc1
chore: Fixed incorrect use of cfg! macro and update build.rs to support arm target (#1458)
What I've done

    Fixed incorrect use of cfg! macro use the CARGO_CFG_TARGET_<OS/ARCH> macro instead of the original cfg! (target_<os/arch>) This is because The build script is compiled for the host architecture as a separate build phase, as that's where it runs. Since the cfg macro runs at compile time it'll always report the host configuration there.When cargo runs the build script it passes the configuration through environment variables, one of which is CARGO_CFG_TARGET_ARCH. Some dicussions can be found here

    update build.rs to support arm target support arm target. Like the Aarch64 target, we need to additionally install the cross-compilation toolchain and specify the linker in Cargo/config.toml. I can add this part of the work in next pull request if necessary.


Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2024-05-12 11:00:14 -06:00
Pg
d11b720654
For #970 & #1303 : Enable build for aarch64-linux-android & x86_64-linux-android (#1468) 2024-04-22 17:16:26 -04:00
Matt Mastracci
2e381e8f4d
fix: ASAN+OPT_LEVEL check in build.rs was incorrect (#1461) 2024-04-15 20:01:09 +02:00
Matt Mastracci
2ce9b4ca09
chore: Allow Rust ASAN flags to propagate into v8 build (#1449) 2024-04-12 15:26:06 -06:00
Matt Mastracci
d863782ed6
feat: .gz compress release artifacts (#1434) 2024-03-15 23:30:37 +00:00
Matt Mastracci
93682e95c0
feat: use .cargo/.rusty_v8/<file> for caching downloads manually (#1433) 2024-03-15 22:16:44 +00:00
denobot
92f7d41a4c
Rolling to V8 12.0.267.1 (#1361)
Co-authored-by: Luca Casonato <hello@lcas.dev>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-11-01 01:26:06 +01:00
denobot
4573256203
Rolling to V8 11.7.439.1 (#1296)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-08-08 23:29:54 +00:00
cions
ca83ce53ba
Fix build for android (#1246) 2023-07-01 13:21:12 -04:00
Francesco Ceccon
5a15d85f2f
Don't preserve V8 archive mode and ownership on build (#1244)
By default, copying a file will preserve its mode and ownership
attributes.
This is an issue when copying the V8 archive from a read-only
filesystem since the archive file also becomes read-only, so
subsequent builds will fail.

We now create a new destination file and copy the content of the archive
to it, this ensures the destination file has the default attributes.
2023-06-05 13:28:56 -04:00
Eric Long
10861ab9f5
Support for unconventional builds (#1209)
We may build rusty_v8 on platforms other than the common ones (for
example, linux/riscv64), though they are not officially supported and
prebuilt binaries are not available. This patch adds several
environment variables:

- `DISABLE_CLANG`: use `is_clang=false` and disables Clang-specific
options for building with GCC, etc.
- `EXTRA_GN_ARGS`: allow to pass extra GN arguments, such as custom
toolchain
- `NO_PRINT_GN_ARGS`: Disables printing GN arguments to stdout. GN
currently segfaults on riscv64 when printing arguments. Since it is
trivial, we can have an option to simply disable it.

Also added fallback `arch` and `os` declaration in `platform()` to
remove compile-time error.
2023-04-25 16:22:01 -04:00
denobot
70ecb6b4a8
Rolling to V8 11.2.214.9 (#1204)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-03-21 22:59:42 +01:00
Levente Kurusa
af75d6d8a2
build: add PYTHON envvar to specify your python binary (#1202) 2023-03-21 17:11:44 +01:00
Bert Belder
da0825bff0 deps: upgrade Ninja and GN (#1160)
Ninja and GN are upgraded to the version specified in V8's `DEPS` file
as of V8 11.0.226.2.

As part of this upgrade, native binaries for linux-arm64 and mac-arm64
were added to the repository, and some directories were renamed to make
the overall naming scheme more consistent.
2022-12-18 22:55:12 +01:00
Jonathan Birk
9a0a6bc570
Meaningful error message if gn can't be run (#1115) 2022-11-27 03:03:24 +01:00
Bartek Iwańczuk
65ff64e5cd
chore: update Rust to 1.65.0 (#1116) 2022-11-25 14:32:52 +01:00
Ryan Dahl
0d1ada4387
chore: small clean ups (#1073) 2022-09-19 09:33:58 +02:00
Ben Noordhuis
5cc0a8556a
Build with v8_typed_array_max_size_in_heap=0 (#1070)
Ensure allocation of typed arrays and arraybuffers always goes through
the embedder's ArrayBufferAllocator, otherwise small buffers get moved
around by the garbage collector but embedders normally want them to have
fixed addresses.
2022-09-19 00:35:30 +02:00
Will Glozer
746f7a3a56
Fix creation of invalid librusty_v8.a (#1059) 2022-08-26 10:16:20 -04:00
Ryan Dahl
3fbf87aa4b
refactor: remove unnecessary complexity from build.rs (#963)
- remove friendly build script output in favor of brevity
- Revert "Add support for generating a `clangd` compilation database (#823)"
- simplify subprocess invocations
2022-07-26 13:21:23 -04:00
denobot
21a8d4a580
Rolling to V8 10.5.218.1 (#1036)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-07-25 19:22:32 +02:00
Ryan Dahl
53299dceb4
Add back gn args --list on build (#1013) 2022-07-08 10:55:58 -04:00
Bert Belder
9b1bb41d86
chore: reduce size of distributed static library (#918)
Closes: #974
2022-05-24 10:28:23 +02:00
Bert Belder
a9567bc31a
chore: clean up and remove redundant gn args (#981) 2022-05-24 10:28:15 +02:00
Bert Belder
e7105d4eff
chore: actually run unit tests in build.rs (#980) 2022-05-24 00:27:13 +02:00
Bert Belder
2f189e1668
Upgrade V8 to 10.3.174.3 (#969) 2022-05-18 10:53:34 +02:00
Ryan Dahl
f36d8dae7f
print gn args --list (#962) 2022-05-09 16:44:34 -04:00
Ryan Dahl
ebb10e5368
refactor: small build.rs clean ups (#961) 2022-05-07 13:47:17 -04:00
Aaron O'Mullan
64ce32392a
fix(build): avoid redownloads (#956)
Fixes #955
2022-05-02 09:14:24 +02:00
Arthur Silva
43893f726d
Add crate feature that controls whether custom libcxx is used (#924)
The `use_custom_libcxx` feature is enabled by default. When this feature
is disabled, the crate will link with the system libcxx instead.
2022-03-16 16:20:09 +01:00
Divy Srivastava
a29740df6b
Add aarch64-linux-android support (#860) 2022-01-04 21:32:48 +01:00
Andreu Botella
8bea9b1f40
Add support for generating a clangd compilation database (#823)
This will help with IDE integration of the C++ part of the code.

Ref: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/clangd.md
2021-12-11 11:16:43 +01:00
Rafael Ávila de Espíndola
f399732ba0
Ignore environment variables set by cargo (#825)
This avoids constant rebuilds when alternating between running

$ cargo build
$ cargo run <something that runs cargo build>

Since the second command will see these environment variables set
during the logic deciding if build.rs should be rerun or not.

Since these are cargo specific variables, hopefully cargo already does
the right thing without our help.
2021-11-04 14:16:05 -04:00
Rafael Ávila de Espíndola
26d60b7dfe
Add missing cargo:rerun-if-env-changed (#807)
In addition to the problem described in issue #378, we noticed link
error when updating rusty_v8 without doing a clean build. As far as I
can tell, there were two potential bugs:

* Cargo not being informed that it should run build.rs when
  CARGO_PKG_VERSION changed.

* Even if build.rs was rerun, it would not download a new package. It
  seems that build.rs should either verify that the right package was
  downloaded or should just trust cargo to not rerun it when not
  needed.

Fixes: #378
2021-10-25 19:40:09 -04:00
Rafael Ávila de Espíndola
05b41b8b84
Add support for a RUSTY_V8_ARCHIVE environment variable (#812) 2021-10-25 16:35:19 -04:00
Aaron O'Mullan
0bd141c78d
Default to linking against release v8 builds (#783)
Unless $V8_FORCE_DEBUG=true to speedup CI for main deno repo
2021-09-22 12:02:55 +02:00
devsnek
ab04be75f3
fix building in the presence of depot_tools (#757) 2021-08-21 17:21:08 +02:00
PerfectLaugh
580a89cf10
Fix x86 build 2021-08-12 06:00:20 +02:00
Yusuke Tanaka
245c7b2b8e
chore: upgrade Rust to 1.54.0, apply clippy fixes (#744) 2021-07-29 19:40:16 -07:00
Ben Noordhuis
3a5ce45245
Remove dead platform code (#653)
The Task struct and Platform::pump_message_loop() method were
non-functional, remove them.
2021-03-30 14:33:39 +02:00
Yusuke Tanaka
3c7ff01ad4
Upgrade Rust to 1.51.0 (#652) 2021-03-27 20:16:35 +01:00
Aaron O'Mullan
e4308bb0bd
build: patch GN's host_cpu detection on Apple Silicon (#640) 2021-03-06 20:17:33 -05:00
Ryan Dahl
3d26ffbf17
Merge cargo_gn into this crate (#604) 2021-02-08 14:57:55 -05:00
Bert Belder
b19d0dc349
Sync third-party dependencies and build tools with Chromium (#568) 2021-01-01 18:02:58 -08:00
mash-graz
6c54f184cb
use lockfile to prevent linking of partially downloaded lib (#543) 2020-12-27 17:37:14 +01:00
Avindra Goolcharan
810c108170
Improve ninja/gn detection (#558)
This should allow people to build without explicitly setting GN and
NINJA env vars.

If the tool(s) are detected, the build will continue without trying to
download the binaries.
2020-12-25 10:20:53 +01:00
Ben Noordhuis
5b0764a811
Refactor build script. (#546)
Apply some DRY to build.rs to pave the way for upcoming changes.
2020-11-30 16:35:56 +01:00
liushuyu
f2f5d86af8
feat(build): allow native compilation on non-amd64 (#514) 2020-10-31 13:32:33 +01:00
Ben Noordhuis
1149ee3ada
Make RUSTY_V8_MIRROR understand file paths (#488)
Fixes #470
2020-10-07 08:39:02 +02:00
Ryan Dahl
18a3eab7c6
Fix docs.rs detection (#485)
Previously docs.rs supplied RUSTDOCFLAGS env var to builds, which we
used to skip building/downloading rusty_v8. docs.rs does not allow
network access.

Reference for DOCS_RS: https://docs.rs/about/builds
Failed build: https://docs.rs/crate/deno_core/0.61.0/builds/299870
2020-10-06 09:34:33 -04:00