Skip to content

Commit bab6bef

Browse files
committed
Revert "[roottest] Remove sequential compilation with Ninja."
This reverts commit e8519e4. Since a week, I experienced several corrupted incremental builds and tests. I strongly suspect this commit to be the reason. Indeed launching Ninja concurrently that need to build a dependency will execute the same command multiple times, leading to potentially corrupted files. In principle, the same problem applies to Makefiles but there we use the /fast targets and ignore outdated dependencies.
1 parent fb74a41 commit bab6bef

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

roottest/cmake/modules/RoottestMacros.cmake

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,9 @@ macro(ROOTTEST_COMPILE_MACRO filename)
264264
set_property(TEST ${COMPILE_MACRO_TEST} PROPERTY FAIL_REGULAR_EXPRESSION "Warning in")
265265
endif()
266266
set_property(TEST ${COMPILE_MACRO_TEST} PROPERTY ENVIRONMENT ${ROOTTEST_ENVIRONMENT})
267+
if(CMAKE_GENERATOR MATCHES Ninja AND NOT MSVC)
268+
set_property(TEST ${COMPILE_MACRO_TEST} PROPERTY RUN_SERIAL true)
269+
endif()
267270
if (ARG_FIXTURES_SETUP)
268271
set_property(TEST ${COMPILE_MACRO_TEST} PROPERTY
269272
FIXTURES_SETUP ${ARG_FIXTURES_SETUP})
@@ -367,6 +370,9 @@ macro(ROOTTEST_GENERATE_DICTIONARY dictname)
367370
-- ${always-make})
368371

369372
set_property(TEST ${GENERATE_DICTIONARY_TEST} PROPERTY ENVIRONMENT ${ROOTTEST_ENVIRONMENT})
373+
if(CMAKE_GENERATOR MATCHES Ninja AND NOT MSVC)
374+
set_property(TEST ${GENERATE_DICTIONARY_TEST} PROPERTY RUN_SERIAL true)
375+
endif()
370376

371377
if (ARG_FIXTURES_SETUP)
372378
set_property(TEST ${GENERATE_DICTIONARY_TEST} PROPERTY
@@ -481,6 +487,9 @@ macro(ROOTTEST_GENERATE_REFLEX_DICTIONARY dictionary)
481487
-- ${always-make})
482488

483489
set_property(TEST ${GENERATE_REFLEX_TEST} PROPERTY ENVIRONMENT ${ROOTTEST_ENVIRONMENT})
490+
if(CMAKE_GENERATOR MATCHES Ninja AND NOT MSVC)
491+
set_property(TEST ${GENERATE_REFLEX_TEST} PROPERTY RUN_SERIAL true)
492+
endif()
484493

485494
if (ARG_FIXTURES_SETUP)
486495
set_property(TEST ${GENERATE_REFLEX_TEST} PROPERTY
@@ -600,6 +609,10 @@ macro(ROOTTEST_GENERATE_EXECUTABLE executable)
600609
RESOURCE_LOCK ${ARG_RESOURCE_LOCK})
601610
endif()
602611

612+
if(CMAKE_GENERATOR MATCHES Ninja AND NOT MSVC)
613+
set_property(TEST ${GENERATE_EXECUTABLE_TEST} PROPERTY RUN_SERIAL true)
614+
endif()
615+
603616
if(MSVC AND NOT CMAKE_GENERATOR MATCHES Ninja)
604617
add_custom_command(TARGET ${executable} POST_BUILD
605618
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${executable}.exe

0 commit comments

Comments
 (0)