@@ -164,50 +164,7 @@ if(CMakePythonDistributions_SUPERBUILD)
164164 #
165165 if (NOT DEFINED CMakeProject_BINARY_DIR )
166166
167- # cache arguments common to LibUV and CMake
168- set (_common_cache_args)
169- if (DEFINED CMAKE_BUILD_TYPE )
170- list (APPEND _common_cache_args
171- -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
172- )
173- endif ()
174- if (DEFINED CMAKE_TOOLCHAIN_FILE)
175- list (APPEND _common_cache_args
176- -DCMAKE_TOOLCHAIN_FILE:STRING =${CMAKE_TOOLCHAIN_FILE}
177- )
178- endif ()
179- foreach (var_name IN ITEMS
180- CMAKE_BUILD_PARALLEL_LEVEL
181- CMAKE_JOB_POOLS
182- CMAKE_JOB_POOL_COMPILE
183- CMAKE_JOB_POOL_LINK
184- )
185- if (DEFINED ${var_name} )
186- list (APPEND _common_cache_args
187- -D${var_name} :STRING =${${var_name} }
188- )
189- message (STATUS "SuperBuild - CMakeProject-build - ${var_name} : ${${var_name} }" )
190- endif ()
191- endforeach ()
192-
193- set (_common_args )
194- if (UNIX AND (NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" ))
195- # Since CMAKE_C_FLAGS and CMAKE_EXE_LINKER_FLAGS arguments contain spaces, we generate an initial
196- # cache file.
197- file (WRITE "${CMAKE_BINARY_DIR} /initial-cache.txt"
198- "set(CMAKE_C_FLAGS \" -D_POSIX_C_SOURCE=199506L -D_POSIX_SOURCE=1 -D_SVID_SOURCE=1 -D_BSD_SOURCE=1\" CACHE STRING \" Initial cache\" FORCE)
199- set(CMAKE_EXE_LINKER_FLAGS \" -lstdc++ -lgcc -lrt\" CACHE STRING \" Initial cache\" FORCE)
200- " )
201- set (_common_args
202- CMAKE_ARGS -C "${CMAKE_BINARY_DIR} /initial-cache.txt"
203- )
204- endif ()
205-
206- # cache arguments for CMake
207- set (_cmake_cache_args)
208-
209- # libuv / glibc check
210- set (UseCustomLibUV OFF )
167+ # glibc check
211168 if (UNIX AND NOT APPLE )
212169 # as of CMake 3.23.0, the minimum supported version of libuv is 1.28.0.
213170 # this implies that the minimum supported glibc version is 2.12
@@ -221,43 +178,36 @@ set(CMAKE_EXE_LINKER_FLAGS \"-lstdc++ -lgcc -lrt\" CACHE STRING \"Initial cache\
221178 execute_process (COMMAND echo __GLIBC_MINOR__ COMMAND "${CMAKE_CXX_COMPILER} " -E -P -imacros stdlib.h - OUTPUT_VARIABLE GLIBC_MINOR_)
222179 string (STRIP "${GLIBC_MINOR_} " GLIBC_MINOR)
223180 if ("${GLIBC_MAJOR} .${GLIBC_MINOR} " VERSION_LESS "2.12" )
224- # set(UseCustomLibUV ON)
225181 message (FATAL_ERROR "GLIBC ${GLIBC_MAJOR} .${GLIBC_MINOR} not supported" )
226182 endif ()
227183 endif ()
228184 endif ()
229- if (UseCustomLibUV)
230- set (LibUV_SOURCE_DIR ${CMAKE_BINARY_DIR} /LibUV-src)
231- set (LibUV_BINARY_DIR ${CMAKE_BINARY_DIR} /LibUV-build )
232- set (LibUV_INSTALL_DIR ${CMAKE_BINARY_DIR} /LibUV-install )
233-
234- ExternalProject_add(LibUV
235- SOURCE_DIR ${LibUV_SOURCE_DIR}
236- BINARY_DIR ${LibUV_BINARY_DIR}
237- URL "https://dist.libuv.org/dist/v1.23.0/libuv-v1.23.0.tar.gz"
238- URL_HASH "SHA256=d1746d324dea973d9f4c7ff40ba9cf60556c0bae9a92ad970568211b0e3bce27"
239- DOWNLOAD_DIR ${CMakePythonDistributions_ARCHIVE_DOWNLOAD_DIR}
240- ${_common_args}
241- CMAKE_CACHE_ARGS
242- ${_common_cache_args}
243- -DCMAKE_INSTALL_PREFIX:PATH =${LibUV_INSTALL_DIR}
244- -DCMAKE_INSTALL_LIBDIR:STRING =lib
245- USES_TERMINAL_CONFIGURE 1
246- USES_TERMINAL_BUILD 1
247- ${ep_log_configure_build_args}
248- INSTALL_DIR ${LibUV_INSTALL_DIR}
185+
186+ # cmake cache arguments
187+ set (_cmake_cache_args)
188+ if (DEFINED CMAKE_BUILD_TYPE )
189+ list (APPEND _cmake_cache_args
190+ -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
249191 )
192+ endif ()
193+ if (DEFINED CMAKE_TOOLCHAIN_FILE)
250194 list (APPEND _cmake_cache_args
251- -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV:BOOL =ON
252- -DLibUV_LIBRARY:FILEPATH =${LibUV_INSTALL_DIR} /lib/libuv_a.a
253- -DLibUV_INCLUDE_DIR:PATH =${LibUV_INSTALL_DIR} /include
195+ -DCMAKE_TOOLCHAIN_FILE:STRING =${CMAKE_TOOLCHAIN_FILE}
254196 )
255- else ()
256- cpd_ExternalProject_Add_Empty(LibUV "" )
257197 endif ()
258-
259- # cmake
260- set (CMakeProject_BINARY_DIR ${CMAKE_BINARY_DIR} /CMakeProject-build )
198+ foreach (var_name IN ITEMS
199+ CMAKE_BUILD_PARALLEL_LEVEL
200+ CMAKE_JOB_POOLS
201+ CMAKE_JOB_POOL_COMPILE
202+ CMAKE_JOB_POOL_LINK
203+ )
204+ if (DEFINED ${var_name} )
205+ list (APPEND _cmake_cache_args
206+ -D${var_name} :STRING =${${var_name} }
207+ )
208+ message (STATUS "SuperBuild - CMakeProject-build - ${var_name} : ${${var_name} }" )
209+ endif ()
210+ endforeach ()
261211
262212 if (DEFINED OPENSSL_ROOT_DIR)
263213 list (APPEND _cmake_cache_args
@@ -273,28 +223,42 @@ set(CMAKE_EXE_LINKER_FLAGS \"-lstdc++ -lgcc -lrt\" CACHE STRING \"Initial cache\
273223 message (STATUS "SuperBuild - CMakeProject-build - CMAKE_CXX_STANDARD: ${CMAKE_CXX_STANDARD} " )
274224 endif ()
275225
226+ set (_cmake_args )
227+ if (UNIX AND (NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" ))
228+ # Since CMAKE_C_FLAGS and CMAKE_EXE_LINKER_FLAGS arguments contain spaces, we generate an initial
229+ # cache file.
230+ file (WRITE "${CMAKE_BINARY_DIR} /initial-cache.txt"
231+ "set(CMAKE_C_FLAGS \" -D_POSIX_C_SOURCE=199506L -D_POSIX_SOURCE=1 -D_SVID_SOURCE=1 -D_BSD_SOURCE=1\" CACHE STRING \" Initial cache\" FORCE)
232+ set(CMAKE_EXE_LINKER_FLAGS \" -lstdc++ -lgcc -lrt\" CACHE STRING \" Initial cache\" FORCE)
233+ " )
234+ set (_cmake_args
235+ CMAKE_ARGS -C "${CMAKE_BINARY_DIR} /initial-cache.txt"
236+ )
237+ endif ()
238+
239+ # cmake
240+ set (CMakeProject_BINARY_DIR ${CMAKE_BINARY_DIR} /CMakeProject-build )
241+
276242 ExternalProject_add(CMakeProject-build
277243 SOURCE_DIR ${CMakeProject_SOURCE_DIR}
278244 BINARY_DIR ${CMakeProject_BINARY_DIR}
279245 DOWNLOAD_COMMAND ""
280246 UPDATE_COMMAND ""
281247 BUILD_ALWAYS 1
282- ${_common_args }
248+ ${_cmake_args }
283249 CMAKE_CACHE_ARGS
284250 -DBUILD_CursesDialog:BOOL =OFF
285251 -DCMAKE_USE_OPENSSL:BOOL =ON
286252 -DBUILD_TESTING:BOOL =ON
287253 -DCMake_INSTALL_DEPENDENCIES:BOOL =ON
288254 -DCMAKE_INSTALL_MESSAGE:STRING =NEVER
289- ${_common_cache_args}
290255 ${_cmake_cache_args}
291256 USES_TERMINAL_CONFIGURE 1
292257 USES_TERMINAL_BUILD 1
293258 ${ep_log_configure_build_args}
294259 INSTALL_COMMAND ""
295260 DEPENDS
296261 CMakeProject-src-download
297- LibUV
298262 )
299263
300264 set (CMAKEPROJECT_BUILD_LAST_STEP "build" )
0 commit comments