[build] Add "all-libsimulators" target to build all simulator flavors at once. (#4710)
* [build] Add "all-libsimulators" target to build all simulator flavors at once. * [build] Refine the "all simulators" target setup and deal with GNU 'make' parallelism issue (ninja=faster); rename to "all-simu-libs".
This commit is contained in:
committed by
Bertrand Songis
parent
6709c55fea
commit
3eb39ddac2
@@ -96,6 +96,7 @@ elseif(PCB STREQUAL 9X2561)
|
||||
set(MCU atmega2561)
|
||||
string(TOLOWER ${PCB} FLAVOUR)
|
||||
set(EEPROM EEPROM_RLC)
|
||||
set(SDCARD NO)
|
||||
add_definitions(-DEEPROM_VARIANT=${M2561_VARIANT})
|
||||
set(GUI_DIR 128x64)
|
||||
set(TARGET_DIR 9x)
|
||||
|
||||
@@ -6,6 +6,7 @@ set(AVRDUDE_MCU m64)
|
||||
string(TOLOWER ${PCB} FLAVOUR)
|
||||
set(EEPROM_VARIANT_NEEDED ON)
|
||||
set(EEPROM EEPROM_RLC)
|
||||
set(SDCARD NO)
|
||||
set(GUI_DIR 128x64)
|
||||
set(TARGET_DIR 9x)
|
||||
set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} 9x_bitmaps)
|
||||
|
||||
@@ -4,6 +4,7 @@ set(AVRDUDE_MCU m2560)
|
||||
string(TOLOWER ${PCB} FLAVOUR)
|
||||
set(EEPROM EEPROM_RLC)
|
||||
add_definitions(-DEEPROM_VARIANT=0)
|
||||
set(SDCARD NO)
|
||||
set(GUI_DIR 128x64)
|
||||
set(TARGET_DIR gruvin9x)
|
||||
set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} 9x_bitmaps)
|
||||
|
||||
@@ -32,6 +32,28 @@ if(Qt5Widgets_FOUND)
|
||||
target_link_libraries(${SIMULATOR_TARGET} ${SDL_LIBRARY})
|
||||
qt5_use_modules(${SIMULATOR_TARGET} Core)
|
||||
add_custom_target(libsimulator DEPENDS ${SIMULATOR_TARGET})
|
||||
|
||||
# Prepare the "all-simu-libs" target to build simulator libraries for *every* supported PCB type (PCB_TYPES list)
|
||||
# (a fast build machine or corresponding amount of patience is recommended for this target).
|
||||
if(${CMAKE_GENERATOR} MATCHES ".*Unix Makefiles$")
|
||||
# Ensure parallel builds with GCC make (try with MAKEFLAGS but this seems to be getting clobbered somewhere).
|
||||
# otherwise 'make' may complain: "warning: jobserver unavailable: using -j1..." and build single-threaded. (Ninja always rocks this.)
|
||||
set(mkflags "$ENV{MAKEFLAGS}")
|
||||
if (mkflags STREQUAL "")
|
||||
set(mkflags "-j")
|
||||
endif()
|
||||
endif()
|
||||
set(all_libs_cmd ${CMAKE_COMMAND} -E echo "Building all simulator libraries")
|
||||
foreach(pcb ${PCB_TYPES})
|
||||
set(pcbrev "")
|
||||
if(pcb STREQUAL SKY9X)
|
||||
set(pcbrev "-DPCBREV=REVC")
|
||||
elseif(pcb STREQUAL X12S)
|
||||
set(pcbrev "-DPCBREV=13")
|
||||
endif()
|
||||
set(all_libs_cmd ${all_libs_cmd} && ${CMAKE_COMMAND} -DPCB=${pcb} ${pcbrev} -Wno-dev ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} && ${CMAKE_COMMAND} --build . --target libsimulator -- ${mkflags})
|
||||
endforeach()
|
||||
add_custom_target(all-simu-libs COMMAND ${all_libs_cmd} USES_TERMINAL WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
|
||||
Reference in New Issue
Block a user