summaryrefslogtreecommitdiffstats
path: root/Source/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* | VS: Add helper class to interact with Visual Studio InstallerIyyappa Murugandi2016-12-161-0/+2
|/ | | | | | VS 2017 exports a COM component which can be queried to find if VS 2017 is installed and also other components such as VC toolset and Windows SDKs. Add a helper class to interact with this interface.
* QtAutogen: Use checksum based subdirectories to avoid name collisionsSebastian Holtermann2016-12-071-2/+2
|
* Combine all unexpected commands to a single classDaniel Pfeifer2016-11-291-14/+2
|
* Merge topic 'initial_cuda_language_support'Brad King2016-11-291-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4cc601f2 Help: Add release note for CUDA support 7b9131da CUDA: Add tests to verify CUDA compiler works properly. 9cf5b98d CUDA: Prefer environment variables CUDACXX and CUDAHOSTCXX. a5e806b3 CUDA: Add support for CMAKE_CUDA_COMPILE_OPTIONS_VISIBILITY d038559e CUDA: Add separable compilation support to the makefile generator. 43ce4414 CUDA: Add separable compilation support to the ninja generator. 4b316097 CUDA: Add support for the CUDA_SEPARABLE_COMPILATION target property ae05fcc6 CUDA: Add LinkLineComputer that computes cuda dlink lines. 115269a8 CUDA: Refactor cmLinkLineComputer to allow for better derived children. 5dec4031 CUDA: Refactor CMakeCUDAInformation to prepare for separable compilation. 5b20d0ab CUDA: C++ compile features now enable cuda c++11 support. 489c52ce CUDA: Use the host compiler for linking CUDA executables and shared libs. bbaf2434 CUDA: add support for specifying an explicit host compiler. a92f8d96 CUDA: Enable header dependency scanning. ec6ce623 CUDA: State that cuda has preprocessor output and can generate assembly. 4f5155f6 CUDA: We now properly perform CUDA compiler identification. ...
| * CUDA: Add LinkLineComputer that computes cuda dlink lines.Robert Maynard2016-11-141-0/+2
| |
* | Add cmProcessOutput class to be used for decoding text dataDāvis Mosāns2016-11-141-0/+5
|/ | | | | This allows to decode text data we receive from external process which uses external encoding to our internal encoding.
* Remove unused cm_sha2 infrastructureBrad King2016-11-101-2/+0
| | | | | All clients of `cm_sha2` have been ported to `cmCryptoHash`, which now uses librhash internally.
* librhash: Build the library within CMakeBrad King2016-11-101-0/+1
| | | | | | | | Update `ustd.h` to include KWSys Large File Support configuration so that consistent stream libraries are used (on AIX with XL). Add a `cm_rhash.h` header to include the CMake-provided copy of the `rhash.h` header from CMake sources.
* VS: Choose flag map based on the toolset nameDon Olmstead2016-10-251-0/+2
| | | | | | | | | MSBuild interprets the `.vcxproj` content based on the `PlatformToolset` setting, so our reverse mapping needs to be based on that setting too. For VS 2010 and above, choose the flag map to match the toolset name rather than the generator VS version. Issue: #16153
* cmCommand: implement functions in cxx fileDaniel Pfeifer2016-10-211-0/+2
|
* Create all commands from a single functionDaniel Pfeifer2016-10-211-45/+64
|
* Separate compilation for commands included in cmBootstrapCommands2Daniel Pfeifer2016-10-211-0/+88
|
* Separate compilation for commands included in cmBootstrapCommands1Daniel Pfeifer2016-10-211-0/+83
|
* Separate compilation for commands included in cmCommandsDaniel Pfeifer2016-10-211-10/+5
|
* cmState: Split auxiliary classes into separate filesStephen Kelly2016-10-191-0/+4
| | | | | | | Port dependents to the new locations as needed. Leave behind a cmState.h include in cmListFileCache to reduce noise. It is removed in a following commit.
* cmState: Port dependents to new cmStateTypes headerStephen Kelly2016-10-191-0/+1
|
* Merge topic 'extract-computed-target-properties'Brad King2016-10-171-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cef59bb8 cmTarget: Implement GetProperty in terms of cmState::Snapshot 0d57b07a cmTarget: Group code for checking written properties together c3fb0d95 cmTarget: Move sanity checks and computed property access to callers fa9dbc56 cmGeneratorTarget: Implement cmTargetPropertyComputer interface 848ae2a6 cmTargetPropertyComputer: Template some methods on the Target a0a720e6 cm{,Generator}Target: Add global generator accessors 637e3f3e cmTargetPropertyComputer: Unify whitelist handling from cmTarget 05251e6d cmTargetPropertyComputer: Move whitelist check from cmTarget fbf1721c cmTargetPropertyComputer: Extract into new files 390a7d86 cmTargetPropertyComputer: Implement GetProperty without cmMakefile e32a6bdd cmListFileBacktrace: Add a method to retrieve the Bottom of a snapshot 7863fba1 cmTarget: Extract GetLocation method 8096682e cmTarget: Extract GetSources method 7d57c1a2 cmTarget: Extract location computation methods a55cac4b cmTarget: Split property computation into separate class 705fcf52 cmTarget: Move IMPORTED check to callers ...
| * cmTargetPropertyComputer: Extract into new filesStephen Kelly2016-10-151-0/+2
| |
* | cmRulePlaceholderExpander: Extract from cmLocalGeneratorStephen Kelly2016-10-151-0/+2
|/ | | | | Implement cmLocalGenerator::ExpandRuleVariables in terms of the new class for source compatibility and to reduce diff noise in this commit.
* cmLinkLineComputer: Extract from cmLocalGeneratorStephen Kelly2016-10-101-0/+6
| | | | | | | | | | | CMake has several classes which have too many responsibilities. cmLocalGenerator is one of them. Start to extract the link line computation. Create generator-specific implementations of the interface to account for generator-specific behavior. Unfortunately MSVC60 has different behavior to everything else and CMake still generates makefiles for it. Isolate it with MSVC60-specific names.
* codecvt: Add class for encoding conversionDāvis Mosāns2016-10-061-0/+2
| | | | | | Add a `codecvt` class that can be used as facet for locale so that it's possible to convert from internal UTF-8 encoding to other encodings such as Windows ANSI codepage.
* Merge topic 'cmake-server-filewatcher'Brad King2016-09-301-0/+1
|\ | | | | | | | | | | | | 4e34f042 server-mode: Watch CMakeLists.txt files 26250002 server-mode: Report watched files to client 0d96e193 server-mode: Add infrastructure to watch the filesystem
| * server-mode: Add infrastructure to watch the filesystemTobias Hunger2016-09-291-0/+1
| | | | | | | | | | | | | | Enable the server to watch for filesystem changes. This patch includes * The infrastructure for the file watching * makes that infrastructure available to cmServerProtocols * Resets the filesystemwatchers on "configure"
* | server-mode: Rename variable CMake_{HAVE => ENABLE}_SERVER_MODEBrad King2016-09-291-1/+1
|/ | | | The latter is a better name for making it a public-facing option.
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* server-mode: Introduce cmServerConnectionTobias Hunger2016-09-221-0/+1
| | | | | | | | Use it to split pipe and stdin/out handling out of cmServer itself. The server will shut down when it looses its connection to the client. This has the nice property that a crashing client will cause the server to terminate as the OS will close the connection on behave of the client.
* cmake-server: Bare-bones server implementationTobias Hunger2016-09-191-0/+11
| | | | | | | | | | | | | | | Adds a bare-bones cmake-server implementation and makes it possible to start that with "cmake -E server". Communication happens via stdin/stdout for now. Protocol is based on Json objects surrounded by magic strings ("[== CMake Server ==[" and "]== CMake Server ==]"), which simplifies Json parsing significantly. This patch also defines an interface used to implement different versions of the protocol spoken by the server, but does not include any protocol implementaiton.
* Add support for creating prebuilt Android.mk filesBill Hoffman2016-09-131-0/+4
| | | | | | | | | | | Add options to the `install()` and `export()` commands to export the targets we build into Android.mk files that reference them as prebuilt libraries with associated usage requirements (compile definitions, include directories, link libraries). This will allow CMake-built projects to be imported into projects using the Android NDK build system. Closes: #15562