Previously, this would always set visibility=hidden for static,
unified builds. This configuration is great for packaging Python
artifacts, but setting visibility=hidden doesn't always make sense.
Instead, this removes that, leaving visibility=default as the default,
and allowing users or build bots to override it on the cmake command
line when necessary.
The sanity check is left in place to prevent visibility=hidden with a
BUILD_SHARED_LIBS=ON build. MLIR needs significant changes to support
such a configuration.
* Added Tcl bindings for loading an MLIR file.
* Ran clang-format
* Updated Tcl library path
* Update simple.tcl
* Implemented Lenharth's suggestions
* Ran clang-format
* Fixed integration test
* Added checks to integration test
* Implemented some of Mike's suggestions
* Added another argument
* Added paths to Tcl debug output in CMAKE
Before, this would fail if including circt in a project that itself
includes llvm-project (vs llvm-project being the root project). Fixes
https://github.com/llvm/circt/issues/1533.
When building CIRCT standalone, it isn't safe to assume these
configurations can be applied, since the build of LLVM may have used a
different configuration. These keeps the same recommended defaults,
but only for a unified build via LLVM_EXTERNAL_PROJECTS.
Previously these were only set during a standalone build of
CIRCT. This sets the options at the start of CMakeLists.txt, so they
will apply during a standalone or unified build. This follows how
Flang sets these options, for example.
This is mostly mechanical for us. Some notable changes:
* Require a unified build for Python in CMake, docs, and CI
* New CMake defaults for some variables in CMakeLists.txt
* Use the new CMake functions for Python bindings and PyCDE
* Update imports for generated Python and Python extension libraries
* Update PYTHONPATH to reflect the new location under unified builds
- Creating new frontends top level directory which contains frontends which are optionally included.
- Moving @module and @Generator into PyCDE frontend.
- Keeping connect in the bindings since it's used in the bindings tests.
- Fixing the integration tests.
Closes#1179.
* Use the `Python3_EXECUTABLE` found by CMake itself (alongside the libs
and includes) to execute integration tests. This should no longer
require explicitly specifying a python executable in most cases. Where
needed, users can always override `Python3_EXECUTABLE`.
* Add `capnp` requirement on ESI tests. Otherwise the test fails on
systems that build the Python bindings but have no capnp.
* Add some guidance for users that are mainly interested in the Python
bindings of CIRCT. Fixes#1072.
Change the Verilator requirement in cmake from 4.034 to 4.110 since
the integration tests use `$urandom_range` which was added to
Verilator in 4.100 and there's a known bug that was fixed in 4.110.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
Enables producing binary packages (e.g. tars) which do not require installation
into the system. Sets the binaries' RPATHs to point to the 'lib' directory
within said package.
This is the first step towards #710. This should be the minimal amount
of boilerplate to set up a Python module such that we can write
`import circt`. Note that this module does not actually bind to or
expose any API at the moment; this is just the boilerplate, and that
will follow.
The setup here is based on both the upstream MLIR Python bindings, as
well as what NPComp does.
* Scaffolding for Capnp-dependent ESI code
* Adding 'capnp' feature
* Replicated functionality
* Just missing the complex part: schema parsing
* Parse the generated schema, get the size out of that
* Documentation
* Adding NOLINT
* [Tests] [Questa] If found, provide feature and path
* Abstraction script and moving existing test
* Default sim
* Passing default simulator through env var
* Adding default driver.sv
* Various bug fixes
* Argparse wasn't working properly
* Don't touch files in test/
* Creating a default for commercial simulation
* Making circt-rtl-sim a tool not a util script
* Removing old comment
* Adding 'rtl-sim' feature and renaming 'comsim' to 'ieee-sim'
* [ESI] [Cosim DPI] RTL
This is the fourth in a series to merge #213 -- RTL. Adds the
SystemVerilog code which will interface with the DPI library.
Is this the right place for SystemVerilog distributables? I put them
here since the 'include' directory is shipped with the install. Should
we have a top level "support" directory which goes into /usr/share?
* Fixing comment line lengths
* Fixing style issues
* [ESI] [Cosim DPI] Capn'Proto install and schema generation
This is the second in a series to merge #213. This is the capnp schema
generation component.
* Added header comment.
* Enable cloning llvm submodule over HTTP
* Introduce C API
* Undo unrelated changes
* clang-format
* More format
* Add Header Comments
* Format
* Add basic test
* Add missing incantation
* Format
Co-authored-by: George <>
This also updates the README to include some building information.
Lots of caveats:
- This is all experimental
- The actual tool isn't interesting yet.
- The naming is arbitrary and will likely change.
- Much of the cmake files were cargo culted from other places
because I don't know what I'm doing.