1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-06-23 21:00:46 +08:00

536 Commits

Author SHA1 Message Date
Brad King
f5be951117 Merge topic 'labels-for-subprojects'
376dc3eb Help: Add notes for topic 'labels_for_subprojects'
a70d8e93 Add tests for new directory labels and labels-for-subprojects features
47b3a57c Display subproject timing summary
d3859624 Add directory property 'LABELS' and CMAKE_DIRECTORY_LABELS variable
d08ec4d2 Add CTEST_LABELS_FOR_SUBPROJECTS as a CTest module and script variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1004
2017-07-13 07:46:09 -04:00
Betsy McPhail
47b3a57c9b Display subproject timing summary
Use the '--no-subproject-summary' option to disable timing summary.
2017-07-10 16:25:18 -04:00
Betsy McPhail
d08ec4d25a Add CTEST_LABELS_FOR_SUBPROJECTS as a CTest module and script variable
Use this variable to specify a list of labels that will be reported to
CDash as subprojects.
2017-07-10 16:25:18 -04:00
Brad King
6c80e958ca cmCTest: Add missing switch case fallthrough markup
Without this, GCC 7 warns.

Reported-by: Rolf Eike Beer <eike@sf-mail.de>
2017-07-05 11:48:47 -04:00
Pavel Solodovnikov
db2d46e2dd Remove second arg: npos in substr usages 2017-06-01 14:19:52 -04:00
Pavel Solodovnikov
8b6f439ef2 Access string npos without instance 2017-06-01 14:19:51 -04:00
Daniel Pfeifer
c36d63cd48 cmake: initialize with Role that controls which commands to register 2017-05-08 22:29:44 +02:00
Craig Scott
c1b2b7c03c Add ctest options for limiting which tests fixtures add
The new options allow the user to restrict the setup and cleanup tests
automatically added for fixtures.
2017-05-02 01:54:13 +10:00
Daniel Pfeifer
1d829c862c Use quotes for non-system includes
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'
2017-04-11 22:35:21 +02:00
Ben Boeckel
89891bcb9e cmCTest, cmCTestCoverageHandler: remove cwd dance
The working directory changes here didn't really accomplish anything.
2017-03-06 10:38:00 -05:00
Daniel Pfeifer
b932cd4298 clang-tidy: apply misc-redundant-expression fixes 2016-12-12 14:04:16 -05:00
Daniel Pfeifer
2988abd939 clang-tidy: apply modernize-use-bool-literals fixes 2016-12-12 14:04:14 -05:00
Dāvis Mosāns
40bd42dfbc Add Encoding option for RunChild, RunMakeCommand and RunProcess 2016-11-15 01:00:46 +02:00
Dāvis Mosāns
595feb3234 Windows: Encode child process output to internally-used encoding
Typically Windows applications (eg. MSVC compiler) use current console's
codepage for output to pipes so we need to encode that to our
internally-used encoding (`KWSYS_ENCODING_DEFAULT_CODEPAGE`).
2016-11-14 21:21:20 +02:00
Zack Galbreath
d3633731ab Do not query CDash for version
This check was not functioning properly for the following reasons:

* The "DropSite" and "DropLocation" CTest Configurations do not
get set until ctest_submit() is called.  So if ctest_submit()
was not called before ctest_test() we would end up with uncompressed
output, even if the CDash server was new enough to support this feature.

* CDash's API is now versioned. The current location to query is
now /api/v1/getversion.php, not /api/getversion.php.

As a result of these issues, CTest would not compress test/memcheck
output when it should.  Rather than fix this check, we now assume that
CTest is communicating with a new enough version of CDash.  This behavior
can be controlled through the use of the --no-compress-output command-line
argument.
2016-11-08 15:58:50 -05:00
Daniel Pfeifer
2e620f0b38 Fix several include-what-you-use findings 2016-11-08 09:42:04 -05:00
Stephen Kelly
e6eecec761 cmListFileCache: Remove cmState header include
Include it in dependents which have previously relied on it
transitively.
2016-10-19 15:41:00 +02:00
Stephen Kelly
a91eaf3872 cmState: Port dependents to new cmStateTypes header 2016-10-19 15:40:59 +02:00
Stephen Kelly
2fe3e55d53 cmState: Move CacheEntryType enum to separate namespace
Port dependent code to the change.
2016-10-19 15:40:58 +02:00
Brad King
5385817762 Do not define cout/cerr preprocessor symbols
Apply the change from commit bd3d0eaf (cmCTest: don't redefine cout and
cerr, 2016-09-01) to the rest of ctest and cpack.  These definitions
are no longer needed because our conventions are well established.
2016-10-04 09:34:37 -04:00
Brad King
86578eccf2 Simplify CMake per-source license notices
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.
2016-09-27 15:14:44 -04:00
Daniel Pfeifer
b941f3bfe7 CTest::CompressString: Avoid manual delete 2016-09-23 22:06:17 +02:00
Daniel Pfeifer
a5a7771a42 CTest::CompressString: Reorder code to avoid unnecessary allocation 2016-09-23 22:04:47 +02:00
Daniel Pfeifer
6ed564577d CTest::Base64EncodeFile: Avoid manual delete 2016-09-23 22:03:49 +02:00
Daniel Pfeifer
efed6468ed fix a load of include-what-you-use violations 2016-09-03 08:04:56 -04:00
Daniel Pfeifer
7b6349da4d CMake: don't use else after return 2016-08-18 20:36:29 +02:00
Chuck Atkins
02d177c9cc Add additional <= and >= comparison operators
This adds the LESS_EQUAL, GREATER_EQUAL, and associated STR and VERSION
equivalents to use the combined <= and >= functionality.
2016-08-09 09:30:34 -04:00
Dāvis Mosāns
b1f87a50b3 Use better KWSys SystemTools::GetEnv and HasEnv signatures 2016-07-18 09:51:01 -04:00
Brad King
50adbfcacb Merge topic 'reorganize-cmCTest'
61fcd08a Help: Fix documentation of ctest --build-and-test
7c67d401 Help: Consistently use quotes and fix punctuation in ctest(1) manual
0076fb10 cmCTest: Update doxygen to be consistent
30c5f94c cmCTest: Rename "ProcessTests()" to "ProcessSteps()" and improve doxygen
7c87ab75 cmCTest: Facilitate code reading adding consistent comments in Run()
6d8b9aa6 cmCTest: Improve readability adding "HandleTest(Action|Model)Argument()"
280d0a69 cmCTest: Improve readability adding "RunCMakeAndTest()" and "ExecuteTests()"
898cb987 cmCTest: Fix typo
2016-07-06 09:35:38 -04:00
Jean-Christophe Fillion-Robin
30c5f94c5b cmCTest: Rename "ProcessTests()" to "ProcessSteps()" and improve doxygen 2016-07-05 11:19:00 -04:00
Jean-Christophe Fillion-Robin
7c87ab755c cmCTest: Facilitate code reading adding consistent comments in Run() 2016-07-05 11:19:00 -04:00
Jean-Christophe Fillion-Robin
6d8b9aa65a cmCTest: Improve readability adding "HandleTest(Action|Model)Argument()" 2016-07-05 11:19:00 -04:00
Jean-Christophe Fillion-Robin
280d0a6947 cmCTest: Improve readability adding "RunCMakeAndTest()" and "ExecuteTests()" 2016-07-05 11:19:00 -04:00
Jean-Christophe Fillion-Robin
898cb987b4 cmCTest: Fix typo 2016-07-05 11:18:53 -04:00
Brad King
b5ec5b0901 Avoid using KWSys auto_ptr by adopting it ourselves
Replace use of cmsys::auto_ptr with a CM_AUTO_PTR macro that maps to
our own implementation adopted from the KWSys auto_ptr implementation.
Later we may be able to map CM_AUTO_PTR to std::auto_ptr on compilers
that do not warn about it.

Automate the client site conversions:

    git grep -l auto_ptr -- Source/ | grep -v Source/kwsys/ | xargs sed -i \
      's|cmsys::auto_ptr|CM_AUTO_PTR|;s|cmsys/auto_ptr.hxx|cm_auto_ptr.hxx|'
2016-06-29 09:47:58 -04:00
Daniel Pfeifer
1d6909a287 use CM_NULLPTR 2016-06-28 09:02:26 -04:00
Daniel Pfeifer
fa277b29e4 Remove c_str() calls from stream arguments.
Mostly automated:

git grep -l '.c_str() <<' | xargs sed -i 's|\.c_str() <<| <<|g'
2016-06-06 23:53:32 +02:00
Daniel Pfeifer
c6220de276 Use the empty() method to check for emptyness.
Apply fix-its from clang-tidy's readability-container-size-empty
checker.
2016-06-02 21:35:50 +02:00
Daniel Pfeifer
618fb23fc9 Pass arguments that are not modified as const&.
Use clang-tidy's performance-unnecessary-value-param checker to find
value parameter declarations of expensive to copy types that are not
modified inside the function.  Ignore findings in kwsys.
After applying the fix-its, manually change `const T&` to `T const&`.
2016-05-26 21:58:51 +02:00
Daniel Pfeifer
5784747d1b Improve string find: prefer character overloads.
Apply fix-its from clang-tidy's performance-faster-string-find checker.
Ignore findings in kwsys.
2016-05-24 23:22:24 +02:00
Kitware Robot
d9fd2f5402 Revise C++ coding style using clang-format
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.
2016-05-16 16:05:19 -04:00
Brad King
0ac18d40c8 Remove //------... horizontal separator comments
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.
2016-05-09 09:41:43 -04:00
Brad King
e1c7747253 Format include directive blocks and ordering with clang-format
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>
2016-04-29 13:58:54 -04:00
Brad King
180538c706 Source: Stabilize include order
Each source file has a logical first include file.  Include it in an
isolated block so that tools that sort includes do not move them.
2016-04-29 13:58:31 -04:00
Stephen Kelly
20b95ef8c8 cmState: Initialize default definitions immediately.
Don't leave this as cmMakefile responsibility.
2015-10-14 00:16:20 +02:00
Stephen Kelly
6da4cd8fb9 CTest: Remove needless cmLocalGenerator creation. 2015-10-05 20:46:59 +02:00
Roman Wüger
fd47df4503 CTest: Add options to limit output of passed and failed tests
Add ctest command-line options:

  --test-output-size-passed <n>
  --test-output-size-failed <n>

to set the amount of test output to store in Test.xml as a command-line
dashboard client.
2015-09-18 11:32:06 -04:00
Brad King
e18f6fe276 Merge topic 'fix-ctest-xml-double-encoding'
ab2524d6 CTest: Fix XML double-encoding cases
dee84dc7 cmCTest{BZR,GIT,P4}: Remove unused cmXMLSafe includes
b3372db5 cmExtra{Kate,SublimeText}Generator: Remove unused cmXMLSafe includes
2015-08-31 09:48:37 -04:00
Stephen Kelly
ff8ac8ee6a cmLocalGenerator: Create from already-constructed cmMakefile.
Don't manage the lifetime of the cmMakefile with cmLocalGenerator.
2015-08-28 18:44:39 +02:00
Stephen Kelly
92041eec49 cmGlobalGenerator: Remove MakeLocalGenerator method.
Inline implementation to callers.
2015-08-28 18:44:38 +02:00