diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 0000000..e69de29 diff --git a/Cargo.toml b/Cargo.toml index 5e652c1..3f12d39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,10 @@ expensive_tests = [] [dependencies] itertools = "0" regex = "1" +matrixmultiply = "0.3.2" ndarray = "0" scan_fmt = "0" thiserror = "1" + +[patch.crates-io] +matrixmultiply = { git = "https://github.com/minor-fixes/matrixmultiply" } diff --git a/WORKSPACE b/WORKSPACE new file mode 100644 index 0000000..63bc9b0 --- /dev/null +++ b/WORKSPACE @@ -0,0 +1,39 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "rules_rust", + sha256 = "531bdd470728b61ce41cf7604dc4f9a115983e455d46ac1d0c1632f613ab9fc3", + strip_prefix = "rules_rust-d8238877c0e552639d3e057aadd6bfcf37592408", + urls = [ + # `main` branch as of 2021-08-23 + "https://github.com/bazelbuild/rules_rust/archive/d8238877c0e552639d3e057aadd6bfcf37592408.tar.gz", + ], +) + +load("@rules_rust//rust:repositories.bzl", "rust_repositories") + +rust_repositories( + edition = "2018", + version = "1.53.0", +) + +load("//third_party/rules_rust:crate_universe_defaults.bzl", "DEFAULT_SHA256_CHECKSUMS", "DEFAULT_URL_TEMPLATE") +load("@rules_rust//crate_universe:defs.bzl", "crate", "crate_universe") + +crate_universe( + name = "rust_dependencies", + cargo_toml_files = [ + "//:Cargo.toml", + ], + resolver_download_url_template = DEFAULT_URL_TEMPLATE, + resolver_sha256s = DEFAULT_SHA256_CHECKSUMS, + #overrides = { + # "example-sys": crate.override( + # extra_build_script_env_vars = {"PATH": "/usr/bin"}, + # ), + #}, +) + +load("@rust_dependencies//:defs.bzl", "pinned_rust_install") + +pinned_rust_install() diff --git a/bazel-advent_2020 b/bazel-advent_2020 new file mode 120000 index 0000000..9ec4343 --- /dev/null +++ b/bazel-advent_2020 @@ -0,0 +1 @@ +/home/bminor/.cache/bazel/_bazel_bminor/d88beeac5653d99db5c40c4be2ee913e/execroot/__main__ \ No newline at end of file diff --git a/bazel-bin b/bazel-bin new file mode 120000 index 0000000..3873942 --- /dev/null +++ b/bazel-bin @@ -0,0 +1 @@ +/home/bminor/.cache/bazel/_bazel_bminor/d88beeac5653d99db5c40c4be2ee913e/execroot/__main__/bazel-out/k8-fastbuild/bin \ No newline at end of file diff --git a/bazel-out b/bazel-out new file mode 120000 index 0000000..82f2d97 --- /dev/null +++ b/bazel-out @@ -0,0 +1 @@ +/home/bminor/.cache/bazel/_bazel_bminor/d88beeac5653d99db5c40c4be2ee913e/execroot/__main__/bazel-out \ No newline at end of file diff --git a/bazel-testlogs b/bazel-testlogs new file mode 120000 index 0000000..264709a --- /dev/null +++ b/bazel-testlogs @@ -0,0 +1 @@ +/home/bminor/.cache/bazel/_bazel_bminor/d88beeac5653d99db5c40c4be2ee913e/execroot/__main__/bazel-out/k8-fastbuild/testlogs \ No newline at end of file diff --git a/src/BUILD.bazel b/src/BUILD.bazel new file mode 100644 index 0000000..e5c9067 --- /dev/null +++ b/src/BUILD.bazel @@ -0,0 +1,9 @@ +load("@rust_dependencies//:defs.bzl", "build_crates_from", "crates_from") +load("@rules_rust//rust:rust.bzl", "rust_library") + +rust_library( + name = "advent_2020", + srcs = glob(["*.rs"]), + visibility = ["//src/bin:__pkg__"], + deps = crates_from("//:Cargo.toml"), +) diff --git a/src/bin/BUILD.bazel b/src/bin/BUILD.bazel new file mode 100644 index 0000000..ed56e49 --- /dev/null +++ b/src/bin/BUILD.bazel @@ -0,0 +1,22 @@ +load("@rust_dependencies//:defs.bzl", "build_crates_from", "crates_from") +load("@rules_rust//rust:rust.bzl", "rust_binary") + +DAY_STRINGS = [ + "day_" + str(num) if num >= 10 else "day_0" + str(num) + for num in range(1, 25) +] + +[ + rust_binary( + name = day_str, + srcs = ["{}/main.rs".format(day_str)], + deps = ["//src:advent_2020"], + ) + for day_str in DAY_STRINGS +] + +#rust_binary( +# name = "day_03", +# srcs = ["day_03/main.rs"], +# deps = ["//src:advent_2020"], +#) diff --git a/third_party/rules_rust/BUILD.bazel b/third_party/rules_rust/BUILD.bazel new file mode 100644 index 0000000..e69de29 diff --git a/third_party/rules_rust/crate_universe_defaults.bzl b/third_party/rules_rust/crate_universe_defaults.bzl new file mode 100644 index 0000000..79804dd --- /dev/null +++ b/third_party/rules_rust/crate_universe_defaults.bzl @@ -0,0 +1,14 @@ +"""A helper module defining generated information about crate_universe dependencies""" + +# This global should match the current release of `crate_unvierse`. +DEFAULT_URL_TEMPLATE = "https://github.com/bazelbuild/rules_rust/releases/download/crate_universe-13/crate_universe_resolver-{host_triple}{extension}" + +# Note that if any additional platforms are added here, the pipeline defined +# by `create_universe.yaml` should also be updated +DEFAULT_SHA256_CHECKSUMS = { + "aarch64-apple-darwin": "c6017cd8a4fee0f1796a8db184e9d64445dd340b7f48a65130d7ee61b97051b4", + "aarch64-unknown-linux-gnu": "d0a310b03b8147e234e44f6a93e8478c260a7c330e5b35515336e7dd67150f35", + "x86_64-apple-darwin": "762f1c77b3cf1de8e84d7471442af1314157efd90720c7e1f2fff68556830ee2", + "x86_64-pc-windows-gnu": "c44bd97373d690587e74448b13267077d133f04e89bedfc9d521ae8ba55dddb9", + "x86_64-unknown-linux-gnu": "aebf51af6a3dd33fdac463b35b0c3f4c47ab93e052099199673289e2025e5824", +}