From fe767f531425400c73f0f83d3789bd4076cc4062 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Fri, 20 Feb 2026 11:08:30 -0800 Subject: [PATCH] Only enable cmake response files on windows This matches GCC and Clang do on in upstream/native CMake toolchains do: ``` Modules/Platform/Emscripten-Clang.cmake: set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) Modules/Platform/Windows-Clang.cmake: set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) Modules/Platform/Windows-Embarcadero.cmake: set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) Modules/Platform/Windows-GNU.cmake: set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1) ``` i.e. GCC and Clang don't use these settings except on windows. --- cmake/Modules/Platform/Emscripten.cmake | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cmake/Modules/Platform/Emscripten.cmake b/cmake/Modules/Platform/Emscripten.cmake index 90e58037750be..293aad9f76358 100644 --- a/cmake/Modules/Platform/Emscripten.cmake +++ b/cmake/Modules/Platform/Emscripten.cmake @@ -268,12 +268,15 @@ endif() set(CMAKE_EXECUTABLE_SUFFIX ".js") -set(CMAKE_C_USE_RESPONSE_FILE_FOR_LIBRARIES 1) -set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_LIBRARIES 1) -set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) -set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1) -set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1) -set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 1) +if (CMAKE_HOST_WIN32) + # See https://github.com/emscripten-core/emscripten/issues/2386 + set(CMAKE_C_USE_RESPONSE_FILE_FOR_LIBRARIES 1) + set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_LIBRARIES 1) + set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) + set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1) + set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1) + set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 1) +endif() set(CMAKE_C_RESPONSE_FILE_LINK_FLAG "@") set(CMAKE_CXX_RESPONSE_FILE_LINK_FLAG "@")