|  | # Copyright 2023 Google LLC | 
|  | # | 
|  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | # you may not use this file except in compliance with the License. | 
|  | # You may obtain a copy of the License at | 
|  | # | 
|  | #     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, software | 
|  | # distributed under the License is distributed on an "AS IS" BASIS, | 
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | # See the License for the specific language governing permissions and | 
|  | # limitations under the License. | 
|  |  | 
|  | """Kelvin HW dependent repositories.""" | 
|  |  | 
|  | load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") | 
|  | load( | 
|  | "@io_bazel_rules_scala//scala:scala_cross_version.bzl", | 
|  | "default_maven_server_urls", | 
|  | ) | 
|  | load( | 
|  | "@io_bazel_rules_scala//scala:scala_maven_import_external.bzl", | 
|  | "scala_maven_import_external", | 
|  | ) | 
|  | load( | 
|  | "@rules_foreign_cc//foreign_cc:repositories.bzl", | 
|  | "rules_foreign_cc_dependencies", | 
|  | ) | 
|  | load( | 
|  | "@rules_hdl//dependency_support:dependency_support.bzl", | 
|  | rules_hdl_dependency_support = "dependency_support", | 
|  | ) | 
|  |  | 
|  | def kelvin_chisel_deps(): | 
|  | """Dependent repositories to build chisel""" | 
|  |  | 
|  | # scala-reflect | 
|  | scala_maven_import_external( | 
|  | name = "org_scala_lang_scala_reflect", | 
|  | artifact = "org.scala-lang:scala-reflect:%s" % "2.13.11", | 
|  | artifact_sha256 = "6a46ed9b333857e8b5ea668bb254ed8e47dacd1116bf53ade9467aa4ae8f1818", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # paranamer | 
|  | scala_maven_import_external( | 
|  | name = "com_thoughtworks_paranamer", | 
|  | artifact = "com.thoughtworks.paranamer:paranamer:%s" % "2.8", | 
|  | artifact_sha256 = "688cb118a6021d819138e855208c956031688be4b47a24bb615becc63acedf07", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # json4s | 
|  | scala_maven_import_external( | 
|  | name = "org_json4s_json4s_ast", | 
|  | artifact = "org.json4s:json4s-ast_2.13:%s" % "4.0.6", | 
|  | artifact_sha256 = "c9fa3c4799615ebf299f616e4817efd16dcff341e1ee04e51e741d8add68bb43", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  | scala_maven_import_external( | 
|  | name = "org_json4s_json4s_scalap", | 
|  | artifact = "org.json4s:json4s-scalap_2.13:%s" % "4.0.6", | 
|  | artifact_sha256 = "4ff2f359e2a6595d7b709ca1de43ed6da8c2cf67fe8b78f334e10f27c21c4361", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  | scala_maven_import_external( | 
|  | name = "org_json4s_json4s_core", | 
|  | artifact = "org.json4s:json4s-core_2.13:%s" % "4.0.6", | 
|  | artifact_sha256 = "7f7a6b7802a05d75a7612d0f5c54832bd473a7c60118192713f45d80d1d51e71", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  | scala_maven_import_external( | 
|  | name = "org_json4s_json4s_native", | 
|  | artifact = "org.json4s:json4s-native_2.13:%s" % "4.0.6", | 
|  | artifact_sha256 = "f7089df299f43c6f76cfa2876d3a9cf9fd4d983e952f6ecfe11ed4b5f129e0c6", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # org.apache.commons | 
|  | scala_maven_import_external( | 
|  | name = "org_apache_commons_commons_lang3", | 
|  | artifact = "org.apache.commons:commons-lang3:%s" % "3.11", | 
|  | artifact_sha256 = "4ee380259c068d1dbe9e84ab52186f2acd65de067ec09beff731fca1697fdb16", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  | scala_maven_import_external( | 
|  | name = "org_apache_commons_commons_text", | 
|  | artifact = "org.apache.commons:commons-text:%s" % "1.10.0", | 
|  | artifact_sha256 = "770cd903fa7b604d1f7ef7ba17f84108667294b2b478be8ed1af3bffb4ae0018", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # scopt | 
|  | scala_maven_import_external( | 
|  | name = "com_github_scopt", | 
|  | artifact = "com.github.scopt:scopt_2.13:%s" % "3.7.1", | 
|  | artifact_sha256 = "6592cd15368f6e26d1d73f81ed5bc93cf0dea713b8b2936a8f2f0edd3b392820", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # moultingyaml | 
|  | scala_maven_import_external( | 
|  | name = "net_jcazevedo_moultingyaml", | 
|  | artifact = "net.jcazevedo:moultingyaml_2.13:%s" % "0.4.2", | 
|  | artifact_sha256 = "a304da2389f760f1a36513d8b10ba546d50243cf0b94415ea2a76906114d7197", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # data-class | 
|  | scala_maven_import_external( | 
|  | name = "io_github_alexarchambault_data_class", | 
|  | artifact = "io.github.alexarchambault:data-class_2.13:%s" % "0.2.5", | 
|  | artifact_sha256 = "debdf4eca3430173c5af8300276e194437b2c6c6608aca3a285fd3d98be54ce7", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # os-lib | 
|  | scala_maven_import_external( | 
|  | name = "com_lihaoyi_os_lib", | 
|  | artifact = "com.lihaoyi:os-lib_2.13:%s" % "0.8.1", | 
|  | artifact_sha256 = "5036c31a889a702a107f30124efb5fd8ca462818723db001e96494c4360ff96f", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # geny | 
|  | scala_maven_import_external( | 
|  | name = "com_lihaoyi_geny", | 
|  | artifact = "com.lihaoyi:geny_2.13:%s" % "0.7.1", | 
|  | artifact_sha256 = "fc01dab696f7b84ba5ac28bbf2e60d8bcbd9ab96717e50fdbeb4e8acf3452a56", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # upickle | 
|  | scala_maven_import_external( | 
|  | name = "com_lihaoyi_upickle", | 
|  | artifact = "com.lihaoyi:upickle_2.13:%s" % "2.0.0", | 
|  | artifact_sha256 = "e372ec234360a794eca87124a52a7bfbea4c13556ba3c5eada5243733b6bb77f", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # Chisel3 | 
|  | scala_maven_import_external( | 
|  | name = "org_chipsalliance_chisel", | 
|  | artifact = "org.chipsalliance:chisel_2.13:%s" % "7.0.0-RC1", | 
|  | artifact_sha256 = "2d807710cd655b4a9adfeb5211f1b288558e09707d912817d320a16ecae5630b", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  | scala_maven_import_external( | 
|  | name = "org_chipsalliance_chisel_plugin", | 
|  | artifact = "org.chipsalliance:chisel-plugin_2.13.6:%s" % "7.0.0-RC1", | 
|  | artifact_sha256 = "f8ba4dea4cfcd28927bff4249758d690a85e3c59abf05c1b0105b2e7c692606a", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  | scala_maven_import_external( | 
|  | name = "org_chipsalliance_firtool_resolver", | 
|  | artifact = "org.chipsalliance:firtool-resolver_2.13:%s" % "2.0.0", | 
|  | artifact_sha256 = "dab7354296f5b39de45c5b300fba33061ee70b9cae6f8994ad1ce00afa9a6f3d", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | scala_maven_import_external( | 
|  | name = "com_outr_moduload", | 
|  | artifact = "com.outr:moduload_2.13:%s" % "1.1.7", | 
|  | artifact_sha256 = "53bdf91631e018b2cbb3a96151d34576d8c7551288a398444fc4ce6e1fbdbea1", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  | scala_maven_import_external( | 
|  | name = "com_outr_scribe", | 
|  | artifact = "com.outr:scribe_2.13:%s" % "3.15.2", | 
|  | artifact_sha256 = "d65a5e43cb562ea93f32663f0512e21bc6f4118467003c1c146016e456784898", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  |  | 
|  | # Chiseltest | 
|  | scala_maven_import_external( | 
|  | name = "edu_berkeley_cs_firrtl", | 
|  | artifact = "edu.berkeley.cs:firrtl_2.13:%s" % "5.0.0", | 
|  | artifact_sha256 = "7e42b367bbf050cd41658957d25a1f27a73c92e55d3612a9b41d63d0feba50b3", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  | scala_maven_import_external( | 
|  | name = "org_scalatest_scalatest", | 
|  | artifact = "org.scalatest:scalatest_3:%s" % "3.2.16", | 
|  | artifact_sha256 = "594c3c68d5fccf9bf57f3eef012652c2d66d58d42e6335517ec71fdbeb427352", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | # Antlr4 | 
|  | scala_maven_import_external( | 
|  | name = "org_antlr_antlr4_runtime", | 
|  | artifact = "org.antlr:antlr4-runtime:%s" % "4.13.1", | 
|  | artifact_sha256 = "54665d2838cc66458343468efc539e454fc95b46a8a04b13c6ac43fc9be63505", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | scala_maven_import_external( | 
|  | name = "net_java_dev_jna", | 
|  | artifact = "net.java.dev.jna:jna:%s" % "5.14.0", | 
|  | artifact_sha256 = "34ed1e1f27fa896bca50dbc4e99cf3732967cec387a7a0d5e3486c09673fe8c6", | 
|  | server_urls = default_maven_server_urls(), | 
|  | licenses = ["notice"], | 
|  | ) | 
|  |  | 
|  | def kelvin_deps(): | 
|  | """Full kelvin dependent repositories | 
|  |  | 
|  | Including chisel and systemC test code | 
|  | """ | 
|  | rules_foreign_cc_dependencies() | 
|  | rules_hdl_dependency_support() | 
|  | kelvin_chisel_deps() | 
|  |  | 
|  | http_archive( | 
|  | name = "accellera_systemc", | 
|  | build_file = "@kelvin_hw//external:systemc.BUILD", | 
|  | sha256 = "bfb309485a8ad35a08ee78827d1647a451ec5455767b25136e74522a6f41e0ea", | 
|  | strip_prefix = "systemc-2.3.4", | 
|  | urls = [ | 
|  | "https://github.com/accellera-official/systemc/archive/refs/tags/2.3.4.tar.gz", | 
|  | ], | 
|  | ) |