@@ -12,6 +12,8 @@ foreach(var ${vars})
1212 get_property (currentHelpString CACHE "${var} " PROPERTY HELPSTRING )
1313 if ("${var} " MATCHES "STAGE0_(.*)" )
1414 list (APPEND STAGE0_ARGS "-D${CMAKE_MATCH_1} =${${var} }" )
15+ elseif ("${var} " MATCHES "STAGE1_(.*)" )
16+ list (APPEND STAGE1_ARGS "-D${CMAKE_MATCH_1} =${${var} }" )
1517 elseif ("${currentHelpString} " MATCHES "No help, variable specified on the command line." OR "${currentHelpString} " STREQUAL "" )
1618 list (APPEND CL_ARGS "-D${var} =${${var} }" )
1719 if ("${var} " MATCHES "USE_GMP|CHECK_OLEAN_VERSION" )
@@ -77,26 +79,29 @@ if (USE_MIMALLOC)
7779 list (APPEND EXTRA_DEPENDS mimalloc)
7880endif ()
7981
80- ExternalProject_add (stage0
81- SOURCE_DIR "${LEAN_SOURCE_DIR} /stage0"
82- SOURCE_SUBDIR src
83- BINARY_DIR stage0
84- # do not rebuild stage0 when git hash changes; it's not from this commit anyway
85- # (however, CI will override this as we need to embed the githash into the stage 1 library built
86- # by stage 0)
87- CMAKE_ARGS -DSTAGE=0 -DUSE_GITHASH=OFF ${PLATFORM_ARGS} ${STAGE0_ARGS}
88- BUILD_ALWAYS ON # cmake doesn't auto-detect changes without a download method
89- INSTALL_COMMAND "" # skip install
90- DEPENDS ${EXTRA_DEPENDS}
91- )
82+ if (NOT STAGE1_PREV_STAGE)
83+ ExternalProject_add (stage0
84+ SOURCE_DIR "${LEAN_SOURCE_DIR} /stage0"
85+ SOURCE_SUBDIR src
86+ BINARY_DIR stage0
87+ # do not rebuild stage0 when git hash changes; it's not from this commit anyway
88+ # (however, CI will override this as we need to embed the githash into the stage 1 library built
89+ # by stage 0)
90+ CMAKE_ARGS -DSTAGE=0 -DUSE_GITHASH=OFF ${PLATFORM_ARGS} ${STAGE0_ARGS}
91+ BUILD_ALWAYS ON # cmake doesn't auto-detect changes without a download method
92+ INSTALL_COMMAND "" # skip install
93+ DEPENDS ${EXTRA_DEPENDS}
94+ )
95+ list (APPEND EXTRA_DEPENDS stage0)
96+ endif ()
9297ExternalProject_add (stage1
9398 SOURCE_DIR "${LEAN_SOURCE_DIR} "
9499 SOURCE_SUBDIR src
95100 BINARY_DIR stage1
96- CMAKE_ARGS -DSTAGE=1 -DPREV_STAGE=${CMAKE_BINARY_DIR} /stage0 -DPREV_STAGE_CMAKE_EXECUTABLE_SUFFIX=${STAGE0_CMAKE_EXECUTABLE_SUFFIX} ${CL_ARGS}
101+ CMAKE_ARGS -DSTAGE=1 -DPREV_STAGE=${CMAKE_BINARY_DIR} /stage0 -DPREV_STAGE_CMAKE_EXECUTABLE_SUFFIX=${STAGE0_CMAKE_EXECUTABLE_SUFFIX} ${CL_ARGS} ${STAGE1_ARGS}
97102 BUILD_ALWAYS ON
98103 INSTALL_COMMAND ""
99- DEPENDS stage0
104+ DEPENDS ${EXTRA_DEPENDS}
100105 STEP_TARGETS configure
101106)
102107ExternalProject_add (stage2
0 commit comments