@@ -10,22 +10,22 @@ option(USE_MIMALLOC "use mimalloc" ON)
1010get_cmake_property (vars CACHE_VARIABLES )
1111foreach (var ${vars} )
1212 get_property (currentHelpString CACHE "${var} " PROPERTY HELPSTRING )
13- if (" ${ var} " MATCHES "STAGE0_(.*)" )
13+ if (var MATCHES "STAGE0_(.*)" )
1414 list (APPEND STAGE0_ARGS "-D${CMAKE_MATCH_1} =${${var} }" )
15- elseif (" ${ var} " MATCHES "STAGE1_(.*)" )
15+ elseif (var MATCHES "STAGE1_(.*)" )
1616 list (APPEND STAGE1_ARGS "-D${CMAKE_MATCH_1} =${${var} }" )
17- elseif (" ${ currentHelpString} " MATCHES "No help, variable specified on the command line." OR " ${ currentHelpString} " STREQUAL "" )
17+ elseif (currentHelpString MATCHES "No help, variable specified on the command line." OR currentHelpString STREQUAL "" )
1818 list (APPEND CL_ARGS "-D${var} =${${var} }" )
19- if (" ${ var} " MATCHES "USE_GMP|CHECK_OLEAN_VERSION|LEAN_VERSION_.*|LEAN_SPECIAL_VERSION_DESC" )
19+ if (var MATCHES "USE_GMP|CHECK_OLEAN_VERSION|LEAN_VERSION_.*|LEAN_SPECIAL_VERSION_DESC" )
2020 # must forward options that generate incompatible .olean format
2121 list (APPEND STAGE0_ARGS "-D${var} =${${var} }" )
22- elseif (" ${ var} " MATCHES "LLVM*|PKG_CONFIG|USE_LAKE|USE_MIMALLOC" )
22+ elseif (var MATCHES "LLVM*|PKG_CONFIG|USE_LAKE|USE_MIMALLOC" )
2323 list (APPEND STAGE0_ARGS "-D${var} =${${var} }" )
2424 endif ()
25- elseif (" ${ var} " MATCHES "USE_MIMALLOC" )
25+ elseif (var MATCHES "USE_MIMALLOC" )
2626 list (APPEND CL_ARGS "-D${var} =${${var} }" )
2727 list (APPEND STAGE0_ARGS "-D${var} =${${var} }" )
28- elseif ((" ${ var} " MATCHES "CMAKE_.*" ) AND NOT (" ${ var} " MATCHES "CMAKE_BUILD_TYPE" ) AND NOT (" ${ var} " MATCHES "CMAKE_HOME_DIRECTORY" ))
28+ elseif ((var MATCHES "CMAKE_.*" ) AND NOT (var MATCHES "CMAKE_BUILD_TYPE" ) AND NOT (var MATCHES "CMAKE_HOME_DIRECTORY" ))
2929 list (APPEND PLATFORM_ARGS "-D${var} =${${var} }" )
3030 endif ()
3131endforeach ()
@@ -34,15 +34,15 @@ include(ExternalProject)
3434project (LEAN CXX C)
3535
3636if (NOT (DEFINED STAGE0_CMAKE_EXECUTABLE_SUFFIX))
37- set (STAGE0_CMAKE_EXECUTABLE_SUFFIX "${CMAKE_EXECUTABLE_SUFFIX} " )
37+ set (STAGE0_CMAKE_EXECUTABLE_SUFFIX "${CMAKE_EXECUTABLE_SUFFIX} " )
3838endif ()
3939
4040# Don't do anything with cadical on wasm
41- if (NOT ${ CMAKE_SYSTEM_NAME} MATCHES "Emscripten" )
41+ if (NOT CMAKE_SYSTEM_NAME MATCHES "Emscripten" )
4242 find_program (CADICAL cadical)
4343 if (NOT CADICAL)
4444 set (CADICAL_CXX c++)
45- if (CADICAL_USE_CUSTOM_CXX)
45+ if (CADICAL_USE_CUSTOM_CXX)
4646 set (CADICAL_CXX ${CMAKE_CXX_COMPILER} )
4747 # Use same platform flags as for Lean executables, in particular from `prepare-llvm-linux.sh`,
4848 # but not Lean-specific `LEAN_EXTRA_CXX_FLAGS` such as fsanitize.
@@ -54,81 +54,101 @@ if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
5454 set (CADICAL_CXX "${CCACHE} ${CADICAL_CXX} " )
5555 endif ()
5656 # missing stdio locking API on Windows
57- if (${ CMAKE_SYSTEM_NAME} MATCHES "Windows" )
57+ if (CMAKE_SYSTEM_NAME MATCHES "Windows" )
5858 string (APPEND CADICAL_CXXFLAGS " -DNUNLOCKED" )
5959 endif ()
6060 string (APPEND CADICAL_CXXFLAGS " -DNCLOSEFROM" )
61- ExternalProject_add(cadical
61+ ExternalProject_Add(
62+ cadical
6263 PREFIX cadical
6364 GIT_REPOSITORY https://github.com/arminbiere/cadical
6465 GIT_TAG rel-2.1.2
6566 CONFIGURE_COMMAND ""
66- BUILD_COMMAND $(MAKE) -f ${CMAKE_SOURCE_DIR} /src/cadical.mk
67- CMAKE_EXECUTABLE_SUFFIX =${CMAKE_EXECUTABLE_SUFFIX}
68- CXX=${CADICAL_CXX}
69- CXXFLAGS=${CADICAL_CXXFLAGS}
70- LDFLAGS=${CADICAL_LDFLAGS}
67+ BUILD_COMMAND
68+ $(MAKE) -f ${CMAKE_SOURCE_DIR} /src/cadical.mk CMAKE_EXECUTABLE_SUFFIX =${CMAKE_EXECUTABLE_SUFFIX}
69+ CXX=${CADICAL_CXX} CXXFLAGS=${CADICAL_CXXFLAGS} LDFLAGS=${CADICAL_LDFLAGS}
7170 BUILD_IN_SOURCE ON
72- INSTALL_COMMAND "" )
73- set (CADICAL ${CMAKE_BINARY_DIR} /cadical/cadical${CMAKE_EXECUTABLE_SUFFIX} CACHE FILEPATH "path to cadical binary" FORCE)
71+ INSTALL_COMMAND ""
72+ )
73+ set (
74+ CADICAL
75+ ${CMAKE_BINARY_DIR} /cadical/cadical${CMAKE_EXECUTABLE_SUFFIX}
76+ CACHE FILEPATH
77+ "path to cadical binary"
78+ FORCE
79+ )
7480 list (APPEND EXTRA_DEPENDS cadical)
7581 endif ()
7682 list (APPEND CL_ARGS -DCADICAL=${CADICAL} )
7783endif ()
7884
79- if (USE_MIMALLOC)
80- ExternalProject_add(mimalloc
85+ if (USE_MIMALLOC)
86+ ExternalProject_Add(
87+ mimalloc
8188 PREFIX mimalloc
8289 GIT_REPOSITORY https://github.com/microsoft/mimalloc
8390 GIT_TAG v2.2.3
8491 # just download, we compile it as part of each stage as it is small
8592 CONFIGURE_COMMAND ""
8693 BUILD_COMMAND ""
87- INSTALL_COMMAND "" )
94+ INSTALL_COMMAND ""
95+ )
8896 list (APPEND EXTRA_DEPENDS mimalloc)
8997endif ()
9098
91- if (NOT STAGE1_PREV_STAGE)
92- ExternalProject_add(stage0
99+ if (NOT STAGE1_PREV_STAGE)
100+ ExternalProject_Add(
101+ stage0
93102 SOURCE_DIR "${LEAN_SOURCE_DIR} /stage0"
94103 SOURCE_SUBDIR src
95104 BINARY_DIR stage0
96105 # do not rebuild stage0 when git hash changes; it's not from this commit anyway
97106 # (however, CI will override this as we need to embed the githash into the stage 1 library built
98107 # by stage 0)
99108 CMAKE_ARGS -DSTAGE=0 -DUSE_GITHASH=OFF ${PLATFORM_ARGS} ${STAGE0_ARGS}
100- BUILD_ALWAYS ON # cmake doesn't auto-detect changes without a download method
101- INSTALL_COMMAND "" # skip install
109+ BUILD_ALWAYS
110+ ON # cmake doesn't auto-detect changes without a download method
111+ INSTALL_COMMAND
112+ "" # skip install
102113 DEPENDS ${EXTRA_DEPENDS}
103114 )
104115 list (APPEND EXTRA_DEPENDS stage0)
105116endif ()
106- ExternalProject_add(stage1
117+ ExternalProject_Add(
118+ stage1
107119 SOURCE_DIR "${LEAN_SOURCE_DIR} "
108120 SOURCE_SUBDIR src
109121 BINARY_DIR stage1
110- CMAKE_ARGS -DSTAGE=1 -DPREV_STAGE=${CMAKE_BINARY_DIR} /stage0 -DPREV_STAGE_CMAKE_EXECUTABLE_SUFFIX=${STAGE0_CMAKE_EXECUTABLE_SUFFIX} ${CL_ARGS} ${STAGE1_ARGS}
122+ CMAKE_ARGS
123+ -DSTAGE=1 -DPREV_STAGE=${CMAKE_BINARY_DIR} /stage0
124+ -DPREV_STAGE_CMAKE_EXECUTABLE_SUFFIX=${STAGE0_CMAKE_EXECUTABLE_SUFFIX} ${CL_ARGS} ${STAGE1_ARGS}
111125 BUILD_ALWAYS ON
112126 INSTALL_COMMAND ""
113127 DEPENDS ${EXTRA_DEPENDS}
114128 STEP_TARGETS configure
115129)
116- ExternalProject_add(stage2
130+ ExternalProject_Add(
131+ stage2
117132 SOURCE_DIR "${LEAN_SOURCE_DIR} "
118133 SOURCE_SUBDIR src
119134 BINARY_DIR stage2
120- CMAKE_ARGS -DSTAGE=2 -DPREV_STAGE=${CMAKE_BINARY_DIR} /stage1 -DPREV_STAGE_CMAKE_EXECUTABLE_SUFFIX=${CMAKE_EXECUTABLE_SUFFIX} ${CL_ARGS}
135+ CMAKE_ARGS
136+ -DSTAGE=2 -DPREV_STAGE=${CMAKE_BINARY_DIR} /stage1 -DPREV_STAGE_CMAKE_EXECUTABLE_SUFFIX=${CMAKE_EXECUTABLE_SUFFIX}
137+ ${CL_ARGS}
121138 BUILD_ALWAYS ON
122139 INSTALL_COMMAND ""
123140 DEPENDS stage1
124141 EXCLUDE_FROM_ALL ON
125142 STEP_TARGETS configure
126143)
127- ExternalProject_add(stage3
144+ ExternalProject_Add(
145+ stage3
128146 SOURCE_DIR "${LEAN_SOURCE_DIR} "
129147 SOURCE_SUBDIR src
130148 BINARY_DIR stage3
131- CMAKE_ARGS -DSTAGE=3 -DPREV_STAGE=${CMAKE_BINARY_DIR} /stage2 -DPREV_STAGE_CMAKE_EXECUTABLE_SUFFIX=${CMAKE_EXECUTABLE_SUFFIX} ${CL_ARGS}
149+ CMAKE_ARGS
150+ -DSTAGE=3 -DPREV_STAGE=${CMAKE_BINARY_DIR} /stage2 -DPREV_STAGE_CMAKE_EXECUTABLE_SUFFIX=${CMAKE_EXECUTABLE_SUFFIX}
151+ ${CL_ARGS}
132152 BUILD_ALWAYS ON
133153 INSTALL_COMMAND ""
134154 DEPENDS stage2
@@ -137,24 +157,14 @@ ExternalProject_add(stage3
137157
138158# targets forwarded to appropriate stages
139159
140- add_custom_target (update-stage0
141- COMMAND $(MAKE) -C stage1 update-stage0
142- DEPENDS stage1)
160+ add_custom_target (update-stage0 COMMAND $(MAKE) -C stage1 update-stage0 DEPENDS stage1)
143161
144- add_custom_target (update-stage0-commit
145- COMMAND $(MAKE) -C stage1 update-stage0-commit
146- DEPENDS stage1)
162+ add_custom_target (update-stage0-commit COMMAND $(MAKE) -C stage1 update-stage0-commit DEPENDS stage1)
147163
148- add_custom_target (test
149- COMMAND $(MAKE) -C stage1 test
150- DEPENDS stage1)
164+ add_custom_target (test COMMAND $(MAKE) -C stage1 test DEPENDS stage1)
151165
152- add_custom_target (clean-stdlib
153- COMMAND $(MAKE) -C stage1 clean-stdlib
154- DEPENDS stage1)
166+ add_custom_target (clean-stdlib COMMAND $(MAKE) -C stage1 clean-stdlib DEPENDS stage1)
155167
156168install (CODE "execute_process(COMMAND make -C stage1 install)" )
157169
158- add_custom_target (check-stage3
159- COMMAND diff "stage2/bin/lean" "stage3/bin/lean"
160- DEPENDS stage3)
170+ add_custom_target (check-stage3 COMMAND diff "stage2/bin/lean" "stage3/bin/lean" DEPENDS stage3)
0 commit comments