summaryrefslogtreecommitdiff
path: root/src/main/scala/chisel3/stage/ChiselOptions.scala
blob: 42a0ce68130eb2a771d6e9deb06db1e1bb0e8791 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// SPDX-License-Identifier: Apache-2.0

package chisel3.stage

import chisel3.internal.firrtl.Circuit

class ChiselOptions private[stage] (
  val runFirrtlCompiler:    Boolean = true,
  val printFullStackTrace:  Boolean = false,
  val throwOnFirstError:    Boolean = false,
  val warnReflectiveNaming: Boolean = false,
  val warningsAsErrors:     Boolean = false,
  val outputFile:           Option[String] = None,
  val chiselCircuit:        Option[Circuit] = None) {

  private[stage] def copy(
    runFirrtlCompiler:    Boolean = runFirrtlCompiler,
    printFullStackTrace:  Boolean = printFullStackTrace,
    throwOnFirstError:    Boolean = throwOnFirstError,
    warnReflectiveNaming: Boolean = warnReflectiveNaming,
    warningsAsErrors:     Boolean = warningsAsErrors,
    outputFile:           Option[String] = outputFile,
    chiselCircuit:        Option[Circuit] = chiselCircuit
  ): ChiselOptions = {

    new ChiselOptions(
      runFirrtlCompiler = runFirrtlCompiler,
      printFullStackTrace = printFullStackTrace,
      throwOnFirstError = throwOnFirstError,
      warnReflectiveNaming = warnReflectiveNaming,
      warningsAsErrors = warningsAsErrors,
      outputFile = outputFile,
      chiselCircuit = chiselCircuit
    )

  }

}