Commit Graph

283 Commits

Author SHA1 Message Date
Brad King
fabb217502 Merge topic 'bootstrap-target-commands'
ef978c1d CursesDialog: use target_include_directories for cmForm
7814d750 bootstrap: make target_* commands available

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1158
2017-08-21 09:00:09 -04:00
Brad King
e37cdb385a Merge topic 'bootstrap'
d12837af bootstrap: Require a standard C compiler
dc0befb6 bootstrap: Remove check that identifies GNU compiler
6fdcf02a bootstrap: remove dead branches

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1142
2017-08-21 08:55:11 -04:00
Brad King
774d649126 Merge topic 'bootstrap-grep-solaris'
e488c7f9 bootstrap: Restore output redirection instead of "grep -q"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1144
2017-08-21 08:51:06 -04:00
Daniel Pfeifer
7814d75023 bootstrap: make target_* commands available 2017-08-18 21:48:14 +02:00
Brad King
e488c7f9ee bootstrap: Restore output redirection instead of "grep -q"
This reverts commit 567bac890c (bootstrap: use "grep -q" instead of
output redirection, 2017-06-07).  On Solaris `grep -q` does not exist.
2017-08-16 11:09:39 -04:00
Daniel Pfeifer
d12837afe6 bootstrap: Require a standard C compiler 2017-08-16 16:38:06 +02:00
Brad King
fd4fd9a276 Require C++11 to build CMake itself
CMake can now compile as C++11 on all supported platforms.  Check that
std::unique_ptr is available and fail early if missing.  This will allow
us to use C++11 more broadly in CMake's implementation (previously it
was restricted to the serve mode implementation).

Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>
2017-08-16 10:13:38 -04:00
Daniel Pfeifer
dc0befb6a1 bootstrap: Remove check that identifies GNU compiler
Bootstrapping no longer depends on this information.
2017-08-15 21:55:53 +02:00
Daniel Pfeifer
6fdcf02aaf bootstrap: remove dead branches
Remove code that uses cmake_cxx_compiler_is_gnu before it is set.
2017-08-15 21:48:45 +02:00
Brad King
49640d3629 HP-UX: Drop support for building CMake on HP-UX
CMake will soon require both C++11 and libuv to build.  Neither of
these works on HP-UX, so unfortunately we need to drop support for
the platform until someone can get them working.

Issue: #17137
2017-08-07 09:16:09 -04:00
Pavel Solodovnikov
d44bd1c25f include_guard: implement new command 2017-06-22 10:53:42 +03:00
Rolf Eike Beer
83784ed18b bootstrap: remove leftover empty variable dereference
This was missed in 9c0d1e7531 when the for loop
that used this as loop variable was removed.
2017-06-08 21:19:25 +02:00
Rolf Eike Beer
9c0d1e7531 bootstrap: implement cmake_extract_standard_flags() without loop
Pass all files to sed at once, and don't even change the directory for this.
2017-06-07 19:52:40 +02:00
Rolf Eike Beer
567bac890c bootstrap: use "grep -q" instead of output redirection 2017-06-07 19:52:40 +02:00
Rolf Eike Beer
380bd70cc2 bootstrap: implement cmake_toupper() using tr 2017-06-07 19:52:40 +02:00
Rolf Eike Beer
e61979a71c bootstrap: don't use 'cat x | sed', let sed open the file instead 2017-06-07 19:52:40 +02:00
Daniel Pfeifer
8d7b3ef5d4 Provide and use CM_FALLTHROUGH 2017-06-03 08:38:51 +02:00
Brad King
c80148c77e Merge topic 'bootstrap-std-flags'
6181a9e0 bootstrap: prefer to use standard flags for C and CXX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !842
2017-06-01 13:40:03 -04:00
Daniel Pfeifer
6181a9e00e bootstrap: prefer to use standard flags for C and CXX 2017-05-31 13:06:00 -04:00
Daniel Pfeifer
5dd0b5312c bootstrap: remove explicit support for Tru64 UNIX 2017-05-30 17:42:20 +02:00
Daniel Pfeifer
39fc348f57 bootstrap: remove support for IRIX 2017-05-28 23:37:49 +02:00
Daniel Pfeifer
4edcc3750d bootstrap: prefer Clang over GNU on Darwin 2017-05-22 22:56:55 +02:00
Brad King
67d5593efa Merge topic 'mingw-w64-compile'
9557b403 cmFileCommand: Fix build on mingw-w64
845f5e3c bootstrap: fix build on mingw-w64

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !837
2017-05-16 09:52:42 -04:00
Aleksey Chernov
845f5e3c51 bootstrap: fix build on mingw-w64
Define the default code page for EncodingCXX too.
2017-05-15 11:13:07 -04:00
Brad King
836cb52e9a Merge topic 'command-name'
a1218f59 cmCommand: remove unused methods from interface and all implementations
4ba25a82 cmState: separate builtin and scripted commands
a44dab46 cmState: introduce method for adding scripted commands
c734c850 CTest: use new methods for builtin commands
bd14e464 cmCommands: use new methods for builtin commands
58708405 cmState: introduce methods for adding builtin commands
a890ca2f cmakemain: use script role for -P

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !829
2017-05-12 09:13:51 -04:00
Daniel Pfeifer
e1e8f27ff2 bootstrap: fix Bad substitution 2017-05-11 21:53:14 +02:00
Daniel Pfeifer
587084052b cmState: introduce methods for adding builtin commands 2017-05-11 19:49:06 +02:00
Daniel Pfeifer
0c519c7029 bootstrap: Remove leftovers from cmBootstrapCommands 2017-05-09 23:45:29 +02:00
Daniel Pfeifer
9bad0dfcce LexerParser: move to custom directory 2017-04-28 23:10:39 +02:00
Daniel Pfeifer
5d1671324b cmConfigure: provide macros CM_EQ_DELETE and CM_DISABLE_COPY 2017-04-22 10:09:41 +02:00
Ben Boeckel
047a5e4d66 cmWorkingDirectory: add class for changing the workdir 2017-03-06 10:38:20 -05:00
Daniel Pfeifer
67303794f0 Combine all unexpected commands to a single class 2016-11-29 13:53:29 -05:00
Dāvis Mosāns
96103972ea Add cmProcessOutput class to be used for decoding text data
This allows to decode text data we receive from external process which
uses external encoding to our internal encoding.
2016-11-14 21:21:20 +02:00
Brad King
cd8a57ae9b Add option to build CMake against a system librhash
Create a CMAKE_USE_SYSTEM_LIBRHASH option.
2016-11-10 08:29:38 -05:00
Daniel Pfeifer
6c9b3b5c03 cmCommand: implement functions in cxx file 2016-10-21 18:14:51 +02:00
Daniel Pfeifer
8483dab8e1 bootstrap: Sort source files lexicographically 2016-10-21 18:14:51 +02:00
Daniel Pfeifer
4fb70919a5 Create all commands from a single function 2016-10-21 18:14:51 +02:00
Daniel Pfeifer
608afd4f62 Separate compilation for commands included in cmBootstrapCommands2 2016-10-21 18:14:51 +02:00
Daniel Pfeifer
64f9c282f3 Separate compilation for commands included in cmBootstrapCommands1 2016-10-21 18:14:51 +02:00
Stephen Kelly
e0a84904eb cmState: Split auxiliary classes into separate files
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.
2016-10-19 15:40:59 +02:00
Brad King
188c762f8a Merge topic 'extract-computed-target-properties'
cef59bb8 cmTarget: Implement GetProperty in terms of cmState::Snapshot
0d57b07a cmTarget: Group code for checking written properties together
c3fb0d95 cmTarget: Move sanity checks and computed property access to callers
fa9dbc56 cmGeneratorTarget: Implement cmTargetPropertyComputer interface
848ae2a6 cmTargetPropertyComputer: Template some methods on the Target
a0a720e6 cm{,Generator}Target: Add global generator accessors
637e3f3e cmTargetPropertyComputer: Unify whitelist handling from cmTarget
05251e6d cmTargetPropertyComputer: Move whitelist check from cmTarget
fbf1721c cmTargetPropertyComputer: Extract into new files
390a7d86 cmTargetPropertyComputer: Implement GetProperty without cmMakefile
e32a6bdd cmListFileBacktrace: Add a method to retrieve the Bottom of a snapshot
7863fba1 cmTarget: Extract GetLocation method
8096682e cmTarget: Extract GetSources method
7d57c1a2 cmTarget: Extract location computation methods
a55cac4b cmTarget: Split property computation into separate class
705fcf52 cmTarget: Move IMPORTED check to callers
...
2016-10-17 10:15:21 -04:00
Stephen Kelly
bdddd4234e cmRulePlaceholderExpander: Extract from cmLocalGenerator
Implement cmLocalGenerator::ExpandRuleVariables in terms of the new
class for source compatibility and to reduce diff noise in this commit.
2016-10-15 11:25:12 +02:00
Stephen Kelly
fbf1721c94 cmTargetPropertyComputer: Extract into new files 2016-10-15 11:14:21 +02:00
Stephen Kelly
5b361fdda0 cmLinkLineComputer: Extract from cmLocalGenerator
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.
2016-10-10 20:38:53 +02:00
Brad King
ec0bf63823 bootstrap: Add options to enable/disable server mode explicitly 2016-09-29 13:55:15 -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
Stephen Kelly
421012a330 cmMessenger: Extract from cmake class
This way messages can be issued independent of the cmake instance.

It is now possible to make DisplayMessage a virtual interface and
override it to handle messages in the cmake-gui or future IDE
interaction interfaces.
2016-08-25 09:47:27 -04:00
Brad King
7ec32a00d7 bootstrap: Add support for MSYS2
Bootstrapping under MSYS2 is the same as under MSYS/MinGW except that
`uname` reports `MSYS...` instead of `MINGW...`.
2016-07-20 09:17:08 -04:00
Dāvis Mosāns
e9849d35aa bootstrap: Add check for ext/stdio_filebuf.h needed by KWSys 2016-07-20 09:09:10 -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