mirror of
https://github.com/enso-org/enso.git
synced 2024-08-17 00:40:34 +03:00
This PR introduces a new installer and uninstaller for the Windows platform. Both are written in Rust and compiled to a single executable. The executable has no dependencies (other than what is included in the Windows), links the C++ runtime statically if needed. The change is motivated by numerous issues with with the `electron-builder`-generated installers. The new installer should behave better, not have issues with long paths and unblock the `electron-builder` upgrade (which will significantly simplify the workflow definitions). To build an installer, one needs to provide the unpacked application (generated by `electron-builder`) and the `electron-builder` configuration (with a few minor extensions). Code signing is also supported.
169 lines
5.3 KiB
TOML
169 lines
5.3 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
# Listing only the "root" crates of each app/library. All path dependencies are included in the workspace automatically.
|
|
# If you want to add sub crate (like `app/gui/config` or `lib/rust/ensogl/examples`), just add it as a path dependency
|
|
# where plausible.
|
|
# Any GUI functionality that is not used by the main entry point should be defined somewhere with `examples` in the
|
|
# path, e.g. `lib/rust/ensogl/examples`, or `app/gui/view/examples`; this is used to optimize the application for
|
|
# loading the IDE.
|
|
members = [
|
|
"app/gui2/rust-ffi",
|
|
"build/cli",
|
|
"build/macros/proc-macro",
|
|
"build/ci-gen",
|
|
"build/cli",
|
|
"build/install",
|
|
"build/install/config",
|
|
"build/install/installer",
|
|
"build/install/uninstaller",
|
|
"lib/rust/*",
|
|
"lib/rust/parser/doc-parser",
|
|
"lib/rust/parser/src/syntax/tree/visitor",
|
|
"lib/rust/parser/jni",
|
|
"lib/rust/parser/generate-java",
|
|
"lib/rust/parser/schema",
|
|
"lib/rust/parser/debug",
|
|
"tools/language-server/logstat",
|
|
"tools/language-server/wstest",
|
|
]
|
|
|
|
# We are using a version with extended functionality. The changes have been PR'd upstream:
|
|
# https://github.com/rustwasm/console_error_panic_hook/pull/24
|
|
# Remove this patch when the issue is resolved.
|
|
[patch.crates-io]
|
|
console_error_panic_hook = { git = 'https://github.com/enso-org/console_error_panic_hook' }
|
|
|
|
[profile.dev]
|
|
opt-level = 0
|
|
lto = false
|
|
debug = 0
|
|
debug-assertions = true
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "thin"
|
|
codegen-units = 16
|
|
incremental = true
|
|
debug = false
|
|
debug-assertions = false
|
|
|
|
[profile.bench]
|
|
opt-level = 3
|
|
lto = true
|
|
debug = false
|
|
debug-assertions = false
|
|
|
|
[profile.test]
|
|
opt-level = 0
|
|
lto = false
|
|
debug = 2
|
|
debug-assertions = true
|
|
|
|
[profile.integration-test]
|
|
inherits = "test"
|
|
opt-level = 2
|
|
|
|
[profile.buildscript]
|
|
inherits = "dev"
|
|
opt-level = 1
|
|
lto = false
|
|
debug = "line-tables-only"
|
|
debug-assertions = true
|
|
|
|
[workspace.lints.rust]
|
|
missing_copy_implementations = "warn"
|
|
missing_debug_implementations = "warn"
|
|
non_ascii_idents = "deny"
|
|
unsafe_code = "warn"
|
|
trivial_numeric_casts = "warn"
|
|
unused_import_braces = "warn"
|
|
unused_qualifications = "warn"
|
|
# This is fine, since we plan to use our traits only in our own code and
|
|
# potential ABI breaking changes are not a concern.
|
|
async_fn_in_trait = "allow"
|
|
|
|
[workspace.lints.clippy]
|
|
bool_to_int_with_if = "allow"
|
|
let_and_return = "allow"
|
|
blocks_in_conditions = "allow" # Until the issue is fixed: https://github.com/rust-lang/rust-clippy/issues/12281
|
|
|
|
[workspace.dependencies]
|
|
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
# !!!!!!!!!! WARNING !!!!!!!!!!
|
|
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
# We are tryingto maintain minimum set of dependencies. Before adding a new dependency, consult it
|
|
# with the core development team. Thank you!
|
|
chrono = { version = "0.4.31", features = ["serde"] }
|
|
clap = { version = "4.5.4", features = ["derive", "env", "wrap_help", "string"] }
|
|
derive-where = "1.2.7"
|
|
directories = { version = "5.0.1" }
|
|
dirs = { version = "5.0.1" }
|
|
flate2 = { version = "1.0.28" }
|
|
indicatif = { version = "0.17.7", features = ["tokio"] }
|
|
multimap = { version = "0.9.1" }
|
|
native-windows-gui = { version = "1.0.13" }
|
|
nix = { version = "0.27.1" }
|
|
octocrab = { git = "https://github.com/enso-org/octocrab", default-features = false, features = [
|
|
"rustls",
|
|
] }
|
|
path-absolutize = "3.1.1"
|
|
platforms = { version = "3.2.0", features = ["serde"] }
|
|
portpicker = { version = "0.1.1" }
|
|
regex = { version = "1.6.0" }
|
|
serde = { version = "1.0.130", features = ["derive", "rc"] }
|
|
serde_yaml = { version = "0.9.16" }
|
|
sha2 = { version = "0.10.8" }
|
|
sysinfo = { version = "0.30.7" }
|
|
tar = { version = "0.4.40" }
|
|
tokio = { version = "1.37.0", features = ["full", "tracing"] }
|
|
tokio-stream = { version = "0.1.15", features = ["fs"] }
|
|
tokio-util = { version = "0.7.10", features = ["full"] }
|
|
tracing = { version = "0.1.40" }
|
|
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
|
|
walkdir = { version = "2.5.0" }
|
|
wasm-bindgen = { version = "0.2.92", features = [] }
|
|
wasm-bindgen-test = { version = "0.3.34" }
|
|
windows = { version = "0.52.0", features = ["Win32", "Win32_UI", "Win32_UI_Shell", "Win32_System", "Win32_System_LibraryLoader", "Win32_Foundation", "Win32_System_Com"] }
|
|
winreg = { version = "0.52.0" }
|
|
anyhow = { version = "1.0.66" }
|
|
failure = { version = "0.1.8" }
|
|
derive_more = { version = "0.99" }
|
|
boolinator = { version = "2.4.0" }
|
|
derivative = { version = "2.2" }
|
|
futures = { version = "0.3" }
|
|
itertools = { version = "0.12.1" }
|
|
lazy_static = { version = "1.4" }
|
|
serde_json = { version = "1.0", features = ["raw_value"] }
|
|
owned_ttf_parser = { version = "0.15.1" }
|
|
convert_case = { version = "0.6.0" }
|
|
rustybuzz = { version = "0.5.1" }
|
|
bincode = { version = "2.0.0-rc.1" }
|
|
byte-unit = { version = "5.1.4", features = ["serde"] }
|
|
bytes = { version = "1.1.0" }
|
|
matches = { version = "0.1" }
|
|
console_error_panic_hook = { version = "0.1.6" }
|
|
reqwest = { version = "0.11.27", default-features = false, features = [
|
|
"rustls-tls",
|
|
"stream",
|
|
] }
|
|
proc-macro2 = { version = "1.0.79" }
|
|
syn = { version = "2.0", features = [
|
|
"full",
|
|
"extra-traits",
|
|
"printing",
|
|
"parsing",
|
|
"visit",
|
|
"visit-mut",
|
|
] }
|
|
syn_1 = { package = "syn", version = "1.0", features = [
|
|
"full",
|
|
"extra-traits",
|
|
"printing",
|
|
"parsing",
|
|
"visit",
|
|
"visit-mut",
|
|
] }
|
|
quote = { version = "1.0.23" }
|
|
semver = { version = "1.0.0", features = ["serde"] }
|
|
strum = { version = "0.26.2", features = ["derive"] }
|