CMake: reformat for consistency.
Normalize keywords to: if (...) elseif (...) else() endif() foreach (...) endforeach() other(...) Normalize whitespace to 4 spaces.
This commit is contained in:
parent
c48157aa4b
commit
d214308f5f
@ -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}")
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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(
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user