[package] name = "roc_cli" version = "0.1.0" authors = ["Richard Feldman "] repository = "https://github.com/rtfeldman/roc" edition = "2018" description = "A CLI for Roc" license = "Apache-2.0" default-run = "roc" [[bin]] name = "roc" path = "src/main.rs" test = false bench = false [features] default = ["target-x86"] target-x86 = [] # arm and wasm give linker errors on some platforms target-arm = [] target-webassembly = [] target-all = [ "target-x86", "target-arm", "target-webassembly" ] [dependencies] roc_collections = { path = "../compiler/collections" } roc_can = { path = "../compiler/can" } roc_parse = { path = "../compiler/parse" } roc_region = { path = "../compiler/region" } roc_module = { path = "../compiler/module" } roc_problem = { path = "../compiler/problem" } roc_types = { path = "../compiler/types" } roc_builtins = { path = "../compiler/builtins" } roc_constrain = { path = "../compiler/constrain" } roc_uniq = { path = "../compiler/uniq" } roc_unify = { path = "../compiler/unify" } roc_solve = { path = "../compiler/solve" } roc_mono = { path = "../compiler/mono" } roc_load = { path = "../compiler/load" } roc_gen = { path = "../compiler/gen" } roc_build = { path = "../compiler/build" } roc_fmt = { path = "../compiler/fmt" } roc_reporting = { path = "../compiler/reporting" } roc_editor = { path = "../editor" } # TODO switch to clap 3.0.0 once it's out. Tried adding clap = "~3.0.0-beta.1" and cargo wouldn't accept it clap = { git = "https://github.com/rtfeldman/clap", branch = "master" } im = "14" # im and im-rc should always have the same version! im-rc = "14" # im and im-rc should always have the same version! bumpalo = { version = "3.2", features = ["collections"] } inlinable_string = "0.1" tokio = { version = "0.2", features = ["blocking", "fs", "sync", "rt-threaded", "process", "io-driver"] } libc = "0.2" # NOTE: rtfeldman/inkwell is a fork of TheDan64/inkwell which does not change anything. # # The reason for this fork is that the way Inkwell is designed, you have to use # a particular branch (e.g. "llvm8-0") in Cargo.toml. That would be fine, except that # breaking changes get pushed directly to that branch, which breaks our build # without warning. # # We tried referencing a specific rev on TheDan64/inkwell directly (instead of branch), # but although that worked locally, it did not work on GitHub Actions. (After a few # hours of investigation, gave up trying to figure out why.) So this is the workaround: # having an immutable tag on the rtfeldman/inkwell fork which points to # a particular "release" of Inkwell. # # When we want to update Inkwell, we can sync up rtfeldman/inkwell to the latest # commit of TheDan64/inkwell, push a new tag which points to the latest commit, # change the tag value in this Cargo.toml to point to that tag, and `cargo update`. # This way, GitHub Actions works and nobody's builds get broken. inkwell = { git = "https://github.com/rtfeldman/inkwell", tag = "llvm10-0.release2" } target-lexicon = "0.10" [dev-dependencies] pretty_assertions = "0.5.1" maplit = "1.0.1" indoc = "0.3.3" quickcheck = "0.8" quickcheck_macros = "0.8" strip-ansi-escapes = "0.1" serde = { version = "1.0", features = ["derive"] } serde-xml-rs = "0.4"