summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeLinkInformation.cxx
Commit message (Collapse)AuthorAgeFilesLines
* fix a batch of include-what-you-use violationsDaniel Pfeifer2016-08-231-3/+9
|
* use CM_NULLPTRDaniel Pfeifer2016-06-281-9/+9
|
* Simplify boolean expressionsDaniel Pfeifer2016-06-021-2/+1
| | | | | | Use clang-tidy's readability-simplify-boolean-expr checker. After applying the fix-its, revise all changes *very* carefully. Be aware of false positives and invalid changes.
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-646/+439
| | | | | | | | | | | | | 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.
* cmComputeLinkInformation: Do not mark interface library as a pathBrad King2016-05-131-1/+1
| | | | | | The empty string we add as a link item for an INTERFACE_LIBRARY target is not a path, so do not mark it as such. The generators currently tolerate it either way, but only by accident.
* Remove `//------...` horizontal separator commentsBrad King2016-05-091-42/+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.
* Isolate formatted streaming blocks with clang-format off/onBrad King2016-05-061-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The clang-format tool can do a good job formatting most code, but well-organized streaming blocks are best left manually formatted. Find blocks of the form os << "...\n" "...\n" ; using the command $ git ls-files -z -- Source | egrep -v -z '^Source/kwsys/' | xargs -0 pcregrep -M --color=always -B 1 -A 1 -n \ '<<[^\n]*\n(^ *("[^\n]*("|<<|;)$|;)\n){2,}' Find blocks of the form os << "...\n" << "...\n" << "...\n"; using the command $ git ls-files -z -- Source | egrep -v -z '^Source/kwsys/' | xargs -0 pcregrep -M --color=always -B 1 -A 1 -n \ '<<[^\n]*\n(^ *<<[^\n]*(\\n"|<<|;)$\n){2,}' Surround such blocks with the pair /* clang-format off */ ... /* clang-format on */ in order to protect them from update by clang-format. Use the C-style `/*...*/` comments instead of C++-style `//...` comments in order to prevent them from ever being swallowed by re-formatting of surrounding comments.
* Format include directive blocks and ordering with clang-formatBrad King2016-04-291-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sort include directives within each block (separated by a blank line) in lexicographic order (except to prioritize `sys/types.h` first). First run `clang-format` with the config file: --- SortIncludes: false ... Commit the result temporarily. Then run `clang-format` again with: --- SortIncludes: true IncludeCategories: - Regex: 'sys/types.h' Priority: -1 ... Commit the result temporarily. Start a new branch and cherry-pick the second commit. Manually resolve conflicts to preserve indentation of re-ordered includes. This cleans up the include ordering without changing any other style. Use the following command to run `clang-format`: $ git ls-files -z -- \ '*.c' '*.cc' '*.cpp' '*.cxx' '*.h' '*.hh' '*.hpp' '*.hxx' | egrep -z -v '(Lexer|Parser|ParserHelper)\.' | egrep -z -v '^Source/cm_sha2' | egrep -z -v '^Source/(kwsys|CursesDialog/form)/' | egrep -z -v '^Utilities/(KW|cm).*/' | egrep -z -v '^Tests/Module/GenerateExportHeader' | egrep -z -v '^Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h' | xargs -0 clang-format -i This selects source files that do not come from a third-party. Inspired-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
* cmGeneratorTarget: Add GetLinkDirectories API.Stephen Kelly2015-10-261-3/+3
|
* Access policy status from cmGeneratorTarget at generate time.Stephen Kelly2015-10-201-5/+5
|
* cmGeneratorTarget: Provide direct access to the backtrace.Stephen Kelly2015-10-201-5/+5
|
* cmGeneratorTarget: Copy IsExecutableWithExports from cmTarget.Stephen Kelly2015-10-201-1/+1
|
* cmGeneratorTarget: Copy IsFrameworkOnApple from cmTarget.Stephen Kelly2015-10-191-1/+1
| | | | Leave the cmTarget method behind for now to implement cmInstallCommand.
* cmGeneratorTarget: Move IsLinkable from cmTarget.Stephen Kelly2015-10-191-1/+1
|
* cmState: Move TargetType enum from cmTarget.Stephen Kelly2015-10-141-19/+19
| | | | | | | 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
* Generators: Use GetType from the cmGeneratorTarget.Stephen Kelly2015-10-141-3/+3
|
* cmComputeLinkDepends: Port result API to cmGeneratorTarget.Stephen Kelly2015-10-121-7/+6
|
* cmComputeLinkInformation: Port result API to cmGeneratorTarget.Stephen Kelly2015-10-121-2/+2
|
* cmComputeLinkInformation: Port data interface to cmGeneratorTarget.Stephen Kelly2015-10-121-3/+3
|
* cmComputeLinkInformation: Port some implementation to cmGeneratorTarget.Stephen Kelly2015-10-121-13/+11
|
* Merge topic 'use-generator-target'Brad King2015-10-121-23/+19
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1c1c2a12 cmGeneratorTarget: Port ExpandLinkItems away from cmTarget. c66084f5 cmGeneratorTarget: Port GetImportLinkInterface away from cmTarget. 83c29e39 cmGeneratorTarget: Port ComputeLinkImplementationLibraries away from cmTarget. 19882554 cmGeneratorTarget: Port handleSystemIncludesDep away from cmTarget. c1f687b1 cmGeneratorTarget: Port GetLinkImplementationLibrariesInternal. a6e1f05c cmGeneratorTarget: Port ComputeLinkInterface away from cmTarget. 654002fe cmGeneratorTarget: Port ComputeLinkInterfaceLibraries away from cmTarget. 922c8901 cmGeneratorTarget: Port GetLinkInterface away from cmTarget. eaa5b9cb cmGeneratorTarget: Port cmTargetCollectLinkLanguages away from cmTarget. f539da12 cmGeneratorTarget: Port GetLinkInterfaceLibraries away from cmTarget. 1c5d70f9 cmGeneratorTarget: Port processILibs away from cmTarget. 064c2488 cmComputeLinkDepends: Port some API to cmGeneratorTarget. 3e428fdc cmGeneratorTarget: Move IsImportedSharedLibWithoutSOName from cmTarget. 110fd2fb cmGeneratorTarget: Move GetOutputTargetType from cmTarget. e7391699 cmGeneratorTarget: Move HasMacOSXRpathInstallNameDir from cmTarget. c5718217 cmGeneratorTarget: Move HaveInstallTreeRPATH from cmTarget. ...
| * cmComputeLinkDepends: Port some API to cmGeneratorTarget.Stephen Kelly2015-10-101-19/+14
| |
| * cmGeneratorTarget: Move IsImportedSharedLibWithoutSOName from cmTarget.Stephen Kelly2015-10-101-1/+2
| |
| * cmGeneratorTarget: Move HasMacOSXRpathInstallNameDir from cmTarget.Stephen Kelly2015-10-101-2/+2
| |
| * cmGeneratorTarget: Move HaveInstallTreeRPATH from cmTarget.Stephen Kelly2015-10-081-1/+1
| |
* | Merge topic 'add-cmLocalGenerator-API'Brad King2015-10-121-2/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 223d0efe Remove some needless GetMakefile() calls. a367416c cmLocalGenerator: Add current source directory accessor. bbef3c2d cmLocalGenerator: Add current binary directory accessor. 12cb3bdc cmLocalGenerator: Add Home directory accessors. 72efa15d Eclipse: Port API to cmLocalGenerator. f2a641d6 Kate: Remove unused variables. 10cf42f5 Kate: Port API to cmLocalGenerator. e46ef270 export: Port internal method to cmGeneratorTarget. 53d3a1c9 cmMakefile: Remove unused GetProjectName calls. 4ab2750c cmLocalGenerator: Add GetProjectName method. c8187f41 cmCPluginAPI: Inline code to get project name. 8c6e6dd3 cmMakefile: Inline initialization of project name. 27916f2c cmLocalGenerator: Add cmake instance accessor.
| * | cmLocalGenerator: Add Home directory accessors.Stephen Kelly2015-10-081-2/+3
| |/ | | | | | | Reduce reasons for cmLocalGenerator to have a cmMakefile.
* | cmGeneratorTarget: Use local GetProperty method.Stephen Kelly2015-10-081-6/+6
|/
* Merge topic 'add-link-search-static-properties-defaults'Brad King2015-09-011-5/+3
|\ | | | | | | | | 9e21b01a Revert LINK_SEARCH_{START,END}_STATIC behavior change
| * Revert LINK_SEARCH_{START,END}_STATIC behavior changeBrad King2015-08-311-5/+3
| | | | | | | | | | | | | | The changes to cmComputeLinkInformation.cxx in commit 675ef165 (Allow LINK_SEARCH_{START,END}_STATIC props to have default values, 2015-08-07) are unrelated to the feature added by that change and are incorrect. They lead to cases of extra -Bdynamic flags. Revert them.
* | Merge topic 'use-generator-target'Brad King2015-08-271-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c2b7336f cmGeneratorTarget: Move GetConfigCommonSourceFiles from cmTarget. 69329fff cmGeneratorTarget: Move GetLanguages from cmTarget. 0431f2c4 cmGeneratorTarget: Move ComputeLinkImplementationLanguages from cmTarget. abe9505d cmGeneratorTarget: Move HaveBuildTreeRPath from cmTarget. d4a24c0e cmGeneratorTarget: Move GetLinkImplementation from cmTarget. 83981cf5 cmTarget: Add GetLinkImplMap method. 771e79a2 cmLinkItem: Add cmOptionalLinkImplementation type. 3846ebcf cmLinkItem: Add cmLinkImplementation type. a7f5d70d cmGeneratorTarget: Move compile defintions processing from cmTarget. d051086c cmGeneratorTarget: Move compile features processing from cmTarget. db4cb92b cmGeneratorTarget: Move compile options processing from cmTarget. e6ccbf6f cmGeneratorTarget: Move include directory processing from cmTarget. 8bfb0c53 cmGeneratorTarget: Move link iface helpers from cmTarget. 2cb3e574 cmGeneratorTarget: Move GetImportLinkInterface from cmTarget. 6d3d099b cmGeneratorTarget: Move ComputeLinkInterfaceLibraries from cmTarget. 0db9d927 cmGeneratorTarget: Move GetLinkInterfaceLibraries from cmTarget. ...
| * | cmGeneratorTarget: Move HaveBuildTreeRPath from cmTarget.Stephen Kelly2015-08-261-1/+1
| | |
* | | Reduce uses of cmMakefile::GetGlobalGenerator.Stephen Kelly2015-08-251-1/+1
|/ / | | | | | | Don't assume the cmMakefile has a global generator.
* | Merge topic 'use-generator-target'Brad King2015-08-171-1/+1
|\ \ | |/ |/| | | | | 9b449e9c cmComputeLinkInformation: Lookup a target only if we have one
| * cmComputeLinkInformation: Lookup a target only if we have oneBrad King2015-08-131-1/+1
| | | | | | | | | | | | | | | | | | The change in commit 27252b24 (cmComputeLinkInformation: Simplify generator object access, 2015-08-02) broke the conditional use of a target introduced in commit 41abdc17 (cmGeneratorTarget: Move GetSOName from cmTarget, 2015-08-04). Restore the conditional lookup. Add a test case that hacks platform information variables to trigger this code everywhere.
* | Allow LINK_SEARCH_{START,END}_STATIC props to have default values.Chuck Atkins2015-08-131-3/+5
|/ | | | | | Use the CMAKE_LINK_SEARCH_START_STATIC and CMAKE_LINK_SEARCH_END_STATIC variables to initialize the LINK_SEARCH_START_STATIC and LINK_SEARCH_END_STATIC target properties respectively.
* cmComputeLinkInformation: Simplify generator object access.Stephen Kelly2015-08-061-11/+7
|
* cmOrderDirectories: Port to cmGeneratorTarget.Stephen Kelly2015-08-051-3/+3
|
* cmComputeLinkDepends: Port to cmGeneratorTarget.Stephen Kelly2015-08-051-1/+1
|
* cmComputeLinkInformation: Port to cmGeneratorTarget.Stephen Kelly2015-08-051-44/+40
|
* cmGeneratorTarget: Move GetLinkClosure from cmTarget.Stephen Kelly2015-08-051-3/+12
|
* cmGeneratorTarget: Move GetLinkerLanguage from cmTarget.Stephen Kelly2015-08-051-4/+3
|
* cmGeneratorTarget: Move IsChrPathUsed from cmTarget.Stephen Kelly2015-08-051-1/+5
|
* cmGeneratorTarget: Move GetSOName from cmTarget..Stephen Kelly2015-08-051-6/+10
|
* Move GetFullPath to cmGeneratorTargetStephen Kelly2015-07-271-4/+14
|
* cmComputeLinkInformation: Port to cmOutputConverter.Stephen Kelly2015-06-061-3/+3
|
* Merge topic 'refactor-cmPolicies'Brad King2015-05-051-8/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 013ada80 cmPolicies: Implement PolicyMap in terms of bitset. be6664c2 cmPolicies: Implement abstraction for PolicyMap. de211686 Port to static cmPolicies API. 13981f20 cmPolicies: Make all API static. 23e2bcc8 cmPolicies: Remove unused DefinePolicy method. 5641ba4f cmPolicies: Remove unused cmPolicy class. 3de54497 cmPolicies: Loop over all policies using enum constants. 387aff20 cmPolicies: Trivialize GetPolicyStatus method. dbf680d6 cmPolicies: Use more-direct ID access. 8c204133 cmPolicies: Implement in terms of public API. e3a8c029 cmPolicies: Make private method file-static. cb765af0 cmPolicies: Implement short description access with XMacros. 5df267fa cmPolicies: Implement version check with XMacro. 2235cfeb cmPolicies: Implement id to version with XMacro. 05d84388 cmPolicies: Implement id to string conversion with XMacro. 6eaade8a cmPolicies: Introduce XMacro table for policy data. ...
| * Port to static cmPolicies API.Stephen Kelly2015-05-041-8/+4
| |
* | Port to cmMakefile::GetGlobalGenerator.Stephen Kelly2015-05-031-1/+1
|/
* cmComputeLinkInformation: Reduce 'if' nesting in AddItemBrad King2015-04-211-5/+7
| | | | | Also add a comment explaining why interface libraries still get a link item.