summaryrefslogtreecommitdiffstats
path: root/Source/cmNinjaTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Ninja: suppress cmcldeps only for source file signature try_compilesPeter Kümmel2012-09-051-2/+1
|
* Merge topic 'ninja-target-pdb-cleanup'David Cole2012-08-241-22/+24
|\ | | | | | | | | | | | | 709fa59 Ninja: remove GetTargetPDB because it is used only once 4bb4787 Ninja:split out setting of msvc TARGET_PDB 59cbc28 Ninja: prepare msvc pdb cleanup
| * Ninja: remove GetTargetPDB because it is used only oncePeter Kümmel2012-08-221-16/+11
| |
| * Ninja:split out setting of msvc TARGET_PDBPeter Kümmel2012-08-221-13/+18
| |
| * Ninja: prepare msvc pdb cleanupPeter Kümmel2012-08-221-2/+4
| |
* | Merge topic 'compile-definitions-unique'David Cole2012-08-241-16/+13
|\ \ | |/ |/| | | | | | | | | | | f0a1065 Rename files from main.cpp to more meaningful names. ca7fb14 Fix the test setting COMPILE_DEFINITIONS target property 733deb6 Fix CompileDefinitions test on Visual Studio. 3dae652 Don't duplicate -D defines sent to the compiler.
| * Don't duplicate -D defines sent to the compiler.Stephen Kelly2012-08-201-16/+13
| | | | | | | | | | | | | | | | | | | | | | There is no need to do so. Be consistent with include directories and ensure uniqueness. This requires changing the API of the cmLocalGenerator::AppendDefines method, and changing the generators to match. The test unfortunately can't test for uniqueness, but it at least verifies that nothing gets lost.
* | Ninja: don't crash on returned 0 pointerPeter Kümmel2012-08-171-21/+18
| |
* | Ninja: cmcldeps needs a compilerPeter Kümmel2012-08-171-4/+7
|/
* Merge topic 'ninja-fix-macosx'David Cole2012-07-241-2/+49
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1fc8df9 Add missing this->. 7a3ecf5 Fix memory leak in Makefile generator. 9f7dc83 Ninja: also bootstrap ninja files 5d365b2 Ninja: enable ninja support everywhere d569f3e Ninja: void function can't return a value 52160bf Ninja: enable ninja on Mac so all Mac CDash-builds are tested, cleanup later 56aeac6 Ninja: fixes for bcc 7a6bc9e Ninja: remove 'this' from member initializer list 44ba4cf Ninja: remove warnings 7751966 Ninja: remove 'friend' in ninja code c3988ee Re-factor OS X content generator start up. f8e0a51 Re-factor framework directory computation. f36c7b0 Re-factor Mac OS X content directory computation. 5d885db Re-factor bundle content copying rules generation. 3b2a01e Ninja: Use same echo message as makefiles. 7bb56c5 Re-factor CFBundle generation. ...
| * Add missing this->.Nicolas Despres2012-07-221-1/+1
| |
| * Ninja: remove warningsPeter Kümmel2012-07-181-10/+5
| |
| * Ninja: remove 'friend' in ninja codePeter Kümmel2012-07-181-1/+1
| |
| * Re-factor OS X content generator start up.Nicolas Despres2012-07-171-12/+1
| |
| * Re-factor bundle content copying rules generation.Nicolas Despres2012-07-171-26/+24
| |
| * Ninja: Copy resource files in the bundle.Nicolas Despres2012-07-171-1/+66
| | | | | | | | This patch fixes test BundleTest on Darwin.
* | Ninja: cmcldeps needs absolute paths for RCsPeter Kümmel2012-07-171-2/+6
| |
* | Ninja: also stop when .rc's .d file couldn't be generatedPeter Kümmel2012-07-151-2/+4
|/ | | | | | prevents silent disappearing of .d files for resource files. cmcldeps changes directory for cl call, so relativ include paths do not work.
* Merge topic 'Ninja-absolute-compile-commands'David Cole2012-07-091-2/+14
|\ | | | | | | | | | | | | ca403b8 Construct the full path before escaping it. f9383a9 STYLE: Fix line length, remove extra blank line e30d46e Use full paths in compile_commands.json for out of source builds.
| * Construct the full path before escaping it.Stephen Kelly2012-06-201-4/+7
| | | | | | | | Should fix some dashboard errors.
| * STYLE: Fix line length, remove extra blank lineDavid Cole2012-06-191-2/+2
| |
| * Use full paths in compile_commands.json for out of source builds.Stephen Kelly2012-06-191-0/+9
| | | | | | | | | | | | | | Clang tooling requires that paths in the directory and file JSON fields are relative to the directory field, but clang doesn't normalize the paths already. The result is that clang doesn't find the relevant entry for files which begin with ../.
* | Merge topic 'ninja-cldeps'David Cole2012-06-191-18/+77
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eb410e8 Ninja: disable cldeps for bcc32, it's too old, and ninja would also not build 5ead31d Ninja: try work around for bcc32 bug 1333b57 Ninja: build server fixes 9081e3a remove warning about unused parameter f430bea Ninja: maybe this fixes the bcc32 build f2c1288 Ninja: msvc6 for-scoping 44b9bbc Ninja: build with old msvc versions 57156a5 Ninja: build server fixes f1abdce Ninja: some bytes of the rc files couldn't be piped correctly 2de963d Ninja: don't remove space between command and parameters 50b6f33 Ninja: build cmcldeps with mingw c05653e Ninja: try to make GetProcessId visible ab245ff Ninja: but cl supports /nologo ... bf58e9a Ninja: no /nologo option in old rc.exe 2fb07fc Ninja: Eclipse and KDevelop fixes for ninja 518c065 Ninja: don't pollute build dir with preprocessed rc files ...
| * Ninja: extract dependencies for .rc files with msvc toolsPeter Kuemmel2012-06-131-5/+8
| | | | | | | | | | | | | | | | rc.exe doesn't support /showIncludes. Because .rc files also #include stuff we can misuse cl.exe to get the included files. Done one the fly by cmcldeps.
| * Ninja: work with ninja/master, don't compile rc files with clPeter Kuemmel2012-06-121-18/+41
| | | | | | | | | | Ninja generates for paths with spaces wrong results for $out.d, using the new DEP_FILE variable instead.
| * Ninja: use slashes for include dirs, so also slahes are in the .d filesPeter Kuemmel2012-06-121-0/+2
| |
| * Ninja: complete MinGW supportPeter Kuemmel2012-06-121-3/+11
| |
| * Line Length: <79Peter Kuemmel2012-06-111-2/+4
| |
| * Ninja: don't pollute the rules file with useless commentsPeter Kuemmel2012-06-101-1/+2
| |
| * Ninja: don't use cmcldeps for try_compilePeter Kuemmel2012-06-091-2/+14
| |
| * Ninja: allow spaces in source pathPeter Kuemmel2012-06-081-17/+10
| | | | | | | | And make /showIncude prefix visible for all build rules
| * Ninja: add wrapper for cl to extract dependenciesPeter Kuemmel2012-06-081-5/+12
| | | | | | | | | | | | | | | | | | | | | | cmcldeps wraps cl and adds /showInclude before calling cl. It parses the output of cl for used headers, drops system headers and writes them to a GCC like dependency file. cmcldeps uses ATM ninja code for process handling, but could be ported later to SystemTools. TODO: Why needs ninja multiple calls in the BuildDepends test?
| * Ninja: add dependency tracking for msvc with cldepsPeter Kuemmel2012-06-071-2/+10
| |
* | Merge topic 'position-independent-targets'David Cole2012-06-121-5/+2
|\ \ | | | | | | | | | | | | | | | | | | bd34963 Refactor generation of shared library flags 55d7aa4 Add platform variable for flags specific to shared libraries 31d7a0f Add platform variables for position independent code flags
| * | Refactor generation of shared library flagsStephen Kelly2012-06-121-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CMAKE_SHARED_LIBRARY_<lang>_FLAGS has flags on various platforms for a variety of purposes that are correlated with shared libraries but not exclusive to them. Refactor generation of these flags to use new purpose-specific platform variables CMAKE_<lang>_COMPILE_OPTIONS_DLL CMAKE_<lang>_COMPILE_OPTIONS_PIC CMAKE_<lang>_COMPILE_OPTIONS_PIE Activate the DLL flags specifically for shared libraries. Add a new POSITION_INDEPENDENT_CODE target property to activate PIC/PIE flags, and default to true for shared libraries to preserve default behavior. Initialize the new property from CMAKE_POSITION_INDEPENDENT_CODE to allow easy global configuration in projects. Although the default behavior is unchanged by this refactoring, the new approach ignores CMAKE_SHARED_LIBRARY_<lang>_FLAGS completely. We must leave it set in case projects reference the value. Furthermore, if a project modifies CMAKE_SHARED_LIBRARY_<lang>_FLAGS it expects the new value to be used. Add policy CMP0018 to handle compatibility with projects that modify this platform variable. Add a PositionIndependentCode test on platforms where we can get meaningful results.
* | | Avoid direct use of std::(o|)stringstream (#13272)Brad King2012-06-121-2/+2
| |/ |/| | | | | | | | | | | | | | | Older C++ compilers do not provide a standard std::stringstream. Use our compatibility interfaces instead. Also avoid std::stringstream(openmode) signature. Our approximate stringstream implementation provided when the standard one is not available does not support the openmode argument.
* | Escape the source file to be compiled if required.Stephen Kelly2012-06-041-1/+4
| | | | | | | | | | Whitespaces in paths can otherwise cause invalid command lines to be generated.
* | Make the CMAKE_EXPORT_COMPILE_COMMANDS option work with Ninja.Stephen Kelly2012-06-041-0/+30
|/
* VS: Restore header files marked as OS X Framework content (#13196)Brad King2012-05-071-1/+0
| | | | | | | | | | | | | | | Header files listed in a target's PUBLIC_HEADER or similar properties are marked as OS X Framework content. Refactoring performed by commit 11d9b211 (Add cmGeneratorTarget to represent a target during generation, 2012-03-07) commit 45c2f932 (Simplify cmMakefileTargetGenerator using cmGeneratorTarget, 2012-03-07) commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source classification, 2012-03-19) and related commits accidentally removed such files from treatment as normal header files by the VS generator (generators other than Makefiles and Xcode). Move handling of such files out of cmGeneratorTarget and back to cmMakefileTargetGenerator. The central cmGeneratorTarget classification will always treat them as header or extra sources.
* Merge topic 'ninja-generated-def'David Cole2012-04-031-4/+9
|\ | | | | | | | | | | 3fd0dde Merge branch 'test-generated-def' into ninja-generated-def d2c764a Ninja: Fix module .def file path conversion
| * Ninja: Fix module .def file path conversionBrad King2012-04-021-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge topic 'ninja-generator'David Cole2012-03-271-0/+4
|\ \ | | | | | | | | | | | | 6b5614f Ninja: Substitute <OBJECT> and <CMAKE_C_COMPILER> in depfile flags
| * | Ninja: Substitute <OBJECT> and <CMAKE_C_COMPILER> in depfile flagsPeter Collingbourne2012-03-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Patch by Amine Khaldi! Also, start using the -MT flag to set a target name for depfiles. This works around a bug observed in distcc, as explained in the comment. Based on a patch by Alexander Usov.
* | | Merge topic 'object-library'David Cole2012-03-201-42/+54
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 93d5509 Merge branch 'ninja-object-library' into object-library 821037c Merge branch 'xcode-object-library' into object-library eb24c99 Merge branch 'object-library' into xcode-object-library 63d1be8 Xcode: Honor $<TARGET_OBJECTS:...> source expressions 020ba38 Merge branch 'object-library' into xcode-object-library e8ea615 Build object library targets in Xcode 8045e17 Pre-compute object file names before Xcode generation 247a132 Allow txt files as ExtraSources in object library targets b063599 Add a default source group for object files. be01f3b Xcode: Re-factor some existing methods into "FromPath" variants 2693dbe Merge branch 'object-library' into ninja-object-library 51997cb Ninja: Honor $<TARGET_OBJECTS:...> source expressions 23ec258 Merge branch 'object-library' into ninja-object-library 61124de Build object library targets in Ninja f5b06cd Pre-compute object file names before Ninja generation a2514f1 Simplify cmNinjaTargetGenerator using cmGeneratorTarget ...
| * | Ninja: Honor $<TARGET_OBJECTS:...> source expressionsBrad King2012-03-161-0/+11
| | | | | | | | | | | | | | | Add objects from object libraries referenced using this syntax to the set of objects linked in a target.
| * | Build object library targets in NinjaBrad King2012-03-161-1/+3
| | | | | | | | | | | | | | | | | | Treat OBJECT libraries as STATIC libraries but leave out the archive step. The object files will be left behind for reference by other targets later.
| * | Pre-compute object file names before Ninja generationBrad King2012-03-161-1/+4
| |/ | | | | | | | | | | Implement cmGlobalGenerator::ComputeTargetObjects in the Ninja generator to pre-compute all the object file names. Use the results during generation instead of re-computing it later.
| * Simplify cmNinjaTargetGenerator using cmGeneratorTargetBrad King2012-03-161-40/+36
| | | | | | | | | | Replace the classification of source files in this generator using that computed by cmGeneratorTarget.
* | Ninja: add support for OBJECT_OUTPUTS, fix PrecompiledHeader test casePeter Collingbourne2012-03-171-0/+11
|/
* Ninja: Fix for PDB files with spaces in the path.Bill Hoffman2012-03-161-1/+2
| | | | | This calls ConvertToOutputFormat on the PDB paths for pdb file paths used in both library creation and the building of object files.