diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 443ad46db32ac..4bae1382c1a6c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -328,7 +328,7 @@ jobs: git config --global --add safe.directory /github/workspace/sources/nuttx git config --global --add safe.directory /github/workspace/sources/apps cd sources/nuttx/tools/ci - ./cibuild.sh -g -i -A -C -R testlist/${{matrix.boards}}.dat + ./cibuild.sh -g -i -A -C -N -R testlist/${{matrix.boards}}.dat - uses: actions/upload-artifact@v4 with: diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ef56adfab706..ff7f55fcd9015 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -337,13 +337,19 @@ if(NOT EXISTS ${CMAKE_BINARY_DIR}/.config OR NOT "${NUTTX_DEFCONFIG}" STREQUAL CACHE INTERNAL "Saved defconfig path" FORCE) # Print configuration choices - message(STATUS " CMake ${CMAKE_VERSION}") + message(STATUS " CMake: ${CMAKE_VERSION}") if(CMAKE_GENERATOR MATCHES "Ninja") execute_process( COMMAND ninja --version OUTPUT_VARIABLE ninja_version OUTPUT_STRIP_TRAILING_WHITESPACE) - message(STATUS " Ninja ${ninja_version}") + message(STATUS " Ninja: ${ninja_version}") + + # Ninja generator does not yet know how to build archives in pieces, so + # response files must be used to deal with very long linker command lines. + set(CMAKE_NINJA_FORCE_RESPONSE_FILE + 1 + CACHE INTERNAL "") endif() message(STATUS " Board: ${NUTTX_BOARD}") message(STATUS " Config: ${NUTTX_CONFIG}") diff --git a/arch/arm/src/cmake/gcc.cmake b/arch/arm/src/cmake/gcc.cmake index 58e388968ac08..f0adea045686e 100644 --- a/arch/arm/src/cmake/gcc.cmake +++ b/arch/arm/src/cmake/gcc.cmake @@ -73,6 +73,14 @@ if(CONFIG_ARCH_TOOLCHAIN_GNU AND NOT CONFIG_ARCH_TOOLCHAIN_CLANG) endif() endif() +# override the responsible file flag + +if(CMAKE_GENERATOR MATCHES "Ninja") + set(CMAKE_C_RESPONSE_FILE_FLAG "$DEFINES $INCLUDES $FLAGS @") + set(CMAKE_CXX_RESPONSE_FILE_FLAG "$DEFINES $INCLUDES $FLAGS @") + set(CMAKE_ASM_RESPONSE_FILE_FLAG "$DEFINES $INCLUDES $FLAGS @") +endif() + # override the ARCHIVE command set(CMAKE_ARCHIVE_COMMAND " rcs ")