summaryrefslogtreecommitdiffstats
path: root/Source/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* clang-tidy: Make .clang-tidy a build-time dependencyMatthias Maennich2017-09-281-0/+2
| | | | | | | | | | Currently a change to the clang-tidy configuration remains unnoticed for incremental builds in the way that it won't trigger a rebuild. This can be considered a missing dependency that this patch fixes by introducing a compile time definition (-DCLANG_TIDY_SHA1) that triggers a rebuild upon change. Currently this only applies to the target CMakeLib. Signed-off-by: Matthias Maennich <matthias@maennich.net>
* Retire std::auto_ptr and its macro CM_AUTO_PTRMatthias Maennich2017-09-251-1/+0
| | | | Signed-off-by: Matthias Maennich <matthias@maennich.net>
* Autogen: Iterate source files only onceSebastian Holtermann2017-09-071-2/+3
| | | | | | | | | | | | | | This is a large commit that serves multiple purposes - Iterate source files only once and store all extracted information in a cmQtAutogenDigest class that can be reused. This is brings speed improvements because several properties are only evaluated once. More that that it helps to avoid duplication of code with non trivial files property checks. - Fix the Visual Studio generator to use PRE_BUILD when possible. - Convert `for( ... )` loops to C++11 range base loops where possible (cmQtAutogen*.cxx only). - String concatenation optimizations.
* server: always enable serverDaniel Pfeifer2017-08-261-14/+10
|
* Merge topic 'server-refactor'Brad King2017-07-181-0/+2
|\ | | | | | | | | | | | | | | | | | | cf0ae55d server: Add support for connections that aren't event based 5ddfb6a4 server: Add connection as part of a request d4f5d35c server: Refactor to make the event loop owned by server object 5acbf08b Tests: Teach Server test to forward exit code from server process Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !552
| * server: Refactor to make the event loop owned by server objectJustin Berger2017-07-111-0/+2
| |
* | Merge topic 'deb-on-windows'Brad King2017-06-291-1/+1
|\ \ | | | | | | | | | | | | | | | | | | 52991413 CPackDeb: Enable the DEB generator on Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !979
| * | CPackDeb: Enable the DEB generator on WindowsNils Gladitz2017-06-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | While some features require external Unix tools the generator is mostly portable. By enabling it on Windows it can be used for cross platform packaging.
* | | include_guard: implement new commandPavel Solodovnikov2017-06-221-0/+2
|/ /
* | CPack-FreeBSD: add a generator for FreeBSD pkg(8)Adriaan de Groot2017-06-101-0/+34
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* CPackIFW: Refactor out some commonly used codeKonstantin Podsvirov2017-05-031-4/+13
| | | | Move common used code to new cmCPackIFWCommon base class.
* LexerParser: move to custom directoryDaniel Pfeifer2017-04-281-11/+29
|
* CMakeLists: remove option to regenerate yacc/lexDaniel Pfeifer2017-04-281-55/+0
|
* CPack: drop CPack prefix for includesDaniel Pfeifer2017-04-111-0/+6
| | | | | | | | | | Automate with: git grep -l '#include <CPack/' -- Source \ | xargs sed -i 's/#include <CPack\/\(.*\)>/#include "\1"/g' git grep -l '#include "CPack/' -- Source \ | xargs sed -i 's/#include "CPack\/\(.*\)"/#include "\1"/g'
* Merge topic 'working-directory-fixes'Brad King2017-03-071-0/+2
|\ | | | | | | | | | | | | | | | | | | | | aba92ffd cmWorkingDirectory: use the new class 047a5e4d cmWorkingDirectory: add class for changing the workdir 89891bcb cmCTest, cmCTestCoverageHandler: remove cwd dance c3304fa5 OSXScriptLauncher: remove unused variable Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Brad King <brad.king@kitware.com> Merge-request: !540
| * cmWorkingDirectory: add class for changing the workdirBen Boeckel2017-03-061-0/+2
| |
* | Autogen: Add cmQtAutogeneratorCommon class with shared types and functionsSebastian Holtermann2017-03-061-0/+2
|/
* Xcode: Write shared schemes based on the default files generated by XcodeGusts Kaksis2017-02-281-0/+1
| | | | Issue: #15441
* cmDisallowedCommand: extract policy checking from cmCommandDaniel Pfeifer2017-02-131-0/+2
| | | | Implement cmDisallowedCommand as a wrapper class for cmCommand.
* Merge topic 'sparc-libatomic'Brad King2017-01-161-0/+9
|\ | | | | | | | | cda9a904 Explicitly link against libatomic on Linux/sparc for `__atomic_fetch_add_4`
| * Explicitly link against libatomic on Linux/sparc for `__atomic_fetch_add_4`Rolf Eike Beer2017-01-091-0/+9
| | | | | | | | | | On this platform atomic instructions are implemented using `libatomic` so we need to link it to use them.