summaryrefslogtreecommitdiff
path: root/src/main/scala/chisel3/aop/AspectLibrary.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/chisel3/aop/AspectLibrary.scala')
-rw-r--r--src/main/scala/chisel3/aop/AspectLibrary.scala53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/main/scala/chisel3/aop/AspectLibrary.scala b/src/main/scala/chisel3/aop/AspectLibrary.scala
deleted file mode 100644
index 04ac2384..00000000
--- a/src/main/scala/chisel3/aop/AspectLibrary.scala
+++ /dev/null
@@ -1,53 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-
-package chisel3.aop
-
-import chisel3.RawModule
-import firrtl.options.{OptionsException, RegisteredLibrary, ShellOption}
-
-/** Enables adding aspects to a design from the commandline, e.g.
- * sbt> runMain chisel3.stage.ChiselMain --module <module> --with-aspect <aspect>
- */
-final class AspectLibrary() extends RegisteredLibrary {
- val name = "AspectLibrary"
-
- import scala.reflect.runtime.universe._
-
- private def apply(aspectName: String): Aspect[RawModule] = {
- try {
- // If a regular class, instantiate, otherwise try as a singleton object
- try {
- val x = Class.forName(aspectName).asInstanceOf[Class[_ <: Aspect[RawModule]]]
- x.newInstance()
- } catch {
- case e: InstantiationException =>
- val rm = runtimeMirror(getClass.getClassLoader)
- val x = rm.staticModule(aspectName)
- try {
- rm.reflectModule(x).instance.asInstanceOf[Aspect[RawModule]]
- } catch {
- case _: Exception => throw e
- }
- }
- } catch {
- case e: ClassNotFoundException =>
- throw new OptionsException(s"Unable to locate aspect '$aspectName'! (Did you misspell it?)", e)
- case e: InstantiationException =>
- throw new OptionsException(
- s"Unable to create instance of aspect '$aspectName'! (Does this class take parameters?)",
- e
- )
- }
- }
-
- val options = Seq(
- new ShellOption[String](
- longOption = "with-aspect",
- toAnnotationSeq = {
- case aspectName: String => Seq(apply(aspectName))
- },
- helpText = "The name/class of an aspect to compile with (must be a class/object without arguments!)",
- helpValueName = Some("<package>.<aspect>")
- )
- )
-}