Commit Graph

14292 Commits

Author SHA1 Message Date
Brad King
e0f12564dc Merge topic 'iar-missing-license'
564d527c04 IAR: Improve error message for missing license

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9723
2024-08-15 09:48:27 -04:00
Brad King
683910854c Merge topic 'UseJava-verbosity'
ea62c44b64 UseJava: Reduce add_jar verbosity by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9710
2024-08-15 09:47:14 -04:00
Brad King
15a94f1d28 Merge topic 'pkg-config'
25b947589a Modules: Guard calls to pkg_check_modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9709
2024-08-15 09:46:01 -04:00
Felipe Torrezan
564d527c04 IAR: Improve error message for missing license
When using the IAR Compiler without a license, CMake issues a
fatal error message about a missing linker and librarian.
This message is misleading.

In the previous detection, CMakeFindBinUtils.cmake would rely
on information collected from try_compile() which depends on a
working license.

In the new detection scheme, the IAR BinUtils are automatically
detected regardless of an existing license, based solely on the
compiler's path.

The failure point will be when trying to compile a C or a CXX
source file, where there will be no CMAKE_${lang}_COMPILER_VERSION
available.

This change improves the resulting message for when trying to use
the compiler without a license.
2024-08-14 09:03:13 +02:00
Tudy Gourmelen
4b84596dcf Android: Fix condition detecting no APIs found in the NDK
Fixes: #26210
2024-08-14 08:16:24 +02:00
Gold856
ea62c44b64 UseJava: Reduce add_jar verbosity by default
Set "Clean class files" message to verbose.

Fixes: #22107
2024-08-13 15:56:39 -04:00
Brad King
fc0faeb34e Merge topic 'lfortran-link-info'
509e8be784 LFortran: Add support for mixed-language linking with Fortran
cb6e8698ff CMakeParseImplicitLinkInfo: Refactor conditions to detect specific compilers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9700
2024-08-13 10:58:47 -04:00
Kai Pastor
25b947589a Modules: Guard calls to pkg_check_modules
Before calling pkg_check_modules, modules must check PKG_CONFIG_FOUND.
When FindPkgConfig.cmake is loaded, pkg_check_modules is always defined
regardless of pkg-config being present. However, the whole module might
be disabled on user request with CMAKE_DISABLE_FIND_PACKAGE_PkgConfig.
This must not break Find modules which just look for a hint or similar.
2024-08-07 20:11:43 +02:00
Brad King
509e8be784 LFortran: Add support for mixed-language linking with Fortran
Parse implicit link information for this compiler to support
mixed-language linking.  This was missed by commit 98d0f918ba (LFortran:
Add support for this compiler, 2024-01-25). Also activate mixed-language
test cases that would have caught this.

Fixes: #26145
2024-08-02 15:15:02 -04:00
Brad King
cb6e8698ff CMakeParseImplicitLinkInfo: Refactor conditions to detect specific compilers 2024-08-02 15:13:38 -04:00
Brad King
56064c3977 FortranCInterface: Simplify module symbol mangling detection regex
Simplify the change from commit 0f5b6dd215 (FortranCInterface: Add
support for LLVMFlang mangling, 2022-09-09, v3.24.2~2^2).
2024-08-02 14:59:21 -04:00
Brad King
618c60367f Merge topic 'swift-install-names'
8669176576 Swift: Fix INSTALL_NAME_DIR under CMP0157 NEW behavior

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9692
2024-08-02 09:47:51 -04:00
Evan Wilde
8669176576 Swift: Fix INSTALL_NAME_DIR under CMP0157 NEW behavior
Setting `CMAKE_INSTALL_NAME_DIR` or the `INSTALL_NAME_DIR` on Swift
targets had no effect when CMP0157 was set to `NEW`.  This was a result
of missing the `<TARGET_INSTALLNAME_DIR>` before the `<TARGET_SONAME>`.
Fix that and add a test to verify that the install name directory is
included in the install name.

Fixes: #26175
2024-08-01 10:49:36 -04:00
Jessie Hernandez
cee34d7ab3 FindEXPAT: Implement EXPAT_USE_STATIC_LIBS for non-Windows platforms
In commit 302501ad36 (FindEXPAT: add a EXPAT_USE_STATIC_LIBS hint,
2023-06-19, v3.28.0-rc1~447^2) this flag was introduced but was only
implemented for windows like systems. To make the flag complete and also
behave as you would expect on non-windows systems cmake also looks for
`.a` files now.

Fixes: #26177
2024-07-31 09:48:46 -04:00
Brad King
ce07554967 Merge topic 'enable_warnings'
373b29bd3f Rename {_ => }CMAKE_INCLUDE_SYSTEM_FLAG_${lang}_WARNING

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Marcel Raad <marcel.raad@teamviewer.com>
Merge-request: !9688
2024-07-30 10:13:05 -04:00
Patrick H
373b29bd3f Rename {_ => }CMAKE_INCLUDE_SYSTEM_FLAG_${lang}_WARNING
Although not documented publicly, projects may need to override
this variable.  Remove the private `_` prefix from its name.

Issue: #25103
2024-07-29 11:50:02 -04:00
Brad King
56eb3fb8ac Merge topic 'FindPython-WIN32-EXECUTABLE_DEBUG'
c25df125e1 FindPython: Fix usage of cached variable _Python_EXECUTABLE_DEBUG

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Hillel Sims <hsims1@bloomberg.net>
Merge-request: !9686
2024-07-29 11:01:38 -04:00
Craig Scott
31609421f2 Merge topic 'fetchcontent-updates-disconnected'
5df592ce31 FetchContent: Ensure can_fetch_default is set early enough
c233c51cb9 ExternalProject: Fix bad indenting for uses_terminal

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Silver Zachara <silver.zachara@gmail.com>
Merge-request: !9685
2024-07-27 18:28:19 -04:00
Marc Chevrier
c25df125e1 FindPython: Fix usage of cached variable _Python_EXECUTABLE_DEBUG
Fixes: #26163
2024-07-26 14:36:20 +02:00
Craig Scott
5df592ce31 FetchContent: Ensure can_fetch_default is set early enough
The can_fetch_default variable needs to be set before the call to
_ep_write_gitupdate_script(). Move it to before that call and always
set the variable, even if arg_SCRIPT_FILE is not set. This makes the
generated git update script file easier to follow if someone tries to
follow what it is doing or wants to investigate problems and run it
manually.

Fixes: #26164
2024-07-26 11:23:58 +10:00
Craig Scott
c233c51cb9 ExternalProject: Fix bad indenting for uses_terminal 2024-07-26 10:58:19 +10:00
Brad King
4c35a71ae9 Merge topic 'lfortran'
aff38fed4f ci: Add nightly jobs for LFortran on Fedora
a0def56402 ci: Add lfortran to Fedora base image
98d0f918ba LFortran: Add support for this compiler
c6f81bdacf Tests/RunCMake: Pass Fortran compiler id into more tests
fa1b748389 Tests/RunCMake/DependencyGraph: Specify Fortran function return type

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Acked-by: Matthew Thompson <fortran@gmail.com>
Merge-request: !9188
2024-07-24 10:02:54 -04:00
Brad King
e27a050bff Merge topic 'linker-configuration'
1e35163ae8 WHOLE_ARCHIVE link feature: rely now on linker configuration
c1c4cf9545 Linker configuration: introduce a new architecture

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9665
2024-07-23 09:56:25 -04:00
Brad King
777d5d6a81 Merge topic 'ep-svn-user-pass'
7e80415e79 ExternalProject: Reduce number of local variables for svn logic
e16f65be15 ExternalProject: Don't add SVN auth args if not set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9678
2024-07-23 09:53:28 -04:00
Brad King
aad3ee074b Merge topic 'ep-svn-user-pass' into release-3.30
e16f65be15 ExternalProject: Don't add SVN auth args if not set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9678
2024-07-23 09:53:27 -04:00
Christoph Junghans
98d0f918ba LFortran: Add support for this compiler
Fixes: #25419
2024-07-22 16:50:33 -04:00
Marc Chevrier
1e35163ae8 WHOLE_ARCHIVE link feature: rely now on linker configuration
Fixes: #26019
2024-07-22 16:58:51 +02:00
Brad King
67b84e6bc4 Merge topic 'macos-check-archs'
74beb6dba8 Xcode: Restore support for CMAKE_OSX_ARCHITECTURES=$(ARCHS_STANDARD)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Lorenz Bucher <lorenz.bucher@gmail.com>
Merge-request: !9675
2024-07-22 10:20:21 -04:00
Brad King
671d8647ff Merge topic 'ci-linkcheck'
98c9674c5e FindPython: Replace link to PyPy with its http redirect

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9676
2024-07-22 10:18:46 -04:00
Brad King
f36d09a0b8 Merge topic 'cpack-wix-per-machine'
d588e81ffb CPack/WIX: Generate perMachine installers by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9672
2024-07-22 10:17:57 -04:00
Marc Chevrier
c1c4cf9545 Linker configuration: introduce a new architecture
A new set of files are dedicated to linker configuration.
This set of files enable a fine-tuned configuration based of the linker
type as identified during compiler detection.

Fixes: #25360
2024-07-20 19:05:54 +02:00
Craig Scott
cd379332c3 ExternalProject: Don't rely on *_disconnected vars being unset by caller 2024-07-20 12:30:50 +10:00
Craig Scott
7e80415e79 ExternalProject: Reduce number of local variables for svn logic
We still keep the svn_trust_cert and uses_terminal variables because they
improve the readability of if() conditions.
2024-07-20 12:19:17 +10:00
Craig Scott
e16f65be15 ExternalProject: Don't add SVN auth args if not set
In 462e583267 (ExternalProject: Switch download, update and patch to
use _EP_ vars, 2024-05-13), the svn_username and svn_password variables
were only updated appropriately in the svn download implementation, but
not in the svn update implementation. This was easily missed in part
because the old implementation was relying on behavior that differed
from the documentation for get_property(), and the new implementation
tried to keep the intermediate variables from the old implementation but
missed this subtle aspect.

Issue: #26152
Fixes: #26148
2024-07-20 11:58:33 +10:00
Brad King
98c9674c5e FindPython: Replace link to PyPy with its http redirect 2024-07-19 10:08:06 -04:00
Brad King
fb303f6086 Merge topic 'FindCUDAToolkit-clear-failure'
8f974011ea FindCUDAToolkit: Allow new search locations after failure

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9650
2024-07-19 10:04:17 -04:00
Brad King
a8d8f26828 Merge topic 'aix-archive-shared-libraries'
d27fe9dfba AIX: Add option to archive shared libraries
98013ad1ca cmXCOFF: Add support for editing binary inside an archive

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9606
2024-07-19 09:55:58 -04:00
Brad King
74beb6dba8 Xcode: Restore support for CMAKE_OSX_ARCHITECTURES=$(ARCHS_STANDARD)
Skip the `CMAKE_OSX_ARCHITECTURES` validation added by commit db409e5e68
(APPLE: Check if compilers respect CMAKE_OSX_ARCHITECTURES, 2024-05-04,
v3.30.0-rc1~15^2) if the value contains a placeholder, since we do not
know the real value.

Fixes: #26128
2024-07-19 09:42:45 -04:00
Brad King
d588e81ffb CPack/WIX: Generate perMachine installers by default
Add policy CMP0172 to set `CPACK_WIX_INSTALL_SCOPE` to `perMachine` by
default.  Follow up commit 60661f6770 (CPack/WiX: Make InstallScope
configurable, 2023-11-07, v3.29.0-rc1~413^2) and commit 614100dbf6
(CPack/WiX: Restore default (missing) InstallScope from 3.28 and lower,
2024-06-05, v3.30.0-rc1~7^2~1).

Issue: #20962
Issue: #26029
2024-07-18 14:16:54 -04:00
Brad King
0db6a72651 Merge topic 'doc-compile'
4b9ed91424 Help: check_*source_compiles and CMAKE_TRY_COMPILE_TARGET_TYPE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9641
2024-07-18 09:02:05 -04:00
Brad King
078eb8d79d Merge topic 'FindCUDAToolkit-windows-only'
973b019363 FindCUDAToolkit: Refactor search windows only search directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9648
2024-07-18 09:01:16 -04:00
Brad King
4221d6b220 Merge topic 'implicit-link-static'
b3c9b317ff CMakeParseImplicitLinkInfo: Honor gfortran -static-libquadmath flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9664
2024-07-18 08:59:13 -04:00
scivision
4b9ed91424 Help: check_*source_compiles and CMAKE_TRY_COMPILE_TARGET_TYPE
Ref: #26103
2024-07-17 11:56:26 -04:00
Aditya Vidyadhar Kamath
d27fe9dfba AIX: Add option to archive shared libraries
Add option `CMAKE_AIX_SHARED_LIBRARY_ARCHIVE`.

There will no versions for the shared objects when this option is used.

Closes: #26033
2024-07-17 11:52:09 -04:00
Robert Maynard
973b019363 FindCUDAToolkit: Refactor search windows only search directories
Will allow us to better support layout changes going forward
2024-07-17 10:47:34 -04:00
Brad King
25abc95715 Merge topic 'LLVMFlang-aix'
e37d8e28e8 LLVMFlang: Add support for AIX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9661
2024-07-17 09:48:24 -04:00
Brad King
b3cd795e65 Merge topic 'wasi'
68cd5281e4 WASI: Add platform modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9659
2024-07-17 09:47:30 -04:00
Brad King
b3c9b317ff CMakeParseImplicitLinkInfo: Honor gfortran -static-libquadmath flag
Extend commit 1d7fddca8e (CMakeParseImplicitLinkInfo: Honor GNU static
runtime library flags, 2021-06-02, v3.21.0-rc1~85^2) to cover the
`quadmath` library.
2024-07-16 16:42:18 -04:00
Kelvin Li
e37d8e28e8 LLVMFlang: Add support for AIX 2024-07-16 14:32:19 -04:00
Jacob Hummer
68cd5281e4 WASI: Add platform modules
Add minimal platform modules to support toolchain files like those in

* https://github.com/WebAssembly/wasi-sdk

or direct use of `-DCMAKE_SYSTEM_NAME="WASI"`

Fixes: #19223
2024-07-16 12:28:19 -04:00