summaryrefslogtreecommitdiffstats
path: root/Source/cmNinjaTargetGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Ninja: Centralize path conversion in global generator (#15757)Brad King2015-09-251-4/+4
| | | | | | | | | | | | | | | | | In the Ninja generator we run all build rules from the top of the build tree rather than changing into each subdirectory. Therefore we convert all paths relative to the HOME_OUTPUT directory. However, the Convert method on cmLocalGenerator restricts relative path conversions to avoid leaving the build tree with a "../" sequence. Therefore conversions performed for "subdirectories" that are outside the top of the build tree always use full paths while conversions performed for subdirectories that are inside the top of the build tree may use relative paths to refer to the same files. Since Ninja always runs rules from the top of the build tree we should convert them using only the top-level cmLocalGenerator in order to remain consistent. Also extend the test suite with a case that fails without this fix.
* cmNinjaTargetGenerator: Factor out compile command exporterBrad King2015-07-271-0/+11
|
* cmCommonTargetGenerator: Adopt GetFlags methodBrad King2015-07-091-3/+0
| | | | | De-duplicate per-target flag computation in Makefile and Ninja target generators.
* cmNinjaTargetGenerator: Factor out AddIncludeFlags helperBrad King2015-07-091-0/+2
| | | | | Factor an AddIncludeFlags method out of ComputeFlagsForObject just like cmMakefileTargetGenerator has already.
* cmCommonTargetGenerator: Adopt ModuleDefinitionFile memberBrad King2015-07-091-6/+0
| | | | | De-duplicate the ModuleDefinitionFile and AddModuleDefinitionFlag members from the Makefile and Ninja target generators.
* cmCommonTargetGenerator: Adopt GetFeature and friendsBrad King2015-07-091-4/+0
| | | | | De-duplicate the GetFeature, GetFeatureAsBool, and AddFeatureFlags members from the Makefile and Ninja target generators.
* cmCommonTargetGenerator: Adopt ConfigName memberBrad King2015-07-091-2/+0
| | | | De-duplicate the member from the Makefile and Ninja target generators.
* cmCommonTargetGenerator: Adopt basic target generator membersBrad King2015-07-091-3/+0
| | | | | De-duplicate the GeneratorTarget, Target, and Makefile members from the local Makefile and Ninja generators.
* Add common base classes to Makefile and Ninja generatorsBrad King2015-07-091-1/+3
| | | | Provide a place to move functionality common to both.
* cmNinjaGenerator: Require cmGeneratorTarget.Stephen Kelly2015-06-221-1/+1
|
* Ninja: Generate separate compile and link rules for each targetBrad King2015-05-181-2/+1
| | | | | | | | Our <LANG>_COMPILER and <LANG>_<TARGET_TYPE>_LINKER rule generation has access to a specific cmTarget so the results may depend on it. Instead generate separate rules for each target using an encoded target name. In particular, this makes CTEST_USE_LAUNCHERS report proper target information.
* Ninja: Use "deps = msvc" only for C and CXX (#15253)Brad King2015-01-291-1/+1
| | | | | | | | The "/showIncludes" flag is only available with MS C and C++ compilers, and on compilers that "simulate" them (like Intel for Windows). Fix our logic to choose this type only for MS tools with these languages. All other cases need to use "deps = gcc" and define DEP_FILE in the build rule.
* Ninja: Remove unused declarationPeter Collingbourne2014-11-141-1/+0
|
* Ninja: Skip generating empty phony rulesAdam Strzelecki2014-06-301-1/+2
| | | | | | | | | Ninja generator ensures that all custom commands being target dependencies are run before other source compilations. However in case there are no such dependencies it currently generates empty phony rules which clutter the build graph. Teach the Ninja generator to produce such rules only when necessary.
* ninja: Factor out target-level order-only dependenciesBen Boeckel2014-05-071-0/+4
| | | | | | This reduces ninja file output even more for projects with lots of libraries with entangled transitive dependencies. ParaView goes from the previous 58M to about 45M.
* ninja: Use string parametersBen Boeckel2014-05-021-2/+2
|
* Ninja: Query custom commands once per target, not once per file.Stephen Kelly2014-04-051-0/+1
| | | | | Computing the source files is now more expensive, so the Ninja generator became very slow with a large number of files.
* Constify some APIs in generators.Stephen Kelly2014-03-131-5/+5
|
* cmOSXBundleGenerator: Make MacOSXContentGeneratorType arg const.Stephen Kelly2014-03-131-1/+1
|
* stringapi: Use strings for feature argumentsBen Boeckel2014-03-081-2/+2
|
* stringapi: Return a string reference for the configurationBen Boeckel2014-03-081-1/+1
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-1/+1
| | | | | | | | | | | 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 the languagesBen Boeckel2014-03-081-1/+1
|
* Ninja: Cache target-level flagsBen Boeckel2014-02-131-0/+3
| | | | | | Instead of figuring out target flags per-source file, cache the flags that are being used. This results in a *much* faster generate time for Ninja.
* Ninja: job pool support for compiling and linkingPeter Kümmel2013-11-251-1/+4
| | | | | Could be tested by setting the environment variable NINJA_STATUS=[%r]
* Port some of the generator API to cmGeneratorTarget.Stephen Kelly2013-11-221-1/+1
| | | | | | | Just enough to reach the BuildMacContentDirectory method and the NeedRelinkBeforeInstall methods. In the future, those methods can be moved to cmGeneratorTarget.
* Ninja: use deps = gcc/msvc featurePeter Kümmel2013-10-241-0/+2
| | | | cmcldeps is now only used for .rc file processing
* Make cmLocalGenerator::AddArchitectureFlags take a cmGeneratorTarget.Stephen Kelly2012-09-191-0/+3
|
* Ninja: remove GetTargetPDB because it is used only oncePeter Kümmel2012-08-221-1/+0
|
* Ninja:split out setting of msvc TARGET_PDBPeter Kümmel2012-08-221-2/+5
|
* Ninja: fixes for bccPeter Kümmel2012-07-181-1/+1
|
* Ninja: remove warningsPeter Kümmel2012-07-181-6/+7
|
* Ninja: remove 'friend' in ninja codePeter Kümmel2012-07-181-1/+2
|
* Re-factor bundle content copying rules generation.Nicolas Despres2012-07-171-5/+14
|
* Ninja: Copy resource files in the bundle.Nicolas Despres2012-07-171-0/+11
| | | | This patch fixes test BundleTest on Darwin.
* Ninja: work with ninja/master, don't compile rc files with clPeter Kuemmel2012-06-121-0/+3
| | | | | Ninja generates for paths with spaces wrong results for $out.d, using the new DEP_FILE variable instead.
* Ninja: Fix module .def file path conversionBrad King2012-04-021-0/+3
| | | | | | | | | | | | Refactoring in commit a2514f15 (Simplify cmNinjaTargetGenerator using cmGeneratorTarget, 2012-03-13) accidentally removed mapping of .def file paths through ConvertToNinjaPath (via GetSourceFilePath). Take the ModuleDefinitionFile value from cmGeneratorTarget and map it correctly through ConvertToNinjaPath. In addition to generating cleaner paths in the ninja build files this correctly links up references to a generated .def file with the custom command output that produces it.
* Simplify cmNinjaTargetGenerator using cmGeneratorTargetBrad King2012-03-161-3/+2
| | | | | Replace the classification of source files in this generator using that computed by cmGeneratorTarget.
* Ninja: add .def file supportPeter Kuemmel2012-03-071-0/+6
|
* Ninja: windows msvc: create for each target a .pdb filePeter Kuemmel2012-02-211-0/+1
|
* Ninja: Backslash rules for WindowsPeter Collingbourne2012-02-191-1/+3
| | | | | | Generally these are only required in build statements, as Ninja wants to be able to chop paths up. But it doesn't hurt to also try to use them in command line arguments.
* Ninja: Add the Ninja generatorPeter Collingbourne2012-02-021-0/+115