Skip to content

Commit c214752

Browse files
committed
fix: avoid really slow compile on emscripten
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 7ab88d2 commit c214752

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

tools/pybind11Common.cmake

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -292,21 +292,24 @@ function(_pybind11_generate_lto target prefer_thin_lto)
292292
set(cxx_append ";-fno-fat-lto-objects")
293293
endif()
294294

295-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le" OR CMAKE_SYSTEM_PROCESSOR MATCHES "mips64")
296-
set(NO_FLTO_ARCH TRUE)
295+
if(prefer_thin_lto)
296+
set(thin "=thin")
297297
else()
298-
set(NO_FLTO_ARCH FALSE)
298+
set(thin "")
299299
endif()
300300

301-
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang"
302-
AND prefer_thin_lto
303-
AND NOT NO_FLTO_ARCH)
301+
if(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le" OR CMAKE_SYSTEM_PROCESSOR MATCHES "mips64")
302+
# Do nothing
303+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES emscripten)
304+
# This compile is very costly when cross-compiling, so set this without checking
305+
set(PYBIND11_LTO_CXX_FLAGS "-flto${thin}${cxx_append}")
306+
set(PYBIND11_LTO_LINKER_FLAGS "-flto${thin}${linker_append}")
307+
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
304308
_pybind11_return_if_cxx_and_linker_flags_work(
305-
HAS_FLTO_THIN "-flto=thin${cxx_append}" "-flto=thin${linker_append}"
309+
HAS_FLTO_THIN "-flto${thin}${cxx_append}" "-flto=${thin}${linker_append}"
306310
PYBIND11_LTO_CXX_FLAGS PYBIND11_LTO_LINKER_FLAGS)
307311
endif()
308-
309-
if(NOT HAS_FLTO_THIN AND NOT NO_FLTO_ARCH)
312+
if(DEFINED HAS_FLTO_THIN AND NOT HAS_FLTO_THIN)
310313
_pybind11_return_if_cxx_and_linker_flags_work(
311314
HAS_FLTO "-flto${cxx_append}" "-flto${linker_append}" PYBIND11_LTO_CXX_FLAGS
312315
PYBIND11_LTO_LINKER_FLAGS)

0 commit comments

Comments
 (0)