Compare commits

...

10 Commits

Author SHA1 Message Date
Mikayla Maki
99105ea26e Attempt a feature based way of switching to dynamic libraries 2024-06-18 22:00:58 -07:00
Mikayla Maki
72f54f1c44 Switch to feature based library linking 2024-06-18 21:21:57 -07:00
Mikayla
66c667b6c6 fix typo in arm builders 2024-06-14 17:26:48 -07:00
Mikayla
85613af919 Disable usage of sqlite3 features that are too new for Ubuntu 2024-06-14 17:00:10 -07:00
Mikayla
e1c0d10f76 Add sqlite3 to arm runners 2024-06-14 15:48:36 -07:00
Mikayla Maki
81c12961db Fix windows bundles 2024-06-14 15:13:23 -07:00
Mikayla Maki
3ae9d61791 Ensure we only dynamically link fontconfig on linux 2024-06-14 14:48:22 -07:00
Mikayla Maki
6d0042b502 Remove async-native-tls 2024-06-14 14:39:28 -07:00
Mikayla Maki
27f0665246 Make macOS use statically linked libraries 2024-06-14 14:37:28 -07:00
Conrad Irwin
6aa78ff095 Dynamicer builds
Co-Authored-By: Mikayla <mikayla@zed.dev>
2024-06-14 15:14:20 -06:00
11 changed files with 41 additions and 19 deletions

View File

@@ -353,7 +353,7 @@ jobs:
- uses: rui314/setup-mold@v1
with:
mold_version: 2.32.0
mold-version: 2.32.0
- name: rustup
run: |

8
Cargo.lock generated
View File

@@ -2218,6 +2218,7 @@ dependencies = [
"futures 0.3.28",
"gpui",
"http 0.1.0",
"isahc",
"lazy_static",
"log",
"once_cell",
@@ -5937,6 +5938,7 @@ version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
dependencies = [
"bindgen 0.64.0",
"cc",
"pkg-config",
"vcpkg",
@@ -7049,9 +7051,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "openssl-src"
version = "300.2.3+3.2.1"
version = "300.3.0+3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
checksum = "eba8804a1c5765b18c4b3f907e6897ebabeedebc9830e1a0046c4a4cf44663e1"
dependencies = [
"cc",
]
@@ -13322,12 +13324,14 @@ dependencies = [
"recent_projects",
"release_channel",
"rope",
"rpc",
"search",
"serde",
"serde_json",
"settings",
"simplelog",
"smol",
"sqlez",
"supermaven",
"tab_switcher",
"task",

View File

@@ -304,10 +304,7 @@ ignore = "0.4.22"
indexmap = { version = "1.6.2", features = ["serde"] }
indoc = "1"
# We explicitly disable http2 support in isahc.
isahc = { version = "1.7.2", default-features = false, features = [
"static-curl",
"text-decoding",
] }
isahc = { version = "1.7.2", default-features = false, features = [ "text-decoding" ] }
itertools = "0.11.0"
lazy_static = "1.4.0"
libc = "0.2"

View File

@@ -13,13 +13,20 @@ path = "src/client.rs"
doctest = false
[features]
default = ["static-libraries"]
test-support = ["clock/test-support", "collections/test-support", "gpui/test-support", "rpc/test-support"]
static-libraries = ["async-native-tls", "isahc"]
dynamic-libraries = []
# Revert the changes
# Reintroduce them, but with a feature flag.
[dependencies]
anyhow.workspace = true
async-recursion = "0.3"
async-tungstenite = { version = "0.16", features = ["async-std", "async-native-tls"] }
async-native-tls = { version = "0.5.0", features = ["vendored"] }
async-native-tls = { version = "0.5.0", features = ["vendored"], optional = true}
isahc = { workspace = true, features = ["static-curl"], optional = true}
chrono = { workspace = true, features = ["serde"] }
clock.workspace = true
collections.workspace = true
@@ -66,10 +73,3 @@ windows.workspace = true
[target.'cfg(target_os = "macos")'.dependencies]
cocoa.workspace = true
[target.'cfg(target_os = "linux")'.dependencies]
async-native-tls = {"version" = "0.5.0", features = ["vendored"]}
# This is an indirect dependency of async-tungstenite that is included
# here so we can vendor libssl with the feature flag.
[package.metadata.cargo-machete]
ignored = ["async-native-tls"]

View File

@@ -136,6 +136,7 @@ xim = { git = "https://github.com/npmania/xim-rs", rev = "27132caffc5b9bc9c432ca
"x11rb-xcb",
"x11rb-client",
] }
font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "5a5c4d4", features = ["source-fontconfig-dlopen"] }
[target.'cfg(windows)'.dependencies]
windows.workspace = true

View File

@@ -14,7 +14,11 @@ path = "src/rpc.rs"
doctest = false
[features]
default = ["static-libraries"]
test-support = ["collections/test-support", "gpui/test-support", "proto/test-support"]
static-libraries = []
dynamic-libraries = ["zstd/pkg-config"]
[dependencies]
anyhow.workspace = true
@@ -35,6 +39,7 @@ tracing = { version = "0.1.34", features = ["log"] }
util.workspace = true
zstd = "0.11"
[dev-dependencies]
collections = { workspace = true, features = ["test-support"] }
env_logger.workspace = true

View File

@@ -8,13 +8,20 @@ license = "GPL-3.0-or-later"
[lints]
workspace = true
[features]
default = ["static-libraries"]
static-libraries = ["libsqlite3-sys/bundled"]
dynamic-libraries = ["libsqlite3-sys/buildtime_bindgen"]
[dependencies]
anyhow.workspace = true
collections.workspace = true
futures.workspace = true
indoc.workspace = true
lazy_static.workspace = true
libsqlite3-sys = { version = "0.26", features = ["bundled"] }
libsqlite3-sys = "0.26"
parking_lot.workspace = true
smol.workspace = true
thread_local = "1.1.4"

View File

@@ -13,6 +13,7 @@ pub fn sql(tokens: TokenStream) -> TokenStream {
let (spans, sql) = make_sql(tokens);
let error = SQLITE.sql_has_syntax_error(sql.trim());
let formatted_sql = sqlformat::format(&sql, &sqlformat::QueryParams::None, Default::default());
if let Some((error, error_offset)) = error {

View File

@@ -10,6 +10,11 @@ authors = ["Zed Team <hi@zed.dev>"]
[lints]
workspace = true
[features]
default = ["static-libraries"]
static-libraries = ["client/static-libraries", "rpc/static-libraries", "sqlez/static-libraries"]
dynamic-libraries = ["client/dynamic-libraries", "rpc/dynamic-libraries", "sqlez/dynamic-libraries"]
[[bin]]
name = "zed"
path = "src/main.rs"
@@ -76,6 +81,7 @@ project_panel.workspace = true
project_symbols.workspace = true
quick_action_bar.workspace = true
recent_projects.workspace = true
rpc = { workspace = true, optional = true }
dev_server_projects.workspace = true
release_channel.workspace = true
rope.workspace = true
@@ -85,6 +91,7 @@ serde_json.workspace = true
settings.workspace = true
simplelog = "0.9"
smol.workspace = true
sqlez = { workspace = true, optional = true }
tab_switcher.workspace = true
supermaven.workspace = true
task.workspace = true

View File

@@ -39,7 +39,7 @@ target_triple=${host_line#*: }
# Build binary in release mode
export RUSTFLAGS="-C link-args=-Wl,--disable-new-dtags,-rpath,\$ORIGIN/../lib"
cargo build --release --target "${target_triple}" --package zed --package cli
cargo build --release --target "${target_triple}" --package zed --package cli --no-default-features --features "dynamic-libraries"
# Strip the binary of all debug symbols
# Later, we probably want to do something like this: https://github.com/GabrielMajeri/separate-symbols

View File

@@ -78,10 +78,10 @@ local_target_triple=${host_line#*: }
if [ "$local_arch" = true ]; then
echo "Building for local target only."
cargo build ${build_flag} --package zed --package cli
cargo build ${build_flag} --package zed --package cli --no-default-features --features "static-libraries"
else
echo "Compiling zed binaries"
cargo build ${build_flag} --package zed --package cli --target aarch64-apple-darwin --target x86_64-apple-darwin
cargo build ${build_flag} --package zed --package cli --target aarch64-apple-darwin --target x86_64-apple-darwin --no-default-features --features "static-libraries"
fi
echo "Creating application bundle"