summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'genex-consumers-generator-targets'Brad King2015-10-161-2/+2
|\ | | | | | | | | | | c4ae1578 Genex: Port some access API to cmGeneratorTarget. 6d27a3db Genex: Port implementation to cmGeneratorTarget.
| * Genex: Port some access API to cmGeneratorTarget.Stephen Kelly2015-10-151-2/+2
| |
* | cmState: Move TargetType enum from cmTarget.Stephen Kelly2015-10-141-13/+13
|/ | | | | | | Mostly automated: values=( "EXECUTABLE" "STATIC_LIBRARY" "SHARED_LIBRARY" "MODULE_LIBRARY" "OBJECT_LIBRARY" "UTILITY" "GLOBAL_TARGET" "INTERFACE_LIBRARY" "UNKNOWN_LIBRARY" "TargetType") for i in "${values[@]}"; do git grep -l cmTarget::$i | xargs sed -i "s|cmTarget::$i|cmState::$i|g"; done
* cmLocalGenerator: Store cmGeneratorTargets.Stephen Kelly2015-10-141-1/+1
| | | | Relieve cmMakefile of this responsibility.
* cmMakefile: Store container of cmExportBuildFileGenerators.Stephen Kelly2015-10-141-3/+29
| | | | | | | | | Set a cmLocalGenerator on each instance at compute time. That will soon be needed to access cmGeneratorTarget instances. If a cmExportBuildFileGenerator is processed early during configure time as a result of CMP0024 it must be removed from the list to process later at generate time.
* cmGeneratorTarget: Move GetSupportDirectory from cmTarget.Stephen Kelly2015-10-121-7/+6
|
* Merge topic 'add-cmLocalGenerator-API'Brad King2015-10-121-5/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 223d0efe Remove some needless GetMakefile() calls. a367416c cmLocalGenerator: Add current source directory accessor. bbef3c2d cmLocalGenerator: Add current binary directory accessor. 12cb3bdc cmLocalGenerator: Add Home directory accessors. 72efa15d Eclipse: Port API to cmLocalGenerator. f2a641d6 Kate: Remove unused variables. 10cf42f5 Kate: Port API to cmLocalGenerator. e46ef270 export: Port internal method to cmGeneratorTarget. 53d3a1c9 cmMakefile: Remove unused GetProjectName calls. 4ab2750c cmLocalGenerator: Add GetProjectName method. c8187f41 cmCPluginAPI: Inline code to get project name. 8c6e6dd3 cmMakefile: Inline initialization of project name. 27916f2c cmLocalGenerator: Add cmake instance accessor.
| * cmLocalGenerator: Add current source directory accessor.Stephen Kelly2015-10-101-1/+1
| |
| * cmLocalGenerator: Add Home directory accessors.Stephen Kelly2015-10-081-4/+2
| | | | | | | | Reduce reasons for cmLocalGenerator to have a cmMakefile.
* | cmGeneratorTarget: Use local GetProperty method.Stephen Kelly2015-10-081-1/+1
|/
* Merge topic 'cmGeneratorTarget-sources'Brad King2015-10-081-1/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | af71c7b4 cmTarget: Remove Compute method. dce6581b cmGeneratorTarget: Move computed sources from cmTarget. 7b6dc0fe cmGeneratorTarget: Inline GetSourceFiles from cmTarget. 33f87bb1 cmGeneratorTarget: Move AddInterfaceEntries method. da1b0449 cmTarget: Remove a conditional for generate-time source addition. fe113f0f cmTarget: Split storage of sources from genexes. 776ff8eb cmTarget: Add Compute API for sources. 64f73150 cmTarget: Add API for generate-time source addition. c38e30f6 cmGeneratorTarget: Add methods for generate-time source addition. 5d3776a7 Access sources through cmGeneratorTarget. 7ce0991a GHS: Port API to cmGeneratorTarget. 156bd2c9 Xcode: Port away from unnecessary CMP0049 compatibility. 01e666c7 cmTarget: Join strings conditionally. bf28b787 cmGeneratorTarget: Rename internal member. 9d653f9c cmFLTKWrapUI: Remove CMake 2.2 compat code.
| * cmTarget: Remove Compute method.Stephen Kelly2015-10-071-1/+0
| |
| * cmTarget: Add Compute API for sources.Stephen Kelly2015-10-071-0/+1
| | | | | | | | | | This method is a refactoring artifact. It will be removed in a follow-up.
| * Access sources through cmGeneratorTarget.Stephen Kelly2015-10-071-1/+3
| |
* | Set the current dirs on the snapshot before creating the cmMakefile.Stephen Kelly2015-10-071-6/+6
|/ | | | | | The cmMakefile should get a fully prepared snapshot and not clobber its definitions. It should eventually be able to process list files from any starting-point snapshot, though that is some refactoring away still.
* Merge topic 'refactor-computation'Brad King2015-10-061-13/+13
|\ | | | | | | | | | | | | | | | | | | | | 616f0311 cmGlobalGenerator: Move path computation to Compute. 9eea0486 cmGlobalGenerator: Do more computation at compute time. 2eca0559 cmGlobalGenerator: De-virtualize Compute(). 21f428f4 VisualStudio: Replace Compute override with AddExtraIDETargets override. a9588e90 VisualStudio10: Initialize the LongestSource at generate time. 4407eee0 cmGlobalGenerator: Call AddExtraIDETargets as a hook of Compute(). a09c545d Xcode: Extract a AddExtraIDETargets method.
| * cmGlobalGenerator: Move path computation to Compute.Stephen Kelly2015-10-051-8/+6
| |
| * cmGlobalGenerator: Do more computation at compute time.Stephen Kelly2015-10-051-8/+8
| |
| * cmGlobalGenerator: Call AddExtraIDETargets as a hook of Compute().Stephen Kelly2015-10-051-0/+2
| | | | | | | | Relieve the Xcode generator of having to reimplement Compute().
* | QtAutogen: Port API to cmGeneratorTarget.Stephen Kelly2015-10-061-4/+3
| |
* | QtAutogen: Port global generator to cmGeneratorTarget.Stephen Kelly2015-10-051-12/+14
| |
* | QtAutogen: Use a target type between loops.Stephen Kelly2015-10-051-7/+6
|/
* cmGlobalGenerator: Initialize generator targets on construction (#15729)Stephen Kelly2015-09-291-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Ninja generator and Visual Studio generators are special-cased for the QtAutogen feature. In order to reduce the number of custom targets, the Visual Studio generators prefer to create custom commands instead, and in order to create appropriate Ninja files, generated rcc files are listed as byproducts. This requires the use of the GetConfigCommonSourceFiles API of the cmGeneratorTarget for those generators when initializing the autogen target. The initializer method is called from Compute() after the cmGeneratorTarget objects are created, however the initialization of the object directory occurs later in the InitGeneratorTargets method. That means that the resulting object locations are computed incorrectly and cached before the object directory is determined, so the generated buildsystem can not find the object files. The initialization of the object directory was split from the creation of cmGeneratorTarget instances in commit 0e0258c8 (cmGlobalGenerator: Split creation of generator object from initialization., 2015-07-25). The motivation for the split was to do only what is essential to do early in cases where cmGeneratorTargets need to be created at configure-time. That is required for the purpose of implementing policies CMP0024 and CMP0026, and for try_compile(LINK_LIBRARIES). However, the split was not really necessary. Compute the object directory in the cmGeneratorTarget constructor instead. The QtAutogen unit test already tests the use of TARGET_OBJECTS with AUTOMOC, and that test already passes on Ninja. The reason it already passes is that the QtAutogen target also uses the AUTORCC feature, and specifies several qrc files in its SOURCES. Later in the Compute algorithm (after the InitGeneratorTargets call), the rcc files are determined and target->AddSource is called. The AddSource call clears the previously mentioned cache of source files, causing it to be regenerated when next queried, this time taking account of the object directory. Extend the test suite with a new target which does not make use of AUTORCC with qrc files so that the test added alone would break without the fix in this commit.
* QtAutogen: Split initializer class into separate file.Stephen Kelly2015-09-291-1/+1
|
* QtAutogen: Split initializer methods into separate class.Stephen Kelly2015-09-261-3/+3
|
* QtAutogen: Simplify generator initialization API.Stephen Kelly2015-09-261-10/+11
|
* QtAutogen: Remove unnecessary dereference.Stephen Kelly2015-09-261-3/+3
|
* QtAutogen: Move Source initialization to prior loop.Stephen Kelly2015-09-261-2/+1
| | | | | | | | Ensure that all targets have their _automoc.cpp before attempting to initialize the autogen target. The initialization evaluates generator expressions for target sources, and must include the _automoc.cpp of object library dependents in order for TARGET_OBJECTS to include the object file for the corresponding _automoc.cpp file.
* QtAutogen: Add _automoc.cpp sources before initializing.Stephen Kelly2015-09-261-0/+1
|
* QtAutogen: Move initialization condition to caller.Stephen Kelly2015-09-261-6/+16
|
* QtAutogen: Move condition to prior loop.Stephen Kelly2015-09-261-10/+12
|
* QtAutogen: Move condition to prior loop.Stephen Kelly2015-09-261-15/+16
|
* QtAutogen: Make some methods static.Stephen Kelly2015-09-261-3/+3
|
* cmLocalGenerator: Compute object max path on construction.Stephen Kelly2015-09-241-5/+0
|
* cmGlobalGenerator: Create all local generators after Configure().Stephen Kelly2015-09-241-1/+1
|
* cmGlobalGenerator: Remove unused method.Stephen Kelly2015-09-241-6/+0
|
* cmGlobalGenerator: Create local generators after all makefiles configured.Stephen Kelly2015-09-241-2/+13
|
* cmGlobalGenerator: Create local generator after configuring the makefile.Stephen Kelly2015-09-241-2/+2
|
* cmGlobalGenerator: Add API for the configure step being finished.Stephen Kelly2015-09-181-0/+5
|
* Windows: Set CMAKE_HOST_SYSTEM_VERSION with three componentsGilles Khouzam2015-09-111-5/+8
| | | | | Call GetVersionEx with OSVERSIONINFOEX instead of OSVERSIONINFO so that we can get the dwBuildNumber as a third version component.
* Merge topic 'revert-fix-windows-version-detection'Brad King2015-09-111-46/+10
|\ | | | | | | | | 4c7744c8 Revert "Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8.1 (#15674)"
| * Revert "Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8.1 (#15674)"Brad King2015-09-101-46/+10
| | | | | | | | | | | | | | | | This reverts commit d4736d53cd61f2cbbb36bec682663b74b01dddce. RtlGetVersion is a private API not meant for public use. Another solution to detecting the Windows version will be needed. Reported-by: Gilles Khouzam <Gilles.Khouzam@microsoft.com>
* | Merge topic 'fix-ios-install'Brad King2015-09-011-1/+11
|\ \ | | | | | | | | | | | | | | | | | | ad262917 Xcode: Add unit test for iOS project install (#12506) 48fe617e Fix installation of iOS targets (#12506) d2c2319d Replace CMAKE_XCODE_EFFECTIVE_PLATFORMS with call to PlatformIsAppleIos
| * | Fix installation of iOS targets (#12506)Gregor Jasny2015-08-251-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since cmTarget::ComputeOutputDir results can be used in CMake code of script cmake_install.cmake and in Xcode internals, string ${EFFECTIVE_PLATFORM_NAME} should be used instead of $(EFFECTIVE_PLATFORM_NAME) because it works for both. Value of CMAKE_CFG_INTDIR can't be used in BUILD_TYPE argument of install command since it contains $(EFFECTIVE_PLATFORM_NAME) (e.g. equals to `Release-iphoneos`, `Debug-iphoneos`, etc.).
* | | Merge topic 'refactor-compute'Brad King2015-08-311-5/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 616d8f02 cmGeneratorTarget: Rename method to match operation. ec56d244 cmGlobalGenerator: Process evaluation files after target depends. 1e5349a5 cmGlobalGenerator: Access makefile from makefiles container.
| * | | cmGeneratorTarget: Rename method to match operation.Stephen Kelly2015-08-301-1/+1
| | | | | | | | | | | | | | | | | | | | The manifest is computed, not generated, according to current language used in cmake method naming.
| * | | cmGlobalGenerator: Process evaluation files after target depends.Stephen Kelly2015-08-291-2/+2
| | | | | | | | | | | | | | | | No need to generate the files if computation aborts generation.
| * | | cmGlobalGenerator: Access makefile from makefiles container.Stephen Kelly2015-08-291-2/+1
| | | |
* | | | cmGlobalGenerator: Create global targets directly after Configure.Stephen Kelly2015-08-281-19/+16
| | | |
* | | | cmGlobalGenerator: Fill the project map at compute time.Stephen Kelly2015-08-281-4/+4
| | | |