summaryrefslogtreecommitdiffstats
path: root/Source/cmCommonTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Reduce allocation of temporary values on heap.Pavel Solodovnikov2018-01-261-1/+1
| | | | | - Use `std::move` while inserting temporary results into vectors. - Change `push_back` to `emplace_back` where appropriate.
* Improve several occurrences of vector::push_back in loopsMatthias Maennich2017-09-281-0/+1
| | | | | | | Fix issues diagnosed by clang-tidy by pre-allocating the vector capacity before the loop [performance-inefficient-vector-operation]. Signed-off-by: Matthias Maennich <matthias@maennich.net>
* Meta: modernize old-fashioned loops to range-based `for`.Pavel Solodovnikov2017-09-121-7/+4
| | | | | | Changes done via `clang-tidy` with some manual fine-tuning for the variable naming and `auto` type deduction where appropriate.
* IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+0
| | | | Also remove `#include "cmConfigure.h"` from most source files.
* Use C++11 nullptrDaniel Pfeifer2017-08-241-1/+1
|
* cmCommonTargetGenerator: Rename member to avoid shadowingBrad King2017-06-141-16/+18
| | | | | | Rename the `LocalGenerator` and `GlobalGenerator` members to avoid shadowing similar members in subclasses that use more-specific pointer types.
* Inline and remove AddFeatureFlags methodBrad King2017-04-271-8/+0
| | | | | The method implementation is now only one call of another method, so inline it at call sites and remove it.
* Add IPO compiler flags more consistently in generatorsBrad King2017-04-271-5/+2
| | | | | | Move addition of IPO flags into `cmLocalGenerator::AddLanguageFlags` because all call sites of that need the IPO flags, but not all were following the call with `AppendFeatureOptions`.
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* Refactoring: s,GetFeatureAsBool,IsIPOEnabled,Ruslan Baratov2017-03-301-6/+1
| | | | | Method 'GetFeatureAsBool' is used only with 'INTERPROCEDURAL_OPTIMIZATION' feature. Substituting 'GetFeatureAsBool' with 'IsIPOEnabled'.
* Refactor module definition file selectionBrad King2017-03-091-11/+4
| | | | | | Create a `ModuleDefinitionInfo` structure for each configuration of a target to hold corresponding information about the selected module definition file (`.def` source).
* Ninja: Do not use module definition `.def` files for static librariesBrad King2017-01-121-0/+7
| | | | | | | | | A module definition (`.def`) file specifies symbols to export from a linked binary. The librarian tool is not a linker and so should not be given a `/DEF:...` flag with the `.def` file. The other generators already do not do this, so fix Ninja to be consistent. Closes: #16537
* Makefile,Ninja: De-duplicate MSVC compiler PDB path selectionBrad King2016-12-151-0/+22
| | | | | Add a helper to cmCommonTargetGenerator instead of duplicating it in cmMakefileTargetGenerator and cmNinjaTargetGenerator.
* Fix several include-what-you-use findingsDaniel Pfeifer2016-11-081-2/+1
|
* cmState: Split auxiliary classes into separate filesStephen Kelly2016-10-191-0/+1
| | | | | | | Port dependents to the new locations as needed. Leave behind a cmState.h include in cmListFileCache to reduce noise. It is removed in a following commit.
* cmState: Port dependents to new cmStateTypes headerStephen Kelly2016-10-191-1/+1
|
* cmState: Move TargetType enum to separate namespaceStephen Kelly2016-10-191-1/+1
|
* cmLinkLineComputer: Extract from cmLocalGeneratorStephen Kelly2016-10-101-2/+4
| | | | | | | | | | | CMake has several classes which have too many responsibilities. cmLocalGenerator is one of them. Start to extract the link line computation. Create generator-specific implementations of the interface to account for generator-specific behavior. Unfortunately MSVC60 has different behavior to everything else and CMake still generates makefiles for it. Isolate it with MSVC60-specific names.
* cmLocalGenerator: Simplify ConvertToLinkReferenceStephen Kelly2016-10-061-2/+4
| | | | | Make conversion to output format the caller responsibility, so that the method only 'converts to a link reference'.
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* cmOutputConverter: Remove now-obsolete Convert methodStephen Kelly2016-09-191-7/+0
|
* Common: Use a string instead of enum for WorkingDirectoryStephen Kelly2016-09-191-2/+3
|
* fix a batch of include-what-you-use violationsDaniel Pfeifer2016-08-231-1/+9
|
* use CM_NULLPTRDaniel Pfeifer2016-06-281-1/+1
|
* cmLocalGenerator: Adopt target compile flag generationTobias Hunger2016-06-171-31/+2
| | | | | | Factor the flag generation out of cmCommonTargetGenerator::GetFlags into a new cmLocalGenerator::GetTargetCompileFlags method. This will allow it to be used without a target generator available.
* cmLocalGenerator: Add method to get Fortran-specific compiler flagsBrad King2016-06-171-46/+3
| | | | | | | | | | Add a cmLocalGenerator::GetTargetFortranFlags virtual method to get generator-specific generation of Fortran-specific flags. Implement it in cmLocalCommonGenerator by moving the implementation from cmCommonTargetGenerator::AddFortranFlags. This will allow it to be used without having a target generator available. Inspired-by: Tobias Hunger <tobias.hunger@qt.io>
* cmGeneratorTarget: Adopt Fortran module directory generationTobias Hunger2016-06-171-39/+1
| | | | | | | | | Move code to create/get the fortran module directory from the cmCommonTargetGenerator to cmGeneratorTarget. Rename the ComputeFortranModuleDirectory method to CreateFortranModuleDirectory as this method *creates* the directory if it is missing.
* Refactor Makefile/Ninja tool working directory storageBrad King2016-06-171-6/+6
| | | | | Move cmCommonTargetGenerator::WorkingDirectory to cmLocalCommonGenerator and add an access method.
* cmLocalGenerator: Add GetTargetDefines to get all defines for a targetTobias Hunger2016-06-101-11/+3
|
* cmLocalGenerator: Adopt GetFrameworkFlags methodTobias Hunger2016-06-091-51/+3
| | | | Move it from cmCommonTargetGenerator.
* cmCommonTargetGenerator: De-duplicate CMAKE_BUILD_TYPE lookupTobias Hunger2016-06-081-6/+3
|
* call static cmOutputConverter::GetFortranFormat without objectDaniel Pfeifer2016-06-061-2/+2
|
* Use enums defined in cmOutputConverter using their fully qualified name.Daniel Pfeifer2016-05-251-9/+9
| | | | | | | | | Mostly automated: values=("RelativeRoot" "NONE" "FULL" "HOME" "START" "HOME_OUTPUT" "START_OUTPUT" "OutputFormat" "UNCHANGED" "MAKERULE" "SHELL" "WATCOMQUOTE" "RESPONSE" "FortranFormat" "FortranFormatNone" "FortranFormatFixed" "FortranFormatFree") for i in "${values[@]}"; do git grep -l cmLocalGenerator::$i | xargs sed -i "s|cmLocalGenerator::$i|cmOutputConverter::$i|g"; done
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-170/+124
| | | | | | | | | | | | | 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.
* Remove `//------...` horizontal separator commentsBrad King2016-05-091-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | Modern editors provide plenty of ways to visually separate functions. Drop the explicit comments that previously served this purpose. Use the following command to automate the change: $ git ls-files -z -- \ "*.c" "*.cc" "*.cpp" "*.cxx" "*.h" "*.hh" "*.hpp" "*.hxx" | egrep -z -v "^Source/cmCommandArgumentLexer\." | egrep -z -v "^Source/cmCommandArgumentParser(\.y|\.cxx|Tokens\.h)" | egrep -z -v "^Source/cmDependsJavaLexer\." | egrep -z -v "^Source/cmDependsJavaParser(\.y|\.cxx|Tokens\.h)" | egrep -z -v "^Source/cmExprLexer\." | egrep -z -v "^Source/cmExprParser(\.y|\.cxx|Tokens\.h)" | egrep -z -v "^Source/cmFortranLexer\." | egrep -z -v "^Source/cmFortranParser(\.y|\.cxx|Tokens\.h)" | egrep -z -v "^Source/cmListFileLexer\." | egrep -z -v "^Source/cm_sha2" | egrep -z -v "^Source/(kwsys|CursesDialog/form)/" | egrep -z -v "^Utilities/(KW|cm).*/" | xargs -0 sed -i '/^\(\/\/---*\|\/\*---*\*\/\)$/ {d;}' This avoids modifying third-party sources and generated sources.
* cmCommonTargetGenerator: Adopt AppendOSXVerFlag methodBruce Stephens2016-03-071-0/+32
| | | | | | | Move this method from cmMakefileLibraryTargetGenerator so it can be re-used for the Ninja generator too. Signed-off-by: Bruce Stephens <bruce.r.stephens@gmail.com>
* Refactor `.def` file lookupTim Grothe2015-11-041-2/+2
| | | | | Return a `cmSourceFile const*` from GetModuleDefinitionFile so that callers can get more information than just the path to the file.
* Makefiles: Port to cmGeneratorTarget.Stephen Kelly2015-10-241-2/+0
|
* Use cmLocalGenerator at generate-time.Stephen Kelly2015-10-241-1/+1
|
* cmCommonTargetGenerator: Use NameResolvesToFramework without cmTarget.Stephen Kelly2015-10-201-1/+1
|
* cmGeneratorTarget: Move GetExportMacro from cmTarget.Stephen Kelly2015-10-201-1/+2
|
* cmLocalGenerator: Port some API to cmGeneratorTarget.Stephen Kelly2015-10-171-4/+5
|
* Use cmGeneratorTarget for property access.Stephen Kelly2015-10-171-2/+2
|
* cmGeneratorTarget: Access global state through LocalGenerator.Stephen Kelly2015-10-161-2/+1
|
* Merge topic 'clean-up-cmTarget'Brad King2015-10-161-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | 55474e61 cmState: Move GetTargetTypeName from cmTarget. 38df5c36 Remove now-obsolete casts. 4ee2b267 cmGeneratorTarget: Use enum for GetType. eac15298 cmState: Move TargetType enum from cmTarget. 482b3811 cmTarget: Move link type enum out. 2ee1cb85 cmTarget: Move ImportInfoMap out of internal class. a48bcabd cmTarget: Move backtrace member out of internal class. 6694d993 cmTarget: Remove unneeded constructors. 983c00f8 Generators: Use GetType from the cmGeneratorTarget.
| * cmState: Move TargetType enum from cmTarget.Stephen Kelly2015-10-141-1/+1
| | | | | | | | | | | | | | 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: Port GetTargetDirectory to cmGeneratorTarget.Stephen Kelly2015-10-141-1/+1
|/
* cmCommonTargetGenerator: Port implementation detail to cmGeneratorTarget.Stephen Kelly2015-10-121-2/+2
|
* cmComputeLinkInformation: Port data interface to cmGeneratorTarget.Stephen Kelly2015-10-121-7/+5
|
* Add support for *.manifest source files with MSVC toolsBrad King2015-09-171-0/+17
| | | | | | | | Classify .manifest sources separately, add dependencies on them, and pass them to the MS manifest tool to merge with linker-generated manifest files. Inspired-by: Gilles Khouzam <gillesk@microsoft.com>