<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/cmake/Modules/CMakePolicy.cmake, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[CMake][AIX] Enable CMP0182: Create shared library archives by default (#155686)</title>
<updated>2025-08-28T13:29:27+00:00</updated>
<author>
<name>David Tenty</name>
<email>daltenty@ibm.com</email>
</author>
<published>2025-08-28T13:29:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=94738ddaf42a0fa1981dc083f9ed94ba11943458'/>
<id>94738ddaf42a0fa1981dc083f9ed94ba11943458</id>
<content type='text'>
On AIX we prefer to create shared libraries as shared library archives
(i.e. we archive the shared object in a big AR archive) as this is the
standard format on the platform.

There is now a CMake policy that allows us to do this by default, so
opt-in to that behaviour.

---------

Co-authored-by: Hubert Tong &lt;hubert.reinterpretcast@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On AIX we prefer to create shared libraries as shared library archives
(i.e. we archive the shared object in a big AR archive) as this is the
standard format on the platform.

There is now a CMake policy that allows us to do this by default, so
opt-in to that behaviour.

---------

Co-authored-by: Hubert Tong &lt;hubert.reinterpretcast@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "[CMake] Do not set CMP0116 explicitly to old (#90385)"</title>
<updated>2025-04-26T17:59:41+00:00</updated>
<author>
<name>Aiden Grossman</name>
<email>aidengrossman@google.com</email>
</author>
<published>2025-04-26T17:58:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2f08927fd5f44418482dd583d3d451acc6669fe6'/>
<id>2f08927fd5f44418482dd583d3d451acc6669fe6</id>
<content type='text'>
This reverts commit fa65a228f4b46346e69e9b95805a8bcfa8483a60.

This relands commit ab405fb6e9ff9202ca722f632b945d4b84c653f5.

There was an issue where CMake versions &lt;3.23.0 would not properly parse
dep files, causing the build to file. This patch fixes that by just
making CMake versions &lt;3.23.0 use the fallback behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit fa65a228f4b46346e69e9b95805a8bcfa8483a60.

This relands commit ab405fb6e9ff9202ca722f632b945d4b84c653f5.

There was an issue where CMake versions &lt;3.23.0 would not properly parse
dep files, causing the build to file. This patch fixes that by just
making CMake versions &lt;3.23.0 use the fallback behavior.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[CMake] Do not set CMP0116 explicitly to old (#90385)"</title>
<updated>2025-04-26T04:51:16+00:00</updated>
<author>
<name>Aiden Grossman</name>
<email>aidengrossman@google.com</email>
</author>
<published>2025-04-26T04:51:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fa65a228f4b46346e69e9b95805a8bcfa8483a60'/>
<id>fa65a228f4b46346e69e9b95805a8bcfa8483a60</id>
<content type='text'>
This reverts commit ab405fb6e9ff9202ca722f632b945d4b84c653f5.

This caused quite a few buildbot failures that need further
investigation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit ab405fb6e9ff9202ca722f632b945d4b84c653f5.

This caused quite a few buildbot failures that need further
investigation.
</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Do not set CMP0116 explicitly to old (#90385)</title>
<updated>2025-04-26T04:29:59+00:00</updated>
<author>
<name>Aiden Grossman</name>
<email>aidengrossman@google.com</email>
</author>
<published>2025-04-26T04:29:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ab405fb6e9ff9202ca722f632b945d4b84c653f5'/>
<id>ab405fb6e9ff9202ca722f632b945d4b84c653f5</id>
<content type='text'>
CMP0116 was originally set to old to get rid of warnings. However, this
behavior is now set to new by default with the minimum CMake version
that LLVM requires so does not produce any warnings, and setting it
explicitly to old does produce a warning in newer CMake versions. Due to
these reasons, remove this check for now.

Splitting off from removing the CMP0114 check just in case something
breaks.

Partially fixes #83727.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CMP0116 was originally set to old to get rid of warnings. However, this
behavior is now set to new by default with the minimum CMake version
that LLVM requires so does not produce any warnings, and setting it
explicitly to old does produce a warning in newer CMake versions. Due to
these reasons, remove this check for now.

Splitting off from removing the CMP0114 check just in case something
breaks.

Partially fixes #83727.</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Enable CMP0179 alongside CMP0156 for deduplication on LLD (#116497)</title>
<updated>2024-11-21T19:33:40+00:00</updated>
<author>
<name>Raul Tambre</name>
<email>raul@tambre.ee</email>
</author>
<published>2024-11-21T19:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=505e049aa078c8961f00cacefc3983398a46fb04'/>
<id>505e049aa078c8961f00cacefc3983398a46fb04</id>
<content type='text'>
LLD has a bug regarding ordering of static link libraries in the ELF backend, which has been reported as #116669.
CMake 3.31.0 started properly deduplicating static libraries for LLD causing the following linking failure for `libclang-cpp.so` with `-DLLVM_LINK_LLVM_DYLIB=ON`:
```
ld.lld: error: undefined symbol: llvm::omp::getOpenMPClauseName(llvm::omp::Clause)
&gt;&gt;&gt; referenced by OpenMPKinds.cpp
&gt;&gt;&gt;               tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/OpenMPKinds.cpp.o:(clang::getOpenMPSimpleClauseTypeName(llvm::omp::Clause, unsigned int))
&gt;&gt;&gt; referenced by SemaOpenMP.cpp
&gt;&gt;&gt;               tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaOpenMP.cpp.o:(clang::SemaOpenMP::CheckOMPRequiresDecl(clang::SourceLocation, llvm::ArrayRef&lt;clang::OMPClause*&gt;))
&gt;&gt;&gt; referenced by SemaOpenMP.cpp
&gt;&gt;&gt;               tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaOpenMP.cpp.o:(clang::SemaOpenMP::CheckOMPRequiresDecl(clang::SourceLocation, llvm::ArrayRef&lt;clang::OMPClause*&gt;))
&gt;&gt;&gt; referenced 166 more times

[tons more]
```

CMake 3.31 also introduced CMP0179, which builds on CMP0156 and makes the deduplication consistent across platforms.
By coincidence this works around the above LLD deficiency and is the fix that CMake 3.31.1 will implement.
However, the fix is to ignore CMP0156 unless CMP0179 is also enabled, i.e. no more deduplication.
So enable CMP0179 to keep the benefits of deduplication from CMP0156 on LLD and fix the build for CMake 3.31.0.

See: #116669
See: https://gitlab.kitware.com/cmake/cmake/-/issues/26447
Fixes: cb90d5b</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LLD has a bug regarding ordering of static link libraries in the ELF backend, which has been reported as #116669.
CMake 3.31.0 started properly deduplicating static libraries for LLD causing the following linking failure for `libclang-cpp.so` with `-DLLVM_LINK_LLVM_DYLIB=ON`:
```
ld.lld: error: undefined symbol: llvm::omp::getOpenMPClauseName(llvm::omp::Clause)
&gt;&gt;&gt; referenced by OpenMPKinds.cpp
&gt;&gt;&gt;               tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/OpenMPKinds.cpp.o:(clang::getOpenMPSimpleClauseTypeName(llvm::omp::Clause, unsigned int))
&gt;&gt;&gt; referenced by SemaOpenMP.cpp
&gt;&gt;&gt;               tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaOpenMP.cpp.o:(clang::SemaOpenMP::CheckOMPRequiresDecl(clang::SourceLocation, llvm::ArrayRef&lt;clang::OMPClause*&gt;))
&gt;&gt;&gt; referenced by SemaOpenMP.cpp
&gt;&gt;&gt;               tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaOpenMP.cpp.o:(clang::SemaOpenMP::CheckOMPRequiresDecl(clang::SourceLocation, llvm::ArrayRef&lt;clang::OMPClause*&gt;))
&gt;&gt;&gt; referenced 166 more times

[tons more]
```

CMake 3.31 also introduced CMP0179, which builds on CMP0156 and makes the deduplication consistent across platforms.
By coincidence this works around the above LLD deficiency and is the fix that CMake 3.31.1 will implement.
However, the fix is to ignore CMP0156 unless CMP0179 is also enabled, i.e. no more deduplication.
So enable CMP0179 to keep the benefits of deduplication from CMP0156 on LLD and fix the build for CMake 3.31.0.

See: #116669
See: https://gitlab.kitware.com/cmake/cmake/-/issues/26447
Fixes: cb90d5b</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Enable CMP0156 if available (#115046)</title>
<updated>2024-11-06T18:34:48+00:00</updated>
<author>
<name>Evan Wilde</name>
<email>ewilde@apple.com</email>
</author>
<published>2024-11-06T18:34:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cb90d5b3ef463f0a471f9c6d39978c3764021dea'/>
<id>cb90d5b3ef463f0a471f9c6d39978c3764021dea</id>
<content type='text'>
Some linkers do not require that libraries are repeated on the command
line. The Apple linker emits warnings when duplicate libraries are
specified, resulting in a wall of warnings.

CMP0156 deduplicates libraries on the command line when the linker
doesn't require them.

This patch enables CMP0156 to quiet the warnings when using a version of
CMake that recognizes it (CMake 3.29 and newer).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some linkers do not require that libraries are repeated on the command
line. The Apple linker emits warnings when duplicate libraries are
specified, resulting in a wall of warnings.

CMP0156 deduplicates libraries on the command line when the linker
doesn't require them.

This patch enables CMP0156 to quiet the warnings when using a version of
CMake that recognizes it (CMake 3.29 and newer).</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Do not set CMP0114 explicitly to old (#90384)</title>
<updated>2024-10-16T06:15:05+00:00</updated>
<author>
<name>Aiden Grossman</name>
<email>aidengrossman@google.com</email>
</author>
<published>2024-10-16T06:15:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=49de1541655cc71cfedbee10d6b4a4c12fc7e13b'/>
<id>49de1541655cc71cfedbee10d6b4a4c12fc7e13b</id>
<content type='text'>
CMP0114 was originally set to old to get rid of warnings. However, this
behavior is now set to new by default with the minimum CMake version
that LLVM requires so does not produce any warnings, and setting it
explicitly to old does produce a warning in newer CMake versions. Due to
these reasons, remove this check for now.

Splitting off from removing the CMP0116 check just in case something
breaks.

Partially fixes #83727.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CMP0114 was originally set to old to get rid of warnings. However, this
behavior is now set to new by default with the minimum CMake version
that LLVM requires so does not produce any warnings, and setting it
explicitly to old does produce a warning in newer CMake versions. Due to
these reasons, remove this check for now.

Splitting off from removing the CMP0116 check just in case something
breaks.

Partially fixes #83727.</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] enable CMP0147 policy if available (#109150)</title>
<updated>2024-09-24T20:30:31+00:00</updated>
<author>
<name>c8ef</name>
<email>c8ef@outlook.com</email>
</author>
<published>2024-09-24T20:30:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cf9fc5e22fa51e5b3a8182e7ef408cd77064a664'/>
<id>cf9fc5e22fa51e5b3a8182e7ef408cd77064a664</id>
<content type='text'>
Closes #38383.

This enables parallel custom build commands, which improve compilation
time on Windows with Visual Studio.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #38383.

This enables parallel custom build commands, which improve compilation
time on Windows with Visual Studio.</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] enable CMP0144 policy if available (#96589)</title>
<updated>2024-07-01T17:37:11+00:00</updated>
<author>
<name>Jerry Zhang Jian</name>
<email>jerry.zhangjian@sifive.com</email>
</author>
<published>2024-07-01T17:37:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9f3bfbb680e6cef9c5b902dac4ad541b99e1ea6a'/>
<id>9f3bfbb680e6cef9c5b902dac4ad541b99e1ea6a</id>
<content type='text'>
- Enable CMP0144 policy if available, this will make the find_package()
more robust.

Signed-off-by: Jerry Zhang Jian &lt;jerry.zhangjian@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Enable CMP0144 policy if available, this will make the find_package()
more robust.

Signed-off-by: Jerry Zhang Jian &lt;jerry.zhangjian@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Fix a typo in 23ffb2bdb96cf5a8eebce86b1ab21acf88979661</title>
<updated>2024-03-12T10:35:44+00:00</updated>
<author>
<name>Martin Storsjö</name>
<email>martin@martin.st</email>
</author>
<published>2024-03-12T10:35:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1b945e35a6a59fda436585f8fca12c82a27fc6a9'/>
<id>1b945e35a6a59fda436585f8fca12c82a27fc6a9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
