summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* CMake: Enable use of liblzma in libarchive (#14504)Daniel Pfeifer2014-07-291-2/+21
| | | | | Build liblzma as part of CMake or find one on the system. Modify our port of libarchive to use the liblzma configured for use with CMake.
* Tests: Build and test KWIML even when testing an external CMakeBrad King2014-07-071-6/+5
| | | | | | | | | | The CMake_TEST_EXTERNAL_CMAKE option added by commit 9608ef6f (Tests: Optionally configure tests exclusively, 2014-03-03) is intended to allow one to run the CMake test suite with a compiler that may not be supported for hosting the build of CMake itself. However, we currently use the CMake test infrastructure to test KWIML everywhere that CMake supports. In order to continue testing KWIML even in places that CMake itself does not build, include it even when testing an external CMake.
* Update CDash server URLBrad King2014-06-241-2/+2
| | | | It is now at open.cdash.org and does not start in "/CDash".
* Update libarchive configuration within CMakeBrad King2014-04-031-0/+6
| | | | | | 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.
* Encoding: Provide option to configure CMake to use UTF-8 encoding.Clinton Stimpson2014-03-141-0/+7
|
* Tests: Optionally configure tests exclusively, with an external CMakeBrad King2014-03-031-137/+165
| | | | | | | | | | | Add an undocumented CMake_TEST_EXTERNAL_CMAKE option to name an external CMake 'bin' directory. Skip all main CMake binary builds and instead configure the Tests directory to run using the external CMake provided. This will provide a means to exercise the CMake test suite generating for target platforms and compilers with which the CMake source does not build. That will allow us to raise the level of C++ features required of a compiler to build our source while retaining tests for generating projects with older compiler tools.
* Tests: Drop CMAKE_TEST_GENERATOR(|_TOOLSET) variablesBrad King2014-03-031-4/+1
| | | | s/CMAKE_TEST_GENERATOR/CMAKE_GENERATOR/g
* Tests: Drop CMAKE_TEST_MSVC and test MSVC directlyBrad King2014-03-031-11/+0
| | | | | Now that we no longer support running tests using a different generator we can trust the MSVC platform indicator directly.
* Tests: Drop CMAKE_TEST_GENERATOR and CMAKE_TEST_MAKEPROGRAM optionsBrad King2014-03-031-11/+2
| | | | | | | | | | | Drop the option to test with a different generator and make program than was used to build. This was used only to test support for the Open Watcom compiler which at one time could not build CMake. Instead we will allow CMake to be configured to skip building binaries and just run the test suite using an external CMake (in a future change). For now leave the two option variables hard-coded to the old option defaults until code can be updated to stop using them.
* Remove compatibility CTest code.Stephen Kelly2014-02-281-2/+0
|
* Remove obsolete workaround for old cmake versions.Stephen Kelly2014-01-071-11/+0
|
* Tests: Move CMAKE_TEST_MAKEPROGRAM into Tests/CMakeLists.txtBrad King2013-11-181-5/+0
| | | | | Also drop the temporary MAKEPROGRAM variable and the DART_ROOT special case. We never run dashboard clients with Dart anymore.
* OS X: Drop version number from CMake.app bundle name (#11693)Brad King2013-11-121-2/+1
| | | | | | | | | Always name the application bundle "CMake.app". Users can rename it after installation if they wish. This is the typical approach used by OS X applications, including Xcode. It allows CMake to be upgraded without manually re-running CMake in every build tree to update the path to CMake. It also makes the executable location in the CMake build tree more predicatable.
* Teach --help-* options to load documentation from .rst filesBrad King2013-10-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Install the Help directory next to Modules to make it available in CMake distributions. Use cmRST to read Help .rst documents and print them as help output. Add options --help-manual-list --help-manual to list available manuals or print one of them. Implement the options --help-commands --help-modules --help-policies --help-properties --help-variables by mapping to the corresponding manual page. Implement the options --help-command-list --help-module-list --help-policy-list --help-property-list --help-variable-list by globbing the available Help .rst documents of the corresponding type and reading their titles. Implement the options --help-command --help-module --help-policy --help-property --help-variable by globbing the matching Help .rst document(s) and printing them.
* Drop CMAKE_STRICT modeBrad King2013-10-151-4/+0
| | | | | | | With our modern development workflow it is less likely a property will be added to C++ code without documentation. This mode only existed to support the DocTest which had very limited coverage of the properties anyway.
* Set IDE folder for CMake 'documentation' target only if it existsBrad King2013-10-151-1/+3
| | | | | The documentation target will be come optional, so do not reference it when it does not exist.
* Rename Docs to AuxiliaryBrad King2013-10-151-2/+2
| | | | | The directory contains auxiliary support files for integration with other tools, not documentation.
* Cleanup use of CMake version in install destinationsBrad King2013-10-151-21/+2
| | | | | | | | | | | | | | | | | Factor the CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR selection out of CMakeLists.txt and into a Source/CMakeInstallDestinations.cmake script. Load the script from the original location of the code. Cache the destination values as empty strings so we know if the user sets them explicitly. If not, then compute defaults based on the platform and full CMake version string. By not caching the versioned defaults, we can change them in a single build tree as the version changes. Remove duplication of the install destination defaults from the bootstrap script. Cache empty defaults there too. Parse from the CMake code the default values to report in the help output. Keep the CMake code in a structured format to make this reliable.
* Factor CMake version logic into dedicated moduleBrad King2013-10-151-21/+2
| | | | | | Move logic to compute CMake_VERSION out of the top-level CMakeLists.txt file to a dedicated Source/CMakeVersionCompute.cmake module and include it from the original location. This will allow it to be re-used.
* Require CMake 2.8.4 or greater to build CMakeStephen Kelly2013-10-151-16/+4
| | | | | | | | | | | | | | This allows the use of the $<TARGET_FILE:...> generator expression as a replacement for the use of the LOCATION target property. The use of the LOCATION target property is now deprecated for in-build targets. Also drop other checks for older CMake versions: * Simplify cmake_set_target_folder macro. * Use find_package(LibArchive) unconditionally. * Simplify condition for running testVisualStudioSlnParser test. * Convert two macros to functions. * Unconditionally run the CTestTestRerunFailed test.
* Merge topic 'osx-cmake-app-info-plist'Brad King2013-10-091-2/+3
|\ | | | | | | | | dcf1b64 OS X: Set CMake.app bundle Info.plist fields (#11694)
| * OS X: Set CMake.app bundle Info.plist fields (#11694)Brad King2013-10-081-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the Apple Info.plist reference documentation: Core Foundation Keys https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html Launch Services Keys https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html Cocoa Keys https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html modify the Info.plist we create for cmake-gui to add/set fields CFBundleShortVersionString = The release-version-number string LSApplicationCategoryType = UTI that categorizes the app for the App Store NSHumanReadableCopyright = Specifies the copyright notice and drop fields CFBundleGetInfoString CFBundleLongVersionString LSRequiresCarbon Also prepare to set CFBundleVersion = The build-version-number string but leave it commented out as TBD (To Be Determined) for now. The version fields must have form <major>.<minor>.<patch> with integer components. While at it, rename the bundle to end in ".<patch>" instead of "-<patch>" so that it is consistent with the version number and does not look like a packaging increment suffix.
* | Set policy CMP0025 to NEW while building CMake itselfBrad King2013-10-081-0/+3
|/ | | | | | | | | | CMake is aware of the policy's NEW behavior and the AppleClang compiler id. Set the policy to NEW explicitly to avoid the warning and get the NEW behavior. Also teach the RunCMake test infrastructure to build tests with -DCMAKE_POLICY_DEFAULT_CMP0025=NEW to avoid the policy warning in test output that must match specific regular expressions.
* Clean up install rules of CMake itself (#14371)Brad King2013-08-261-11/+12
| | | | | | | | | | | Ensure CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR are always relative paths in CMake code, and set defaults accordingly. Use the install() command instead of install_files() and install_targets(). This is more modern and also avoids stripping of the first character from user-specified destinations. While at it, fix the default destinations reported in the bootstrap help.
* Tests: Add generator toolset supportBrad King2013-02-071-0/+2
| | | | | Propagate CMAKE_GENERATOR_TOOLSET through the test hierarchy so that all tests can build with the selected generator toolset, if any.
* Add the -Wundef flag when compiling CMake.Stephen Kelly2013-01-081-2/+2
|
* Remove references to KWSys Process Win9x supportBrad King2012-12-191-2/+0
| | | | | | The KWSys "EncodeExecutable" and "ProcessFwd9x" executables were dropped from KWSys along with Win9x Process support. Drop references from the rest of the CMake build rules.
* Enable some compiler warnings when building CMake.Stephen Kelly2012-11-131-0/+23
| | | | | | The warnings are enabled for now only when using GCC 4.2 or later. It may be possible later to also enable them when building CMake with clang. Don't duplicate the compiler flags if already set.
* Remove CMake multiline block-end command argumentsMarcin Wojdyr2012-08-151-4/+2
| | | | removing arguments omitted in 9db3116226cb99fcf54e936c833953abcde9b729
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-47/+47
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-338/+338
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-24/+24
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'