[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:
Max Paperno
2017-03-29 15:46:48 +02:00
committed by Bertrand Songis
parent 6709c55fea
commit 3eb39ddac2
4 changed files with 25 additions and 0 deletions
+1
View File
@@ -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)
+1
View File
@@ -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)
+22
View File
@@ -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)