summaryrefslogtreecommitdiffstats
path: root/Source/cmSourceFileLocation.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* fix a load of include-what-you-use violationsDaniel Pfeifer2016-09-031-1/+6
|
* use CM_NULLPTRDaniel Pfeifer2016-06-281-1/+1
|
* Simplify boolean expressionsDaniel Pfeifer2016-06-021-4/+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-132/+85
| | | | | | | | | | | | | 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.
* Format include directive blocks and ordering with clang-formatBrad King2016-04-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* cmake: Store hardcoded lists of sources and headersStephen Kelly2015-10-271-4/+8
| | | | Don't duplicate this in each cmMakefile.
* Remove unused cmLocalGenerator include.Stephen Kelly2015-10-051-1/+0
|
* Port to cmMakefile::GetGlobalGenerator.Stephen Kelly2015-05-031-2/+1
|
* cmMakefile: Rename GetCurrent{Output,Binary}Directory.Stephen Kelly2015-04-201-3/+3
| | | | Match names used in CMake code.
* cmMakefile: Rename GetCurrent{,Source}Directory.Stephen Kelly2015-04-201-4/+4
| | | | Match the names used in cmake code.
* Include cmAlgorithms where it is used.Stephen Kelly2015-03-101-0/+1
|
* Merge topic 'fix-source-case-matching'Brad King2014-12-011-1/+2
|\ | | | | | | | | 84d124e8 Fix lookup of source names after conversion to their actual case (#15259)
| * Fix lookup of source names after conversion to their actual case (#15259)Brad King2014-11-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.1.0-rc1~688^2~15 (cmTarget: Add a method to obtain list of filenames for sources, 2014-03-17) we have code paths that lookup sources by strings containing their own full path after normalization to the actual case on disk. This fails in the case that a cmSourceFile has already been created with a different case in the filename. The comparison of the directory works because it is always normalized. Only the comparison of the file name fails. Fix this by using a case-insensitive comparison of source file names on platforms that do not have case-sensitive filesystems.
* | strings: Remove redundant calls to std::string::c_str()Nils Gladitz2014-10-151-7/+7
|/ | | | | Replacements were detected and performed by the clang tool remove-cstr-calls on a linux build.
* cmSourceFileLocation: Save some string copiesBen Boeckel2014-04-291-6/+6
|
* cmSourceFileLocation: Simplify logic in MatchesBen Boeckel2014-04-291-36/+35
|
* cmSourceFileLocation: Avoid string allocation in extension checkingBen Boeckel2014-04-291-2/+3
| | | | | | The substr call was causing excess allocations. Swap the cheaper character check to be before the longer string comparison, now using the prefix checking function.
* cmSourceFileLocation: Collapse full path for directory comparisons.Stephen Kelly2014-03-311-0/+5
| | | | | | | | | | | | | Otherwise Matches() ends up doing a comparison of the directories /path/to/dir/subdir/.. and /path/to/dir as strings and not matching where it should.
* cmSourceFileLocation: Remove unused Update method.Stephen Kelly2014-03-311-24/+0
| | | | | The string overload is never called. This allows the removal of the unused UpdateDirectory method.
* cmSourceFileLocation: Make copyable and assignable.Stephen Kelly2014-03-311-0/+41
| | | | This allows using it in containers and algorithms.
* stringapi: Use strings for the languagesBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings for source namesBen Boeckel2014-03-081-6/+7
|
* cmSourceFileLocation: Use a const cmMakefile.Stephen Kelly2014-01-221-3/+3
|
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* BUG: Fix matching of ambiguous sf extensions.Brad King2008-08-051-18/+56
| | | | | | | | A name with an ambiguous extension may only match an unambiguous name that is extended by one of the fixed set of extensions tried when finding the source file on disk. This rule makes matching of source files with ambiguous extensions much less aggressive but still sufficient.
* ENH: Recognize src extensions of all enabled langsBrad King2008-07-301-3/+8
| | | | | | | | | | | | For historical reasons we still support naming of source files without their extension. Sources without known extensions are located on disk by iterating through a fixed set of possible extensions. We now want users to always specify the extension, so the fixed set will not be expanded and is preserved for compatibility with older projects. This change adds recognition of extensions of all enabled languages to avoid checking the disk for files whose extensions are unambiguous but not in the original fixed set.
* BUG: Avoid double-slash in check for source fileBrad King2008-07-301-2/+5
|
* BUG: fix source file extension bug that broke Second life buildBill Hoffman2008-07-251-0/+30
|
* STYLE: Fix line-too-long for new INTERNAL_ERROR messages.Brad King2008-03-151-6/+6
|
* ENH: remove abort calls and replace with an IssueMessage INTERANL_ERROR, ↵Bill Hoffman2008-03-131-1/+7
| | | | better to not crash on the end user.
* ENH: Merging changes from branch CMake-SourceFile2-b between tagsBrad King2007-06-181-0/+212
CMake-SourceFile2-bp and CMake-SourceFile2-b-mp1 to trunk. This commit is surrounded by tags CMake-SourceFile2-b-mp1-pre and CMake-SourceFile2-b-mp1-post on the trunk. The changes re-implement cmSourceFile and the use of it to allow instances to be created much earlier. The use of cmSourceFileLocation allows locating a source file referenced by a user to be much simpler and more robust. The two SetName methods are no longer needed so some duplicate code has been removed. The strange "SourceName" stuff is gone. Code that created cmSourceFile instances on the stack and then sent them to cmMakefile::AddSource has been simplified and converted to getting cmSourceFile instances from cmMakefile. The CPluginAPI has preserved the old API through a compatibility interface. Source lists are gone. Targets now get real instances of cmSourceFile right away instead of storing a list of strings until the final pass. TraceVSDependencies has been re-written to avoid the use of SourceName. It is now called TraceDependencies since it is not just for VS. It is now implemented with a helper object which makes the code simpler.