summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* cmState: Compute and store directory components.Stephen Kelly2015-05-161-2/+0
| | | | | | | | | | | | | There is no need to duplicate these in all cmLocalGenerators. Rename the symbols according to current conventions. Add explicit calls to Set{Source,Binary}Directory with empty strings in order to trigger the population of the components containers with the current working directory in cmLocalGenerator. Having directories set to empty is a special case in CMake, which is relied on for the `if(CMAKE_BINARY_DIR)` condition at the end of CMakeDetermineSystem.cmake.
* cmMakefile: Handle CMP0014 before configuring the generator.Stephen Kelly2015-05-141-0/+2
|
* cmLocalGenerator: Add abstraction to check if top-level.Stephen Kelly2015-05-141-0/+3
| | | | Move from the cmLocalNinjaGenerator. Fix the case of the name.
* cmGlobalGenerator: Move some flags from cmLocalGenerator.Stephen Kelly2015-05-141-6/+7
| | | | | These flags are global, and so they belong here instead of being set on each local generator.
* cmLocalGenerator: Initialize state before creating cmMakefile.Stephen Kelly2015-05-141-0/+5
| | | | Access the state from the local generator in the cmMakefile.
* cmLocalGenerator: Require a global generator in the constructor.Stephen Kelly2015-05-141-4/+1
| | | | Port generator factory methods to pass it.
* cmLocalGenerator: Remove EscapeForShellOldStyle to only caller.Stephen Kelly2015-05-141-3/+0
|
* cmLocalGenerator: Remove unused members.Stephen Kelly2015-05-141-4/+0
|
* cmLocalGenerator: Require a parent in the constructor.Stephen Kelly2015-04-281-2/+1
| | | | | | | Pass the parent though cmGlobalGenerator::CreateLocalGenerator. This will make it easy to initialize state scopes independent of cmMakefile.
* cmLocalGenerator: Constify some cmTarget and cmGeneratorTarget argumentsGeoff Viola2015-04-091-4/+5
|
* Merge topic 'target-language-genex'Brad King2015-03-101-1/+2
|\ | | | | | | | | | | | | | | | | | | | | 232a6883 Help: Add release notes for target-language-genex. 9e168941 File(GENERATE): Process genex evaluation files for each language. b734fa44 Genex: Allow COMPILE_LANGUAGE when processing include directories. 0b945ea9 Genex: Allow COMPILE_LANGUAGE when processing compile definitions. 5c559f11 Genex: Enable use of COMPILE_LANGUAGE for compile options. e387ce7d Genex: Add a COMPILE_LANGUAGE generator expression. 4a0128f4 VS6: Compute CMAKE_*_FLAGS and COMPILE_DEFINITIONS* only when needed
| * Genex: Allow COMPILE_LANGUAGE when processing compile definitions.Stephen Kelly2015-03-091-1/+2
| | | | | | | | Issue an error if this is encountered by an IDE generator.
* | Ninja: Improve internal check for generating at the top-level (#15436)Brad King2015-03-091-1/+1
|/ | | | | Simply check for whether the local generator has a parent instead of depending on a string comparison of directory names.
* Ninja: Fix RC include directories regressionBrad King2014-10-131-1/+3
| | | | | | | | | | | | | | | | | Changes in commit b9aa5041 (cmLocalGenerator: Simplify GetIncludeFlags output formatting, 2014-03-04) caused Windows Resource Compiler include directories to be computed as relative paths in the Ninja generator. This breaks the cmcldeps handling of include paths. The reason for the regression is that several cmLocalGenerator::GetIncludeFlags callers treated the fourth "bool forResponseFile" argument as if it controlled whether include directories were a full path. It actually did control that by accident until the above commit. Add an explicit "bool forceFullPaths" argument to GetIncludeFlags and thread the value through ConvertToIncludeReference as needed. Update GetIncludeFlags call sites that really wanted to control the forResponseFile setting to be aware of the new argument. Extend the VSResource test to cover this case.
* cmLocalGenerator: Rename 'MAKEFILE' to 'MAKERULE'Brad King2014-07-221-1/+1
| | | | | Rename the internal enumeration value for converting paths destined for use in Makefile rule syntax.
* Add OBJECT_FILE_DIR rule placeholder for compilation linesBrad King2014-06-051-0/+1
| | | | | | | | | Some compilers do not offer an option to specify the path to the object file, but rather only to the directory in which to place the object file. See issue 14876 for some examples. Add a new OBJECT_FILE_DIR placeholder to specify the directory containing the object file for the current compilation. This may differ from the main target OBJECT_DIR when the object corresponds to a source in a subdirectory.
* LocalGenerator: Add a string overload for AppendFlagsBen Boeckel2014-05-071-0/+1
|
* Merge topic 'target_compile_features'Brad King2014-04-151-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9eaf3755 Export: Populate INTERFACE_COMPILE_FEATURES property. 8ed59fc2 Add target_compile_features command. 4e6ca504 cmTargetPropCommandBase: Change the interface to return bool. 5412dede cmTarget: Transitively evaluate compiler features. baff4434 cmTarget: Allow populating COMPILE_FEATURES using generator expressions. f97bf437 Features: Add cxx_auto_type. 03355d6b cmTarget: Add COMPILE_FEATURES target property. faeddf64 project: Add infrastructure for recording CXX compiler features 913394af cmTarget: Add CXX_STANDARD and CXX_EXTENSION target properties. 8238a6cd Add some COMPILE_OPTIONS for specifying C++ dialect. 892243fc Tests: Require CMake 3.0 for the SystemInformation test. 59b5fdd3 Don't load Clang-CXX from AppleClang-CXX.
| * cmTarget: Add CXX_STANDARD and CXX_EXTENSION target properties.Stephen Kelly2014-04-071-0/+2
| | | | | | | | | | These are used to determine whether to add -std=c++11, -std=gnu++11 etc flags on the compile line.
* | Watcom: Use single quote for all file/path items in wlink commandJiri Malak2014-04-081-4/+7
|/ | | | | | Watcom Linker use single quote if necessary for quoting target name, libraries names and libraries search path. Object names were already fixed.
* Remove extra semicolons from C++ code.Stephen Kelly2014-04-031-5/+5
| | | | | Clang based tools running over the code complain about these, but clang has a fixit for removing them.
* cmLocalGenerator: Add ComputeObjectFilenames interface.Stephen Kelly2014-03-131-0/+4
| | | | | Implement it in the local generators and use it in the global generators.
* Generalize cmCustomCommandGenerator to more fieldsBrad King2014-03-121-1/+2
| | | | | | | Until now the cmCustomCommandGenerator was used only to compute the command lines of a custom command. Generalize it to get the comment, working directory, dependencies, and outputs of custom commands. Update use in all generators to support this.
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-10/+10
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-3/+3
| | | | | | | | | | | 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 in escaping functionsBen Boeckel2014-03-081-4/+5
|
* stringapi: Use strings in target nameBen Boeckel2014-03-081-3/+3
|
* stringapi: Use strings in Convert methods in LocalGeneratorBen Boeckel2014-03-081-9/+11
| | | | | The C strings were turned into std::strings internally anyways and most callers used .c_str().
* stringapi: Use strings for the languagesBen Boeckel2014-03-081-12/+16
|
* stringapi: Use strings for variable namesBen Boeckel2014-03-081-1/+1
| | | | Variable names are always generated by CMake and should never be NULL.
* stringapi: Use strings for property namesBen Boeckel2014-03-081-2/+2
| | | | Property names are always generated by CMake and should never be NULL.
* cmLocalGenerator: Add response file option to OutputLinkLibrariesBrad King2014-03-041-1/+2
| | | | | Response files require different path conversion to be threaded through construction of the link libraries flags.
* cmLocalGenerator: Add format option to ConvertToLinkReferenceBrad King2014-03-041-1/+2
| | | | Replace the hard-coded SHELL output format with an optional argument.
* cmLocalGenerator: Add format option to ConvertToIncludeReferenceBrad King2014-03-041-1/+2
| | | | Replace the hard-coded SHELL output format with an optional argument.
* cmLocalGenerator: Add format option to ConvertToOutputForExistingBrad King2014-03-041-3/+6
| | | | Replace the hard-coded SHELL output format with an optional argument.
* MSVC: Add properties to configure compiler PDB files (#14762)Brad King2014-02-261-0/+1
| | | | | | | | | | Since commit v2.8.12~437^2~2 (VS: Separate compiler and linker PDB files 2013-04-05) we no longer set /Fd with the PDB_NAME or PDB_OUTPUT_DIRECTORY properties. Those properties now exclusively handle linker PDB files. Since STATIC libraries do not link their compiler PDB file becomes more important. Add new target properties "COMPILE_PDB_NAME[_<CONFIG>]" and "COMPILE_PDB_OUTPUT_DIRECTORY[_<CONFIG>]" to specify the compiler PDB file location and pass the value to the MSVC /Fd option.
* cmVersion: Fix CMake_VERSION_ENCODE for date in patch levelBrad King2014-02-101-2/+2
| | | | | | | | | Use a uint64_t to store encoded version numbers so we have plenty of bits available. Encode with room for up to 1000 minor releases between major releases and to encode dates until the year 10000 in the patch level. This is necessary because CMake development versions prior to release 2.8.0 used the date in the patch level, and this practice may be restored after the 3.0 release.
* cmLocalGenerator: Constify target definitions accessStephen Kelly2013-12-111-2/+3
|
* CTest: filter /showIncludes output from ninja compile launcherNils Gladitz2013-12-031-0/+1
| | | | | Teach "ctest --launch" a new "--filter-prefix" option. Set it using the CMAKE_CL_SHOWINCLUDES_PREFIX value with the Ninja generator.
* Drop compatibility with CMake < 2.4Brad King2013-10-231-3/+1
| | | | | | | | | | | | 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.
* Unify the way the flags of a static library are readPatrick Gansterer2013-07-311-0/+5
| | | | | Introduce cmLocalGenerator::GetStaticLibraryFlags() to have a central function for getting the linker flags for a given target.
* Merge topic 'drop-old-vs-dependency'Brad King2013-07-161-2/+0
|\ | | | | | | | | 4bb6e24 VS,Xcode: Drop incorrect legacy dependency trace (#14291)
| * VS,Xcode: Drop incorrect legacy dependency trace (#14291)Brad King2013-07-151-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop the "vsProjectFile" argument from cmTarget::TraceDependencies. It appears to be the modern equivalent to a hunk added in commit ba68f771 (...added new custom command support, 2003-06-03): + name = libName; + name += ".dsp.cmake"; + srcFilesToProcess.push(name); but was broken by refactoring at some point. The current behavior tries to trace dependencies on a source file named the same as a target, which makes no sense. Furthermore, in code of the form add_executable(foo foo.c) add_custom_command(OUTPUT "${somewhere}/foo" ... DEPENDS foo) the "vsProjectFile" value "foo" matches source "${somewhere}/foo.rule" generated to hold the custom command and causes the command to be added to the "foo" target incorrectly. Simply drop the incorrect source file trace and supporting logic.
* | Merge topic 'tid-system-argument'Brad King2013-07-161-0/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | Add Target API to determine if an include is a system include.Stephen Kelly2013-07-021-0/+1
| |/ | | | | | | | | The implementation can be modified later so that system includes can be determined on a per-target basis.
* | Refactor cmTarget::GetCompileDefinitions to use an out-vector, not a string.Stephen Kelly2013-07-111-0/+2
| | | | | | | | Refactor to create AddCompileDefinitions.
* | Overload cmLocalGenerator::AppendDefines to add a list.Stephen Kelly2013-07-101-0/+3
|/
* Refactor target COMPILE_OPTIONS and COMPILE_FLAGS handlingBrad King2013-06-271-3/+2
| | | | | | | | | | | | Replace the cmLocalGenerator GetCompileOptions method with an AddCompileOptions method since all call sites of the former simply append the result to a flags string anyway. Add a "lang" argument to AddCompileOptions and move the CMAKE_<LANG>_FLAGS_REGEX filter into it. Move the call sites in each generator to a location that has both the language and configuration available. In the Makefile generator this also moves the flags from build.make to flags.make where they belong.
* Escape target flags taken from COMPILE_OPTIONSBrad King2013-06-271-0/+1
| | | | | | | | | | | | Factor appending of individual flags out into an AppendFlagEscape method in cmLocalGenerator and teach it to use EscapeForShell. Update all COMPILE_OPTIONS handling to use AppendFlagEscape. Override the method in the Xcode generator to use its custom escape implementation. Teach the CompileOptions test to add an option that requires escaping everywhere instead of just with the GNU tools.
* Merge topic 'VISIBILITY_PRESET-property'Brad King2013-06-051-0/+2
|\ | | | | | | | | | | cd1fa53 Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property. 0e9f4bc Introduce target property <LANG>_VISIBILITY_PRESET