Commit Graph

327 Commits

Author SHA1 Message Date
Peter Kokot 9fb240da85 FindQt4: Clarify the Qt4_FOUND variable
QT4_FOUND variable became deprecated in CMake 2.8.11 where Qt4_FOUND was
introduced.
2025-08-10 10:03:50 +02:00
Peter Kokot 1526655507 Find*: Add intro code blocks
- Added intro code blocks showing how to use find modules.
- Synced modules documentation.
- Extended few examples to make the intro code blocks fit into the
  modules descriptions.
- Synced some RST formatting, variables descriptions and positions.
- Removed few redundant internal comments.

Issue: #26555
2025-08-04 21:26:12 +02:00
Brad King 0f7a8e457f Merge topic 'patch-FindQt4'
e60bdd1014 FindQt4: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10497
2025-03-25 09:43:17 -04:00
Peter Kokot e60bdd1014 FindQt4: Update documentation
Changes:
- Lowercase style used for Qt4 macros
- Module documentation reformatted similar to other pages
- Module commands listed using the RST `:command:` directive,
  descriptions refactored and arguments described separately
2025-03-21 17:13:18 +01:00
Brad King b167d25104 Merge topic 'FindQt4-QT4_FOUND'
dfa2b58cb6 FindQt4: Restore QT4_FOUND setting

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10496
2025-03-21 09:32:52 -04:00
Peter Kokot dfa2b58cb6 FindQt4: Restore QT4_FOUND setting
Commit 1a8e43d57d (FindPackageHandleStandardArgs: Clarify the FOUND_VAR
option, 2024-12-31, v4.0.0-rc1~247^2) simplified the
`<PackageName>_FOUND` and `<PACKAGENAME>_FOUND` variables one step
further but missed that this specific module sets the `QT4_FOUND`
variable also for the case where `find_package_handle_standard_args()`
isn't called (for example, when the found package is Qt3 or Qt5 and
later).  Restore the `set()` call in case `QT4_FOUND` is used in the
code.
2025-03-21 08:36:57 -04:00
Peter Kokot cdda7d044d Qt4Macros: Replace obsolete/deprecated macro_add_file_dependencies()
The MacroAddFileDependencies module is deprecated as of CMake 3.14 but
doesn't emit warnings/deprecation notices yet. This for now only
upgrades the code usage of Qt4Macros module when used with FindQt4
without this deprecated module.

Additionally, the lowercase style is used in the documentation.
2025-03-16 01:56:37 +01:00
Kitware Robot 1772622772 LICENSE: Replace references to Copyright.txt with LICENSE.rst
```
git grep -lz 'Copyright.txt or https://cmake.org/licensing ' |
  while IFS= read -r -d $'\0' f ; do
    sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / {
              s/Copyright.txt/LICENSE.rst/
            }' "$f" ; done
```
2025-03-03 10:43:35 -05:00
Kitware Robot de273b2e11 LICENSE: Replace references to Copyright.txt with LICENSE.rst
```
git grep -lz 'Copyright.txt or https://cmake.org/licensing ' |
  while IFS= read -r -d $'\0' f ; do
    sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / {
              s/Copyright.txt/LICENSE.rst/
            }' "$f" ; done
```
2025-03-03 09:56:07 -05:00
Nikita Nemkin d138555959 Help: Use Title Case for all "Imported Targets" sections 2025-01-31 12:23:29 -05:00
Brad King 7afa58b15d Modules/Find*: Include FindPackageHandleStandardArgs normally
Since commit d74210a8bd (CMP0017: Remove support for OLD behavior,
2024-11-17) we can rely on CMP0017's NEW behavior unconditionally.
Calling `include(FindPackageHandleStandardArgs)` in a builtin module
will always get the builtin `FindPackageHandleStandardArgs`.
2025-01-30 08:53:12 -05:00
Peter Kokot 4e6a13f211 Use lower case style for commands
Where possible this syncs the CS for command names:

- check_c_source_compiles()
- check_cxx_compiler_flag()
- check_cxx_source_compiles()
- check_cxx_symbol_exists()
- check_include_file_cxx()
- check_include_file()
- check_include_files()
- check_library_exists()
- check_source_compiles()
- check_struct_has_member()
- check_symbol_exists()
- check_type_size()
- cmake_dependent_option()
- cmake_parse_arguments()
- feature_summary()
- file()
- find_package_handle_standard_args()
- if(), endif...
- install(FILES)
- list()
- message()
- pkg_check_modules()
- select_library_configurations()
- set_package_info()
- test_big_endian()
2025-01-28 13:51:46 -05:00
Brad King 094b42b643 CMP0020: Remove support for OLD behavior 2025-01-18 09:51:44 -05:00
Peter Kokot 1a8e43d57d FindPackageHandleStandardArgs: Clarify the FOUND_VAR option
The `find_package_handle_standard_args(FOUND_VAR)` is deprecated as of
CMake 3.3 and both the `<PackageName>_FOUND` and the upper-cased
`<PACKAGE_NAME>_FOUND` are set with or without using this option.
Additionally, find modules and docs are also synced with this to make it
clearer.
2024-12-31 02:07:16 +01:00
Matthew Woehlke 99ac59d31b style: Remove trailing blank lines from all CMake sources
Our development workflow tooling prevents trailing blank lines
from being added, but some such lines remain from before that
was enforced.  Remove them to make it easier to rename files
without triggering enforcement.
2024-11-21 15:48:02 -05:00
Brad King f8332bec19 FindQt4: Fix typo in documentation formatting 2023-10-02 09:52:59 -04:00
Brad King 874c2e1198 FindQt4: Drop outdated advice to look at CMakeError.log on failure
The find module does not write information to the log.
2023-01-18 16:41:00 -05:00
Brad King 69d26f1502 Merge topic 'FPHSA-name-mismatches-chained-via-include'
98844ec9db FPHSA: detect inclusion between find modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Logan Barnes <barneslt63@gmail.com>
Merge-request: !5107
2020-08-10 11:25:10 -04:00
Ben Boeckel 98844ec9db FPHSA: detect inclusion between find modules
Various find modules include each other to delegate finding some subset
or variant of the package. Ideally, these would use `find_dependency` or
some other actual `find_package` mechanism, but that is a larger change.
Instead, just detect inclusion and suppress FPHSA name mismatch
warnings.

Fixes: #21060
2020-08-07 09:41:38 -04:00
Jean-Christophe Fillion-Robin 207373802e Fix typos identified using codespell
See https://github.com/codespell-project/codespell#readme

The following command was used:

```
codespell -q6 --skip="\
.git,\
*.json,\
./Copyright.txt,\
./Help/command/foreach.rst,\
./Help/prop_test/REQUIRED_FILES.rst,\
./Help/variable/CTEST_COVERAGE_COMMAND.rst,\
./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\
./Modules/CMakeRCInformation.cmake,\
./Modules/Internal/CPack/NSIS.template.in,\
./Modules/FindMatlab.cmake,\
./Modules/MatlabTestsRedirect.cmake,\
./Modules/Platform/Windows-Clang.cmake,\
./Modules/Platform/Windows-Intel-Fortran.cmake,\
./Modules/Platform/Windows-MSVC.cmake,\
./Source/CMakeVersion.cmake,\
./Source/cmConvertMSBuildXMLToJSON.py,\
./Source/cmCreateTestSourceList.cxx,\
./Source/cmGlobalVisualStudio10Generator.cxx,\
./Source/cmExportBuildFileGenerator.cxx,\
./Source/cmExportInstallAndroidMKGenerator.cxx,\
./Source/cmExportInstallFileGenerator.cxx,\
./Source/cmExportSet.cxx,\
./Source/cmExportTryCompileFileGenerator.cxx,\
./Source/cmFindPackageCommand.cxx,\
./Source/cmInstallCommand.cxx,\
./Source/cmGeneratorExpressionLexer.cxx,\
./Source/cmLocalVisualStudio7Generator.cxx,\
./Source/cmOrderDirectories.cxx,\
./Source/cmTarget.cxx,\
./Source/kwsys/*,\
./Source/QtDialog/CMakeSetupDialog.ui,\
./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\
./Source/CTest/cmParseCoberturaCoverage.h,\
./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\
./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\
./Tests/RunCMake/GoogleTest/xml_output.cpp,\
./Tests/RunCMake/Make/TargetMessages*,\
./Utilities/*,\
" \
-L "\
dependees,\
endwhile,\
fo,\
filetest,\
helpfull,\
nd,\
objext,\
stoll,\
supercedes,\
superceded,\
vas,\
varn,\
"
```
2020-07-22 12:44:47 -04:00
Artalus f4ed56ab63 Fix elseif() in place of else() 2019-07-03 11:57:53 +03:00
Kitware Robot df4ed1e9ff Help: Convert remaining modules to block-style comments 2018-10-22 11:09:34 -04:00
Christian Pfeiffer c2934b025d FindQt4: New IMPORTS, PLUGINS and MKSPECS handling
Fixes: #14155
2018-05-14 13:34:59 +02:00
Brad King cf06962d73 FindQt4: Revert "Set PLUGINS and IMPORTS dir even if empty"
The change in commit v3.11.0-rc1~306^2 (FindQt4: Set PLUGINS and IMPORTS
dir even if empty, 2017-11-19) regressed existing builds on some
machines.  Revert it for CMake 3.11 pending further investigation.

Fixes: #17814, #17817
Issue: #14155, #17492
2018-03-19 09:13:25 -04:00
Craig Scott 3c413e2a31 GENERATOR_IS_MULTI_CONFIG: Use for multi-config checks in Modules 2017-12-30 09:35:56 +11:00
Christian Pfeiffer f81d186b15 FindQt4: Set PLUGINS and IMPORTS dir even if empty
Fixes: #14155
Issue: #17492
2017-11-19 22:54:24 +01:00
Jean-Christophe Fillion-Robin 33161f489c FindQt4: Do not assume all libraries are frameworks
Since on MacOSX not all modules are available as "framework" (e.g libQtUiTools.a),
the assumption made in "FindQt4.cmake" is not always valid and systematically
setting the imported libraries location to framework location is incorrect.

This commit increases the robustness of the logic by first checking
if the location exists.

Fixes #17195
2017-08-21 16:18:49 -04:00
Brad King 86578eccf2 Simplify CMake per-source license notices
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.
2016-09-27 15:14:44 -04:00
Daniel Pfeifer 3a7be4f394 prefer list(APPEND) over string(APPEND) where appropriate 2016-08-08 21:28:52 +02:00
Daniel Pfeifer 5d0d980d99 Use string(APPEND) in Modules
Automate with:

find Modules -type f -print0 | xargs -0 perl -i -0pe \
's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
2016-07-28 00:41:13 +02:00
Brad King 5ed2881cb2 FindQt4: Document Qt4::QtDeclarative imported target (#16157) 2016-06-20 08:49:31 -04:00
Daniel Scharrer 009c1865dc FindQt4: Fix handling of QT_VERSION_MAJOR mismatch
Fix capitalization of Qt4_FOUND variable when setting it to false in
this case.  This caused find_package(Qt4) to appear successful when it
was not.  Note that the legacy QT4_FOUND variable is unconditionally
overwritten at the end of the file with the value of Qt4_FOUND.
2014-12-09 10:43:02 -05:00
Brad King 4c8c442d7c Help: Fix broken cross-references reported by 'nitpicky' option
Enable the Sphinx 'nitpicky' option and fix the resulting warnings about
dangling references.
2014-11-07 11:41:21 -05:00
Brad King 20c5f4fbd9 Modules: Wrap long lines in pre-formatted documentation blocks
Help format the blocks better for display without a wide screen.
2014-11-06 14:52:26 -05:00
Brad King 58b2d760ee Modules: Format documentation to avoid over-long preformatted lines
Convert several preformatted code block literals that enumerate lists of
options or variables to use reST definition lists instead.  Manually
wrap other long lines in code blocks.
2014-10-22 15:52:31 -04:00
Brad King 35746899a3 Merge topic 'FindQt4-more-plugins'
4b5052b0 FindQt4: Add nativewifi and qtga plugins
2014-07-29 08:52:11 -04:00
Mathieu MARACHE 4b5052b0cd FindQt4: Add nativewifi and qtga plugins
While at it, update QT_QTGUI_PLUGINS to use QT_IMAGEFORMATS_PLUGINS
instead of duplicating the list.
2014-07-28 09:39:23 -04:00
Nils Gladitz 567d4d8dc6 FindQt4: Don't further process qmake if it does not belong to Qt4
If the only qmake that can be found belongs to Qt5 the find module
would otherwise still further interrogate it and issue diagnostics
which are specific to Qt4.
2014-06-27 16:24:40 +02:00
Brad King 06ab7db30c FindQt4: Use standard section header underline convention
The FindQt4 module is a CMake Domain object of type "module".
Our convention for domain object document titles is "------"
and domain object document sections is "^^^^^^".  Switch to
these within the FindQt4 documentation.
2014-06-02 14:11:54 -04:00
Rolf Eike Beer 0645eedb71 FindQt[34]: Prefer matching versioned tool names
After finding qmake we search in QT_BINARY_DIR for the other Qt tools.
Try all versioned executable names before trying the plain executable name.
This makes it much more likely that if 2 different major versions are installed
in the same prefix CMake will be able to detect a proper set of tools.
2014-05-22 08:56:05 -04:00
Clinton Stimpson 83934757c9 Find*: Make find_package(.. QUIET) affect Check* modules.
Fixes issues #14812 and #14813 where find_package(OpenMP QUIET) and
find_package(Qt4 QUIET) would still print out messages when calling
check*() functions.

Also a partial fix for  #14445 where building CMake
(without cmake-gui) when Qt5 is installed and Qt4 is not installed
and warnings come out of FindQt4.cmake.
2014-03-29 20:22:54 -06:00
Stephen Kelly 7d90d6c59e Qt4: Add IMPORTED executable for qmake. 2014-02-09 14:35:57 +01:00
Stephen Kelly 0f5dfd10ba Help: Specify that qtmain.lib is only used for WIN32 executables. 2014-02-05 16:05:16 +01:00
Brad King f748b59e20 Merge topic 'fix-Qt-autogen'
6053ce22 QtAutogen: Make uic work even when the source is in a subdir.
1fc9ecfa FindQt4: Make AUTOMOC work regardless which order Qt 4/5 is found.
2014-02-04 13:34:54 -05:00
Stephen Kelly 2739a6f97e Help: Move Qt tool invocation information to a generic cmake-qt manual.
Add an introduction about the use of different package types, and the
ability to use Qt 4 and 5 versions together in a single buildsystem.

Add a section about automatic linking of the qtmain.lib library and
how to disable it.
2014-02-02 11:28:12 +01:00
Stephen Kelly 1fc9ecfae6 FindQt4: Make AUTOMOC work regardless which order Qt 4/5 is found.
Commit 321e348e (QtAutogen: Use Qt 4 IMPORTED targets to find
executable locations., 2014-01-24) attempted to fix this problem,
but only solved it for a particular ordering of find_package for
Qt 4 and Qt 5.

Add a test to ensure that it works with both orderings.
2014-01-29 17:02:43 +01:00
Stephen Kelly e6182f5d5d Qt4: Create IMPORTED executable targets for all Qt executables.
Qt 5 already has similar IMPORTED targets.  The versioned namespace will
allow de-conflicting the variable names between Qt 4 and Qt 5.
2014-01-28 21:04:10 +01:00
Stephen Kelly f81e67c616 Help: Update Qt4 documentation.
Remove independent doc listing for Qt4ConfigurationSettings, Qt4Macros
and UseQt4. These are implementation details.

Recommend the use of IMPORTED targets.

Remove references to the UseQt4 file, which is obsolete in light of
the IMPORTED targets.

Add documentation for automatic tool invocation and options.

Remove reference to variables which should not be needed in modern
implementations.
2014-01-15 16:23:51 +01:00
Stephen Kelly 4608a260d4 Document the TARGET options in Qt4 macros.
Feature introduced in commit 9ce60ff5 (Qt4Macros: Allow specifying
a TARGET in invokations of macros., 2013-02-26).
2014-01-14 14:55:05 +01:00
Brad King 15562c11ef Merge topic 'policies'
73e9340 get_target_property: Error on non-existent target.
ab9f58f FindQt4: Ensure target exists before calling get_target_property.
37ebeb9 FindQt4: Fix use of get_target_property to use actual target name.
6aabb6a Genex: Use case-sensitive comparison for COMPILER_ID.
5bb53f6 cmTarget: Deprecate COMPILE_DEFINITIONS_ properties with a policy.
2014-01-09 09:37:20 -05:00