58 Commits

Author SHA1 Message Date
Sebastian Holtermann
006229278b Use cmAppend to append ranges to std::vector instances 2019-05-23 16:19:49 +02:00
Brad King
cd0881be61 IWYU: Update CMake code for IWYU built with Clang 6
IWYU now correctly requires `<utility>` for `std::move`.  It also
requires a container header when used via a range-based for loop.
2019-01-15 10:00:50 -05:00
Marc Chevrier
5ca130e223 Refactoring: introduce function to check if a string is a generator expression 2018-09-25 23:46:56 +10:00
Vitaly Stakhovsky
6f16be6a62 Remove unnecessary c_str() calls
Use the new IsOn(),IsOff() overloads.
2018-09-05 15:12:57 -04:00
Pavel Solodovnikov
653b894683 Reduce raw string pointers usage.
* Change some functions to take `std::string` instead of
  `const char*` in the following classes: `cmMakeFile`, `cmake`,
  `cmCoreTryCompile`, `cmSystemTools`,  `cmState`, `cmLocalGenerator`
  and a few others.
* Greatly reduce using of `const char*` overloads for
  `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`.
* Remove many redundant `c_str()` conversions throughout the code.
2018-01-31 18:23:03 +03:00
Pavel Solodovnikov
c85bb007df Reduce allocation of temporary values on heap.
- Use `std::move` while inserting temporary results into vectors.
- Change `push_back` to `emplace_back` where appropriate.
2018-01-26 13:24:45 +03:00
luzpaz
777e87ae00 Fix trivial typos in text
Some are user facing.

Found using

    codespell -q 3 --skip="./Utilities" -I .cmake-whitelist.txt`

whereby the whitelist contained:

    ans
    dum
    helpfull
    emmited
    emmitted
    buil
    iff
    isnt
    nto
    ot
    pathes
    substract
    te
    todays
    upto
    whitespaces
2017-11-03 10:25:05 -04:00
Pavel Solodovnikov
5db3aac111 Meta: replace empty-string assignments with clear(). 2017-09-16 02:26:49 +03:00
Pavel Solodovnikov
8b6f439ef2 Access string npos without instance 2017-06-01 14:19:51 -04:00
Daniel Pfeifer
e81c323da9 Include necessary headers in commands 2016-10-26 09:02:44 +02:00
Daniel Pfeifer
608afd4f62 Separate compilation for commands included in cmBootstrapCommands2 2016-10-21 18:14:51 +02: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
73f648f167 use empty method to check for emptyness 2016-09-15 23:59:29 +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
Stephen Kelly
32b8f03acc cmMakefile: Port users of GetStart* methods to new names. 2015-04-21 00:15:20 +02:00
Stephen Kelly
930bd47816 Replace 'foo.size() == 0' pattern with foo.empty(). 2015-01-18 14:25:24 +01:00
Stephen Kelly
6162c9194b Use two-iterator std::set::insert where appropriate. 2015-01-11 17:00:55 +01:00
Ben Boeckel
270eb96df0 strings: Remove cmStdString references
Casts from std::string -> cmStdString were high on the list of things
taking up time. Avoid such implicit casts across function calls by just
using std::string everywhere.

The comment that the symbol name is too long is no longer relevant since
modern debuggers alias the templates anyways and the size is a
non-issue since the underlying methods are generated since it's
inherited.
2014-03-08 13:05:35 -05:00
Stephen Kelly
5b6e9bea19 Style: Use this-> when invoking member function. 2014-01-04 11:28:56 +01:00
Stephen Kelly
2f84dfec93 include_directories: Fix handling of empty or space-only entries
This is a regression introduced in commit 0d46e9a0 (Store includes
from the same include_directories call together., 2013-01-20).

Reported at

 http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/46695/focus=7847
2013-05-21 15:20:46 -04:00
Stephen Kelly
2ce7231f56 Style: Use this-> when invoking member functions. 2013-02-07 00:10:04 +01:00
Stephen Kelly
0d46e9a029 Store includes from the same include_directories call together.
Otherwise, we get a separate IncludeDirectoriesEntry for each include,
and that causes unnecessary and confusing splitting in the output when
debugging the INCLUDE_DIRECTORIES property.
2013-01-21 09:12:22 +01:00
Stephen Kelly
08cb4fa4c0 Process generator expressions in the INCLUDE_DIRECTORIES property.
This use of generator expressions, like all others to come which operate
on target properties, must initalize the dag checker.
2012-09-28 08:50:10 -04:00
Stephen Kelly
4557c8db48 Don't prepend a path before generator expressions in include_directories. 2012-09-21 13:28:54 +02:00
Kitware Robot
7bbaa4283d Remove trailing whitespace from most CMake and C/C++ code
Our Git commit hooks disallow modification or addition of lines with
trailing whitespace.  Wipe out all remnants of trailing whitespace
everywhere except third-party code.

Run the following shell code:

git ls-files -z -- \
 bootstrap doxygen.config '*.readme' \
 '*.c' '*.cmake' '*.cpp' '*.cxx' \
 '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \
 '*.mm' '*.pike' '*.py' '*.txt' '*.vim' |
egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' |
egrep -z -v '^(Modules/CPack\..*\.in)' |
xargs -0 sed -i 's/ \+$//'
2012-08-13 14:18:39 -04:00
Kai Wasserbäch
9203e9187e Fix spelling errors reported by Lintian.
During a Lintian run on the binary packages of CMake in Debian I was
notified of many spelling mistakes.
2010-07-13 09:41:37 -04:00
Brad King
96afb12087 Convert CMake to OSI-approved BSD License
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.
2009-09-28 11:43:28 -04:00
Alexander Neundorf
3fe6b3ce37 BUG: fix #8704, sometimes crash if include_directories() is called with a whitespace string
Alex
2009-03-12 19:24:27 -04:00
Brad King
bf732ec464 BUG: Fix include_directories command to produce an immediately whether or not 2.4 compatibility is enabled. CMake 2.4 already produced an error, just not immediately. 2008-03-08 09:50:56 -05:00
Brad King
53e0ed3273 BUG: Fix crash when CMAKE_BACKWARDS_COMPATIBILITY is not set. 2008-03-04 18:41:52 -05:00
Ken Martin
d49ef18f8a ENH: add first cut and policies still need to add the doc support 2008-03-01 15:20:35 -05:00
Ken Martin
0e69d38004 ENH: add return and break support to cmake, also change basic command invocation signature to be able to return extra informaiton via the cmExecutionStatus class 2008-01-23 10:28:26 -05:00
Brad King
254ae5c62e STYLE: Fix line-too-long. 2007-03-08 08:46:03 -05:00
Ken Martin
bfb3598c4b BUG: improve bad argument handling for INCLUDE_DIRECTORIES and ADD_DEFINITIONS bug 4364 2007-03-07 11:03:57 -05:00
Andy Cedilnik
440bbf0871 BUG: Produce error when include directories is invoked with an empty list 2007-02-23 09:45:04 -05:00
Brad King
c11cf31c9b ENH: Adding SYSTEM option to INCLUDE_DIRECTORIES command. This addresses bug #3462. 2006-10-05 08:55:59 -04:00
Ken Martin
94e908ff2d ENH: fix bad error reporting with not found paths 2006-08-23 10:21:31 -04:00
Andy Cedilnik
a9c0929d39 COMP: Handle both ansi and non-ansi C 2006-07-26 11:46:22 -04:00
Brad King
21089bf93f BUG: INCLUDE_DIRECTORIES should interpret relative path arguments with respect to the current source directory. 2006-05-12 10:54:09 -04:00
Ken Martin
ba2b99bb9f STYLE: fix line length 2006-05-11 15:50:11 -04:00
Brad King
cddedaa7d8 ENH: INCLUDE_DIRECTORIES should have been written to prepend to the include path so that the most local directories are included first. This is a patch from Alex to resolve the problem by allowing users to switch the default using a variable CMAKE_INCLUDE_DIRECTORIES_BEFORE and then still explicitly appending or prepending by using AFTER or BEFORE arguments explicitly. 2006-04-04 09:35:22 -04:00
Bill Hoffman
2fcae1932c ENH: make sure include and lib dirs are unix paths 2006-04-03 16:20:20 -04:00
Ken Martin
3d96e52261 STYLE: some m_ to this-> cleanup 2006-03-15 11:02:08 -05:00
Bill Hoffman
692f18538b ENH: add a check for empty include directories 2004-10-28 15:40:24 -04:00
Bill Hoffman
f58d7df66a ENH: add checking for NOTFOUND 2003-01-31 13:50:42 -05:00
Andy Cedilnik
6b228ff924 Add some error checking for missing include directories and link libraries 2003-01-30 14:34:40 -05:00
Brad King
4888c088ae ENH: Moved ExpandListVariables out of individual commands. Argument evaluation rules are now very consistent. Double quotes can always be used to create exactly one argument, regardless of contents inside. 2002-12-11 18:13:33 -05:00
Brad King
1f6a3c67b1 ENH: Added reference to Copyright.txt. Removed old reference to ITK copyright. Changed program name to CMake instead of Insight in source file header. Also removed tabs. 2002-10-23 18:03:27 -04:00
Ken Martin
7ddb408621 removed some includes 2002-09-27 16:24:10 -04:00
Ken Martin
e8dbdcaf0c allows no arguments 2002-07-22 10:01:53 -04:00