
The two main changes, done together in this commit, are: * Eliminating most instances of `aux_source_directory()`, replacing them with explicit file listings; and * Moving these file listings into respective subdirectories by representing respective nextpnr components as interface libraries. In addition, the GUI CMake script tree was simplified since it had a lot of unused/redundant code. The `aux_source_directory()` command is not recommended for use by CMake itself because it misses dependency changes when adding/removing files, and consequently causes build failures requiring a clean rebuild. This commit does not touch anything related to architectures/families, which are very complex and redundant all on their own.
82 lines
1.4 KiB
CMake
82 lines
1.4 KiB
CMake
add_library(nextpnr_kernel INTERFACE)
|
|
|
|
target_include_directories(nextpnr_kernel INTERFACE .)
|
|
|
|
target_sources(nextpnr_kernel PUBLIC
|
|
arch_api.h
|
|
archcheck.cc
|
|
arch_pybindings_shared.h
|
|
array2d.h
|
|
base_arch.h
|
|
base_clusterinfo.h
|
|
basectx.cc
|
|
basectx.h
|
|
bits.cc
|
|
bits.h
|
|
chain_utils.h
|
|
command.cc
|
|
command.h
|
|
constraints.h
|
|
constraints.impl.h
|
|
context.cc
|
|
context.h
|
|
design_utils.cc
|
|
design_utils.h
|
|
deterministic_rng.h
|
|
dynamic_bitarray.h
|
|
embed.cc
|
|
embed.h
|
|
exclusive_state_groups.h
|
|
exclusive_state_groups.impl.h
|
|
handle_error.cc
|
|
hashlib.h
|
|
idstring.cc
|
|
idstring.h
|
|
idstringlist.cc
|
|
idstringlist.h
|
|
indexed_store.h
|
|
log.cc
|
|
log.h
|
|
nextpnr_assertions.cc
|
|
nextpnr_assertions.h
|
|
nextpnr_base_types.h
|
|
nextpnr.cc
|
|
nextpnr.h
|
|
nextpnr_namespaces.cc
|
|
nextpnr_namespaces.h
|
|
nextpnr_types.cc
|
|
nextpnr_types.h
|
|
property.cc
|
|
property.h
|
|
pybindings.cc
|
|
pybindings.h
|
|
pycontainers.h
|
|
pywrappers.h
|
|
relptr.h
|
|
report.cc
|
|
scope_lock.h
|
|
sdc.cc
|
|
sdf.cc
|
|
sso_array.h
|
|
str_ring_buffer.cc
|
|
str_ring_buffer.h
|
|
svg.cc
|
|
timing.cc
|
|
timing.h
|
|
timing_log.cc
|
|
util.h
|
|
)
|
|
|
|
target_link_libraries(nextpnr_kernel INTERFACE
|
|
nextpnr_frontend
|
|
nextpnr_json
|
|
nextpnr_rust
|
|
json11
|
|
)
|
|
|
|
if (BUILD_PYTHON)
|
|
target_link_libraries(nextpnr_kernel INTERFACE
|
|
pybind11_headers
|
|
)
|
|
endif()
|