summaryrefslogtreecommitdiffstats
path: root/Source/cmCommonTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* cmGeneratorTarget: Move GetLinkInformation from cmTargetStephen Kelly2015-08-051-2/+3
|
* cmCommonTargetGenerator: Factor out Fortran module directory computationBrad King2015-07-291-24/+31
| | | | | Move computation from GetFortranModuleDirectory to a virtual method so it can be customized for each type of generator.
* cmCommonTargetGenerator: Store working directory for relative pathsBrad King2015-07-291-3/+7
| | | | | | | | The Makefile generators run tools with the current working directory set to the subdirectory of the build tree for the each target. The Ninja generator runs tools with the current working directory set to the top of the build tree. Tell cmCommonTargetGenerator where the working directory will be so it can compute proper relative paths.
* cmCommonTargetGenerator: Return string from GetFortranModuleDirectoryBrad King2015-07-291-16/+14
|
* cmCommonTargetGenerator: Adopt linked target directory computationBrad King2015-07-281-0/+34
| | | | | | Factor a GetLinkedTargetDirectories method out of cmMakefileTargetGenerator::WriteTargetDependRules to compute the list of directories associated with targets to which the current target links.
* Factor an <INCLUDES> placeholder out of <FLAGS> in rule variablesBrad King2015-07-131-3/+13
| | | | | | | | | | | Teach the Makefile and Ninja generators to substitute for an <INCLUDES> placeholder instead of putting -I in <FLAGS>. Update our values for CMAKE_<LANG>_COMPILE_OBJECT, CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE to place <INCLUDES> just before <FLAGS>.
* cmCommonTargetGenerator: Adopt GetDefines methodBrad King2015-07-091-0/+26
| | | | | Move the member up from cmMakefileTargetGenerator so it can be re-used later by cmNinjaTargetGenerator.
* cmCommonTargetGenerator: Adopt GetFlags methodBrad King2015-07-091-0/+48
| | | | | De-duplicate per-target flag computation in Makefile and Ninja target generators.
* cmCommonTargetGenerator: Adopt GetFrameworkFlagsBrad King2015-07-091-0/+62
| | | | Move the member up from cmMakefileTargetGenerator.
* cmCommonTargetGenerator: Adopt AppendFortranFormatFlagsBrad King2015-07-091-0/+30
| | | | Move up from cmMakefileTargetGenerator.
* cmCommonTargetGenerator: Adopt AddFortranFlags and friendsBrad King2015-07-091-0/+97
| | | | | Move AddFortranFlags, GetFortranModuleDirectory, and supporting members up from cmMakefileTargetGenerator.
* cmCommonTargetGenerator: Adopt Convert methodBrad King2015-07-091-0/+8
| | | | Move it up from cmMakefileTargetGenerator.
* cmCommonTargetGenerator: Adopt ModuleDefinitionFile memberBrad King2015-07-091-0/+26
| | | | | De-duplicate the ModuleDefinitionFile and AddModuleDefinitionFlag members from the Makefile and Ninja target generators.