<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cmake.git/Modules/CMakeDetermineRCCompiler.cmake, branch master</title>
<subtitle>gitlab.kitware.com: cmake/cmake.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/'/>
<entry>
<title>MinGW: Fix regression when windres is not found</title>
<updated>2022-11-29T00:09:04+00:00</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2022-11-28T22:25:53+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=b47092fddb51e2e89fa083af5c15fb6b81f35186'/>
<id>b47092fddb51e2e89fa083af5c15fb6b81f35186</id>
<content type='text'>
The fix in commit e9755bc7c1 (MinGW: Restore using windres when
toolchain-prefixed name is not available, 2022-08-15, v3.24.1~4^2)
incorrectly listed two entries in `CMAKE_RC_COMPILER_INIT`, which is
only meant to have one value.  Revise the logic to support multiple
platform-specific names for the Windows Resource Compiler while still
only using one name as the fallback when it is not found.

Fixes: #24190
Issue: #23841
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The fix in commit e9755bc7c1 (MinGW: Restore using windres when
toolchain-prefixed name is not available, 2022-08-15, v3.24.1~4^2)
incorrectly listed two entries in `CMAKE_RC_COMPILER_INIT`, which is
only meant to have one value.  Revise the logic to support multiple
platform-specific names for the Windows Resource Compiler while still
only using one name as the fallback when it is not found.

Fixes: #24190
Issue: #23841
</pre>
</div>
</content>
</entry>
<entry>
<title>Toolchain: Capture all arguments from CMAKE_&lt;LANG&gt;_COMPILER</title>
<updated>2020-07-23T18:52:48+00:00</updated>
<author>
<name>Fred Baksik</name>
<email>fdk17@ftml.net</email>
</author>
<published>2020-07-15T19:03:45+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=6f1af899db4e93c960145dae12ebaacb308ea1f0'/>
<id>6f1af899db4e93c960145dae12ebaacb308ea1f0</id>
<content type='text'>
Capture CMAKE_&lt;LANG&gt;_COMPILER_ARG1 from CMAKE_&lt;LANG&gt;_COMPILER in the
same fashion that it is from $ENV{&lt;LANG&gt;}.

Since get_filename_component() returns a single string of all the
arguments from $ENV{&lt;LANG&gt;}, a single string of arguments will be
constructed from the items contained in CMAKE_&lt;LANG&gt;_COMPILER.

Fixes #20089
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Capture CMAKE_&lt;LANG&gt;_COMPILER_ARG1 from CMAKE_&lt;LANG&gt;_COMPILER in the
same fashion that it is from $ENV{&lt;LANG&gt;}.

Since get_filename_component() returns a single string of all the
arguments from $ENV{&lt;LANG&gt;}, a single string of arguments will be
constructed from the items contained in CMAKE_&lt;LANG&gt;_COMPILER.

Fixes #20089
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify CMake per-source license notices</title>
<updated>2016-09-27T19:14:44+00:00</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2016-09-27T19:01:08+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=86578eccf2e82286248796bad1032cd0e3a5e1e2'/>
<id>86578eccf2e82286248796bad1032cd0e3a5e1e2</id>
<content type='text'>
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool.  Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience.  Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.

Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices.  It also references version control
history for more precise information.  Therefore we no longer need to spell
out the list of Contributors in each source file notice.

Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing".  The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.

Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically.  Manually fix up shebang lines and trailing
newlines in a few files.  Manually update the notices in a few files that the
script does not handle.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool.  Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience.  Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.

Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices.  It also references version control
history for more precise information.  Therefore we no longer need to spell
out the list of Contributors in each source file notice.

Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing".  The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.

Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically.  Manually fix up shebang lines and trailing
newlines in a few files.  Manually update the notices in a few files that the
script does not handle.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace MATCHES ".+" tests with NOT STREQUAL ""</title>
<updated>2014-04-14T16:17:23+00:00</updated>
<author>
<name>Rolf Eike Beer</name>
<email>eike@sf-mail.de</email>
</author>
<published>2014-04-11T16:36:08+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=7eacbaed4db3c3fe5d6c0e3a31e239530a7468f1'/>
<id>7eacbaed4db3c3fe5d6c0e3a31e239530a7468f1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Drop use of configure_file IMMEDIATE option</title>
<updated>2013-11-13T15:12:17+00:00</updated>
<author>
<name>Daniele E. Domenichelli</name>
<email>daniele.domenichelli@iit.it</email>
</author>
<published>2013-11-13T08:50:56+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=15610bb5b16a4f39202a84a6f6ef1a22b17170df'/>
<id>15610bb5b16a4f39202a84a6f6ef1a22b17170df</id>
<content type='text'>
Since commit 7d47c693 (Drop compatibility with CMake &lt; 2.4, 2013-10-08)
we no longer need to use the configure_file IMMEDIATE option to support
compatibility modes less than 2.0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since commit 7d47c693 (Drop compatibility with CMake &lt; 2.4, 2013-10-08)
we no longer need to use the configure_file IMMEDIATE option to support
compatibility modes less than 2.0.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix some copyastos in the DetermineRCCompiler file.</title>
<updated>2013-04-14T07:03:48+00:00</updated>
<author>
<name>Stephen Kelly</name>
<email>steveire@gmail.com</email>
</author>
<published>2013-04-13T23:00:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=8e0da4cddc1d96012007e1e0215ffda841e03c6b'/>
<id>8e0da4cddc1d96012007e1e0215ffda841e03c6b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make platform information files specific to the CMake version</title>
<updated>2012-08-24T14:52:23+00:00</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2012-08-24T12:48:59+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=7195aca54f40778f41894c9e62649afe09e71d6c'/>
<id>7195aca54f40778f41894c9e62649afe09e71d6c</id>
<content type='text'>
At the top of a build tree we configure inside the CMakeFiles directory
files such as "CMakeSystem.cmake" and "CMake&lt;lang&gt;Compiler.cmake" to
save information detected about the system and compilers in use.  The
method of detection and the exact results store varies across CMake
versions as things improve.  This leads to problems when loading files
configured by a different version of CMake.  Previously we ignored such
existing files only if the major.minor part of the CMake version
component changed, and depended on the CMakeCache.txt to tell us the
last version of CMake that wrote the files.  This led to problems if the
user deletes the CMakeCache.txt or we add required information to the
files in a patch-level release of CMake (still a "feature point" release
by modern CMake versioning convention).

Ensure that we always have version-consistent platform information files
by storing them in a subdirectory named with the CMake version.  Every
version of CMake will do its own system and compiler identification
checks even when a build tree has already been configured by another
version of CMake.  Stored results will not clobber those from other
versions of CMake which may be run again on the same tree in the future.
Loaded results will match what the system and language modules expect.

Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to
CMAKE_PLATFORM_INFO_DIR to clarify its purpose.  The new variable points
at the version-specific directory while the old variable did not.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
At the top of a build tree we configure inside the CMakeFiles directory
files such as "CMakeSystem.cmake" and "CMake&lt;lang&gt;Compiler.cmake" to
save information detected about the system and compilers in use.  The
method of detection and the exact results store varies across CMake
versions as things improve.  This leads to problems when loading files
configured by a different version of CMake.  Previously we ignored such
existing files only if the major.minor part of the CMake version
component changed, and depended on the CMakeCache.txt to tell us the
last version of CMake that wrote the files.  This led to problems if the
user deletes the CMakeCache.txt or we add required information to the
files in a patch-level release of CMake (still a "feature point" release
by modern CMake versioning convention).

Ensure that we always have version-consistent platform information files
by storing them in a subdirectory named with the CMake version.  Every
version of CMake will do its own system and compiler identification
checks even when a build tree has already been configured by another
version of CMake.  Stored results will not clobber those from other
versions of CMake which may be run again on the same tree in the future.
Loaded results will match what the system and language modules expect.

Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to
CMAKE_PLATFORM_INFO_DIR to clarify its purpose.  The new variable points
at the version-specific directory while the old variable did not.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove CMake-language block-end command arguments</title>
<updated>2012-08-13T18:19:16+00:00</updated>
<author>
<name>Kitware Robot</name>
<email>kwrobot@kitware.com</email>
</author>
<published>2012-08-13T17:50:14+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=9db3116226cb99fcf54e936c833953abcde9b729'/>
<id>9db3116226cb99fcf54e936c833953abcde9b729</id>
<content type='text'>
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block.  This is no longer the preferred style.

Run the following shell code:

for c in else endif endforeach endfunction endmacro endwhile; do
    echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done &gt;convert.sed &amp;&amp;
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
xargs -0 sed -i -f convert.sed &amp;&amp;
rm convert.sed
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block.  This is no longer the preferred style.

Run the following shell code:

for c in else endif endforeach endfunction endmacro endwhile; do
    echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done &gt;convert.sed &amp;&amp;
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
xargs -0 sed -i -f convert.sed &amp;&amp;
rm convert.sed
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert CMake-language commands to lower case</title>
<updated>2012-08-13T18:19:16+00:00</updated>
<author>
<name>Kitware Robot</name>
<email>kwrobot@kitware.com</email>
</author>
<published>2012-08-13T17:47:32+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=77543bde41b0e52c3959016698b529835945d62d'/>
<id>77543bde41b0e52c3959016698b529835945d62d</id>
<content type='text'>
Ancient CMake versions required upper-case commands.  Later command
names became case-insensitive.  Now the preferred style is lower-case.

Run the following shell code:

cmake --help-command-list |
grep -v "cmake version" |
while read c; do
    echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done &gt;convert.sed &amp;&amp;
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
xargs -0 sed -i -f convert.sed &amp;&amp;
rm convert.sed
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ancient CMake versions required upper-case commands.  Later command
names became case-insensitive.  Now the preferred style is lower-case.

Run the following shell code:

cmake --help-command-list |
grep -v "cmake version" |
while read c; do
    echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done &gt;convert.sed &amp;&amp;
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
xargs -0 sed -i -f convert.sed &amp;&amp;
rm convert.sed
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove trailing whitespace from most CMake and C/C++ code</title>
<updated>2012-08-13T18:18:39+00:00</updated>
<author>
<name>Kitware Robot</name>
<email>kwrobot@kitware.com</email>
</author>
<published>2012-08-13T17:42:58+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=7bbaa4283de26864b2e55e819db0884771585467'/>
<id>7bbaa4283de26864b2e55e819db0884771585467</id>
<content type='text'>
Our Git commit hooks disallow modification or addition of lines with
trailing whitespace.  Wipe out all remnants of trailing whitespace
everywhere except third-party code.

Run the following shell code:

git ls-files -z -- \
 bootstrap doxygen.config '*.readme' \
 '*.c' '*.cmake' '*.cpp' '*.cxx' \
 '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \
 '*.mm' '*.pike' '*.py' '*.txt' '*.vim' |
egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' |
egrep -z -v '^(Modules/CPack\..*\.in)' |
xargs -0 sed -i 's/ \+$//'
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Our Git commit hooks disallow modification or addition of lines with
trailing whitespace.  Wipe out all remnants of trailing whitespace
everywhere except third-party code.

Run the following shell code:

git ls-files -z -- \
 bootstrap doxygen.config '*.readme' \
 '*.c' '*.cmake' '*.cpp' '*.cxx' \
 '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \
 '*.mm' '*.pike' '*.py' '*.txt' '*.vim' |
egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' |
egrep -z -v '^(Modules/CPack\..*\.in)' |
xargs -0 sed -i 's/ \+$//'
</pre>
</div>
</content>
</entry>
</feed>
