CMake: reformat for consistency.

Normalize keywords to:

    if (...)
    elseif (...)
    else()
    endif()

    foreach (...)
    endforeach()

    other(...)

Normalize whitespace to 4 spaces.
This commit is contained in:
Catherine 2025-01-15 09:22:03 +00:00 committed by myrtle
parent c48157aa4b
commit d214308f5f
19 changed files with 178 additions and 159 deletions

View File

@ -9,9 +9,9 @@ cmake_policy(SET CMP0079 NEW)
# We want to explictly include all include directories when generating the
# compilation database as not all clang/gcc share the same implicit includes
# leading to essentially non-working compile_commands.json
if(CMAKE_EXPORT_COMPILE_COMMANDS)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
if (CMAKE_EXPORT_COMPILE_COMMANDS)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
endif()
# Enable IPO support.
@ -49,7 +49,7 @@ else()
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE)
endif()
if(WIN32 OR EXTERNAL_CHIPDB)
if (WIN32 OR EXTERNAL_CHIPDB)
set(BBASM_MODE "binary")
else()
set(BBASM_MODE "string")
@ -65,7 +65,7 @@ else()
add_definitions(-DNPNR_DISABLE_THREADS)
endif()
if(WASI)
if (WASI)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lwasi-emulated-mman")
add_definitions(
-DBOOST_EXCEPTION_DISABLE
@ -79,8 +79,8 @@ endif()
set(link_param "")
if (STATIC_BUILD)
set(Boost_USE_STATIC_LIBS ON)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
if (MSVC)
set(CMAKE_CXX_FLAGS_RELEASE "/MT")
set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
@ -118,11 +118,11 @@ if (NOT ARCH)
message(STATUS "Supported architectures are :")
message(STATUS " all")
message(STATUS " all+alpha")
foreach(item ${FAMILIES})
foreach (item ${FAMILIES})
message(STATUS " ${item}")
endforeach()
message(FATAL_ERROR "Architecture setting is mandatory")
endif ()
endif()
if (ARCH STREQUAL "all+alpha")
SET(ARCH ${STABLE_FAMILIES} ${EXPERIMENTAL_FAMILIES})
@ -133,7 +133,7 @@ if (ARCH STREQUAL "all")
SET(ARCH ${STABLE_FAMILIES})
endif()
foreach(item ${ARCH})
foreach (item ${ARCH})
if (NOT item IN_LIST FAMILIES)
message(FATAL_ERROR "Architecture '${item}' not in list of supported architectures")
endif()
@ -147,7 +147,7 @@ if (MSVC)
else()
# N.B. the -Wno-array-bounds is to work around a false positive in GCC 9
set(WARN_FLAGS "-Wall -Wextra")
foreach(TRY_WARN_FLAG no-unused-parameter no-missing-field-initializers no-array-bounds no-format-truncation)
foreach (TRY_WARN_FLAG no-unused-parameter no-missing-field-initializers no-array-bounds no-format-truncation)
check_cxx_compiler_flag("-W${TRY_WARN_FLAG}" HAS_W${TRY_WARN_FLAG})
if (HAS_W${TRY_WARN_FLAG})
set(WARN_FLAGS "${WARN_FLAGS} -W${TRY_WARN_FLAG}")
@ -170,8 +170,8 @@ if (COVERAGE)
include(CodeCoverage)
endif()
if(NOT DEFINED CMAKE_SUPPRESS_DEVELOPER_WARNINGS)
set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS 1 CACHE INTERNAL "No dev warnings")
if (NOT DEFINED CMAKE_SUPPRESS_DEVELOPER_WARNINGS)
set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS 1 CACHE INTERNAL "No dev warnings")
endif()
find_package(Sanitizers)
@ -239,9 +239,20 @@ if (NOT DEFINED PYBIND11_INCLUDE_DIR)
set(PYBIND11_INCLUDE_DIR "3rdparty/pybind11/include")
endif()
include_directories(common/kernel/ common/place/ common/route/ json/ frontend/ 3rdparty/json11/ 3rdparty/oourafft ${PYBIND11_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${Python3_INCLUDE_DIRS})
include_directories(
common/kernel/
common/place/
common/route/
json/
frontend/
3rdparty/json11/
3rdparty/oourafft/
${PYBIND11_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
${Python3_INCLUDE_DIRS}
)
find_package (Eigen3 REQUIRED NO_MODULE)
find_package(Eigen3 REQUIRED NO_MODULE)
link_libraries(Eigen3::Eigen)
aux_source_directory(common/kernel/ KERNEL_SRC_FILES)
@ -255,13 +266,21 @@ aux_source_directory(frontend/ FRONTEND_FILES)
aux_source_directory(rust/ RUST_FILES)
set(COMMON_FILES ${KERNEL_SRC_FILES} ${PLACE_SRC_FILES} ${ROUTE_SRC_FILES} ${EXT_JSON11_FILES} ${EXT_OOURAFFT_FILES} ${JSON_PARSER_FILES} ${FRONTEND_FILES})
set(COMMON_FILES
${KERNEL_SRC_FILES}
${PLACE_SRC_FILES}
${ROUTE_SRC_FILES}
${EXT_JSON11_FILES}
${EXT_OOURAFFT_FILES}
${JSON_PARSER_FILES}
${FRONTEND_FILES}
)
if( NOT CMAKE_BUILD_TYPE )
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
if(CMAKE_CROSSCOMPILING)
if (CMAKE_CROSSCOMPILING)
set(BBA_IMPORT "IMPORTFILE-NOTFOUND" CACHE FILEPATH
"Path to the `bba-export.cmake` export file from a native build")
include(${BBA_IMPORT})
@ -271,7 +290,7 @@ endif()
include(TestBigEndian)
test_big_endian(IS_BIG_ENDIAN)
if(IS_BIG_ENDIAN)
if (IS_BIG_ENDIAN)
set(BBASM_ENDIAN_FLAG "--be")
else()
set(BBASM_ENDIAN_FLAG "--le")
@ -279,10 +298,10 @@ endif()
set(EXTRA_LIB_DEPS)
if(PROFILER)
if (PROFILER)
list(APPEND EXTRA_LIB_DEPS profiler)
endif()
if(TBB_FOUND)
if (TBB_FOUND)
list(APPEND EXTRA_LIB_DEPS TBB::tbb)
endif()
@ -340,7 +359,7 @@ foreach (family ${ARCH})
# Include the family-specific CMakeFile
include(${family}/family.cmake)
foreach (target ${family_targets})
foreach(lib_dep ${EXTRA_LIB_DEPS})
foreach (lib_dep ${EXTRA_LIB_DEPS})
target_link_libraries(${target} PRIVATE ${lib_dep})
endforeach()
@ -361,8 +380,8 @@ foreach (family ${ARCH})
target_link_libraries(${target} LINK_PUBLIC ${Python3_LIBRARIES})
if (STATIC_BUILD)
target_link_libraries(${target} LINK_PUBLIC ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES} ${EXPAT_LIBRARIES})
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
else()
target_link_libraries(${target} LINK_PUBLIC -lutil)
endif()
@ -371,12 +390,12 @@ foreach (family ${ARCH})
if (USE_RUST)
target_sources(${target} PRIVATE ${RUST_FILES})
target_compile_definitions(${target} PRIVATE USE_RUST)
foreach(crate ${RUST_CRATES})
foreach (crate ${RUST_CRATES})
target_link_libraries(${target} PRIVATE ${crate})
endforeach(crate)
endforeach()
endif()
endforeach (target)
endforeach (family)
endforeach()
endforeach()
file(GLOB_RECURSE CLANGFORMAT_FILES *.cc *.h)
string(REGEX REPLACE "[^;]*/ice40/chipdb/chipdb-[^;]*.cc" "" CLANGFORMAT_FILES "${CLANGFORMAT_FILES}")

View File

@ -6,7 +6,7 @@ set(ECP5_DEVICES ${ALL_ECP5_DEVICES} CACHE STRING
"Include support for these ECP5 devices (available: ${ALL_ECP5_DEVICES})")
message(STATUS "Enabled ECP5 devices: ${ECP5_DEVICES}")
if(DEFINED ECP5_CHIPDB)
if (DEFINED ECP5_CHIPDB)
add_custom_target(chipdb-ecp5-bbas ALL)
else()
# shared among all families
@ -15,37 +15,37 @@ else()
set(TRELLIS_PROGRAM_PREFIX "" CACHE STRING
"Trellis name prefix")
if(TRELLIS_PROGRAM_PREFIX)
if (TRELLIS_PROGRAM_PREFIX)
message(STATUS "Trellis program prefix: ${TRELLIS_PROGRAM_PREFIX}")
endif()
IF(DEFINED ENV{TRELLIS_INSTALL_PREFIX})
if (DEFINED ENV{TRELLIS_INSTALL_PREFIX})
set(trellis_default_install_prefix $ENV{TRELLIS_INSTALL_PREFIX})
ELSE()
else()
set(trellis_default_install_prefix ${CMAKE_INSTALL_PREFIX})
ENDIF()
endif()
set(TRELLIS_INSTALL_PREFIX ${trellis_default_install_prefix} CACHE STRING
"Trellis install prefix")
message(STATUS "Trellis install prefix: ${TRELLIS_INSTALL_PREFIX}")
if(NOT TRELLIS_LIBDIR)
if (NOT TRELLIS_LIBDIR)
# The pytrellis library isn't a normal shared library, but rather a native Python library;
# it does not follow the normal platform conventions for shared libraries, so we can't just
# use find_library() here. Instead, we emulate the useful parts of the find_library() logic
# for use with find_path().
set(pytrellis_paths)
foreach(prefix_path ${CMAKE_PREFIX_PATH})
foreach (prefix_path ${CMAKE_PREFIX_PATH})
list(APPEND pytrellis_paths ${prefix_path}/lib)
if(CMAKE_LIBRARY_ARCHITECTURE)
if (CMAKE_LIBRARY_ARCHITECTURE)
list(APPEND pytrellis_paths ${prefix_path}/lib/${CMAKE_LIBRARY_ARCHITECTURE})
endif()
endforeach()
list(APPEND pytrellis_paths ${CMAKE_LIBRARY_PATH})
if(NOT NO_CMAKE_SYSTEM_PATH)
foreach(prefix_path ${CMAKE_SYSTEM_PREFIX_PATH})
if (NOT NO_CMAKE_SYSTEM_PATH)
foreach (prefix_path ${CMAKE_SYSTEM_PREFIX_PATH})
list(APPEND pytrellis_paths ${prefix_path}/lib)
if(CMAKE_LIBRARY_ARCHITECTURE)
if (CMAKE_LIBRARY_ARCHITECTURE)
list(APPEND pytrellis_paths ${prefix_path}/lib/${CMAKE_LIBRARY_ARCHITECTURE})
endif()
endforeach()
@ -53,7 +53,7 @@ else()
endif()
message(STATUS "Searching for pytrellis in: ${pytrellis_paths}")
if(WIN32)
if (WIN32)
set(pytrellis_lib pytrellis.pyd)
else()
set(pytrellis_lib pytrellis${CMAKE_SHARED_MODULE_SUFFIX})
@ -64,21 +64,21 @@ else()
PATHS ${pytrellis_paths}
PATH_SUFFIXES ${TRELLIS_PROGRAM_PREFIX}trellis
DOC "Location of the pytrellis library")
if(NOT TRELLIS_LIBDIR)
if (NOT TRELLIS_LIBDIR)
message(FATAL_ERROR "Failed to locate the pytrellis library")
endif()
endif()
message(STATUS "Trellis library directory: ${TRELLIS_LIBDIR}")
if(NOT TRELLIS_DATADIR)
if (NOT TRELLIS_DATADIR)
set(TRELLIS_DATADIR ${TRELLIS_INSTALL_PREFIX}/share/${TRELLIS_PROGRAM_PREFIX}trellis)
endif()
message(STATUS "Trellis data directory: ${TRELLIS_DATADIR}")
set(all_device_bbas)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/chipdb)
foreach(device ${ECP5_DEVICES})
if(NOT device IN_LIST ALL_ECP5_DEVICES)
foreach (device ${ECP5_DEVICES})
if (NOT device IN_LIST ALL_ECP5_DEVICES)
message(FATAL_ERROR "Device ${device} is not a supported ECP5 device")
endif()
@ -102,7 +102,7 @@ else()
${PREVIOUS_CHIPDB_TARGET}
VERBATIM)
list(APPEND all_device_bbas ${device_bba})
if(SERIALIZE_CHIPDBS)
if (SERIALIZE_CHIPDBS)
set(PREVIOUS_CHIPDB_TARGET ${CMAKE_CURRENT_BINARY_DIR}/${device_bba})
endif()
endforeach()
@ -110,7 +110,7 @@ else()
add_custom_target(chipdb-ecp5-bbas ALL DEPENDS ${all_device_bbas})
get_directory_property(has_parent PARENT_DIRECTORY)
if(has_parent)
if (has_parent)
set(ECP5_CHIPDB ${CMAKE_CURRENT_BINARY_DIR}/chipdb PARENT_SCOPE)
# serialize chipdb build across multiple architectures
set(PREVIOUS_CHIPDB_TARGET chipdb-ecp5-bbas PARENT_SCOPE)

View File

@ -4,24 +4,24 @@ message(STATUS "Using ECP5 chipdb: ${ECP5_CHIPDB}")
set(chipdb_sources)
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb)
foreach(device ${ECP5_DEVICES})
foreach (device ${ECP5_DEVICES})
set(chipdb_bba ${ECP5_CHIPDB}/chipdb-${device}.bba)
set(chipdb_bin ${family}/chipdb/chipdb-${device}.bin)
set(chipdb_cc ${family}/chipdb/chipdb-${device}.cc)
if(BBASM_MODE STREQUAL "binary")
if (BBASM_MODE STREQUAL "binary")
add_custom_command(
OUTPUT ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${chipdb_bba} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "embed")
elseif (BBASM_MODE STREQUAL "embed")
add_custom_command(
OUTPUT ${chipdb_cc} ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --e ${chipdb_bba} ${chipdb_cc} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_sources ${chipdb_cc})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "string")
elseif (BBASM_MODE STREQUAL "string")
add_custom_command(
OUTPUT ${chipdb_cc}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --c ${chipdb_bba} ${chipdb_cc}
@ -29,12 +29,12 @@ foreach(device ${ECP5_DEVICES})
list(APPEND chipdb_sources ${chipdb_cc})
endif()
endforeach()
if(WIN32)
if (WIN32)
set(chipdb_rc ${CMAKE_CURRENT_BINARY_DIR}/${family}/resource/chipdb.rc)
list(APPEND chipdb_sources ${chipdb_rc})
file(WRITE ${chipdb_rc})
foreach(device ${ECP5_DEVICES})
foreach (device ${ECP5_DEVICES})
file(APPEND ${chipdb_rc}
"${family}/chipdb-${device}.bin RCDATA \"${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb/chipdb-${device}.bin\"")
endforeach()
@ -48,6 +48,6 @@ target_compile_options(chipdb-${family} PRIVATE -g0 -O0 -w)
target_compile_definitions(chipdb-${family} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family})
target_include_directories(chipdb-${family} PRIVATE ${family})
foreach(family_target ${family_targets})
foreach (family_target ${family_targets})
target_sources(${family_target} PRIVATE $<TARGET_OBJECTS:chipdb-${family}>)
endforeach()

View File

@ -1,7 +1,7 @@
set(VIADUCT_UARCHES "example" "okami" "fabulous")
foreach(uarch ${VIADUCT_UARCHES})
foreach (uarch ${VIADUCT_UARCHES})
aux_source_directory(${family}/viaduct/${uarch} UARCH_FILES)
foreach(target ${family_targets})
foreach (target ${family_targets})
target_sources(${target} PRIVATE ${UARCH_FILES})
endforeach()
endforeach(uarch)
endforeach()

View File

@ -9,7 +9,7 @@ message(STATUS "Enabled Gowin devices: ${GOWIN_DEVICES}")
find_program (GOWIN_BBA_EXECUTABLE gowin_bba)
message(STATUS "gowin_bba executable: ${GOWIN_BBA_EXECUTABLE}")
if(DEFINED GOWIN_CHIPDB)
if (DEFINED GOWIN_CHIPDB)
add_custom_target(chipdb-gowin-bbas ALL)
else()
# shared among all families
@ -18,8 +18,8 @@ else()
set(all_device_bbas)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/chipdb)
foreach(device ${GOWIN_DEVICES})
if(NOT device IN_LIST ALL_GOWIN_DEVICES)
foreach (device ${GOWIN_DEVICES})
if (NOT device IN_LIST ALL_GOWIN_DEVICES)
message(FATAL_ERROR "Device ${device} is not a supported Gowin device")
endif()
@ -35,7 +35,7 @@ else()
${CMAKE_CURRENT_SOURCE_DIR}/constids.inc
VERBATIM)
list(APPEND all_device_bbas ${device_bba})
if(SERIALIZE_CHIPDBS)
if (SERIALIZE_CHIPDBS)
set(PREVIOUS_CHIPDB_TARGET ${CMAKE_CURRENT_BINARY_DIR}/${device_bba})
endif()
endforeach()
@ -43,7 +43,7 @@ else()
add_custom_target(chipdb-gowin-bbas ALL DEPENDS ${all_device_bbas})
get_directory_property(has_parent PARENT_DIRECTORY)
if(has_parent)
if (has_parent)
set(GOWIN_CHIPDB ${CMAKE_CURRENT_BINARY_DIR}/chipdb PARENT_SCOPE)
# serialize chipdb build across multiple architectures
set(PREVIOUS_CHIPDB_TARGET chipdb-gowin-bbas PARENT_SCOPE)

View File

@ -4,24 +4,24 @@ message(STATUS "Using Gowin chipdb: ${GOWIN_CHIPDB}")
set(chipdb_sources)
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb)
foreach(device ${GOWIN_DEVICES})
foreach (device ${GOWIN_DEVICES})
set(chipdb_bba ${GOWIN_CHIPDB}/chipdb-${device}.bba)
set(chipdb_bin ${family}/chipdb/chipdb-${device}.bin)
set(chipdb_cc ${family}/chipdb/chipdb-${device}.cc)
if(BBASM_MODE STREQUAL "binary")
if (BBASM_MODE STREQUAL "binary")
add_custom_command(
OUTPUT ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${chipdb_bba} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "embed")
elseif (BBASM_MODE STREQUAL "embed")
add_custom_command(
OUTPUT ${chipdb_cc} ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --e ${chipdb_bba} ${chipdb_cc} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_sources ${chipdb_cc})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "string")
elseif (BBASM_MODE STREQUAL "string")
add_custom_command(
OUTPUT ${chipdb_cc}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --c ${chipdb_bba} ${chipdb_cc}
@ -29,12 +29,12 @@ foreach(device ${GOWIN_DEVICES})
list(APPEND chipdb_sources ${chipdb_cc})
endif()
endforeach()
if(WIN32)
if (WIN32)
set(chipdb_rc ${CMAKE_CURRENT_BINARY_DIR}/${family}/resource/chipdb.rc)
list(APPEND chipdb_sources ${chipdb_rc})
file(WRITE ${chipdb_rc})
foreach(device ${GOWIN_DEVICES})
foreach (device ${GOWIN_DEVICES})
file(APPEND ${chipdb_rc}
"${family}/chipdb-${device}.bin RCDATA \"${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb/chipdb-${device}.bin\"")
endforeach()
@ -48,6 +48,6 @@ target_compile_options(chipdb-${family} PRIVATE -g0 -O0 -w)
target_compile_definitions(chipdb-${family} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family})
target_include_directories(chipdb-${family} PRIVATE ${family})
foreach(family_target ${family_targets})
foreach (family_target ${family_targets})
target_sources(${family_target} PRIVATE $<TARGET_OBJECTS:chipdb-${family}>)
endforeach()

View File

@ -2,30 +2,30 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if (BUILD_PYTHON)
set(PYTHON_CONSOLE_SRC
../3rdparty/python-console/ColumnFormatter.cpp
../3rdparty/python-console/ParseHelper.cpp
../3rdparty/python-console/ParseHelper.BlockParseState.cpp
../3rdparty/python-console/ParseHelper.BracketParseState.cpp
../3rdparty/python-console/ParseHelper.ContinuationParseState.cpp
../3rdparty/python-console/ParseMessage.cpp
../3rdparty/python-console/modified/pyredirector.cc
../3rdparty/python-console/modified/pyinterpreter.cc
../3rdparty/imgui/imgui_widgets.cpp
../3rdparty/imgui/imgui_draw.cpp
../3rdparty/imgui/imgui.cpp
../3rdparty/imgui/imgui_demo.cpp
../3rdparty/qtimgui/ImGuiRenderer.cpp
../3rdparty/qtimgui/QtImGui.cpp
)
set(PYTHON_CONSOLE_SRC
../3rdparty/python-console/ColumnFormatter.cpp
../3rdparty/python-console/ParseHelper.cpp
../3rdparty/python-console/ParseHelper.BlockParseState.cpp
../3rdparty/python-console/ParseHelper.BracketParseState.cpp
../3rdparty/python-console/ParseHelper.ContinuationParseState.cpp
../3rdparty/python-console/ParseMessage.cpp
../3rdparty/python-console/modified/pyredirector.cc
../3rdparty/python-console/modified/pyinterpreter.cc
../3rdparty/imgui/imgui_widgets.cpp
../3rdparty/imgui/imgui_draw.cpp
../3rdparty/imgui/imgui.cpp
../3rdparty/imgui/imgui_demo.cpp
../3rdparty/qtimgui/ImGuiRenderer.cpp
../3rdparty/qtimgui/QtImGui.cpp
)
endif()
aux_source_directory(. GUI_SOURCE_FILES)
aux_source_directory(${family}/ GUI_SOURCE_FILES)
set(_RESOURCES base.qrc ${family}/nextpnr.qrc)
qt5_add_resources(GUI_RESOURCE_FILES ${_RESOURCES})
set(GUI_LIBRARY_FILES_${ufamily} Qt5::Widgets Qt5::OpenGL ${OPENGL_LIBRARIES} QtPropertyBrowser PARENT_SCOPE)
@ -43,6 +43,6 @@ target_compile_definitions(gui_${family} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${fam
target_link_libraries(gui_${family} Qt5::Widgets)
foreach(lib_dep ${EXTRA_LIB_DEPS})
foreach (lib_dep ${EXTRA_LIB_DEPS})
target_link_libraries(gui_${family} ${lib_dep})
endforeach()

View File

@ -3,22 +3,22 @@ set(HIMBAECHEL_UARCHES "example;gowin;xilinx;ng-ultra")
set(HIMBAECHEL_UARCH "${HIMBAECHEL_UARCHES}" CACHE STRING "Microarchitectures for nextpnr-himbaechel build")
set_property(CACHE HIMBAECHEL_UARCH PROPERTY STRINGS ${HIMBAECHEL_UARCHES})
foreach(item ${HIMBAECHEL_UARCH})
foreach (item ${HIMBAECHEL_UARCH})
if (NOT item IN_LIST HIMBAECHEL_UARCHES)
message(FATAL_ERROR "Microarchitecture '${item}' not in list of supported architectures")
endif()
endforeach()
foreach(uarch ${HIMBAECHEL_UARCH})
foreach (uarch ${HIMBAECHEL_UARCH})
add_subdirectory(${family}/uarch/${uarch})
aux_source_directory(${family}/uarch/${uarch} HM_UARCH_FILES)
foreach(target ${family_targets})
foreach (target ${family_targets})
target_sources(${target} PRIVATE ${HM_UARCH_FILES})
endforeach()
if (BUILD_TESTS)
foreach(target ${family_test_targets})
foreach (target ${family_test_targets})
aux_source_directory(${family}/uarch/${uarch}/tests/ HM_UARCH_TEST_FILES)
target_sources(${target} PRIVATE ${HM_UARCH_TEST_FILES})
endforeach()
endif()
endforeach(uarch)
endforeach()

View File

@ -9,7 +9,7 @@ message(STATUS "Enabled Himbaechel-Example devices: ${HIMBAECHEL_EXAMPLE_DEVICES
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/share/himbaechel/example)
foreach(device ${HIMBAECHEL_EXAMPLE_DEVICES})
foreach (device ${HIMBAECHEL_EXAMPLE_DEVICES})
set(device_bba ${CMAKE_BINARY_DIR}/share/himbaechel/example/chipdb-${device}.bba)
set(device_bin ${CMAKE_BINARY_DIR}/share/himbaechel/example/chipdb-${device}.bin)
add_custom_command(

View File

@ -5,17 +5,17 @@ project(himbaechel-gowin-chipdb NONE)
set(ALL_HIMBAECHEL_GOWIN_DEVICES GW1N-1 GW1NZ-1 GW1N-4 GW1N-9 GW1N-9C GW1NS-4 GW2A-18 GW2A-18C)
set(HIMBAECHEL_GOWIN_DEVICES "" CACHE STRING
"Include support for these Gowin devices (available: ${ALL_HIMBAECHEL_GOWIN_DEVICES})")
if(HIMBAECHEL_GOWIN_DEVICES STREQUAL "all")
if (HIMBAECHEL_GOWIN_DEVICES STREQUAL "all")
set(HIMBAECHEL_GOWIN_DEVICES ${ALL_HIMBAECHEL_GOWIN_DEVICES})
endif()
message(STATUS "Enabled Himbaechel-Gowin devices: ${HIMBAECHEL_GOWIN_DEVICES}")
if(DEFINED ENV{APYCULA_INSTALL_PREFIX})
if (DEFINED ENV{APYCULA_INSTALL_PREFIX})
set(apycula_default_install_prefix $ENV{APYCULA_INSTALL_PREFIX})
endif()
set(APYCULA_INSTALL_PREFIX ${apycula_default_install_prefix} CACHE STRING
"Apycula install prefix (virtualenv directory)")
if(NOT APYCULA_INSTALL_PREFIX STREQUAL "")
if (NOT APYCULA_INSTALL_PREFIX STREQUAL "")
message(STATUS "Apycula install prefix: ${APYCULA_INSTALL_PREFIX}")
set(apycula_Python3_EXECUTABLE ${APYCULA_INSTALL_PREFIX}/bin/python)
else()
@ -25,8 +25,8 @@ endif()
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/share/himbaechel/gowin)
foreach(device ${HIMBAECHEL_GOWIN_DEVICES})
if(NOT device IN_LIST ALL_HIMBAECHEL_GOWIN_DEVICES)
foreach (device ${HIMBAECHEL_GOWIN_DEVICES})
if (NOT device IN_LIST ALL_HIMBAECHEL_GOWIN_DEVICES)
message(FATAL_ERROR "Device ${device} is not a supported Gowin device")
endif()

View File

@ -11,8 +11,8 @@ set(HIMBAECHEL_PRJBEYOND_DB "" CACHE STRING
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/share/himbaechel/ng-ultra)
foreach(device ${HIMBAECHEL_NGULTRA_DEVICES})
if("${HIMBAECHEL_PRJBEYOND_DB}" STREQUAL "")
foreach (device ${HIMBAECHEL_NGULTRA_DEVICES})
if ("${HIMBAECHEL_PRJBEYOND_DB}" STREQUAL "")
message(SEND_ERROR "HIMBAECHEL_PRJBEYOND_DB must be set to a prjbeyond database checkout")
endif()

View File

@ -11,8 +11,8 @@ message(STATUS "Enabled Himbaechel-Xilinx devices: ${HIMBAECHEL_XILINX_DEVICES}"
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/share/himbaechel/xilinx)
foreach(device ${HIMBAECHEL_XILINX_DEVICES})
if("${HIMBAECHEL_PRJXRAY_DB}" STREQUAL "")
foreach (device ${HIMBAECHEL_XILINX_DEVICES})
if ("${HIMBAECHEL_PRJXRAY_DB}" STREQUAL "")
message(SEND_ERROR "HIMBAECHEL_PRJXRAY_DB must be set to a prjxray database checkout")
endif()

View File

@ -6,7 +6,7 @@ set(ICE40_DEVICES ${ALL_ICE40_DEVICES} CACHE STRING
"Include support for these iCE40 devices (available: ${ALL_ICE40_DEVICES})")
message(STATUS "Enabled iCE40 devices: ${ICE40_DEVICES}")
if(DEFINED ICE40_CHIPDB)
if (DEFINED ICE40_CHIPDB)
add_custom_target(chipdb-ice40-bbas ALL)
else()
# shared among all families
@ -15,37 +15,37 @@ else()
set(icestorm_default_install_prefix ${CMAKE_INSTALL_PREFIX})
# for compatibility with old build scripts
if(DEFINED ICEBOX_ROOT)
if (DEFINED ICEBOX_ROOT)
message(WARNING "-DICEBOX_ROOT= is deprecated, use -DICESTORM_INSTALL_PREFIX=${ICEBOX_ROOT} instead")
get_filename_component(dir ${ICEBOX_ROOT} DIRECTORY)
get_filename_component(dir ${dir} DIRECTORY)
set(icestorm_default_install_prefix ${dir})
elseif(DEFINED ENV{ICESTORM_INSTALL_PREFIX})
elseif (DEFINED ENV{ICESTORM_INSTALL_PREFIX})
set(icestorm_default_install_prefix $ENV{ICESTORM_INSTALL_PREFIX})
endif()
set(ICESTORM_INSTALL_PREFIX ${icestorm_default_install_prefix} CACHE STRING
"IceStorm install prefix")
message(STATUS "IceStorm install prefix: ${ICESTORM_INSTALL_PREFIX}")
if(NOT ICEBOX_DATADIR)
if (NOT ICEBOX_DATADIR)
set(ICEBOX_DATADIR ${ICESTORM_INSTALL_PREFIX}/share/icebox)
endif()
message(STATUS "icebox data directory: ${ICEBOX_DATADIR}")
set(all_device_bbas)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/chipdb)
foreach(device ${ICE40_DEVICES})
if(NOT device IN_LIST ALL_ICE40_DEVICES)
foreach (device ${ICE40_DEVICES})
if (NOT device IN_LIST ALL_ICE40_DEVICES)
message(FATAL_ERROR "Device ${device} is not a supported iCE40 device")
endif()
if(device STREQUAL "5k")
if (device STREQUAL "5k")
set(timing_opts
--slow ${ICEBOX_DATADIR}/timings_up5k.txt)
elseif(device STREQUAL "u4k")
elseif (device STREQUAL "u4k")
set(timing_opts
--slow ${ICEBOX_DATADIR}/timings_u4k.txt)
elseif(device STREQUAL "384")
elseif (device STREQUAL "384")
set(timing_opts
--slow ${ICEBOX_DATADIR}/timings_lp384.txt)
else()
@ -72,7 +72,7 @@ else()
${PREVIOUS_CHIPDB_TARGET}
VERBATIM)
list(APPEND all_device_bbas ${device_bba})
if(SERIALIZE_CHIPDBS)
if (SERIALIZE_CHIPDBS)
set(PREVIOUS_CHIPDB_TARGET ${CMAKE_CURRENT_BINARY_DIR}/${device_bba})
endif()
endforeach()
@ -80,7 +80,7 @@ else()
add_custom_target(chipdb-ice40-bbas ALL DEPENDS ${all_device_bbas})
get_directory_property(has_parent PARENT_DIRECTORY)
if(has_parent)
if (has_parent)
set(ICE40_CHIPDB ${CMAKE_CURRENT_BINARY_DIR}/chipdb PARENT_SCOPE)
# serialize chipdb build across multiple architectures
set(PREVIOUS_CHIPDB_TARGET chipdb-ice40-bbas PARENT_SCOPE)

View File

@ -4,24 +4,24 @@ message(STATUS "Using iCE40 chipdb: ${ICE40_CHIPDB}")
set(chipdb_sources)
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb)
foreach(device ${ICE40_DEVICES})
foreach (device ${ICE40_DEVICES})
set(chipdb_bba ${ICE40_CHIPDB}/chipdb-${device}.bba)
set(chipdb_bin ${family}/chipdb/chipdb-${device}.bin)
set(chipdb_cc ${family}/chipdb/chipdb-${device}.cc)
if(BBASM_MODE STREQUAL "binary")
if (BBASM_MODE STREQUAL "binary")
add_custom_command(
OUTPUT ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${chipdb_bba} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "embed")
elseif (BBASM_MODE STREQUAL "embed")
add_custom_command(
OUTPUT ${chipdb_cc} ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --e ${chipdb_bba} ${chipdb_cc} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_sources ${chipdb_cc})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "string")
elseif (BBASM_MODE STREQUAL "string")
add_custom_command(
OUTPUT ${chipdb_cc}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --c ${chipdb_bba} ${chipdb_cc}
@ -29,12 +29,12 @@ foreach(device ${ICE40_DEVICES})
list(APPEND chipdb_sources ${chipdb_cc})
endif()
endforeach()
if(WIN32)
if (WIN32)
set(chipdb_rc ${CMAKE_CURRENT_BINARY_DIR}/${family}/resource/chipdb.rc)
list(APPEND chipdb_sources ${chipdb_rc})
file(WRITE ${chipdb_rc})
foreach(device ${ICE40_DEVICES})
foreach (device ${ICE40_DEVICES})
file(APPEND ${chipdb_rc}
"${family}/chipdb-${device}.bin RCDATA \"${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb/chipdb-${device}.bin\"")
endforeach()
@ -48,6 +48,6 @@ target_compile_options(chipdb-${family} PRIVATE -g0 -O0 -w)
target_compile_definitions(chipdb-${family} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family})
target_include_directories(chipdb-${family} PRIVATE ${family})
foreach(family_target ${family_targets})
foreach (family_target ${family_targets})
target_sources(${family_target} PRIVATE $<TARGET_OBJECTS:chipdb-${family}>)
endforeach()

View File

@ -6,7 +6,7 @@ set(MACHXO2_DEVICES 1200 6900 CACHE STRING
"Include support for these MachXO2/XO3 devices (available: ${ALL_MACHXO2_DEVICES})")
message(STATUS "Enabled MachXO2/XO3 devices: ${MACHXO2_DEVICES}")
if(DEFINED MACHXO2_CHIPDB)
if (DEFINED MACHXO2_CHIPDB)
add_custom_target(chipdb-machxo2-bbas ALL)
else()
# shared among all families
@ -15,7 +15,7 @@ else()
set(TRELLIS_PROGRAM_PREFIX "" CACHE STRING
"Trellis name prefix")
if(TRELLIS_PROGRAM_PREFIX)
if (TRELLIS_PROGRAM_PREFIX)
message(STATUS "Trellis program prefix: ${TRELLIS_PROGRAM_PREFIX}")
endif()
@ -23,23 +23,23 @@ else()
"Trellis install prefix")
message(STATUS "Trellis install prefix: ${TRELLIS_INSTALL_PREFIX}")
if(NOT TRELLIS_LIBDIR)
if (NOT TRELLIS_LIBDIR)
# The pytrellis library isn't a normal shared library, but rather a native Python library;
# it does not follow the normal platform conventions for shared libraries, so we can't just
# use find_library() here. Instead, we emulate the useful parts of the find_library() logic
# for use with find_path().
set(pytrellis_paths)
foreach(prefix_path ${CMAKE_PREFIX_PATH})
foreach (prefix_path ${CMAKE_PREFIX_PATH})
list(APPEND pytrellis_paths ${prefix_path}/lib)
if(CMAKE_LIBRARY_ARCHITECTURE)
if (CMAKE_LIBRARY_ARCHITECTURE)
list(APPEND pytrellis_paths ${prefix_path}/lib/${CMAKE_LIBRARY_ARCHITECTURE})
endif()
endforeach()
list(APPEND pytrellis_paths ${CMAKE_LIBRARY_PATH})
if(NOT NO_CMAKE_SYSTEM_PATH)
foreach(prefix_path ${CMAKE_SYSTEM_PREFIX_PATH})
if (NOT NO_CMAKE_SYSTEM_PATH)
foreach (prefix_path ${CMAKE_SYSTEM_PREFIX_PATH})
list(APPEND pytrellis_paths ${prefix_path}/lib)
if(CMAKE_LIBRARY_ARCHITECTURE)
if (CMAKE_LIBRARY_ARCHITECTURE)
list(APPEND pytrellis_paths ${prefix_path}/lib/${CMAKE_LIBRARY_ARCHITECTURE})
endif()
endforeach()
@ -47,7 +47,7 @@ else()
endif()
message(STATUS "Searching for pytrellis in: ${pytrellis_paths}")
if(WIN32)
if (WIN32)
set(pytrellis_lib pytrellis.pyd)
else()
set(pytrellis_lib pytrellis${CMAKE_SHARED_MODULE_SUFFIX})
@ -58,21 +58,21 @@ else()
PATHS ${pytrellis_paths}
PATH_SUFFIXES ${TRELLIS_PROGRAM_PREFIX}trellis
DOC "Location of the pytrellis library")
if(NOT TRELLIS_LIBDIR)
if (NOT TRELLIS_LIBDIR)
message(FATAL_ERROR "Failed to locate the pytrellis library")
endif()
endif()
message(STATUS "Trellis library directory: ${TRELLIS_LIBDIR}")
if(NOT TRELLIS_DATADIR)
if (NOT TRELLIS_DATADIR)
set(TRELLIS_DATADIR ${TRELLIS_INSTALL_PREFIX}/share/${TRELLIS_PROGRAM_PREFIX}trellis)
endif()
message(STATUS "Trellis data directory: ${TRELLIS_DATADIR}")
set(all_device_bbas)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/chipdb)
foreach(device ${MACHXO2_DEVICES})
if(NOT device IN_LIST ALL_MACHXO2_DEVICES)
foreach (device ${MACHXO2_DEVICES})
if (NOT device IN_LIST ALL_MACHXO2_DEVICES)
message(FATAL_ERROR "Device ${device} is not a supported MachXO2/XO3 device")
endif()
@ -96,7 +96,7 @@ else()
${PREVIOUS_CHIPDB_TARGET}
VERBATIM)
list(APPEND all_device_bbas ${device_bba})
if(SERIALIZE_CHIPDBS)
if (SERIALIZE_CHIPDBS)
set(PREVIOUS_CHIPDB_TARGET ${CMAKE_CURRENT_BINARY_DIR}/${device_bba})
endif()
endforeach()
@ -104,7 +104,7 @@ else()
add_custom_target(chipdb-machxo2-bbas ALL DEPENDS ${all_device_bbas})
get_directory_property(has_parent PARENT_DIRECTORY)
if(has_parent)
if (has_parent)
set(MACHXO2_CHIPDB ${CMAKE_CURRENT_BINARY_DIR}/chipdb PARENT_SCOPE)
# serialize chipdb build across multiple architectures
set(PREVIOUS_CHIPDB_TARGET chipdb-machxo2-bbas PARENT_SCOPE)

View File

@ -4,24 +4,24 @@ message(STATUS "Using MachXO2/XO3 chipdb: ${MACHXO2_CHIPDB}")
set(chipdb_sources)
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb)
foreach(device ${MACHXO2_DEVICES})
foreach (device ${MACHXO2_DEVICES})
set(chipdb_bba ${MACHXO2_CHIPDB}/chipdb-${device}.bba)
set(chipdb_bin ${family}/chipdb/chipdb-${device}.bin)
set(chipdb_cc ${family}/chipdb/chipdb-${device}.cc)
if(BBASM_MODE STREQUAL "binary")
if (BBASM_MODE STREQUAL "binary")
add_custom_command(
OUTPUT ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${chipdb_bba} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "embed")
elseif (BBASM_MODE STREQUAL "embed")
add_custom_command(
OUTPUT ${chipdb_cc} ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --e ${chipdb_bba} ${chipdb_cc} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_sources ${chipdb_cc})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "string")
elseif (BBASM_MODE STREQUAL "string")
add_custom_command(
OUTPUT ${chipdb_cc}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --c ${chipdb_bba} ${chipdb_cc}
@ -29,12 +29,12 @@ foreach(device ${MACHXO2_DEVICES})
list(APPEND chipdb_sources ${chipdb_cc})
endif()
endforeach()
if(WIN32)
if (WIN32)
set(chipdb_rc ${CMAKE_CURRENT_BINARY_DIR}/${family}/resource/chipdb.rc)
list(APPEND chipdb_sources ${chipdb_rc})
file(WRITE ${chipdb_rc})
foreach(device ${MACHXO2_DEVICES})
foreach (device ${MACHXO2_DEVICES})
file(APPEND ${chipdb_rc}
"${family}/chipdb-${device}.bin RCDATA \"${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb/chipdb-${device}.bin\"")
endforeach()
@ -50,7 +50,7 @@ target_include_directories(chipdb-${family} PRIVATE ${family})
configure_file(${family}/machxo2_available.h.in ${CMAKE_CURRENT_BINARY_DIR}/generated/machxo2_available.h)
foreach(family_target ${family_targets})
foreach (family_target ${family_targets})
target_sources(${family_target} PRIVATE $<TARGET_OBJECTS:chipdb-${family}>)
target_sources(${family_target} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/generated/machxo2_available.h)
endforeach()

View File

@ -7,7 +7,7 @@ add_subdirectory(${MISTRAL_ROOT}/libmistral ${CMAKE_CURRENT_BINARY_DIR}/libmistr
find_package(LibLZMA REQUIRED)
foreach(family_target ${family_targets})
foreach (family_target ${family_targets})
target_include_directories(${family_target} PRIVATE ${MISTRAL_ROOT}/libmistral ${CMAKE_CURRENT_BINARY_DIR}/tools ${CMAKE_CURRENT_BINARY_DIR}/libmistral ${LIBLZMA_INCLUDE_DIRS})
target_link_libraries(${family_target} PRIVATE mistral ${LIBLZMA_LIBRARIES})
endforeach()

View File

@ -9,23 +9,23 @@ set(NEXUS_FAMILIES ${ALL_NEXUS_FAMILIES} CACHE STRING
"Include support for these Nexus families (available: ${ALL_NEXUS_FAMILIES})")
message(STATUS "Enabled Nexus families: ${NEXUS_FAMILIES}")
if(DEFINED NEXUS_CHIPDB)
if (DEFINED NEXUS_CHIPDB)
add_custom_target(chipdb-nexus-bbas ALL)
else()
# shared among all families
IF(DEFINED ENV{OXIDE_INSTALL_PREFIX})
if (DEFINED ENV{OXIDE_INSTALL_PREFIX})
set(oxide_default_install_prefix $ENV{OXIDE_INSTALL_PREFIX})
ELSE()
else()
set(oxide_default_install_prefix ${CMAKE_INSTALL_PREFIX})
ENDIF()
endif()
set(OXIDE_INSTALL_PREFIX "${oxide_default_install_prefix}" CACHE STRING
"prjoxide install prefix")
message(STATUS "prjoxide install prefix: ${OXIDE_INSTALL_PREFIX}")
set(all_device_bbas)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/chipdb)
foreach(subfamily ${NEXUS_FAMILIES})
if(NOT subfamily IN_LIST ALL_NEXUS_FAMILIES)
foreach (subfamily ${NEXUS_FAMILIES})
if (NOT subfamily IN_LIST ALL_NEXUS_FAMILIES)
message(FATAL_ERROR "${subfamily} is not a supported Nexus family")
endif()
@ -33,7 +33,7 @@ else()
set(PRJOXIDE_TOOL ${OXIDE_INSTALL_PREFIX}/bin/prjoxide)
add_custom_command(
OUTPUT ${family_bba}
COMMAND
COMMAND
${PRJOXIDE_TOOL} bba-export ${subfamily} ${CMAKE_CURRENT_SOURCE_DIR}/constids.inc ${family_bba}.new
# atomically update
COMMAND ${CMAKE_COMMAND} -E rename ${family_bba}.new ${family_bba}
@ -44,7 +44,7 @@ else()
${PREVIOUS_CHIPDB_TARGET}
VERBATIM)
list(APPEND all_device_bbas ${family_bba})
if(SERIALIZE_CHIPDBS)
if (SERIALIZE_CHIPDBS)
set(PREVIOUS_CHIPDB_TARGET ${CMAKE_CURRENT_BINARY_DIR}/${family_bba})
endif()
endforeach()
@ -52,7 +52,7 @@ else()
add_custom_target(chipdb-nexus-bbas ALL DEPENDS ${all_device_bbas})
get_directory_property(has_parent PARENT_DIRECTORY)
if(has_parent)
if (has_parent)
set(NEXUS_CHIPDB ${CMAKE_CURRENT_BINARY_DIR}/chipdb PARENT_SCOPE)
# serialize chipdb build across multiple architectures
set(PREVIOUS_CHIPDB_TARGET chipdb-nexus-bbas PARENT_SCOPE)

View File

@ -4,24 +4,24 @@ message(STATUS "Using Nexus chipdb: ${NEXUS_CHIPDB}")
set(chipdb_sources)
set(chipdb_binaries)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb)
foreach(subfamily ${NEXUS_FAMILIES})
foreach (subfamily ${NEXUS_FAMILIES})
set(chipdb_bba ${NEXUS_CHIPDB}/chipdb-${subfamily}.bba)
set(chipdb_bin ${family}/chipdb/chipdb-${subfamily}.bin)
set(chipdb_cc ${family}/chipdb/chipdb-${subfamily}.cc)
if(BBASM_MODE STREQUAL "binary")
if (BBASM_MODE STREQUAL "binary")
add_custom_command(
OUTPUT ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${chipdb_bba} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "embed")
elseif (BBASM_MODE STREQUAL "embed")
add_custom_command(
OUTPUT ${chipdb_cc} ${chipdb_bin}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --e ${chipdb_bba} ${chipdb_cc} ${chipdb_bin}
DEPENDS bbasm chipdb-${family}-bbas ${chipdb_bba})
list(APPEND chipdb_sources ${chipdb_cc})
list(APPEND chipdb_binaries ${chipdb_bin})
elseif(BBASM_MODE STREQUAL "string")
elseif (BBASM_MODE STREQUAL "string")
add_custom_command(
OUTPUT ${chipdb_cc}
COMMAND bbasm ${BBASM_ENDIAN_FLAG} --c ${chipdb_bba} ${chipdb_cc}
@ -29,12 +29,12 @@ foreach(subfamily ${NEXUS_FAMILIES})
list(APPEND chipdb_sources ${chipdb_cc})
endif()
endforeach()
if(WIN32)
if (WIN32)
set(chipdb_rc ${CMAKE_CURRENT_BINARY_DIR}/${family}/resource/chipdb.rc)
list(APPEND chipdb_sources ${chipdb_rc})
file(WRITE ${chipdb_rc})
foreach(subfamily ${NEXUS_FAMILIES})
foreach (subfamily ${NEXUS_FAMILIES})
file(APPEND ${chipdb_rc}
"${family}/chipdb-${subfamily}.bin RCDATA \"${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb/chipdb-${subfamily}.bin\"")
endforeach()
@ -48,6 +48,6 @@ target_compile_options(chipdb-${family} PRIVATE -g0 -O0 -w)
target_compile_definitions(chipdb-${family} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family})
target_include_directories(chipdb-${family} PRIVATE ${family})
foreach(family_target ${family_targets})
foreach (family_target ${family_targets})
target_sources(${family_target} PRIVATE $<TARGET_OBJECTS:chipdb-${family}>)
endforeach()