Skip to content

Commit a431cd9

Browse files
committed
CMake: use response files
As Mbed OS is built as whole, we have long paths again. This is known issue with windows. To fix the paths, we need to use response files. Ninja is special, needs to be forced to use long paths.
1 parent 129e697 commit a431cd9

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

cmake/toolchain.cmake

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ elseif (MBED_CPU_CORE STREQUAL Cortex-M7FD)
4040
set(CMAKE_SYSTEM_PROCESSOR cortex-m7)
4141
endif()
4242

43-
44-
4543
include(${MBED_ROOT}/cmake/toolchains/${MBED_TOOLCHAIN}.cmake)
4644

4745
# Compiler setup
@@ -83,3 +81,22 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "" CACHE STRING "" FORCE)
8381
set(CMAKE_ASM_FLAGS_DEBUG "" CACHE STRING "" FORCE)
8482
set(CMAKE_ASM_FLAGS_RELEASE "" CACHE STRING "" FORCE)
8583
set(CMAKE_ASM_FLAGS_RELWITHDEBINFO "" CACHE STRING "" FORCE)
84+
85+
# Use response files always
86+
set(CMAKE_ASM_USE_RESPONSE_FILE_FOR_INCLUDES 1)
87+
set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1)
88+
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 1)
89+
90+
set(CMAKE_ASM_USE_RESPONSE_FILE_FOR_OBJECTS 1)
91+
set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1)
92+
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1)
93+
94+
set(CMAKE_ASM_USE_RESPONSE_FILE_FOR_LIBRARIES 1)
95+
set(CMAKE_C_USE_RESPONSE_FILE_FOR_LIBRARIES 1)
96+
set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_LIBRARIES 1)
97+
98+
# Ninja requires to be forced for response files
99+
if ("${CMAKE_GENERATOR}" MATCHES "Ninja")
100+
set(CMAKE_NINJA_FORCE_RESPONSE_FILE 1 CACHE INTERNAL "")
101+
endif()
102+

0 commit comments

Comments
 (0)