summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
Commit message (Collapse)AuthorAgeFilesLines
* cmTarget: Add COMPILE_FEATURES target property.Stephen Kelly2014-04-071-0/+4
| | | | | | | Use the contents of it to upgrade the CXX_STANDARD target property, if appropriate. This will have the effect of adding the -std=c++11 compile flag or other language specification on GNU when that is needed for the feature.
* Merge topic 'compiler-warning-cleanup'Brad King2014-04-041-1/+1
|\ | | | | | | | | | | | | 6c190245 Remove extra semicolons from C++ code. 4bef02e7 cmTypeMacro: Add a class to eat the semicolon following the macro use. ff710539 Remove default labels from fully covered switch statements.
| * Remove extra semicolons from C++ code.Stephen Kelly2014-04-031-1/+1
| | | | | | | | | | Clang based tools running over the code complain about these, but clang has a fixit for removing them.
* | Merge topic 'cmMakefile_IsOn_fix_comment'Brad King2014-04-041-2/+5
|\ \ | |/ |/| | | | | a40f57e4 cmMakefile: Revise comment describing IsOn()
| * cmMakefile: Revise comment describing IsOn()Daniele E. Domenichelli2014-04-041-2/+5
| |
* | Merge branch 'master' into revise-compiler-id-policiesBrad King2014-04-021-72/+78
|\ \ | |/
| * stringapi: Use strings for dependency informationBen Boeckel2014-03-081-3/+3
| |
| * stringapi: Use strings for directoriesBen Boeckel2014-03-081-1/+1
| |
| * stringapi: Use strings for feature argumentsBen Boeckel2014-03-081-1/+2
| |
| * stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-2/+2
| |
| * strings: Remove cmStdString referencesBen Boeckel2014-03-081-9/+9
| | | | | | | | | | | | | | | | | | | | | | 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: Take strings for utility command namesBen Boeckel2014-03-081-2/+3
| |
| * stringapi: Use strings for VS project namesBen Boeckel2014-03-081-1/+1
| |
| * stringapi: Use strings for cache paths as argumentsBen Boeckel2014-03-081-2/+2
| |
| * stringapi: Use strings for AddSubdirectory pathsBen Boeckel2014-03-081-5/+7
| |
| * stringapi: Use strings for output names in AddCustomCommandToOutputBen Boeckel2014-03-081-1/+1
| |
| * stringapi: Use strings in target nameBen Boeckel2014-03-081-14/+15
| |
| * stringapi: Use strings for the languagesBen Boeckel2014-03-081-1/+1
| |
| * stringapi: Use strings for test namesBen Boeckel2014-03-081-2/+2
| |
| * stringapi: Use strings for source namesBen Boeckel2014-03-081-7/+7
| |
| * makefile: Remove an unused methodBen Boeckel2014-03-081-1/+0
| |
| * stringapi: Accept string parameters in methods which store to stringsBen Boeckel2014-03-081-1/+1
| |
| * stringapi: Use strings for variable namesBen Boeckel2014-03-081-16/+16
| | | | | | | | Variable names are always generated by CMake and should never be NULL.
| * stringapi: Use strings for property namesBen Boeckel2014-03-081-7/+9
| | | | | | | | Property names are always generated by CMake and should never be NULL.
* | Do not warn by default when policy CMP0025 or CMP0047 is not setBrad King2014-04-021-0/+2
|/ | | | | | | | | | | | | | | | | | | | | These policies are triggered by the use of a particular compiler rather than outdated CMake code in a project. Avoid warning in every project that enables a language by not displaying the policy warning by default. Add variable CMAKE_POLICY_WARNING_CMP<NNNN> to control the warning explicitly; otherwise enable the warning with --debug-output or --trace. This breaks with strict policy convention because it does not provide developers with any warning about the behavior change by default. Existing projects will continue to build without a warning or change in behavior. When a developer changes the minimum required version of CMake in a project to a sufficiently high value (3.0), the project will suddenly get the new compiler id and may break, but at least the breakage comes with a change to the project rather than the version of CMake used to build it. Breaking strict policy convention is worthwhile in this case because very few projects will be affected by the behavior change but every project would have to see the warning if it were enabled by default.
* cmMakefile: Return containers by const reference.Stephen Kelly2014-02-021-3/+3
| | | | They are not implicitly shared.
* cmMakefile: Make ConfigureString const.Stephen Kelly2014-01-221-3/+3
|
* cmMakefile: Make FindSourceGroup const.Stephen Kelly2014-01-221-2/+2
| | | | | Return a pointer instead of a reference. This allows making the accessor const with the least impact.
* cmMakefile: Trivially constify some methods.Stephen Kelly2014-01-221-29/+26
|
* cmMakefile: Remove non-const version of methodStephen Kelly2014-01-221-7/+0
| | | | The const version suffices.
* cmMakefile: Remove method declarations with no implementation.Stephen Kelly2014-01-221-2/+0
|
* cmMakefile: Consify custom command API.Stephen Kelly2014-01-221-1/+1
|
* cmMakefile: Constify policies accessors.Stephen Kelly2014-01-221-3/+4
|
* cmCacheManager: Consify version accessors.Stephen Kelly2014-01-221-2/+2
|
* cmMakefile: Constify some cmSourceGroup related code.Stephen Kelly2014-01-221-1/+1
|
* cmMakefile: Make GetProperty const.Stephen Kelly2014-01-221-7/+7
|
* Allow projects to specify extra inputs to CMakeBrad King2014-01-211-0/+1
| | | | | | | Define a new 'CMAKE_CONFIGURE_DEPENDS' directory property that projects can use to specify input files to the CMake configuration process. Extend the RunCMake.Configure test to verify that the build system re-runs CMake when this input changes.
* cmMakefile: make some methods take const std::string& instead of const char*Rolf Eike Beer2014-01-161-3/+5
| | | | | | | | Most callers already have a std::string, on which they called c_str() to pass it into these methods, which internally converted it back to std::string. Pass a std::string directly to these methods now, avoiding all these conversions. Those methods that only pass in a const char* will get the conversion to std::string now only once.
* Use cmsys::[io]fstream instead of cmsys_ios::[io]fstream.Clinton Stimpson2014-01-071-1/+0
| | | | | Also use SystemTools::Fopen() instead of fopen(). This is to eventually support utf-8 filenames.
* cmMakefile: Make FindTarget const.Stephen Kelly2013-11-191-2/+2
|
* Merge topic 'Qt-auto-generators'Brad King2013-10-281-0/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9c87d9c Add automatic rcc invocation for Qt. 84218e1 Add automatic uic invocation for Qt. 94a0ca6 Record which files are skipped by automoc. 18fb758 Run the main executable created in the autogen tests. e485ba1 Rename the QtAutomoc tests to QtAutogen. 7ce65c3 Add extra checks for the AUTOMOC target property. 32771fc Update output messages for generic use. f371ab5 Rename RunAutomoc to RunAutogen. 85b3d6e Extract an SetupAutoMocTarget method. ca124a1 Rename the AutomocInfo.cmake file to be more generic. a342c9f Move some makefile definitions up away from moc-specific code. 98632ef Add the AUTOGEN_TARGETS_FOLDER and obsolete AUTOMOC_TARGETS_FOLDER. 63378ba Rename some variables to reflect broader scope. 97f1aa3 Rename method to reflect generic use. 4abb111 Rename local variable to reflect generic use. 03878c9 Move variable set to where it is used. ...
| * Add automatic uic invocation for Qt.Stephen Kelly2013-10-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | The source files are already processed by cmQtAutomoc to look for moc includes, so extend that to also look for ui_ includes and find corresponding .ui files to process. This replaces the need to invoke qt4_wrap_ui(). As the ui files are not likely to be part of the SOURCES of the target, store the options associated with them separately in the cmMakefile for querying during the autogen run.
* | Drop compatibility with CMake < 2.4Brad King2013-10-231-7/+0
|/ | | | | | | | | | | | Drop all behavior activated by setting CMAKE_BACKWARDS_COMPATIBILITY to a value lower than 2.4, and generate an error when projects or the user attempt to do so. In the error suggest using a CMake 2.8.x release. Teach cmake_minimum_required to warn about projects that do not require at least CMake 2.4. They are not supported by CMake >= 3.0. Replace the documentation of CMAKE_BACKWARDS_COMPATIBILITY with a reference to policy CMP0001.
* CMP0024: Store the fact of included export in global generator.Stephen Kelly2013-10-101-13/+0
| | | | | Storing it in the makefile means that the policy does not trigger when include and export are in differing directories.
* export: Add policy CMP0024 to disallow include() of export filesStephen Kelly2013-10-071-1/+13
| | | | | | | | | | | | | | | | | Currently, export() is executed at configure-time. One problem with this is that certain exported properties like the link interface may not be complete at the point the export() is encountered leading to an incorrect or incomplete exported representation. Additionally, the generated IMPORTED_LOCATION property may even be incorrect if commands following the export() have an effect on it. Another problem is that it requires the C++ implementation of cmake to be capable of computing the exported information at configure time. This is a limitation on the cleanup and maintenance of the code. At some point in the future, this limitation will be dropped and more implementation will be moved from cmTarget to cmGeneratorTarget.
* Optimize custom command full-path dependency lookupNicolas Despres2013-08-061-0/+23
| | | | | | | | In the common case of custom command dependencies specified via full path optimize the implementation of GetSourceFileWithOutput using a (hash) map. This is significantly faster than the existing linear search. In the non-full-path case fall back to the existing linear suffix search.
* Add the ALIAS target concept for libraries and executables.Stephen Kelly2013-08-021-2/+5
| | | | | | | | | | | | | | | | | * The ALIAS name must match a validity regex. * Executables and libraries may be aliased. * An ALIAS acts immutable. It can not be used as the lhs of target_link_libraries or other commands. * An ALIAS can be used with add_custom_command, add_custom_target, and add_test in the same way regular targets can. * The target of an ALIAS can be retrieved with the ALIASED_TARGET target property. * An ALIAS does not appear in the generated buildsystem. It is kept separate from cmMakefile::Targets for that reason. * A target may have multiple aliases. * An ALIAS target may not itself have an alias. * An IMPORTED target may not have an alias. * An ALIAS may not be exported or imported.
* Merge topic 'tid-system-argument'Brad King2013-07-161-0/+3
|\ | | | | | | | | | | | | | | | | | | 9cf3547 Add the INTERFACE_SYSTEM_INCLUDE_DIRECTORIES target property. 1925cff Add a SYSTEM parameter to target_include_directories (#14180) 286f227 Extend the cmTargetPropCommandBase interface property handling. 83498d4 Store system include directories in the cmTarget. f1fcbe3 Add Target API to determine if an include is a system include. 2679a34 Remove unused variable.
| * Store system include directories in the cmTarget.Stephen Kelly2013-07-021-0/+3
| | | | | | | | | | | | | | Entries from the cmMakefile are processed and maintained similarly to other include directories. The include_directories(SYSTEM) signature affects all following targets, and all prior targets in the same makefile.
* | Add target property debugging for COMPILE_DEFINITIONSStephen Kelly2013-07-121-0/+5
|/ | | | | | | Use constructs similar to those for COMPILE_OPTIONS. This is a little different because there is a command to remove_definitions(), so we can't populate the equivalent target property until generate-time in cmGlobalGenerator.