summaryrefslogtreecommitdiffstats
path: root/Source/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
* | CTest: Add options to control test process affinity to CPUsBrad King2018-03-051-0/+2
|/ | | | | | | | | | In commit v2.8.0~170 (ENH: Added ctest test options PROCESSORS and RUN_SERIAL, 2009-09-07) CTest learned to track the number of processors allocated to running tests in order to balance it against the desired level of parallelism. Extend this idea by introducing a new `PROCESSOR_AFFINITY` test property to ask that CTest run a test with the CPU affinity mask set. This will allow a set of tests that are running concurrently to use disjoint CPU resources.
* CMakeLib: Link to system thread libraries to support std::threadBrad King2018-02-221-0/+1
| | | | | | | | | Some environments require linking to thread libraries for `std::thread`. Express this direct dependency of CMakeLib explicitly. Previously this was done indirectly through our bundled libuv, but that does not work when using a system libuv. Fixes: #17757
* Merge topic 'dedup-uv-signal-hack'Brad King2018-01-261-0/+1
|\ | | | | | | | | | | | | | | 3ec5f7c1 De-duplicate cmUVSignalHackRAII 1ad58d30 cmUVSignalHackRAII: Use nullptr instead of NULL Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1699
| * De-duplicate cmUVSignalHackRAIIBrad King2018-01-251-0/+1
| | | | | | | | | | | | This was added separately in `cmCTestMultiProcessHandler` and `cmQtAutoGenerator`. Factor out the duplicate code into a common header for re-use.
* | Merge topic 'ctest-chrono'Brad King2018-01-261-0/+3
|\ \ | |/ |/| | | | | | | | | | | | | e6a80ccf Make use of std::chrono throughout every component ff62b005 CTest: add safe conversion from cmDuration to integer types 695951bc CTest: introduce cmDuration Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1592
| * CTest: add safe conversion from cmDuration to integer typesWouter Klouwen2018-01-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | A problem area by recent refactoring of time to std::chrono has been the unsafe conversion from duration<double> to std::chrono::seconds, which is of an unspecified integer type. This commit adds a template function that for a given type provides a safe conversion, effectively clamping a duration<double> into what fits safely in that type. A specialisation for int and unsigned int are provided. It changes the protential problem areas to use this safe function.
* | Generators: remove KDevelop3 generatorAlex Neundorf2018-01-241-5/+0
|/ | | | | | | | | | The last KDevelop3 release was many years ago, in 2008 I think. I haven't seen or read about anybody using KDevelop 3 since a long time, so I think it can safely be removed from CMake. KDevelop 4 (first released in 2010) has its own proper CMake support now, independent from this generator. Alex
* Autogen: Rename cmQtAutogeneratorInitializer to cmQtAutoGenInitializerSebastian Holtermann2018-01-171-2/+2
|
* cmSourceFileLocation: allow skipping ambiguous extensionsBen Boeckel2018-01-101-0/+1
| | | | | | | | | | | The ambiguous extension logic is an old behavior that ends up taking lots of extra compute cycles to execute. This is triggered by various CMake codepaths which pass extension-less paths down when CMake actually knows that they are not ambiguous. These codepaths will be indicated in upcoming changes. Various APIs have gained a cmSourceFileLocationKind parameter, but they are all optional and default to the existing behavior.
* CTest: Remove unfinished batch test modeBrad King2017-12-081-1/+0
| | | | | This was partially implemented by commit v2.8.0~154 (Added some ctest batch capabilities, 2009-09-10) but never finished.
* cmUVHandlePtr: Move to CMakeLib to make it available everywhereBrad King2017-11-301-1/+2
|
* Add RAII handles for libuv handle typesJustin Berger2017-11-291-0/+1
| | | | | | | | | | | | | | The `uv_*_t` handle types are closed by `uv_close`, but the semantics are tricky. Calling `uv_close` may not close immediately. Instead it hands ownership to the uv loop to which the handle is currently attached. When the loop decides to close it, a callback is used to allow the `uv_close` caller to free resources. Provide an abstraction layer as `cm::uv_*_ptr` types corresponding to the `uv_*_t` handle types. Each pointer is either empty (`nullptr`) or has an initialized handle attached to a loop. Use move semantics to ensure a single owner of the handle so that clients can predict when the handle is destroyed.
* Merge topic 'hardcoded-path-removal'Brad King2017-11-271-1/+1
|\ | | | | | | | | | | | | | | | | | | | | a62d50ec Modules: Replace coded PATHS with PATH_SUFFIXES fd56d6a8 FindMPEG,2: Update to current libmpeg2 behavior 5f382cd8 FindPike: Update names and paths 6720807d FindAVIFile: Replace PATHS with updated suffixes f88ef9a9 Modules: Remove paths set as global Unix prefixes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1502
| * Modules: Remove paths set as global Unix prefixesChristian Pfeiffer2017-11-201-1/+1
| | | | | | | | | | This commit removes hardcoded paths that are already given in the platform files or in `UnixPath` on a global level.
* | Autogen: Make cmQtAutoGeneratorInitializer an instantiable classSebastian Holtermann2017-11-191-1/+0
| | | | | | | | | | Remove the cmQtAutoGenDigest classes and make cmQtAutoGeneratorInitializer instantiable instead.
* | Autogen: Add and use cmQtAutoGenerator base classSebastian Holtermann2017-11-191-0/+2
| | | | | | | | | | | | Adds the new base class `cmQtAutoGenerator` which contains common variables and methods used by `cmQtAutoGeneratorMocUic` and `cmQtAutoGeneratorRcc`.
* | Autogen: Rename cmQtAutoGenerators to cmQtAutoGeneratorMocUicSebastian Holtermann2017-11-191-2/+2
| |
* | Autogen: Introduce standalone RCC generator classSebastian Holtermann2017-11-191-0/+2
|/ | | | | | | | | Introduces the standalone RCC generator class `cmQtAutoGeneratorRcc`. Every instance of `cmQtAutoGeneratorRcc` class handles the `rcc` invocation for a single `.qrc` file. The class will be used in the future to allow parallel `.qrc` file processing by calling `cmake -E cmake_autorcc <INFO_FILE> <CONFIG>`.
* Move file/dir permissions code to common file.Domen Vrankar2017-11-081-0/+2
|
* Merge topic 'server-refactor'Brad King2017-11-061-0/+1
|\ | | | | | | | | | | | | | | | | | | | | 39c2feaf misc: Added utility method to allow working with stacks f5d2988e server: Swapped to cm_thread impl 2636d86c utility: Added minimal std::thread drop-in d46b4ba8 server: Updated server tests to try various communication channels 08dca583 Tests: reworked server tests to allow other operation modes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1230
| * utility: Added minimal std::thread drop-inJustin Berger2017-11-011-0/+1
| |
* | Windows: Embed version information into CMake binariesJustin Goshi2017-10-311-0/+13
|/
* cpack wix: support WiX generator on CygwinStephen Sorley2017-10-131-2/+12
| | | | | | | | | | | | Cygwin-built CMake now converts paths from Cygwin to Windows form (using cygpath -w) before they're passed to WiX. The Wix generator on Cygwin requires the libuuid-dev package when building CMake. However, the DLL it links to is installed by default as part of Cygwin's core libs, so it does not need to be distributed. If libuuid-dev isn't available, CMake is simply built without Wix support on Cygwin.