summaryrefslogtreecommitdiffstats
path: root/Source/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'cmFileTimes'Brad King2019-05-231-0/+2
|\ | | | | | | | | | | | | | | | | 5b53cfda24 cmSystemTools: Remove cmSystemToolsFileTime interface 9c576a88d9 Use cmFileTimes instead of cmSystemToolsFileTime interface 4b45a5d5c7 cmFileTimes: New RAII based cmFileTimes class Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3358
| * cmFileTimes: New RAII based cmFileTimes classSebastian Holtermann2019-05-221-0/+2
| | | | | | | | | | This adds a new RAII based cmFileTimes class. It is supposed to replace the C style cmSystemToolsFileTime interface.
* | cmNinjaLinkLineDeviceComputer now lives in the correct source fileRobert Maynard2019-05-201-0/+2
|/
* cmUVProcessChain: Add cmUVProcessChainKyle Edwards2019-05-071-0/+2
| | | | | | | | | This class is ultimately intended as a replacement for cmsys::Process. It spawns a series of processes using libuv, piping the output of each command into the next. Note: input support has not yet been implemented because write support has not yet been implemented on cmUVStreambuf.
* cmUVStreambuf: Add std::streambuf implementation for uv_stream_tKyle Edwards2019-04-251-0/+1
| | | | | This will allow std::istream/std::ostream-based interaction with processes spawned by libuv.
* Refactor: Move/rename cmProcessGetPipes() to cmGetPipes()Kyle Edwards2019-04-251-0/+2
|
* Autogen: Rename `cmQtAutoGeneratorMocUic` class to `cmQtAutoMocUic`Sebastian Holtermann2019-04-151-2/+2
| | | | | The class name `cmQtAutoGeneratorMocUic` is long and cumbersome. This renames it to `cmQtAutoMocUic`.
* Autogen: Factor out concurrency framework to cmWorkerPool classSebastian Holtermann2019-04-151-0/+2
| | | | | | | | | | | | | | | This factors out the concurrency framework in `cmQtAutoGeneratorMocUic` to a dedicated class `cmWorkerPool` which might be reused in other places. `cmWorkerPool` supports fence jobs that require that - all other jobs before in the queue have been processed before the fence job processing gets started, - no jobs later in the queue will be processed before the fence job processing has been completed. Fence jobs are needed where the completion of all previous jobs in the queue is a requirement for further processing. E.g. in `cmQtAutoGeneratorMocUic` the generation of `mocs_compilation.cpp` requires that all previous source file parse jobs have been completed.
* Merge topic 'argument-parser'Brad King2019-04-091-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | b783e62533 cmExecuteProcessCommand: Port to cmArgumentParser 9bddb03f31 cmParseArgumentsCommand: Port to cmArgumentParser 45edf1ad66 Retire cmCommandArgumentsHelper f5acecaa6f cmExportCommand: Port to cmArgumentParser e6b6bb0618 cmInstallCommand: Port to cmArgumentParser 4336a29edd cmFileCommand: Port to cmArgumentParser 4359fe133b Introduce cmArgumentParser Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Leonid Pospelov <pospelovlm@yandex.ru> Merge-request: !3137
| * Retire cmCommandArgumentsHelperRegina Pfeifer2019-04-041-2/+0
| |
| * Introduce cmArgumentParserRegina Pfeifer2019-04-041-0/+2
| |
* | Autogen: Rename cmQtAutoGeneratorRcc to cmQtAutoRccSebastian Holtermann2019-04-061-2/+2
|/ | | | | The class name `cmQtAutoGeneratorRcc` is long and cumbersome. This shortens it to `cmQtAutoRcc`.
* Merge topic 'ghs-linux'Brad King2019-03-221-8/+16
|\ | | | | | | | | | | | | | | | | | | | | 2c43fb5be3 FindThreads: Fix pthread library check in GHS Multi Generator 0404efe786 GHS: Add support for GHS Multi Generator in Linux 2060a1445c Tests: Fix file name case in GHS object library test ddad70c8a4 Tests: Run GHS tests in a separate ctest process f7dca1fc97 GHS: Fix include-what-you-use and clang-tidy diagnostics Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3006
| * GHS: Add support for GHS Multi Generator in LinuxNaren Manimohan2019-03-211-8/+16
| |
* | Rename cmFileTimeComparison to cmFileTimeCacheSebastian Holtermann2019-03-181-2/+2
| | | | | | | | | | The name `cmFileTimeCache` reflects the functionality of the class more appropriately.
* | cmFileTimeComparison: Use cmFileTime internallySebastian Holtermann2019-03-181-2/+0
| | | | | | | | | | | | | | | | | | This replaces OS dependent code in `cmFileTimeComparison` with `cmFileTime` instances that provide the required file time load and comparison operations. A new public `cmFileTimeComparison::Load` method is introduced that, for a given file name, updates the `cmFileTimeComparison` cache on demand and returns a `cmFileTime` instance on success.
* | New cmFileTime classSebastian Holtermann2019-03-181-0/+4
|/ | | | | | The new cmFileTime class stores the file modification time as an OS independent nanosecond count. Its main use is to load and compare file modification times in nanosecond and second resolution.
* cmFileCommand: Factor out cmFileCopier and cmFileInstallerBryon Bean2019-03-131-0/+4
| | | | Split these classes out into their own sources.
* cmcompress: Delete unused 3rdParty moduleRegina Pfeifer2019-02-251-2/+1
|
* Xcode: Require at least Xcode 5Gregor Jasny2019-02-161-3/+0
|
* Merge topic 'add-missing-macos-framework'Brad King2019-01-291-1/+2
|\ | | | | | | | | | | | | 475e78d907 macOS: Add missing explicit dependency on CoreServices framework Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2873
| * macOS: Add missing explicit dependency on CoreServices frameworkChuck Atkins2019-01-291-1/+2
| | | | | | | | | | | | | | | | On Apple, the implementation of cmGlobalXCodeGenerator::Open uses LSOpenCFURLRef from CoreServices. This get's transitively pulled in from CMake's libuv build but ends up generating a linker error when using an external libuv. This explicitly adds the appropriate dependency.
* | cmMakefile: Impose maximum recursion limitKyle Edwards2019-01-231-0/+10
| | | | | | | | | | | | | | | | | | In order to keep infinitely-recursive scripts from causing a stack overflow in the CMake executable, CMake now imposes a maximum recursion limit before issuing an error message. The limit can be adjusted at runtime with CMAKE_MAXIMUM_RECURSION_DEPTH. Fixes: #18694
* | Factor out enum MessageType into dedicated headerBruno Manganelli2019-01-161-0/+1
| | | | | | | | Reduce the number of files relying on `cmake.h`.
* | VS: Rename VS 2017 generator sources to be version-independentBrad King2019-01-111-2/+2
| | | | | | | | | | | | Rename `cmGlobalVisualStudio{15 => Versioned}Generator`. Rename `Factory` to `Factory15` since that part still needs to be version-specific.
* | Merge topic 'custom-string'Brad King2018-12-131-0/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2d68b2c593 String: Add str_if_stable() as a const alternative to str() a0841b59bd String: Add support for a ""_s string literal syntax 9d5fe8e96a String: Add 'borrow' member to construct borrowing instances 80802a002c String: Add support for concatenation by operator+ ff69763ca0 String: Add a custom string type 410a3e4b22 Add support for using C++17 string_view or a fallback Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de> Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com> Merge-request: !2578
| * | String: Add support for a ""_s string literal syntaxBrad King2018-12-121-0/+1
| | | | | | | | | | | | | | | Create a `static_string_view` type that binds only to the static storage of string literals. Teach `cm::String` to borrow from these implicitly.
| * | String: Add a custom string typeBrad King2018-12-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a `cm::String` type that holds a view of a string buffer and optionally shares ownership of the buffer. Instances can either borrow longer-lived storage (e.g. static storage of string literals) or internally own a `std::string` instance. In the latter case, share ownership with copies and substrings. Allocate a new internal string only on operations that require mutation. This will allow us to recover string sharing semantics that we used to get from C++98 std::string copy-on-write implementations. Such implementations are not allowed by C++11 so code our own in a custom string type instead.
| * | Add support for using C++17 string_view or a fallbackBrad King2018-12-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define a `cm::string_view` type implemented via C++17 `std::string_view` when available. Provide a fallback implementation for C++11 and C++14 compilers. The fallback implementation was written by reading documentation of the standard spec. We have no dedicated tests for it, but it will be covered by tests of its clients later.
* | | Merge topic 'fileapi'Brad King2018-12-131-0/+8
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b9c6f08276 Help: Add release note for fileapi feature 4b6b2a571c fileapi: extend codemodel v2 with directory details eb8c7676a4 fileapi: extend codemodel v2 with a project model 42f0125ceb fileapi: Add test for cmakeFiles v1 6615408193 fileapi: add cmakeFiles v1 3f6ee75a66 fileapi: Add test for cache v2 7489e95b8e fileapi: add cache v2 ea0a060168 fileapi: Add test for codemodel v2 ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2706
| * | | fileapi: add cmakeFiles v1Brad King2018-12-121-0/+2
| | | | | | | | | | | | | | | | Issue: #18398
| * | | fileapi: add cache v2Brad King2018-12-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Start with v2 to distinguish it from server-mode v1. Issue: #18398
| * | | fileapi: add codemodel v2Brad King2018-12-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Start with v2 to distinguish it from server-mode v1. Issue: #18398
| * | | fileapi: Add protocol v1 infrastructure with support for shared query filesBrad King2018-12-121-0/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a file-based API that clients may use to get semantic information about the buildsystem that CMake generates. Clients will write query files under a designated location in the build tree, and CMake will write reply files for clients to read. Start with support for shared stateless query files. These allow clients to share requests for major object versions and get all those recognized by CMake. Once any client has written a shared request to a build tree it will persist. Other clients will not need to overwrite the request (since it is stateless) and should not remove it either. For now we add only an undocumented object kind to use for testing the query and reply infrastructure. Object kinds providing real semantic information will be added later. Issue: #18398
* | | CTest: Remove submit method 'xmlrpc'Regina Pfeifer2018-11-281-2/+1
|/ /
* | Autogen: Add cmQtAutoGenGlobalInitializer classSebastian Holtermann2018-11-111-0/+2
| | | | | | | | | | This moves the global ``AUTOMOC/UIC/RCC`` targets initializer generation code into a separate new ``cmQtAutoGenGlobalInitializer`` class.
* | Merge topic 'rename-cpack-ext-generator'Brad King2018-11-061-1/+1
|\ \ | |/ | | | | | | | | | | 20d5e77a27 CPack: Rename Ext generator to External Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2566
| * CPack: Rename Ext generator to ExternalCraig Scott2018-11-051-1/+1
| | | | | | | | | | Ext and External were used inconsistently in the code and the docs. This change converts all uses of Ext to External, including within variable names used by the generator.
* | add_subdirectory: Run subdirectory install rules in correct orderKyle Edwards2018-10-101-0/+2
|/ | | | | | | | | Before this change, install rules created by add_subdirectory() would be executed after all of the top-level install rules, even if they were declared before the top-level rules. This change adds a new policy, CMP0082, which interleaves the add_subdirectory() install rules with the other install rules so they are run in the correct order.
* LINK_DIRECTORIES: Add new properties and commandsMarc Chevrier2018-09-251-0/+2
| | | | | | | | | | | | These new capabilities enable to manage link directories Two new properties: * target properties: LINK_DIRECTORIES and INTERFACE_LINK_DIRECTORIES One new command * target_link_directories(): to populate target properties Fixes: #17215
* server: Compile json object generation source separatelyBrad King2018-09-211-0/+3
| | | | | Declare entry points in a dedicated header and compile the source separately instead of including it in the server implementation.
* cmLinkItem: Convert to a "sum type" over a string and target pointerBrad King2018-09-071-0/+1
| | | | | | | | | Avoid exposing the item name implicitly as std::string. When the item is a target, avoid storing a second copy of its name. Most link item construction is paired with calls to `FindTargetToLink` to get the possible target pointer. Rename these methods to `ResolveLinkItem` and refactor them to construct the entire item.
* CPack: Add "CPack External" generatorKyle Edwards2018-07-021-1/+2
| | | | | | | | This generator doesn't actually package the files. Instead, it provides a metadata JSON file that can be used by external packaging software to do its own packaging. This JSON file provides information about the components, component groups, installation types, and CMake projects.
* LINK_OPTIONS: Add new family of propertiesMarc Chevrier2018-06-061-0/+4
| | | | | | | | | | | | | | This family enable to manage link flags Three new properties: * directory property: LINK_OPTIONS * target properties: LINK_OPTIONS and INTERFACE_LINK_OPTIONS Two new commands * add_link_options(): to populate directory property * target_link_options(): to populate target properties Fixes: #16543
* Merge topic 'cpack-wix-sources'Brad King2018-05-311-2/+2
|\ | | | | | | | | | | | | ca49f1a8e4 CPack: Fix cross-compilation of WiX generator Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2116
| * CPack: Fix cross-compilation of WiX generatorBrad King2018-05-301-2/+2
| | | | | | | | | | | | | | Fix the case of the path to source files so it works on case-sensitive filesystems. Fixes: #18042
* | CPack: Add NuGet supportAlex Turbov2018-05-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | add_compile_definitions: add new commandMarc Chevrier2018-04-201-0/+2
| | | | | | | | | | | | | | This command manages preprocessor definitions at directory level and supports generator expressions. Fixes: #15374
* | string() Refactoring: creates an helper for REGEX REPLACEMarc Chevrier2018-04-161-0/+1
| |
* | Add cmGlobVerificationManager class, integrate with cmake and cmStateShane Parris2018-03-291-0/+2
| |