- registry moves from the array in fpga.c to fpga_registry.yaml at the repo root, parsed via libyaml (pkg-config yaml-0.1); adding a part is now a YAML edit, no rebuild - looked up CWD-relative (like bsdl_files/), overridable with $BS_FPGA_REGISTRY, loaded lazily once; public API unchanged - fpga_list shows the source file (fpga_registry_source()) - add microsemi_igloo2/smartfusion2 and lattice_machxo2/3 families, ready for the non-Xilinx targets - docs updated: CLAUDE.md, README, tutorial "add a target" walkthrough Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
15 lines
512 B
CMake
15 lines
512 B
CMake
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
file(GLOB_RECURSE ALL_SOURCES "*.c")
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
|
|
|
|
add_library(fpga ${ALL_SOURCES})
|
|
|
|
# The registry is parsed from YAML at runtime via libyaml (the canonical
|
|
# C YAML parser). Found through pkg-config; PUBLIC so the executable that
|
|
# links fpga picks up the dependency transitively.
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(YAML REQUIRED IMPORTED_TARGET yaml-0.1)
|
|
target_link_libraries(fpga PUBLIC PkgConfig::YAML)
|