Skip to content

Commit e8f87c9

Browse files
committed
Use /Os for x86 build on Windows
1 parent 95c504e commit e8f87c9

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

LegacyFindPackages.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,11 @@ if (MSVC)
270270
string(REGEX REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
271271
string(REGEX REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
272272
string(REGEX REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
273+
if (NOT CMAKE_CL_64)
274+
# When building with a 32-bit cl.exe, the virtual address space is limited to 2GB, which could be
275+
# reached with /O2 optimization. Use /Os for smaller code size.
276+
string(REGEX REPLACE "/O2" "/Os" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
277+
endif ()
273278
message(STATUS "CMAKE_CXX_FLAGS_DEBUG: " ${CMAKE_CXX_FLAGS_DEBUG})
274279
message(STATUS "CMAKE_CXX_FLAGS_RELEASE: " ${CMAKE_CXX_FLAGS_RELEASE})
275280
message(STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO: " ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})

0 commit comments

Comments
 (0)