summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* server-mode: Add option to enable/disable test case explicitlyBrad King2016-09-291-0/+3
| | | | | | | Add a `CMake_TEST_SERVER_MODE` option that can be set in testing builds to enable/disable server mode tests explicitly. This will allow testing in combination with `CMake_TEST_EXTERNAL_CMAKE` or for server mode to be built on systems that have a python version that cannot run the test.
* server-mode: Add option to enable/disable the mode explicitlyBrad King2016-09-291-6/+16
| | | | | | | | Provide a way for scripts building CMake to enable server mode explicitly and assume the risk of a build failure if it is not supported. This will allow such scripts to ensure that server mode is available if the build succeeds. It also allows scripts to explicitly disable server mode even if it would be supported.
* server-mode: Rename variable CMake_{HAVE => ENABLE}_SERVER_MODEBrad King2016-09-291-2/+2
| | | | The latter is a better name for making it a public-facing option.
* server-mode: Enable from bootstrapped CMake buildBrad King2016-09-291-1/+1
| | | | | CMake is frequently built from source via bootstrap. There is no reason we cannot support server mode.
* 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.
* cmake-server: Bare-bones server implementationTobias Hunger2016-09-191-0/+12
| | | | | | | | | | | | | | | 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.
* Require CMake 2.8.12.2 to build CMake itselfBrad King2016-09-151-1/+1
| | | | | This will enable use of features such as ALIAS targets within CMake's own build.
* Do not build libuv on HP-UXBrad King2016-08-311-0/+3
| | | | Some work may be needed to port to HP-UX.
* Do not build libuv on SPARCBrad King2016-08-311-0/+3
| | | | Some work may be needed to port to SPARC with Solaris and Linux.
* Do not build libuv on CygwinBrad King2016-08-311-0/+3
| | | | | | | Currently libuv does not support Cygwin (see libuv issue 832) in part due to lack of pthread APIs: https://cygwin.com/cygwin-api/std-notimpl.html
* Do not build libuv on Mac OS X 10.4 and lowerBrad King2016-08-311-0/+14
| | | | | It needs APIs that have been available only since 10.5. Also check that the CoreServices header can be included.
* Add option to build CMake against a system libuvBrad King2016-08-311-4/+18
| | | | Create a CMAKE_USE_SYSTEM_LIBUV option.
* libuv: Build the library within CMakeBrad King2016-08-311-0/+13
| | | | | | | | | | | Take logic from upstream `Makefile.am` and `configure.ac` to build libuv sources. Update `uv.h` to include KWSys Large File Support configuration so that consistent stream libraries are used (on AIX with XL). Add a `cm_uv.h` header to include the CMake-provided copy of the `uv.h` header from CMake sources.
* Added CMake_BUILD_DEVELOPER_REFERENCE optionKonstantin Podsvirov2016-08-161-0/+5
| | | | | | | | By default is OFF and marked as advanced. It's also add custom cmake-developer-reference (ALL) target Generated output will be installed to ${CMAKE_DOC_DIR}/developer-reference.
* Make C++ feature checks extensibleDaniel Pfeifer2016-06-271-1/+1
| | | | | | Turn the feature check for cxx11_unordered_map into a function such that we can use it for other features as well. Drop the 11 suffix, as we may want to check features from other standards.
* cmake-gui: Reference LGPLv3 when redistributing QtBrad King2016-06-171-0/+10
| | | | | | | | | Download http://www.gnu.org/licenses/lgpl.txt and place it as Licenses/LGPLv3.txt in our source tree. When building cmake-gui, use option CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL to enable notification in the "About" dialog of how the distribution of Qt is licensed. Install the license file as ${CMAKE_ROOT}/Licenses/LGPLv3.txt so that the dialog can display a path to it.
* Automatically use OpenSSL by default on Linux and FreeBSD if availableBrad King2016-02-291-1/+9
| | | | | | | | | | | | | | Since https is almost ubiquitous nowadays we should support it by default whenever possible. When building our own curl, we already automatically enable SSL/TLS support on Windows and OS X by using the OS-native APIs. On UNIX platforms we need to use OpenSSL but have not done so by default before, leading to possible user confusion when https transfers fail later. Fix this by searching for OpenSSL quietly and enabling use of it automatically if it is found. Do this only on Linux and FreeBSD for now because on other UNIX platforms (e.g. AIX, HP-UX, SunOS) it seems too easy to find an OpenSSL that is not compatible with the target compiler.
* Add option to use a system-installed KWIMLBrad King2015-12-181-3/+22
| | | | | Do not activate it with the general use-system-libs options for now because KWIML is not commonly distributed or available.
* Port CMake from cmIML to KWIMLBrad King2015-12-181-3/+3
| | | | KWIML no longer uses a configured prefix.
* Update libarchive configuration within CMakeBrad King2015-10-281-0/+2
| | | | | | Hard-code libarchive build options to the way CMake needs them. Set them as internal cache entries so users do not see them when building CMake.
* Build: Set CMP0053 to NEW.Stephen Kelly2015-09-261-0/+3
| | | | | | If this policy is WARN, then the ReplaceVariableInString is executed with both the new algorithm and the OLD slow algorithm. The NEW algorithm should be used wherever it works.
* Avoid using C11 to build CMake if _Thread_local support is brokenRaphael Kubo da Costa2015-09-151-1/+6
| | | | | | | | | | | | | | | | | Support for C11's _Thread_local was introduced in GCC in the 4.9 series, even though we make the C11 compiler flags available in CMake with GCC >= 4.6. FreeBSD's runetype.h uses _Thread_local, which causes CMake's own build to fail when using GCC < 4.9 and -std=gnu11: /usr/include/runetype.h:92:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'const' extern _Thread_local const _RuneLocale *_ThreadRuneLocale; Add a test for _Thread_local support and only build CMake itself with C11 support if it works. Bug: http://www.cmake.org/Bug/view.php?id=15741
* Simplify condition for using rpcrt4 library on WindowsBrad King2015-08-271-11/+0
| | | | | Drop the CMAKE_BUILD_ON_VISUAL_STUDIO variable and hard-code the condition at its only use.
* Do not install 3rd-party dependencies by defaultBrad King2015-08-051-1/+1
| | | | | | | | Disable the CMake_INSTALL_DEPENDENCIES option by default and turn it on explicitly in our packaging scripts. This simplifies packaging in distributions that provide the dependencies for us without having to install them. We only need 3rd-party runtime dependencies to be installed for packaging with redistributable binaries.
* CMake: Add CMake_INSTALL_DEPENDENCIES optionKonstantin Podsvirov2015-07-271-0/+5
| | | | | By default this option is ON. Turn OFF to disable installing runtime 3rd-party dependencies.
* CMake: New option CMake_INSTALL_COMPONENTSKonstantin Podsvirov2015-07-071-1/+11
| | | | | By default is OFF. Now it's used with CPack IFW himself installer.
* CMake: Install COMPONENTsKonstantin Podsvirov2015-07-071-0/+1
| | | | | | | | | | | | | | | Added components: - cmake - ctest - cpack - cmake-gui - ccmake - data - sphinx-html - sphinx-singlehtml - sphinx-qthelp Other now Unspecified.
* Check for std::unordered_map only if we are building CMakeBrad King2015-05-201-1/+3
| | | | | When CMake_TEST_EXTERNAL_CMAKE is set then we are not actually building CMake so we do not need this check.
* Use std::unordered_map instead of hash_map where available.Stephen Kelly2015-05-181-0/+1
|
* Avoid using C++14 to build CMake if cstdio breaksBrad King2015-05-081-1/+6
| | | | | | | | | | The GNU 4.8 standard library's cstdio header is not aware that C++14 honors C11's removal of "gets" from stdio.h and results in an error: /.../include/c++/4.8/cstdio:120:11: error: no member named 'gets' in the global namespace Detect this problematic case and default to using C++11 instead of C++14 for building CMake itself.
* Simplify logic to compute install prefix in OS X CMake.appBrad King2015-04-091-4/+1
| | | | Also avoid explicitly dereferencing a variable in an if() condition.
* Add options to build CMake without any language dialectsBrad King2015-03-101-2/+2
| | | | | | If CMake_NO_<LANG>_STANDARD is set, do not set CMAKE_<LANG>_STANDARD. This will allow users to build with their own -std= flags without CMake adding any itself.
* FindJsonCpp: Drop new module due to upstream jsoncpp providing packageBrad King2015-02-201-4/+2
| | | | | | | | | | | | | | 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>
* Require libarchive 3.0.0 or laterGregor Jasny2015-01-291-1/+1
| | | | Older versions do not provide archive_entry_copy_sourcepath_w.
* drop reference to removed Windows 9x supportRolf Eike Beer2015-01-271-1/+0
|
* curl: Add CURL_CA_PATH option to CMake build processBrad King2015-01-231-0/+7
| | | | | | Move CMAKE_USE_OPENSSL and CURL_CA_BUNDLE up to the top of CMake so that CMake's own sources can know their values. Add the CURL_CA_PATH option at the top and honor it as part of the curl build.
* Add option to build CMake against a system jsoncppBrad King2015-01-201-3/+20
| | | | Create a CMAKE_USE_SYSTEM_JSONCPP option.
* Merge topic 'windows-utf-8'Brad King2015-01-161-1/+1
|\ | | | | | | | | cdc29c36 Encoding: Switch to use UTF-8 internally by default on Windows.
| * Encoding: Switch to use UTF-8 internally by default on Windows.Clinton Stimpson2015-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This fixes several reported bugs about CMake not handling non-ascii paths on Windows. Practically, the use of some unicode characters may still be limited by the build or compiler tools. For example, a user may be limited by the build tools to using characters within the Windows ANSI code page (which can include non-ascii characters in the current system language).
* | jsoncpp: Build the library within CMakeBrad King2015-01-151-0/+5
|/ | | | | | | | | Update json/json.h to account for our lack of autolink.h. Update json/config.h to include KWSys Large File Support configuration so that consistent stream libraries are used (on AIX with XL). Add a cm_jsoncpp_reader.h header to include the CMake-provided copy of the json/reader.h header from CMake sources.
* Add options to build CMake without latest language dialectsBrad King2014-12-051-2/+6
| | | | | | Set CMAKE_C_STANDARD and CMAKE_CXX_STANDARD only if they are not already defined. This will allow users to add the settings with different values to their local cache (e.g. on the command line).
* Merge topic 'use-latest-language-dialects'Brad King2014-12-011-0/+4
|\ | | | | | | | | d49f1c5e Build CMake with most-recent available language dialect.
| * Build CMake with most-recent available language dialect.Stephen Kelly2014-11-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | When CMake is built with CMake 3.1 or later, appropriate -std= options will be added for GNU and Clang compilers while building C and CXX code. This allows taking advantage of 'hidden' language features such as move-constructors, and allows the standard library to enable the use of more-advanced features too, where available. This does not change CMake host compiler requirements.
* | ccmake: Add CMAKE_USE_SYSTEM_FORM option to use libform instead of cmFormÅdne Hovda2014-11-251-2/+7
|/
* curl: Configure build to work within CMakeBrad King2014-11-101-4/+1
| | | | | | | | | | Set curl build options as needed for CMake rather than presenting them to the user in the cache. Drop the CMAKE_BUILD_CURL_SHARED option for now. Change the curl library name to 'cmcurl'. Disable blocks of code within curl CMakeLists.txt files that we do not need for CMake, but leave the code in place to make merging with curl updates easier.
* Merge topic 'cmake-cmp0054-warnings'Brad King2014-10-211-1/+1
|\ | | | | | | | | 29c3edb8 Avoid if() quoted auto-dereference
| * Avoid if() quoted auto-dereferenceBen Boeckel2014-10-201-1/+1
| | | | | | | | | | | | | | When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly dereference or quote the variable. We want if() to auto-dereference the variable and not its value. Also replace MATCHES with STREQUAL where equivalent.
* | Remove borland workarounds.Stephen Kelly2014-10-151-1/+1
|/ | | | | CMake 3.0 is the last release to require to be able to build with Borland.
* Remove unused legacy 'DartLocal.conf' fileBrad King2014-09-241-4/+0
|
* Fix if() checks of CMAKE_SYSTEM_NAME on CygwinBrad King2014-09-111-1/+1
| | | | | | The CMAKE_SYSTEM_NAME is "CYGWIN", but we also define a variable named "CYGWIN" to "1". Avoid allowing if() to expand the "CYGWIN" string as a variable.