summaryrefslogtreecommitdiffstats
path: root/Source/cmake.h
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Add -A option to specify a generator platformBrad King2014-09-151-0/+1
| | | | | | | | | | | | Define the 'cmake -A' option to set CMAKE_GENERATOR_PLATFORM without having to spell out the whole variable name. We choose the name '-A' for "platform" because '-P' is already taken, and in the common use case the "platform" is actually an architecture (e.g. x64). Teach the RunCMake test infrastructure to use -A to pass the generator platform. Extend the RunCMake.GeneratorPlatform test with a case to verify that the -A option cannot be repeated.
* CMake: Add CMAKE_GENERATOR_PLATFORM optionBrad King2014-09-051-0/+9
| | | | | | | | | | | Reject the option by default. It will be implemented on a per-generator basis. Pass the setting into try_compile project generation. Add cache entry CMAKE_GENERATOR_PLATFORM and associated variable documentation to hold the value persistently. Add a RunCMake.GeneratorPlatform test to cover basic use cases for the option. Verify that CMAKE_GENERATOR_PLATFORM is empty by default, and that it is rejected when the generator does not support a user setting.
* backtrace: Convert to local paths in IssueMessageBen Boeckel2014-06-051-1/+1
| | | | | This is the only place we care show the FilePath to the user, so defer the expensive relative path calculation until here.
* cmake: remove dummy backtraces for IssueMessageBen Boeckel2014-06-051-2/+2
|
* Merge topic 'cxx14-features'Brad King2014-05-291-0/+11
|\ | | | | | | | | dd043c3f Features: Add support for C++14 features.
| * Features: Add support for C++14 features.Stephen Kelly2014-05-221-0/+11
| | | | | | | | Record the features implemented by GNU 4.9 and Clang 3.4.
* | Merge topic 'cpack-properties'Brad King2014-05-281-0/+12
|\ \ | |/ |/| | | | | | | d0b1d2a6 CPackWiX: Implement CPACK_NEVER_OVERWRITE and CPACK_PERMANENT properties 15a8af21 Add an "installed file" property scope
| * Add an "installed file" property scopeNils Gladitz2014-05-281-0/+12
| | | | | | | | | | | | | | Teach set_property and get_property an "INSTALL" property type to be associated with install-tree file paths. Make the properties available to CPack for use during packaging. Add a "prop_inst" Sphinx domain object type for documentation of such properties.
* | Features: Extend concept to C language.Stephen Kelly2014-05-141-0/+6
|/ | | | | | | | | | | Add properties and variables corresponding to CXX equivalents. Add features for c_function_prototypes (C90), c_restrict (C99), c_variadic_macros (C99) and c_static_assert (C11). This feature set can be extended later. Add a <PREFIX>_RESTRICT symbol define to WriteCompilerDetectionHeader to conditionally represent the c_restrict feature.
* Features: Make CMAKE_CXX_KNOWN_FEATURES a property.Stephen Kelly2014-05-021-0/+48
| | | | | As a 'built-in' variable it imposes a cost on all variable lookups and it is expected to be rarely used.
* Remove extra semicolons from C++ code.Stephen Kelly2014-04-031-4/+4
| | | | | Clang based tools running over the code complain about these, but clang has a fixit for removing them.
* stringapi: Command namesBen Boeckel2014-03-081-4/+4
|
* stringapi: Use strings for generator namesBen Boeckel2014-03-081-2/+2
|
* Directories: Take strings when setting directoriesBen Boeckel2014-03-081-4/+4
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-4/+4
| | | | | | | | | | | Casts from std::string -> cmStdString were high on the list of things taking up time. Avoid such implicit casts across function calls by just using std::string everywhere. The comment that the symbol name is too long is no longer relevant since modern debuggers alias the templates anyways and the size is a non-issue since the underlying methods are generated since it's inherited.
* stringapi: Use strings for variable namesBen Boeckel2014-03-081-5/+5
| | | | Variable names are always generated by CMake and should never be NULL.
* stringapi: Use strings for property namesBen Boeckel2014-03-081-9/+11
| | | | Property names are always generated by CMake and should never be NULL.
* Refactor tool selection for edit_cache (#14544)Brad King2013-11-121-3/+4
| | | | | | | | | Refactor edit_cache tool selection to ask each global generator for its preference. Teach the Ninja generator to always use cmake-gui because Ninja by design cannot run interactive terminal dialogs like ccmake. Teach the Makefile generator to use cmake-gui when also using an "extra" generator whose IDE has no terminal to run ccmake, and otherwise fall back to CMAKE_EDIT_COMMAND selection for normal Makefile build systems.
* Refactor internal resource location APIs and initializationBrad King2013-11-121-16/+1
| | | | | | | | | | | | | | | | | | | | Rename cmSystemTools::FindExecutableDirectory to FindCMakeResources. Teach it to compute the locations of cmake, ctest, cpack, ccmake, and cmake-gui executables, and the location of CMAKE_ROOT. Provide this information from static cmSystemTools::Get<resource>() methods. Refactor code that needs these locations to use the new APIs. Teach FindCMakeResources to use the OS X system API to lookup the executable location. When running from the CMake build tree itself, leave a file in the tree that FindCMakeResources can use to read the location of the source tree. This avoids the need to compile the source tree location into a binary that may be installed and used without the source tree. Teach the QtDialog on OS X to create a "cmake-gui" symlink in the build tree next to "cmake" and the other tools, as is already done in the install tree for the application bundle. This ensures a consistent set of executables are available in one directory.
* cmake: Always pass through stdout/stderr in --build modeBrad King2013-10-181-2/+1
| | | | | | Enable the --use-stderr behavior by default and ignore the old option. Passing through the pipes allows color terminal output and other things to work as if one ran the native build command directly.
* Drop unused builtin documentation APIsBrad King2013-10-161-2/+1
| | | | | Now that all DefineProperty documentation calls have been dropped, drop the supporting APIs.
* Drop the 'Full' field from cmDocumentationEntryBrad King2013-10-161-38/+7
| | | | | We need only 'Brief' for usage documentation. We no longer have builtin 'Full' documentation, which is now in Help/*/*.rst files.
* Drop builtin property documentationBrad King2013-10-161-3/+0
| | | | | | Drop all DefineProperty calls for non-chained properties. Drop the documentation from the chained ones. The documentation for all properties is now in Help/prop_*/*.rst files.
* Drop "full" documentation output typesBrad King2013-10-151-22/+0
| | | | | | | | | | | | | | | | We will no longer support full documentation generation from executables and will instead generate documentation with other tools. Disable (with a warning left behind) the command-line options: --copyright --help-compatcommands --help-full --help-html --help-man Drop supporting code. Drop manual sections generation from executables. Remove internal documentation construction APIs. Drop unused sections See Also, Author, Copyright, Compat Commands, Custom Modules.
* 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.
* message: Add a DEPRECATION modeStephen Kelly2013-10-081-1/+3
| | | | | | By default, the message is not issued. If CMAKE_ERROR_DEPRECATED is on, the message is fatal. If CMAKE_WARN_DEPRECATED is on, the message is a warning.
* Merge topic 'split-cmake-E'Brad King2013-10-071-28/+0
|\ | | | | | | | | c04995b cmake: Split -E command implementation into separate source file
| * cmake: Split -E command implementation into separate source fileBrad King2013-10-031-28/+0
| | | | | | | | | | | | | | | | | | | | | | Move the cmake::ExecuteCMakeCommand static method and all the static methods it calls out of the 'cmake' class to a separate 'cmcmd' class. Build the latter as part of the main cmake executable with cmakemain.cxx and not in CMakeLib. Drop unused header includes from "cmake.cxx". By moving this implementation out of cmake.cxx we avoid carrying it around in all the executables that use class 'cmake'. It is needed only for the main "cmake -E" functionality.
* | Remove redundant cmake::GetIsPropertyDefined methodBrad King2013-09-171-2/+0
|/ | | | We already have cmake::IsPropertyDefined for the same reason.
* Merge topic 'cmake-help-generators-fix'Brad King2013-05-211-2/+2
|\ | | | | | | | | dea4d26 Docs: cmake -G selects a "build system" generator
| * Docs: cmake -G selects a "build system" generatorStephen Kelly2013-05-211-2/+2
| | | | | | | | -G is not only for makefile generators.
* | Fix spelling and typos (non-binary)Andreas Mohr2013-05-071-2/+2
|/
* Xcode: Implement generator toolset selection (#9831, #13802)Brad King2013-02-071-0/+1
| | | | | Implement generator toolset selection (cmake -T) for Xcode > 2.0 by adding the GCC_VERSION build setting to project files.
* VS: Implement generator toolset selection (#10722, #13774)Brad King2013-02-071-0/+2
| | | | | | | | | | | | Implement generator toolset selection (cmake -T) for VS >= 10 by setting the PlatformToolset. Extend the RunCMake.GeneratorToolset test case to verify CMAKE_GENERATOR_TOOLSET when the generator supports -T. Since commit 485a940e (VS: Simplify MSVC version reporting, 2012-08-23) all MSVC version information is detected during the compiler id step from the actual compiler invoked by generated build systems rather than hard-coded in VS generators. Therefore we can set the PlatformToolset in VS >= 10 project files and support toolsets from other VS versions.
* CMake: Add -T option to choose a generator toolsetBrad King2013-02-071-0/+13
| | | | | | | | | | | | Reject the option by default. It will be implemented on a per-generator basis. Pass the setting into try_compile project generation. Add cache entry CMAKE_GENERATOR_TOOLSET and associated variable documentation to hold the value persistently. Add a RunCMake.GeneratorToolset test to cover basic "-T" option cases. Verify that CMAKE_GENERATOR_TOOLSET is empty without -T, that -T is rejected when the generator doesn't support it, and that two -T options are always rejected.
* Add a way to check INTERFACE user property compatibility.Stephen Kelly2013-01-151-0/+2
|
* Add command to generate environment for a Windows CE SDKPatrick Gansterer2012-11-301-0/+2
|
* Allow a GeneratorFactory handling of more than one generatorPatrick Gansterer2012-11-191-3/+2
| | | | | | | | Pass the name of the requested generator to the generator factory, which is now responsible to check if it can create a matching generator for the name. This allows us to add more logic to the factory in a next step, so that not every possible generator needs to get registered explicit in cmake::AddDefaultGenerators().
* Introduce the abstract class cmGlobalGeneratorFactoryPatrick Gansterer2012-11-191-3/+2
| | | | | This new abstract class allows us move some logic from the cmGlobalGenerator into its own layer in a next step.
* Revert "Ninja: don't expand any rsp files"Bill Hoffman2012-10-011-2/+1
| | | | | | | | | This reverts commit 5598d9b2a06d4ec788b5e058435bb3bba99fd517. Since commit f1670ab1 (Ninja: don't confuse ninja's rsp files with nmake's, 2012-09-26) Ninja generator response files are placed in CMakeFiles/ so the previously existing check already avoids expanding them.
* Ninja: don't expand any rsp filesPeter Kuemmel2012-09-191-1/+2
|
* Fix some typos in the docs comments.Stephen Kelly2012-03-191-5/+5
|
* doxygen: review cmake.hYury G. Kudryashov2012-02-291-28/+24
| | | | | * Move top-level comment to class apidocs * Remove misleading comment
* doxygen: Small fixes in cmake.h apidocsYury G. Kudryashov2012-02-281-3/+2
|
* doxygen: Use proper syntax to document enumYury G. Kudryashov2012-02-281-12/+15
|
* Merge topic 'warn-funny-path-names'David Cole2012-02-071-2/+0
|\ | | | | | | | | c8ef643 Allow directory names containing '=' and warn if necessary (#12934)
| * Allow directory names containing '=' and warn if necessary (#12934)Brad King2012-02-061-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The approach taken by commit 8704525f (Reject directory names containing '=', 2011-01-14) was perhaps too heavy-handed for avoiding the obscure cases when '=' in the path fails due to limitations of Make syntax. Only two CMake tests: LinkDirectory OutOfSource fail when the path contains '=' and they cover obscure cases. Instead of rejecting such paths outright just warn when the problem may occur.
* | Merge topic 'UsingCMakeLikePkgConfig2'David Cole2011-08-251-8/+23
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 59238dc Fix --find-package mode on Cygwin, where enable_language(RC) is called 98472e4 Require the current cmake version in --find-package mode a6ccf3c Use $(CXXFLAGS) and $(LDFLAGS) in the --find-package test Makefile 4386918 Fix line length 7d69310 Only enable the test when using GNU make 3011149 Make the test harder by always having a space in the include dirs ab57ff6 Make the --find-package test harder 626fc71 Much improved test, should now be executed on all UNIXes ec6982d Disable any STATUS output in --find-package mode e552ae7 Dont check for -isysroot and -mmacosx-version on OSX in --find-package mode e589589 Rename helper macros print_compile_flags() to set_compile_flags_var() aecfc1f Fix test on OpenBSD with BSD make 6bb4ca3 The makefile for the test was kindof wrong fd15b5e Only run the test if we are using a makefile generator under UNIX 9fc87c6 Add a test for the new --find-package mode d3ae0ff Improve documentation for --find-package mode bf07375 Add a cmake.m4 for using cmake in autoconf projects instead of pkgconfig b0e3578 Use the file-utility to test for 64bit if there is no /usr/lib64 53edfb2 Better support for lib64 and Debian multiarch b8fdaa1 Fix copyright notice in new CMakeFindPackageMode.cmake 7690edf Replace cmake::GetScriptMode() with GetWorkingMode() e4f603b Implement find-package mode of cmake a91d662 Add find-package mode, which does nothing yet b976e70 Make clLocalGenerator::GetTargetFlags() public
| * | Replace cmake::GetScriptMode() with GetWorkingMode()Alex Neundorf2011-08-091-12/+22
| | | | | | | | | | | | | | | | | | | | | GetWorkingMode() returns a new enum WorkingMode, which is one of NORMAL_MODE, SCRIPT_MODE and FIND_PACKAGE_MODE. Alex
| * | Add find-package mode, which does nothing yetAlex Neundorf2011-07-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | -add command line argument --find-package and handle it, i.e. call an empty function cmake::FindPackage() -add basic help Alex