Compare commits

...

7 Commits

Author SHA1 Message Date
Dylan Conway
c48af06195 remove from link flags 2024-05-07 14:00:59 -07:00
Dylan Conway
74a246b763 Merge branch 'main' into jarred/tweak-lto-settings-windows 2024-05-07 12:58:39 -07:00
Jarred Sumner
beafd2dfb8 /DEBUG:FULL doesn't work 2024-05-06 18:20:41 -07:00
Jarred Sumner
04cd201efc Update CMakeLists.txt 2024-05-06 17:46:51 -07:00
Jarred Sumner
c9ef82c176 Update CMakeLists.txt 2024-05-06 17:21:36 -07:00
Jarred Sumner
aecf3ee5e1 Merge branch 'main' into jarred/tweak-lto-settings-windows 2024-05-06 17:20:02 -07:00
Jarred Sumner
78c67cb545 Tweak LTO settings on Windows 2024-04-29 16:17:58 -07:00

View File

@@ -1062,10 +1062,27 @@ elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
# -emit-llvm seems to not be supported or under a different name on Windows.
list(APPEND LTO_FLAG "-flto=full")
list(APPEND LTO_LINK_FLAG "/LTCG")
list(APPEND LTO_LINK_FLAG "/OPT:REF")
list(APPEND LTO_LINK_FLAG "/OPT:ICF")
list(APPEND LTO_LINK_FLAG "/OPT:ICF=10")
endif()
target_compile_options(${bun} PUBLIC /O2 ${LTO_FLAG} /DEBUG:FULL)
target_link_options(${bun} PUBLIC ${LTO_LINK_FLAG} /DEBUG:FULL)
target_compile_options(${bun} PUBLIC /DEBUG /O2 ${LTO_FLAG} /Gy /Gw /GF /GL /GA)
target_link_options(${bun} PUBLIC /DEBUG ${LTO_LINK_FLAG}
/OPT:REF
/OPT:ICF
/OPT:ICF=10
/delayload:ole32.dll
/delayload:WINMM.dll
/delayload:dbghelp.dll
/delayload:VCRUNTIME140_1.dll
# libuv loads these two immediately, but for some reason it seems to still be slightly faster to delayload them
/delayload:WS2_32.dll
/delayload:WSOCK32.dll
/delayload:ADVAPI32.dll
/delayload:IPHLPAPI.dll
)
endif()
endif()
@@ -1099,7 +1116,7 @@ if(WIN32)
# set_property(TARGET ${bun} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded")
set_property(TARGET ${bun} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
target_compile_options(${bun} PUBLIC "/EHsc" "/GR-")
target_compile_options(${bun} PUBLIC "/GR-")
target_link_options(${bun} PUBLIC "/STACK:0x1200000,0x100000")
else()
target_compile_options(${bun} PUBLIC
@@ -1414,6 +1431,7 @@ else()
userenv
dbghelp
wsock32 # ws2_32 required by TransmitFile aka sendfile on windows
delayimp.lib
)
endif()