[package] name = "openidea" description = "OpenIDEA desktop shell: an open-source IDE inspired by IntelliJ IDEA" version.workspace = true edition.workspace = true license.workspace = true [lib] name = "openidea_lib" crate-type = ["staticlib", "cdylib", "rlib"] [build-dependencies] tauri-build = { version = "2", features = [] } dunce.workspace = true [dependencies] tauri = { version = "2", features = [] } tauri-plugin-opener = "2" tauri-plugin-dialog = { version = "2", default-features = false, features = ["xdg-portal"] } tauri-plugin-mcp-bridge = "0.13" tauri-plugin-window-state = "2" tauri-plugin-single-instance = "2" tauri-plugin-updater = "2" tracing-appender = "0.2" tauri-specta = { version = "=2.0.0-rc.25", features = ["derive", "typescript"] } specta-typescript.workspace = true specta.workspace = true serde.workspace = true serde_json.workspace = true base64.workspace = true percent-encoding = "2" tokio.workspace = true parking_lot.workspace = true blake3.workspace = true tracing.workspace = true tracing-subscriber.workspace = true dirs.workspace = true ide-core.workspace = true dunce.workspace = true ide-clipboard.workspace = true ide-fonts.workspace = true ide-text.workspace = true ide-vfs.workspace = true ide-workspace.workspace = true ide-language.workspace = true ide-index.workspace = true ide-syntax.workspace = true ide-search.workspace = true ide-lsp.workspace = true ide-dap.workspace = true ide-vcs.workspace = true ide-terminal.workspace = true ide-run.workspace = true ide-sdk.workspace = true ide-build.workspace = true ide-analysis.workspace = true ide-coverage.workspace = true ide-profiler.workspace = true ide-http.workspace = true ide-agent.workspace = true ide-db.workspace = true ide-web.workspace = true ide-spell.workspace = true ide-ssh.workspace = true ide-remote.workspace = true ide-host.workspace = true ide-notebook.workspace = true ide-jsonrpc.workspace = true ide-tools = { path = "../crates/ide-tools" } ide-plugin = { path = "../crates/ide-plugin" } ide-extension = { path = "../crates/ide-extension" } ide-docker = { path = "../crates/ide-docker" } ide-android = { path = "../crates/ide-android" } ide-github = { path = "../crates/ide-github" } [dev-dependencies] tempfile.workspace = true [target.'cfg(target_os = "macos")'.dependencies] block2 = "0.6" # Plugin secrets in the login keychain. security-framework = "3.7" objc2 = "0.6" objc2-app-kit = { version = "0.3", default-features = false, features = ["std", "NSApplication", "NSButton", "NSEvent", "NSResponder", "NSScreen", "NSView", "NSWindow"] } objc2-core-foundation = { version = "0.3", default-features = false, features = ["std", "block2", "CFRunLoop"] } objc2-foundation = { version = "0.3", default-features = false, features = ["std", "block2", "NSNotification", "NSOperation", "NSString"] } # Used only by the debug font-restriction override; Cargo dependency cfg cannot test debug_assertions. objc2-web-kit = { version = "0.3", default-features = false, features = ["std", "WKWebViewConfiguration", "WKPreferences"] } [target.'cfg(target_os = "linux")'.dependencies] # Wayland detection and the client size without GTK's CSD shadow (linux_window_state.rs). gtk = "0.18" [target.'cfg(windows)'.dependencies] windows = { version = "0.62", features = [ "Win32_Foundation", "Win32_Storage_EnhancedStorage", "Win32_System_Com", "Win32_System_Com_StructuredStorage", "Win32_System_Variant", "Win32_UI_Shell", "Win32_UI_Shell_Common", "Win32_UI_Shell_PropertiesSystem", ] } windows-sys = { version = "0.61", features = [ "Win32_Foundation", "Win32_Graphics_Gdi", "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", ] }