aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5
diff options
context:
space:
mode:
authorwhitequark <whitequark@whitequark.org>2019-06-26 21:31:24 +0000
committerwhitequark <whitequark@whitequark.org>2019-06-26 21:31:24 +0000
commit1b3c8ea9c1384882063203f35f0f66f60025f62c (patch)
tree755f98529f884b7f7b8180e6175bdffcf31782d8 /ecp5
parent640285755e4c59eb14c8664e10a62653f2892e15 (diff)
downloadnextpnr-1b3c8ea9c1384882063203f35f0f66f60025f62c.tar.gz
nextpnr-1b3c8ea9c1384882063203f35f0f66f60025f62c.tar.bz2
nextpnr-1b3c8ea9c1384882063203f35f0f66f60025f62c.zip
CMake: serialize chipdb generation by default.
Fixes #296.
Diffstat (limited to 'ecp5')
-rw-r--r--ecp5/family.cmake12
1 files changed, 10 insertions, 2 deletions
diff --git a/ecp5/family.cmake b/ecp5/family.cmake
index 22ded412..596f0924 100644
--- a/ecp5/family.cmake
+++ b/ecp5/family.cmake
@@ -35,18 +35,22 @@ if (NOT EXTERNAL_CHIPDB)
if (MSVC)
target_sources(ecp5_chipdb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/resource/embed.cc)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ecp5/resources/chipdb.rc PROPERTIES LANGUAGE RC)
+ set(PREV_DEV_CC_BBA_DB)
foreach (dev ${devices})
set(DEV_CC_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bin)
set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bba)
set(DEV_CONSTIDS_INC ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/constids.inc)
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
COMMAND ${ENV_CMD} python3 ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB}
- DEPENDS ${DB_PY}
+ DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB}
)
add_custom_command(OUTPUT ${DEV_CC_DB}
COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB}
DEPENDS bbasm ${DEV_CC_BBA_DB}
)
+ if (SERIALIZE_CHIPDB)
+ set(PREV_DEV_CC_BBA_DB ${DEV_CC_BBA_DB})
+ endif()
target_sources(ecp5_chipdb PRIVATE ${DEV_CC_DB})
set_source_files_properties(${DEV_CC_DB} PROPERTIES HEADER_FILE_ONLY TRUE)
foreach (target ${family_targets})
@@ -55,6 +59,7 @@ if (NOT EXTERNAL_CHIPDB)
endforeach()
else()
target_compile_options(ecp5_chipdb PRIVATE -g0 -O0 -w)
+ set(PREV_DEV_CC_BBA_DB)
foreach (dev ${devices})
set(DEV_CC_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.cc)
set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bba)
@@ -62,13 +67,16 @@ if (NOT EXTERNAL_CHIPDB)
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
COMMAND ${ENV_CMD} python3 ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB}.new
COMMAND mv ${DEV_CC_BBA_DB}.new ${DEV_CC_BBA_DB}
- DEPENDS ${DB_PY}
+ DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB}
)
add_custom_command(OUTPUT ${DEV_CC_DB}
COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB}
DEPENDS bbasm ${DEV_CC_BBA_DB}
)
+ if (SERIALIZE_CHIPDB)
+ set(PREV_DEV_CC_BBA_DB ${DEV_CC_BBA_DB})
+ endif()
target_sources(ecp5_chipdb PRIVATE ${DEV_CC_DB})
foreach (target ${family_targets})
target_sources(${target} PRIVATE $<TARGET_OBJECTS:ecp5_chipdb>)