https://github.com/Kitware/CMake
Revision 15b3f6f0f187ab12c29e437f737356bed13d977b authored by Ben Boeckel on 27 June 2016, 15:44:10 UTC, committed by Brad King on 27 June 2016, 18:34:06 UTC
In commit v3.6.0-rc1~174^2 (Ninja: Honor CMAKE_NINJA_FORCE_RESPONSE_FILE
for compile rules, 2016-04-06), Ninja learned to look for
`CMAKE_NINJA_FORCE_RESPONSE_FILE` in the current scope or the
environment in order to force response file usage for all compilation
rules.

However, on Windows, the RC compiler goes through cmcldeps which does a
`replace(output, output + ".dep.obj")` on the command line. However,
with a response file (which we name `output + ".rsp"`), the response
file path is replaced instead causing the compiler to (correctly)
complain that the response file `output + ".dep.obj.rsp"` does not
exist.

What needs to happen is for cmcldeps to look through the response file,
replace *its* contents and place it in the `output + ".dep.obj.rsp"`
file.

Also add a test which actually compiles an RC file into a library and
executable for all generators on Windows and additionally test
`CMAKE_NINJA_FORCE_RESPONSE_FILE` for Ninja generators.

Fixes #16167.
1 parent d152ae1
Raw File
Tip revision: 15b3f6f0f187ab12c29e437f737356bed13d977b authored by Ben Boeckel on 27 June 2016, 15:44:10 UTC
ninja, rc: ignore CMAKE_NINJA_FORCE_RESPONSE_FILE for RC files
Tip revision: 15b3f6f
.hooks-config.bash
#=============================================================================
# CMake - Cross Platform Makefile Generator
# Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================

# Loaded by .git/hooks/(pre-commit|commit-msg|prepare-commit-msg)
# during git commit after local hooks have been installed.

hooks_chain_pre_commit="Utilities/Git/pre-commit"
hooks_chain_commit_msg="Utilities/Git/commit-msg"
hooks_chain_prepare_commit_msg="Utilities/Git/prepare-commit-msg"
back to top