diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | bba/bba.cmake | 12 | ||||
| -rw-r--r-- | ice40/family.cmake | 21 | 
4 files changed, 32 insertions, 5 deletions
| @@ -25,3 +25,5 @@ build/  /Testing/*  CTestTestfile.cmake  install_manifest.txt +/bbasm +/ImportExecutables.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index c8ee6805..55e57763 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,6 +167,8 @@ if(MINGW)      add_definitions("-Wa,-mbig-obj")  endif(MINGW) +include(bba/bba.cmake) +  foreach (family ${ARCH})      message(STATUS "Configuring architecture : ${family}")      string(TOUPPER ${family} ufamily) diff --git a/bba/bba.cmake b/bba/bba.cmake new file mode 100644 index 00000000..4bb9ea0e --- /dev/null +++ b/bba/bba.cmake @@ -0,0 +1,12 @@ +IF(CMAKE_CROSSCOMPILING) +    SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Point it to the export file from a native build") +    INCLUDE(${IMPORT_EXECUTABLES}) +ENDIF(CMAKE_CROSSCOMPILING) + +IF(NOT CMAKE_CROSSCOMPILING) +    ADD_EXECUTABLE(bbasm bba/main.cc) +ENDIF(NOT CMAKE_CROSSCOMPILING) + +IF(NOT CMAKE_CROSSCOMPILING) +    EXPORT(TARGETS bbasm FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake ) +ENDIF(NOT CMAKE_CROSSCOMPILING) diff --git a/ice40/family.cmake b/ice40/family.cmake index 9af06f82..95cdf331 100644 --- a/ice40/family.cmake +++ b/ice40/family.cmake @@ -19,13 +19,18 @@ if (MSVC)      set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ice40/resources/chipdb.rc PROPERTIES LANGUAGE RC)      foreach (dev ${devices})          set(DEV_TXT_DB ${ICEBOX_ROOT}/chipdb-${dev}.txt) +        set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ice40/chipdbs/chipdb-${dev}.bba)          set(DEV_CC_DB ${CMAKE_CURRENT_SOURCE_DIR}/ice40/chipdbs/chipdb-${dev}.bin)          set(DEV_PORTS_INC ${CMAKE_CURRENT_SOURCE_DIR}/ice40/portpins.inc)          set(DEV_GFXH ${CMAKE_CURRENT_SOURCE_DIR}/ice40/gfx.h) -        add_custom_command(OUTPUT ${DEV_CC_DB} -                COMMAND ${PYTHON_EXECUTABLE} ${DB_PY} -b -p ${DEV_PORTS_INC} -g ${DEV_GFXH} ${DEV_TXT_DB} > ${DEV_CC_DB} +        add_custom_command(OUTPUT ${DEV_CC_BBA_DB} +                COMMAND ${PYTHON_EXECUTABLE} ${DB_PY} -b -p ${DEV_PORTS_INC} -g ${DEV_GFXH} ${DEV_TXT_DB} > ${DEV_CC_BBA_DB}                  DEPENDS ${DEV_TXT_DB} ${DB_PY}                  ) +        add_custom_command(OUTPUT ${DEV_CC_DB} +                COMMAND bbasm < ${DEV_CC_BBA_DB} > ${DEV_CC_DB} +                DEPENDS bbasm ${DEV_CC_BBA_DB} +        )          target_sources(ice40_chipdb PRIVATE ${DEV_CC_DB})          set_source_files_properties(${DEV_CC_DB} PROPERTIES HEADER_FILE_ONLY TRUE)          foreach (target ${family_targets}) @@ -36,14 +41,20 @@ else()      target_compile_options(ice40_chipdb PRIVATE -g0 -O0 -w)      foreach (dev ${devices})          set(DEV_TXT_DB ${ICEBOX_ROOT}/chipdb-${dev}.txt) +        set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ice40/chipdbs/chipdb-${dev}.bba)          set(DEV_CC_DB ${CMAKE_CURRENT_SOURCE_DIR}/ice40/chipdbs/chipdb-${dev}.cc)          set(DEV_PORTS_INC ${CMAKE_CURRENT_SOURCE_DIR}/ice40/portpins.inc)          set(DEV_GFXH ${CMAKE_CURRENT_SOURCE_DIR}/ice40/gfx.h) +        add_custom_command(OUTPUT ${DEV_CC_BBA_DB} +                COMMAND ${PYTHON_EXECUTABLE} ${DB_PY} -c -p ${DEV_PORTS_INC} -g ${DEV_GFXH} ${DEV_TXT_DB} > ${DEV_CC_BBA_DB}.new +                COMMAND mv ${DEV_CC_BBA_DB}.new ${DEV_CC_BBA_DB} +                DEPENDS ${DEV_TXT_DB} ${DB_PY} +        )          add_custom_command(OUTPUT ${DEV_CC_DB} -                COMMAND ${PYTHON_EXECUTABLE} ${DB_PY} -c -p ${DEV_PORTS_INC} -g ${DEV_GFXH} ${DEV_TXT_DB} > ${DEV_CC_DB}.new +                COMMAND bbasm < ${DEV_CC_BBA_DB} > ${DEV_CC_DB}.new                  COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB} -                DEPENDS ${DEV_TXT_DB} ${DB_PY} -                ) +                DEPENDS bbasm ${DEV_CC_BBA_DB} +        )          target_sources(ice40_chipdb PRIVATE ${DEV_CC_DB})          foreach (target ${family_targets})              target_sources(${target} PRIVATE $<TARGET_OBJECTS:ice40_chipdb>) | 
