summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'use-generator-target'Brad King2015-08-061-3/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a309409e cmOrderDirectories: Port to cmGeneratorTarget. f83e8402 cmGeneratorTarget: Move CompileInfoMap from cmTarget. b3f0e353 cmGeneratorTarget: Move GetCompilePDBDirectory from cmTarget. 34c43741 cmGeneratorTarget: Move GetOutputName from cmTarget. 4329a71c cmComputeLinkDepends: Port to cmGeneratorTarget. c93230ac cmComputeLinkInformation: Port to cmGeneratorTarget. ee26add4 cmGeneratorTarget: Move IsBundleOnApple from cmTarget. c8a5f5ae cmMakefileTargetGenerator: Add accessor for GeneratorTarget. f8076644 cmGeneratorTarget: Move GetLinkClosure from cmTarget. 7c809fa2 cmGeneratorTarget: Move GetLinkerLanguage from cmTarget. 6da99de3 cmGeneratorTarget: Move GetFrameworkDirectory from cmTarget. d6bb319b cmGeneratorTarget: Move GetFullName from cmTarget. 7a460852 cmGeneratorTarget: Move GetAppBundleDirectory from cmTarget. d560bfd2 cmGeneratorTarget: Move GetInstallNameDir* from cmTarget. 89e2a080 cmGeneratorTarget: Move GetMacContentDirectory from cmTarget. 62720e44 cmGeneratorTarget: Move GetFullNameComponents from cmTarget. ...
| * cmGeneratorTarget: Move GetLinkerLanguage from cmTarget.Stephen Kelly2015-08-051-1/+1
| |
| * cmGeneratorTarget: Move LinkInterfaceDependent methods from cmTarget.Stephen Kelly2015-08-051-1/+3
| |
| * cmGeneratorTarget: Move GetLinkInformation from cmTargetStephen Kelly2015-08-051-1/+1
| |
* | cmGeneratorExpressionEvaluationFile: Require generator context.Stephen Kelly2015-08-011-2/+2
| | | | | | | | | | Avoid storing a cmMakefile as a member, and evaluate in the context of a cmLocalGenerator instead.
* | cmMakefile: Store EvaluationFiles.Stephen Kelly2015-08-011-0/+48
|/ | | | | Relieve the cmGlobalGenerator of this responsibility. Evaluate the generator expressions in the context of the cmLocalGenerator.
* cmInstallCommand: Store only a targetName, not a cmTarget.Stephen Kelly2015-07-301-7/+11
| | | | Compute the cmTarget at Compute() time.
* Move GetLocation to cmGeneratorTarget.Stephen Kelly2015-07-271-2/+2
|
* Always access target location from a cmGeneratorTarget instance.Stephen Kelly2015-07-271-3/+4
|
* cmLocalGenerator: Remove unused AddCustomCommandToCreateObject method.Stephen Kelly2015-07-271-78/+0
|
* cmLocalGenerator: Remove unused AddBuildTargetRule method.Stephen Kelly2015-07-271-100/+0
|
* cmLocalGenerator: Remove CreateCustomTargetsAndCommands method.Stephen Kelly2015-07-271-42/+0
| | | | | It loops over cmGeneratorTargets, but at the point it is called, there are no cmGeneratorTargets. This must be dead code.
* cmState: Extract a Directory class.Stephen Kelly2015-07-181-19/+24
| | | | | Move Directory-scoped state accessors to it. This will be expanded with directory property state soon.
* Factor an <INCLUDES> placeholder out of <FLAGS> in rule variablesBrad King2015-07-131-0/+4
| | | | | | | | | | | Teach the Makefile and Ninja generators to substitute for an <INCLUDES> placeholder instead of putting -I in <FLAGS>. Update our values for CMAKE_<LANG>_COMPILE_OBJECT, CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE to place <INCLUDES> just before <FLAGS>.
* cmLocalGenerator: Remove unused includeBrad King2015-07-081-2/+0
|
* cmLocalGenerator: Constify GetIncludeDirectories method.Stephen Kelly2015-06-211-1/+1
|
* cmMakefile: Move IsRoot API from cmLocalGenerator.Stephen Kelly2015-06-211-5/+0
|
* cmLocalGenerator: Add IssueMessage method.Stephen Kelly2015-06-211-7/+23
| | | | For use at generate-time instead of the cmMakefile method of the same name.
* cmLocalGenerator: Remove ConfigureFinalPass.Stephen Kelly2015-06-091-5/+0
| | | | | Call the cmMakefile implementation directly. This is a configure-time construct.
* Merge topic 'move-Feature-API'Brad King2015-06-081-0/+27
|\ | | | | | | | | | | f573bd22 cmLocalGenerator: Add Feature API from cmMakefile. ccbc2259 cmGeneratorTarget: Move Feature API from cmTarget.
| * cmLocalGenerator: Add Feature API from cmMakefile.Stephen Kelly2015-06-061-0/+27
| |
* | cmOutputConverter: Extract from cmLocalGenerator.Stephen Kelly2015-06-061-417/+1
| | | | | | | | | | | | | | | | | | | | | | The Convert methods never belonged to the local generator concept, so split them out now. The cmOutputConverter is cheap to construct and destroy, so it can be instantiated where needed to perform conversions. This will allow further decoupling of cmLocalGenerator from the configure step. Inherit cmLocalGenerator from cmOutputConverter for the purpose of source compatibility.
* | cmLocalGenerator: Remove some commented lines of code.Stephen Kelly2015-06-041-5/+0
|/ | | | They've been commented out for a decade, which seems long enough.
* Merge topic 'cmMakefile-Configure'Brad King2015-06-041-73/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | 7657e8b1 cmMakefile: Introduce a local cmMakefile variable. 4e8f242d cmMakefile: Store unconfigured cmMakefiles. d65e0123 cmMakefile: Implement ConfigureSubDirectory in terms of cmMakefile. f059ed16 cmMakefile: Move Configure responsibility from cmLocalGenerator. a653611d cmake: Replace CurrentLocalGenerator concept with CurrentMakefile. 69a038a9 cmMakefile: Refactor directories specified with the subdirs command. 08637970 cmLocalGenerator: ComputeObjectMaxPath just before generating. 27e11c6f Merge Configure state with GeneratingBuildSystem state. 363caa2f cmLocalGenerator: De-virtualize Configure().
| * cmMakefile: Move Configure responsibility from cmLocalGenerator.Stephen Kelly2015-06-041-62/+0
| | | | | | | | The generator should only have a function at generate time.
| * cmake: Replace CurrentLocalGenerator concept with CurrentMakefile.Stephen Kelly2015-06-041-8/+9
| |
| * cmMakefile: Refactor directories specified with the subdirs command.Stephen Kelly2015-06-041-7/+4
| | | | | | | | Store the directories on the cmMakefile as explicitly not-configured-yet.
| * cmLocalGenerator: ComputeObjectMaxPath just before generating.Stephen Kelly2015-06-041-2/+0
| |
| * Merge Configure state with GeneratingBuildSystem state.Stephen Kelly2015-06-041-9/+3
| |
* | Merge topic 'remove-CMAKE_USE_RELATIVE_PATHS'Brad King2015-06-041-52/+36
|\ \ | |/ | | | | | | | | | | | | 6e570f85 cmLocalGenerator: Remove 'optional' parameter from Convert. 3d8c6cd9 cmLocalGenerator: Remove obsolete method. e44e6bcc Port away from obsolete method. 1335992c Remove CMAKE_USE_RELATIVE_PATHS variable.
| * cmLocalGenerator: Remove 'optional' parameter from Convert.Stephen Kelly2015-06-041-38/+35
| | | | | | | | Port callers away from it.
| * cmLocalGenerator: Remove obsolete method.Stephen Kelly2015-06-031-8/+0
| |
| * Remove CMAKE_USE_RELATIVE_PATHS variable.Stephen Kelly2015-06-031-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test for this variable was removed in commit v2.8.8~330^2~7 (complex: Remove ancient unused ComplexRelativePaths test, 2011-12-23). Commit v3.1.0-rc1~425^2~2 (backtrace: Convert to local paths in IssueMessage, 2014-03-12) appears to have accidentally made some backtraces print relative paths with the variable because conversions which used to be done at configure time, before the variable had an effect are now potentially done at generate time. The documentation of the variable says not to use it, and the docs are wrong in that the variable actually applies in per-directory scope. The read of the variable makes it harder to split conversion methods from cmLocalGenerator where they don't belong. Remove it now.
* | cmState: Rename GetParent method.Stephen Kelly2015-06-021-1/+1
|/ | | | Leave the namespace open for other Parent types.
* Merge topic 'inject-state-snapshot'Brad King2015-05-271-22/+23
|\ | | | | | | | | | | | | | | 3b880a07 cmLocalGenerator: Require a valid cmState::Snapshot in the ctor. e12afe76 cmState: Host some state from the cmGlobalGenerator. c7b79aa1 cmGlobalGenerator: Require a cmake instance in ctor. 01e1cd5c cmState: Move snapshot creation to the cmake instance.
| * cmLocalGenerator: Require a valid cmState::Snapshot in the ctor.Stephen Kelly2015-05-271-7/+4
| | | | | | | | | | | | | | | | | | | | | | Refactor the local generator creation API to accept a cmState::Snapshot. Adjust MakeLocalGenerator to use the 'current' snapshot in cases where there is no parent. Create the snapshot for subdirectories in cmMakefile::AddSubdirectory. This means that snapshots are now created at the point of extending the tree, as appropriate, and independently of the cmLocalGenerator and cmMakefile they represent the state for.
| * cmState: Host some state from the cmGlobalGenerator.Stephen Kelly2015-05-271-14/+14
| |
| * cmState: Move snapshot creation to the cmake instance.Stephen Kelly2015-05-241-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't create a snapshot in Initialize(), but leave the creation responsibility to the cmake instance instead. Previously, the cmState would Initialize() in its constructor, and the cmake instance would re-Initialize() during Configure(). The end result was the same and there would be one snapshot present. However, cmLocalGenerator also created a snapshot on construction, and that one was used, leaving the first snapshot unused, and potential for off-by-one errors. Fix that by making the cmLocalGenerator use the existing snapshot if it is top-level. Add a CurrentSnapshot to the cmake instance and populated it while configuring a directory. This will eventually replace the 'current local generator' concept. Fix the GetParent implementation to be able to return the first snapshot.
* | Honor visibility properties for all target types (#15556)Brad King2015-05-261-12/+48
|/ | | | | | | | | | | | | | | | The <LANG>_VISIBILITY_PRESET and VISIBILITY_INLINES_HIDDEN were first merged in commit v2.8.12~322 (Merge topic 'VISIBILITY_PRESET-property', 2013-06-05) but worked only for shared libraries and executables with exports. Prior to commit v3.0.0-rc1~581^2 (GenerateExportHeader: Deprecate add_compiler_export_flags function., 2013-09-02) the add_compiler_export_flags function was used to add visibility flags to all targets. The visibility flags are useful for sources in all target types because they may be later linked into shared libraries or executables with exports. Introduce policy CMP0063 to enable them for all target types while preserving compatibility with existing projects that do not expect this.
* Convert: Remove specification of default parameter.Stephen Kelly2015-05-201-2/+2
|
* cmLocalGenerator: Get enabled languages from cmState.Stephen Kelly2015-05-201-2/+2
|
* cmLocalGenerator: Implement IsRootMakefile in terms of cmState.Stephen Kelly2015-05-201-1/+1
|
* cmLocalGenerator: Inline ReadListFile method.Stephen Kelly2015-05-201-12/+4
|
* Use cmSystemTools::GetCMakeCommand() to get path to cmake internallyBrad King2015-05-201-3/+1
| | | | | This is much simpler than finding a way to lookup "CMAKE_COMMAND" everywhere.
* Merge topic 'refactor-cmLocalGenerator'Brad King2015-05-191-149/+13
|\ | | | | | | | | | | | | | | | | fa9eb814 cmLocalGenerator: Remove redundant path access. 1933f3d1 cmLocalGenerator: Remove redundant path conversions. 9e4b6cc2 cmState: Store computed relative paths to to current directories. 991f5e49 cmState::Snapshot: Store components for current directories. 57bdc1a2 cmState: Compute and store directory components.
| * cmLocalGenerator: Remove redundant path access.Stephen Kelly2015-05-161-2/+1
| |
| * cmLocalGenerator: Remove redundant path conversions.Stephen Kelly2015-05-161-3/+0
| | | | | | | | The methods just called store the paths in already-converted form.
| * cmState: Store computed relative paths to to current directories.Stephen Kelly2015-05-161-103/+4
| |
| * cmState::Snapshot: Store components for current directories.Stephen Kelly2015-05-161-32/+6
| | | | | | | | Remove this responsibility from cmLocalGenerator.
| * cmState: Compute and store directory components.Stephen Kelly2015-05-161-12/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.