Skip to content

Makefiles: Name object response files with .rsp extension

Felipe Torrezan requested to merge felipe-iar/cmake:use-rsp-in-makefiles into master

Proposed change for the "Makefile Target Generator" towards appending the .rsp extension to the object list for the linker (response file), in the same way it is done for the Ninja Generator.

Relevant log excerpt, after building ~4000 C sources:

felipe-iar@dev7-vm:~/kitware/iar-rsp$cmake -G "Unix Makefiles" -B _build --toolchain iar-toolchain.cmake && cmake --build _build --verbose --clean-first
...
[ 99%] Building C object CMakeFiles/mega-project.dir/foo993.c.o
/opt/iarsystems/bxarm/arm/bin/iccarm  --silent /home/felipe-iar/kitware/iar-rsp/foo993.c   -r -e -o CMakeFiles/mega-project.dir/foo993.c.o
[ 99%] Building C object CMakeFiles/mega-project.dir/foo994.c.o
/opt/iarsystems/bxarm/arm/bin/iccarm  --silent /home/felipe-iar/kitware/iar-rsp/foo994.c   -r -e -o CMakeFiles/mega-project.dir/foo994.c.o
[ 99%] Building C object CMakeFiles/mega-project.dir/foo995.c.o
/opt/iarsystems/bxarm/arm/bin/iccarm  --silent /home/felipe-iar/kitware/iar-rsp/foo995.c   -r -e -o CMakeFiles/mega-project.dir/foo995.c.o
[ 99%] Building C object CMakeFiles/mega-project.dir/foo996.c.o
/opt/iarsystems/bxarm/arm/bin/iccarm  --silent /home/felipe-iar/kitware/iar-rsp/foo996.c   -r -e -o CMakeFiles/mega-project.dir/foo996.c.o
[ 99%] Building C object CMakeFiles/mega-project.dir/foo997.c.o
/opt/iarsystems/bxarm/arm/bin/iccarm  --silent /home/felipe-iar/kitware/iar-rsp/foo997.c   -r -e -o CMakeFiles/mega-project.dir/foo997.c.o
[ 99%] Building C object CMakeFiles/mega-project.dir/foo998.c.o
/opt/iarsystems/bxarm/arm/bin/iccarm  --silent /home/felipe-iar/kitware/iar-rsp/foo998.c   -r -e -o CMakeFiles/mega-project.dir/foo998.c.o
[ 99%] Building C object CMakeFiles/mega-project.dir/foo999.c.o
/opt/iarsystems/bxarm/arm/bin/iccarm  --silent /home/felipe-iar/kitware/iar-rsp/foo999.c   -r -e -o CMakeFiles/mega-project.dir/foo999.c.o
[ 99%] Building C object CMakeFiles/mega-project.dir/main.c.o
/opt/iarsystems/bxarm/arm/bin/iccarm  --silent /home/felipe-iar/kitware/iar-rsp/main.c   -r -e -o CMakeFiles/mega-project.dir/main.c.o
[100%] Linking C executable mega-project.elf
/home/felipe-iar/kitware/cmake-master/bin/cmake -E cmake_link_script CMakeFiles/mega-project.dir/link.txt --verbose=1
/opt/iarsystems/bxarm-9.30.1/arm/bin/ilinkarm --silent -f CMakeFiles/mega-project.dir/objects1.rsp -f CMakeFiles/mega-project.dir/objects2.rsp --map mega-project.map -o mega-project.elf
gmake[2]: Leaving directory '/home/felipe-iar/kitware/iar-rsp/_build'
[100%] Built target mega-project
gmake[1]: Leaving directory '/home/felipe-iar/kitware/iar-rsp/_build'
/home/felipe-iar/kitware/cmake-master/bin/cmake -E cmake_progress_start /home/felipe-iar/kitware/iar-rsp/_build/CMakeFiles 0
felipe-iar@dev7-vm:~/kitware/iar-rsp$ cmake --version
cmake version 3.25.20221121-ga0dbfb9

CMake suite maintained and supported by Kitware (kitware.com/cmake).

Fixes: #24165 (closed)

Edited by Brad King

Merge request reports