Skip to content

Commit f889b9d

Browse files
committed
fix: build with CMAKE_CXX_STANDARD:STRING=11 on linux
The CMake test suite doesn't pass when using the default detection mechanism on manylinux2014. The CMake test suite is now run when building from sources.
1 parent 308fb0f commit f889b9d

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

CMakeLists.txt

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,13 @@ set(CMAKE_EXE_LINKER_FLAGS \"-lstdc++ -lgcc -lrt\" CACHE STRING \"Initial cache\
261261
message(STATUS "SuperBuild - CMakeProject-build - OPENSSL_ROOT_DIR: ${OPENSSL_ROOT_DIR}")
262262
endif()
263263

264+
if(DEFINED CMAKE_CXX_STANDARD)
265+
list(APPEND _cmake_cache_args
266+
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
267+
)
268+
message(STATUS "SuperBuild - CMakeProject-build - CMAKE_CXX_STANDARD: ${CMAKE_CXX_STANDARD}")
269+
endif()
270+
264271
ExternalProject_add(CMakeProject-build
265272
SOURCE_DIR ${CMakeProject_SOURCE_DIR}
266273
BINARY_DIR ${CMakeProject_BINARY_DIR}
@@ -271,7 +278,7 @@ set(CMAKE_EXE_LINKER_FLAGS \"-lstdc++ -lgcc -lrt\" CACHE STRING \"Initial cache\
271278
CMAKE_CACHE_ARGS
272279
-DBUILD_CursesDialog:BOOL=OFF
273280
-DCMAKE_USE_OPENSSL:BOOL=ON
274-
-DBUILD_TESTING:BOOL=OFF
281+
-DBUILD_TESTING:BOOL=ON
275282
-DCMake_INSTALL_DEPENDENCIES:BOOL=ON
276283
-DCMAKE_INSTALL_MESSAGE:STRING=NEVER
277284
${_common_cache_args}
@@ -285,6 +292,8 @@ set(CMAKE_EXE_LINKER_FLAGS \"-lstdc++ -lgcc -lrt\" CACHE STRING \"Initial cache\
285292
LibUV
286293
)
287294

295+
set(CMAKEPROJECT_BUILD_LAST_STEP "build")
296+
288297
find_program(STRIP_EXECUTABLE strip)
289298
if(STRIP_EXECUTABLE)
290299

@@ -293,13 +302,24 @@ set(CMAKE_EXE_LINKER_FLAGS \"-lstdc++ -lgcc -lrt\" CACHE STRING \"Initial cache\
293302
set(ctest_executable "${CMakeProject_BINARY_DIR}/bin/ctest")
294303

295304
ExternalProject_Add_Step(CMakeProject-build strip_executables
296-
DEPENDEES build
305+
DEPENDEES ${CMAKEPROJECT_BUILD_LAST_STEP}
297306
COMMENT "Stripping CMake executables"
298307
COMMAND ${STRIP_EXECUTABLE} ${cmake_executable}
299308
COMMAND ${STRIP_EXECUTABLE} ${cpack_executable}
300309
COMMAND ${STRIP_EXECUTABLE} ${ctest_executable}
310+
USES_TERMINAL 1
301311
)
312+
set(CMAKEPROJECT_BUILD_LAST_STEP "strip_executables")
302313
endif()
314+
# TODO probably want to make this conditional
315+
ExternalProject_Add_Step(CMakeProject-build run_cmake_test_suite
316+
DEPENDEES ${CMAKEPROJECT_BUILD_LAST_STEP}
317+
COMMENT "Running CMake test suite"
318+
COMMAND ./bin/ctest --force-new-ctest-process --stop-on-failure --output-on-failure -j2 -E BootstrapTest
319+
WORKING_DIRECTORY ${CMakeProject_BINARY_DIR}
320+
USES_TERMINAL 1
321+
)
322+
set(CMAKEPROJECT_BUILD_LAST_STEP "run_cmake_test_suite")
303323
else()
304324
cpd_ExternalProject_Add_Empty(CMakeProject-build "CMakeProject-src-download")
305325
endif()

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ before-all = [
3030
]
3131

3232
[tool.cibuildwheel.linux.environment]
33-
SKBUILD_CONFIGURE_OPTIONS = "-DOPENSSL_ROOT_DIR:PATH=/usr/local/ssl -DCMAKE_JOB_POOL_COMPILE:STRING=compile -DCMAKE_JOB_POOL_LINK:STRING=link -DCMAKE_JOB_POOLS:STRING=compile=2;link=1"
33+
SKBUILD_CONFIGURE_OPTIONS = "-DCMAKE_CXX_STANDARD:STRING=11 -DOPENSSL_ROOT_DIR:PATH=/usr/local/ssl -DCMAKE_JOB_POOL_COMPILE:STRING=compile -DCMAKE_JOB_POOL_LINK:STRING=link -DCMAKE_JOB_POOLS:STRING=compile=2;link=1"
3434

3535
[tool.cibuildwheel.macos.environment]
3636
MACOSX_DEPLOYMENT_TARGET = "10.10"

0 commit comments

Comments
 (0)