68 Commits

Author SHA1 Message Date
w00657280 c8bc56b0c6 fix:update cmake to 3.28.2
Signed-off-by: w00657280 <wuyuechang3@huawei.com>
2024-06-06 10:57:34 +08:00
Brad King 5979ea8c97 Help: Restore documentation placeholder for removed modules
In commit 88c4e83844 (UseJava: Move helper scripts to subdirectory,
2020-11-12) we removed modules that were not meant to be documented
publicly.  In order to keep links from older versions on `cmake.org` to
the "latest" documentation working for those modules, add placeholder
documents describing the change.
2020-11-20 12:30:14 -05:00
Nikita Nemkin 88c4e83844 UseJava: Move helper scripts to subdirectory
Also, exclude them from the help module index.
2020-11-12 20:14:05 +05:00
Robert Maynard c8ab973a03 CheckCompilerFlag: unified way to check compiler flags per language 2020-09-28 09:07:54 -04:00
Robert Maynard 03acbd0f64 CheckSoureRuns: Add a unified way to check if a source runs 2020-09-23 12:28:37 -04:00
Robert Maynard ebe66a286d CheckSoureCompiles: Add a unified way to check if a source compiles 2020-09-23 12:28:37 -04:00
Kitware Robot 16db7a6542 Help: Add Sphinx 'versionadded' directives to each top-level document
Run the `Utilities/Sphinx/update_versions.py` script to add initial
markup to every top-level document and find module.

Issue: #19715
2020-07-06 10:23:20 -04:00
Marc Chevrier 05c271bf4d CheckLinkerFlag: Add module to check validity of linker flags
Fixes: #15934
2020-05-25 10:57:14 -04:00
Stephen McDowell 67465ad1bd FindCUDAToolkit: Add module to find the CUDA Toolkit 2019-12-16 10:31:43 -05:00
Steve Wilson bb818fdced Languages: Add support for Objective-C++
Add entries in Modules and Modules/Platform to support
Objective-C++ compiler determination and identification.
Add Modules to check Objective-C++ compiler flags, source
compilations, program checks, etc...

Use OBJCXX as the designator of the language, eg:

project(foo OBJCXX)

Add various tests for Objective-C++ language features.  Add
tests to preserve C++ handling of .M and .mm files when
Objective-C++ is not a configured language.

Co-authored-by: Cristian Adam <cristian.adam@gmail.com>
2019-09-28 15:56:53 +02:00
Steve Wilson 2f812fa866 Languages: Add support for Objective-C
Add entries in Modules and Modules/Platform to support
Objective-C compiler determination and identification.
Add Modules to check Objective-C compiler flags, source
compilations, program checks, etc...

Use OBJC as the designator of the language, eg:

project(foo OBJC)

Add various tests for Objective-C language features.  Add
tests to preserve C++ handling of .m and .mm files when
OBJC is not a configured language.

Co-Authored-By: Cristian Adam <cristian.adam@gmail.com>
2019-09-28 15:56:46 +02:00
Bartosz Kosiorek e9474a7948 Help: Improve documentation formating 2019-04-04 15:13:58 +02:00
Chuck Atkins 93cb200a77 FindEnvModules: Provide a CMake interface to environment modules 2019-03-18 11:47:35 -04:00
Brad King 6507aa5fac FindOctave: Remove module pending further work
The `FindOctave` module added by commit 42fab1d0c0 (FindOctave: Add
module to find GNU octave, 2018-11-17, v3.14.0-rc1~283^2) has a few
problems in its implementation that need to be worked out before the
module can be included in a CMake release.  These were missed during
review.  Remove the module for now.  It can be restored later with a
fresh review.

Issue: #18991
2019-02-26 14:12:34 -05:00
Michael Hirsch, Ph.D 91762180d2 CheckFortranSourceRuns: Add module to check if Fortran code runs
Add a Fortran equivalent to the existing `Check{C,CXX}SourceRuns`
modules.
2019-01-10 14:09:12 -05:00
Marc Chevrier 42f346907c PIE link options: Update strategy to fix performance regression
Fixes: #18700
2018-12-19 19:41:27 +11:00
Michael Hirsch, Ph.D 42fab1d0c0 FindOctave: Add module to find GNU octave 2018-12-06 14:16:44 -05:00
Brad King 65894d1df2 Merge topic 'FindSQLite3-module'
a49a824cc3 FindSQLite3: Add module to find SQLite3

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2557
2018-11-07 07:26:46 -05:00
Chuck Atkins a49a824cc3 FindSQLite3: Add module to find SQLite3 2018-11-06 15:05:04 -05:00
Brad King 3021ef1f34 Merge topic 'cpack-doc-gen-names'
8082a261a7 Help: Use correct CPack generator names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2563
2018-11-06 13:33:21 -05:00
Craig Scott 8082a261a7 Help: Use correct CPack generator names
CPack generator names were not used consistently
throughout the documentation, resulting in ambiguity
about what the correct name was for use with the
`cpack -G` option. With the changes in this commit, the
cpack-generators(7) page of the manual now shows the
correct names and other help pages no longer use
inconsistent or incorrect names.
2018-11-06 16:42:38 +11:00
Frederik Gladhorn f09f9a1005 FindFontconfig: Add module to find Fontconfig
This module is inspired by one from KDE's KWin.
2018-10-18 20:32:09 +02:00
Frederik Gladhorn ff71980a47 FindLibinput: Add module to find libinput
This module is inspired by one from KDE's KWin.
2018-10-11 10:43:45 -04:00
Kyle Edwards 5bff880929 Help: Add new section for CPack generators
The documentation for CPack generators previously lived in their
respective internal CMake modules. This setup was misleading,
because it implied that you should include the modules in your own
code, which is not the case. Moving the documentation into a
separate section does a better job of hiding the internal modules,
which are just an implementation detail. The generator documentation
has also been modified to remove any references to the module name.

The CPackIFW module is a special exception: since it has user-facing
macros, the documentation for these macros has been kept in the module
page, while all other documentation related to the IFW generator has
been moved into the new section.

To make it easier to find the new documentation, the old help pages
for the CPack*.cmake modules have not been deleted, but have been
replaced with a link to their respective help page in the new
documentation section.
2018-06-21 11:00:25 -04:00
Mateusz Loskot 5d0ab2d830 FindODBC: Add module to search for ODBC library
Add tests for FindODBC module.
2018-05-22 21:29:22 +02:00
Alex Turbov 0faf9e2828 CPack: Add NuGet support
Create a CPack generator that uses `nuget.exe` to create packages:

    https://docs.microsoft.com/en-us/nuget/what-is-nuget

NuGet packages could be easily produced from a `*.nuspec` file (running
`nuget pack` in the directory w/ the spec file).  The spec filename does
not affect the result `*.nupkg` name -- only `id` and `version` elements
of the spec are used (by NuGet).

Some implementation details:

* Minimize C++ code -- use CMake script do to the job. It just let the
  base class (`cmCPackGenerator`) to preinstall everything to a temp
  directory, render the spec file and run `nuget pack` in it, harvesting
  `*.nupkg` files...;

* Ignore package name (and use default paths) prepared by the base class
  (only `CPACK_TEMPORARY_DIRECTORY` is important) -- final package
  filename is a responsibility of NuGet, so after generation just scan the
  temp directory for the result `*.nupkg` file(s) and update
  `packageFileNames` data-member of the generator;

* The generator supports _all-in-one_ (default), _one-group-per-package_
  and _one-component-per-package_ modes.
2018-05-11 09:28:44 -04:00
Marc Chevrier 780bfef533 FindPython*: New implementation for Python stuff
Fixes: #16142
2018-03-20 09:29:44 +01:00
Christian Pfeiffer 595dd77538 FindIconv: Add the FindIconv module.
This module provides abstraction over the various ways POSIX platforms
handle the iconv calls defined in POSIX.1-2001 and later versions.
2017-11-29 14:51:32 +01:00
Craig Scott a21f7d45e4 FetchContent: New module for populating content at configure time 2017-10-17 08:07:09 +11:00
Tin Huynh 50a02f544c FindOpenACC: Add module to detect compiler support for OpenACC 2017-09-22 10:42:27 -04:00
Jean-Christophe Fillion-Robin e478c209a3 FindPatch: Add module to find 'patch' command-line tool 2017-09-01 11:46:28 -04:00
Adriaan de Groot 46b0a6a8fe CPack-FreeBSD: add a generator for FreeBSD pkg(8)
Adds an option CPACK_ENABLE_FREEBSD_PKG to allow CPack to look
for FreeBSD's libpkg / pkg(8). If this is set and the libpkg
headers and library are found (which they will be, by default,
on any FreeBSD system), then add a FreeBSD pkg(8) generator.

The FreeBSD package tool pkg(8) uses tar.xz files (.txz) with two
metadata files embedded (+MANIFEST and +COMPACT_MANIFEST).
This introduces a bunch of FreeBSD-specific CPACK_FREEBSD_PACKAGE_*
variables for filling in the metadata; the Debian generator does
something similar. Documentation for the CPack CMake-script is styled
after the Debian generator.

Implementation notes:
 - Checks for libpkg -- the underlying implementation for pkg(8) --
   and includes FreeBSD package-generation if building CMake on
   a UNIX host. Since libpkg can be used on BSDs, Linux and OSX,
   this potentially adds one more packaging format. In practice,
   this will only happen on FreeBSD and DragonflyBSD.
 - Copy-paste from cmCPackArchiveGenerator to special-case
   the metadata generation and to run around the internal
   archive generation: use libpkg instead.
 - Generating the metadata files is a little contrived.
 - Most of the validation logic for package settings is in
   CPackFreeBSD.cmake, as well as the code that tries to re-use
   packaging settings that may already be set up for Debian.
 - libpkg has its own notion of output filename, so we have
   another contrived bit of code that munges the output file
   list so that CPack can find the output.
 - Stick with C++98.
2017-06-10 07:53:59 -04:00
Domen Vrankar 9e06e97d30 CPack/Archive: per component filenames support
Support for setting archive packager specific
per component filenames and monolithic package
filenames.
2017-05-17 00:47:15 +02:00
Ruslan Baratov fdb2ba2521 CheckIPOSupported: New module to check for compiler/cmake IPO support 2017-03-11 19:46:25 +08:00
Brad King 5d81817b71 Merge topic 'csproj_add_free_source_tags'
506207f9 VS: add test for VS_CSHARP_* source file property
a202749c VS: add CSharpUtilities module
9588d0a2 VS: add VS_CSHARP_<tagname> sourcefile property
2017-03-02 09:26:03 -05:00
Michael Stürmer a202749c46 VS: add CSharpUtilities module 2017-03-01 15:31:05 -05:00
Bradley Lowekamp 9837ed9699 GoogleTest: Add module to contain gtest_add_tests independently
Extract the `gtest_add_tests` macro from `FindGTest` into a separate
module. GTest or GoogleTest can be used by a project in a several
different ways, including installed libraries in the system, from an
ExternalProject, or adding the GTest source directory as a sub directory
of the project. As not all of these uses are supported by the FindGTest
module the useful `gtest_add_tests` macro is separated to easily enable
reuse.

Issue: #14151
2017-02-07 11:24:18 -05:00
Konstantin Podsvirov 6310f7c3a0 Add cpack_ifw_configure_file command 2017-01-11 13:56:45 +03:00
Schuyler Kylstra 130784e039 AndroidTestUtilities: Add module to help drive Android device tests
Add a module to manage the data needed for the project tests.  It will
move the test data to the build directory and transfer necessary data to
an Android device if that is enabled.
2016-09-30 13:49:47 -04:00
Roger Leigh 4a63be15dd FindICU: New module 2016-07-13 09:15:16 -04:00
Brad King fb8b8dd106 Merge topic 'add-FindVulkan'
adf4df28 Add FindVulkan.cmake.
2016-06-08 12:56:07 -04:00
Matthäus G. Chajdas adf4df28ca Add FindVulkan.cmake.
This adds FindVulkan with corresponding tests.
2016-06-08 12:44:03 -04:00
Clinton Stimpson 2e3c67d1b6 productbuild: Add new productbuild cpack generator.
This cpack generator basically replaces the obsolete PackageMaker generator.
2016-06-03 14:41:57 -06:00
Philippe Proulx a4194debea Add FindLTTngUST module to find LTTng-UST library
Also detect the library version number.  Provide results as variables
and as an imported target, LTTng::UST.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
2016-03-07 11:46:49 -05:00
Roger Leigh f9e45ab9d4 FindXalanC: New module to find the Apache Xalan-C++ library 2016-01-20 09:33:38 -05:00
Gregor Jasny ba14510b4e OS X: Add FindXCTest module
Add a module to lookup XCTest Framework and xctest utility.
It also provides APIs for creating 'xctest' targets.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2015-03-23 09:12:19 -04:00
Brad King 1eb192905d Merge topic 'private-FindJsonCpp'
a41d621d bootstrap: Add --(no-)system-jsoncpp options
a5768442 FindJsonCpp: Drop new module due to upstream jsoncpp providing package
2015-02-23 10:26:30 -05:00
Brad King a576844263 FindJsonCpp: Drop new module due to upstream jsoncpp providing package
Since jsoncpp 0.7.0 (2014-11-20) the upstream may provide a CMake
package configuration file such that find_package(jsoncpp) will find a
jsoncppConfig.cmake file.  In order to avoid conflicting with this
(especially on case-insensitive filesystems), and since we always prefer
projects to provide package config files (that they maintain), it is
better to not provide FindJsonCpp publicly.

Move FindJsonCpp into a private source directory that is not installed
so that we can still use it for building CMake itself.

Reported-by: Ryan Pavlik <ryan.pavlik@gmail.com>
2015-02-20 08:22:02 -05:00
Nicolas Bock 393a45e2e1 CheckFortranCompilerFlag: Add module to check Fortran flag existence
Copy the CheckCCompilerFlag module and replace 'C' with 'Fortran'.
Also update the common patterns module to match some Fortran compiler
messages.
2015-02-05 11:16:59 -05:00
Bill Hoffman f3e0b6f1eb CTestCoverageCollectGCOV: Add module to run gcov
Provide a function to run gcov and create a tarball of results.
Since CDash tracks the md5sum of the files uploaded, use the
--mtime option with "cmake -E tar" so that tar files could be
created that would have the same md5sum with the same content.
2015-01-22 11:15:54 -05:00