2025-01-16 00:20:21 +08:00
|
|
|
set(HIMBAECHEL_UARCHES example gowin xilinx ng-ultra)
|
2025-01-12 15:13:08 +08:00
|
|
|
|
2025-01-16 00:20:21 +08:00
|
|
|
set(HIMBAECHEL_UARCH "" CACHE STRING "Microarchitectures for nextpnr-himbaechel build")
|
2025-01-12 15:13:08 +08:00
|
|
|
set_property(CACHE HIMBAECHEL_UARCH PROPERTY STRINGS ${HIMBAECHEL_UARCHES})
|
|
|
|
|
2025-01-16 00:20:21 +08:00
|
|
|
if (NOT HIMBAECHEL_UARCH)
|
|
|
|
message(STATUS "Microarchitecture needs to be set, set desired one with -DHIMBAECHEL_UARCH=xxx")
|
|
|
|
message(STATUS "Supported Himbaechel microarchitectures are :")
|
|
|
|
message(STATUS " all")
|
|
|
|
foreach (item ${HIMBAECHEL_UARCHES})
|
|
|
|
message(STATUS " ${item}")
|
|
|
|
endforeach()
|
|
|
|
message(FATAL_ERROR "Microarchitecture setting is mandatory")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (HIMBAECHEL_UARCH STREQUAL "all")
|
|
|
|
set(HIMBAECHEL_UARCH ${HIMBAECHEL_UARCHES})
|
|
|
|
endif()
|
2025-01-12 15:13:08 +08:00
|
|
|
|
2025-01-15 17:22:03 +08:00
|
|
|
foreach (uarch ${HIMBAECHEL_UARCH})
|
2025-01-16 00:20:21 +08:00
|
|
|
if (NOT uarch IN_LIST HIMBAECHEL_UARCHES)
|
|
|
|
message(FATAL_ERROR "Microarchitecture ${uarch} is not a supported Himbaechel microarchitecture")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
add_subdirectory(uarch/${uarch})
|
2025-01-15 22:42:20 +08:00
|
|
|
aux_source_directory(uarch/${uarch} HM_UARCH_FILES)
|
2025-01-15 17:22:03 +08:00
|
|
|
foreach (target ${family_targets})
|
2023-04-21 01:49:36 +08:00
|
|
|
target_sources(${target} PRIVATE ${HM_UARCH_FILES})
|
|
|
|
endforeach()
|
2024-12-04 16:00:05 +08:00
|
|
|
if (BUILD_TESTS)
|
2025-01-15 17:22:03 +08:00
|
|
|
foreach (target ${family_test_targets})
|
2025-01-15 22:42:20 +08:00
|
|
|
aux_source_directory(uarch/${uarch}/tests/ HM_UARCH_TEST_FILES)
|
2024-12-04 16:00:05 +08:00
|
|
|
target_sources(${target} PRIVATE ${HM_UARCH_TEST_FILES})
|
|
|
|
endforeach()
|
|
|
|
endif()
|
2025-01-15 17:22:03 +08:00
|
|
|
endforeach()
|