summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* fix a batch of include-what-you-use violationsDaniel Pfeifer2016-08-231-5/+9
|
* Makefile: Factor out response file checks into common helperBrad King2016-07-201-0/+3
| | | | | | Factor CMAKE_<LANG>_USE_RESPONSE_FILE_FOR_{OBJECTS,LIBRARIES} lookup out into a common helper. Use a separate helper for each because more specific logic may be added to each later.
* Makefile: Factor out WINDOWS_EXPORT_ALL_SYMBOLS helperYury Zhuravlev2016-07-111-0/+4
| | | | | | Factor the implementation out of cmMakefileLibraryTargetGenerator into a helper method in cmMakefileTargetGenerator so it can be re-used elsewhere later.
* mark functions with CM_OVERRIDEDaniel Pfeifer2016-06-271-3/+5
|
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-27/+32
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Makefiles: Port to cmGeneratorTarget.Stephen Kelly2015-10-241-2/+0
|
* Remove vestigial declarations.Stephen Kelly2015-10-201-1/+0
|
* cmMakefileTargetGenerator: Add accessor for GeneratorTarget.Stephen Kelly2015-08-051-0/+1
|
* cmCommonTargetGenerator: Adopt GetDefines methodBrad King2015-07-091-3/+0
| | | | | Move the member up from cmMakefileTargetGenerator so it can be re-used later by cmNinjaTargetGenerator.
* cmCommonTargetGenerator: Adopt GetFlags methodBrad King2015-07-091-3/+0
| | | | | De-duplicate per-target flag computation in Makefile and Ninja target generators.
* cmCommonTargetGenerator: Adopt GetFrameworkFlagsBrad King2015-07-091-3/+0
| | | | Move the member up from cmMakefileTargetGenerator.
* cmCommonTargetGenerator: Adopt AppendFortranFormatFlagsBrad King2015-07-091-3/+0
| | | | Move up from cmMakefileTargetGenerator.
* cmCommonTargetGenerator: Adopt AddFortranFlags and friendsBrad King2015-07-091-8/+0
| | | | | Move AddFortranFlags, GetFortranModuleDirectory, and supporting members up from cmMakefileTargetGenerator.
* cmCommonTargetGenerator: Adopt Convert methodBrad King2015-07-091-12/+0
| | | | Move it up from cmMakefileTargetGenerator.
* cmCommonTargetGenerator: Adopt ModuleDefinitionFile memberBrad King2015-07-091-3/+0
| | | | | De-duplicate the ModuleDefinitionFile and AddModuleDefinitionFlag members from the Makefile and Ninja target generators.
* cmCommonTargetGenerator: Adopt GetFeature and friendsBrad King2015-07-091-7/+0
| | | | | De-duplicate the GetFeature, GetFeatureAsBool, and AddFeatureFlags members from the Makefile and Ninja target generators.
* cmCommonTargetGenerator: Adopt ConfigName memberBrad King2015-07-091-1/+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.
* cmMakefileTargetGenerator: Require cmGeneratorTarget.Stephen Kelly2015-06-221-1/+1
|
* cmLocalGenerator: Remove 'optional' parameter from Convert.Stephen Kelly2015-06-041-3/+2
| | | | Port callers away from it.
* Merge topic 'custom-command-multiple-outputs'Brad King2015-04-131-2/+1
|\ | | | | | | | | | | 9660a3cc Makefile: Fix multiple custom command outputs with one missing 5c08e255 KWSys SystemTools: Teach Touch with !create to succeed on missing file
| * Makefile: Fix multiple custom command outputs with one missingBrad King2015-04-101-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The use of "cmake -E touch_nocreate" added in commit v3.2.1~4^2 (Makefile: Fix multiple custom command outputs regression, 2015-03-06) caused builds to fail when one of the outputs is intentionally not created. This was fixed by our parent commit by making touch_nocreate succeed when the file is missing. Add a test case covering it. For the Watcom WMake generator, check for the SYMBOLIC source file property separately on each output. The mark is needed on outputs that are not really created to tell 'wmake' not to complain that it is missing. The mark is also needed on outputs that are created or 'wmake' will not consider them out of date when they exist. Inspired-by: Ben Boeckel <ben.boeckel@kitware.com>
* | Merge topic 'custom-command-multiple-outputs'Brad King2015-03-091-0/+10
|\ \ | |/ | | | | | | 66a9c90c Makefile: Fix multiple custom command outputs regression (#15116)
| * Makefile: Fix multiple custom command outputs regression (#15116)Brad King2015-03-071-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit v3.2.0-rc1~272^2~2 (Makefile: Fix rebuild with multiple custom command outputs, 2014-12-05) we changed the generated makefile pattern for multiple outputs from out1: depends... commands... out2: out1 to out1 out2: depends... commands... This was based on the incorrect assumption that make tools would treat this as a combined output rule and run the command(s) exactly once for them. It turns out that instead this new pattern is equivalent to out1: depends... commands... out2: depends... commands... so the commands may be run more than once. Some documents suggest using a "dedicated witness" stamp file: stamp: depends... rm -f stamp touch stamp.tmp commands... mv stamp.tmp stamp out1 out2: stamp However, if the commands fail the error message will refer to the stamp instead of any of the real outputs, which may be confusing to readers. Also, this approach seems to have the same behavior of the original approach that motiviated the above commit: multiple invocations are needed to bring consumers of the outputs up to date. Instead we can return to the original approach but add an explicit touch to each extra output rule: out1: depends... commands... out2: out1 touch -c out2 This causes make tools to recognize that all outputs have changed and therefore to execute any commands that consume them.
* | Makefile: Fix output during parallel builds (#12991)Brad King2015-02-061-1/+1
|/ | | | | | | | | | Replace use of separate "cmake -E cmake_progress_report" and "cmake -E cmake_echo_color" commands to report the progress and message portions of build output lines with --progress-* options to the latter to print everything with a single command. The line buffering of the stdout FILE stream should cause the whole line to be printed with one atomic write. This will avoid inter-mixing of line-wise messages from different processes during a parallel build.
* Makefile: Fix rebuild with multiple custom command outputs (#15116)Brad King2014-12-051-12/+0
| | | | | | | Fix the generated makefiles for custom commands with multiple outputs to list all the outputs on the left hand side of the build rule. This is much simpler and more reliable than the old multiple-output-pair infrastructure.
* Watcom: Use single quote for all file/path items in wlink commandJiri Malak2014-04-081-1/+2
| | | | | | Watcom Linker use single quote if necessary for quoting target name, libraries names and libraries search path. Object names were already fixed.
* Makefile: Generate single-quoted object lists for WatcomJiri Malak2014-03-271-2/+4
| | | | | | | | | | | | | | | | Drop the CMAKE_NO_QUOTED_OBJECTS internal variable from the Makefile generators. The underlying problem is with the Watcom linker, not with WMake. The Watcom linker wants object files to be single-quoted. Add <LINK-RULE>_USE_WATCOM_QUOTE platform information variables to tell the generators to use Watcom-style single quotes for object files on link lines. On Windows, Watcom uses the GetCommandLine API to get the original command-line string and do custom parsing that expects single quotes. On POSIX systems, Watcom approximates the original command line by joining all argv[] entries separated by a single space. Therefore we need to double-quote the single-quoted arguments so that the shell does not consume them and they are available for the parser to see.
* Constify some APIs in generators.Stephen Kelly2014-03-131-4/+5
|
* cmOSXBundleGenerator: Make MacOSXContentGeneratorType arg const.Stephen Kelly2014-03-131-1/+1
|
* Generalize cmCustomCommandGenerator to more fieldsBrad King2014-03-121-2/+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: Use strings for dependency informationBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings for feature argumentsBen Boeckel2014-03-081-2/+2
|
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-1/+1
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-6/+6
| | | | | | | | | | | 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 in target nameBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings in Convert methods in LocalGeneratorBen Boeckel2014-03-081-1/+1
| | | | | 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-4/+4
|
* stringapi: Use strings for variable namesBen Boeckel2014-03-081-1/+1
| | | | Variable names are always generated by CMake and should never be NULL.
* Windows: Use response files to specify link libraries for GNU toolsBrad King2014-03-051-0/+1
| | | | | | | | | Work around the command-line-length limit by using an @linklibs.rsp response file to pass the flags for link libraries. This allows very long lists of libraries to be used in addition to the existing support for passing object files via response file. Suggested-by: Peter Keuschnigg <peter.keuschnigg@pmu.ac.at>
* Makefile: Factor out some duplicate link libraries generationBrad King2014-03-041-0/+4
| | | | | | | The generators for executable and library targets duplicate the logic to call the OutputLinkLibraries helper on the local generator. Factor it out into a cmMakefileTargetGenerator::CreateLinkLibs method to avoid dpulication.
* 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.
* OS X: Encode -F framework search flag in per-language platform variableBrad King2013-10-101-1/+1
| | | | | | | | | Compilers for languages other than C and C++ on OS X may not understand the -F framework search flag. Create a new platform information variable CMAKE_<LANG>_FRAMEWORK_SEARCH_FLAG to hold the flag, and set it for C and CXX lanugages in the Platform/Darwin module. Reported-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* Refactor how bundles and frameworks are supported.Clinton Stimpson2013-05-231-1/+0
| | | | | | | | | | | | | | | | Make handling of directory separators consistent between non-bundle and bundle code. Remove xcode specific flag from cmTarget when getting install_name. Add (more) consistent convenience functions in cmTarget to get directories inside of bundles and frameworks to add files to. This refactor also fixes bug #12263 where frameworks had the wrong install name when SKIP_BUILD_RPATH. Also make install_name for frameworks consistent between Makefile and Xcode generator.
* Ninja: fixes for bccPeter Kümmel2012-07-181-0/+2
|
* Ninja: remove warningsPeter Kümmel2012-07-181-8/+8
|
* Re-factor bundle content copying rules generation.Nicolas Despres2012-07-171-2/+14
|
* VS: Restore header files marked as OS X Framework content (#13196)Brad King2012-05-071-0/+1
| | | | | | | | | | | | | | | 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.
* Build object library targets in MakefilesBrad King2012-03-131-0/+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.