mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-10-09 04:42:30 -04:00
Debug and release builds each compiled their own copy of every C dependency and of the Rust staticlib, because build.zig threaded the top-level optimize mode into all of them. Under dev_fast the deps also picked up the bundled-CRT target query, so even the same mode could not share objects with a plain build. Dependencies now build in ReleaseFast for the requested target, the way the prebuilt V8 archive already works. Debug and release builds share one set of cached dependency objects, and debug binaries run TLS, HTML parsing, regex and sqlite optimized. -Ddebug_deps restores the old behaviour for stepping into a dependency. The Rust staticlib can only be shared by dropping the Debug-only memstats feature: its single export, html5ever_get_memory_usage, was declared on the Zig side but never called, and it pulled a jemalloc build into every cold debug build. The Makefile override that existed for jemalloc's nested make goes with it.
25 lines
1.1 KiB
Rust
25 lines
1.1 KiB
Rust
// Copyright (C) 2023-2026 Lightpanda (Selecy SAS)
|
|
//
|
|
// Francis Bouvier <francis@lightpanda.io>
|
|
// Pierre Tachoire <pierre@lightpanda.io>
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as
|
|
// published by the Free Software Foundation, either version 3 of the
|
|
// License, or (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
//! The one staticlib Zig links. Domain crates define their own `extern "C"`
|
|
//! entry points; `extern crate` is what pulls an otherwise-unreferenced crate
|
|
//! into the archive (edition 2018+ drops unused `--extern` deps).
|
|
|
|
extern crate lightpanda_html5ever;
|
|
extern crate lightpanda_render;
|