Commit Graph

303 Commits

Author SHA1 Message Date
Kirill Erofeev
bbf64794ac bootstrap: Add option to enable/disable usage of system libuv 2018-04-17 07:44:01 -04:00
Brad King
a40768b5af Merge topic 'bootstrap-try-clang'
04167e39 bootstrap: Add Clang to known compiler candidates

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1749
2018-02-05 09:28:01 -05:00
Axel Huebl
04167e39c3 bootstrap: Add Clang to known compiler candidates
Add `clang` and `clang++` after the corresponding `gcc` and `g++`
candidates.  Otherwise it is not tried on platforms where we do not
enumerate the toolchain pair candidates.
2018-02-05 08:58:41 -05:00
Brad King
e61c1cf64c Merge topic 'libuv-raii'
3bcaa870 cmUVHandlePtr: Add uv_process_ptr
dd700e9b cmUVHandlePtr: Add uv_timer_ptr
32cfa7b3 cmUVHandlePtr: Move to CMakeLib to make it available everywhere

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1541
2017-12-01 08:22:49 -05:00
Brad King
47c326c36b Merge topic 'bootstrap-clang-5'
375eca78 bootstrap: Check support for unordered_map from compiler mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1542
2017-12-01 08:18:12 -05:00
Adam Ciarciński
375eca7881 bootstrap: Check support for unordered_map from compiler mode
Some versions of clang 5 (with libc++) have a problem with
`unordered_map` under `-std=gnu++1z`:

    /usr/include/c++/__hash_table:1134:43: error: conflicting types for '__hash_table<_Tp, _Hash, _Equal, _Alloc>'

Include `unordered_map` in our test source so that we reject this
combination and fall back to an older C++ standard flag.

Fixes: #17526
2017-11-30 14:01:26 -05:00
Brad King
32cfa7b324 cmUVHandlePtr: Move to CMakeLib to make it available everywhere 2017-11-30 11:19:31 -05:00
Brad King
4ff89fb608 AIX: Add -pthread flag to enable std::thread with GCC 2017-11-28 11:24:26 -05:00
Brad King
6e613ff399 bootstrap: Add infrastructure to detect threading flags
In our loop to detect -std flags, add another layer to detect
threading flags.
2017-11-28 11:23:36 -05:00
Domen Vrankar
670ad047b3 Move file/dir permissions code to common file. 2017-11-08 20:27:11 +01:00
Brad King
b8018135b5 Use C++11 '= delete' instead of CM_EQ_DELETE
We now require C++11 support including `= delete`.  Drop use of
the old compatibility macro.
2017-09-28 09:50:18 -04:00
Brad King
dd77a2ed4d Merge topic 'libuv-bootstrap'
714ce728 bootstrap: Make libuv available during bootstrap
6a2d967d bootstrap: Require compiler mode aware of C99 on Solaris

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1131
2017-09-18 10:08:07 -04:00
Brad King
714ce72882 bootstrap: Make libuv available during bootstrap
On UNIX, build only the parts of libuv we need for the filesystem,
process, and poll abstractions using the POSIX poll() backend.  This
avoids many platform-specific conditions.  On Windows, build all of
libuv; there are no conditional alternatives anyway.
2017-09-17 11:10:18 -04:00
Brad King
6a2d967de0 bootstrap: Require compiler mode aware of C99 on Solaris
On Solaris some system headers included in C with `-D_XOPEN_SOURCE=600`
require C99 support by the compiler.
2017-09-17 11:10:18 -04:00
Brad King
4e14498f4f Drop now-unused definition of CM_OVERRIDE 2017-09-15 10:06:41 -04:00
Brad King
5202075c66 Merge topic 'bootstrap-twice-in-source'
a3deae71 bootstrap: Fix running multiple times in-source

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1258
2017-09-14 07:37:58 -04:00
Brad King
a3deae7199 bootstrap: Fix running multiple times in-source
Since commit v3.9.0-rc1~281^2 (Use quotes for non-system includes,
2017-04-11) we include `cmConfigure.h` via `""` instead of `<>`.
This breaks the `bootstrap` script when run more than once in an
in-source build.  In that case `cmConfigure.h` is generated next
to the source files that include it, so `""`-style includes prevent the
`Bootstrap.cmk/cmConfigure.h` file from being included during bootstrap.

Fix this by teaching the bootstrap script to remove any `cmConfigure.h`
that may have been generated by an earlier run in an in-source build.

Fixes: #17082
2017-09-13 10:37:14 -04:00
Brad King
4a275f6320 bootstrap: Require compiler mode aware of C++11
Some compilers have enough features enabled in their default modes to
pass our simple C++11 unique_ptr check but do not enable enough to build
CMake.  Poison this case so that we choose one of the explicit `-std=`
options for such compilers.
2017-08-29 11:05:19 -04:00
Daniel Pfeifer
7f29bbe6f2 server: always enable server 2017-08-26 07:46:58 +02:00
Daniel Pfeifer
5962db4389 Use C++11 nullptr 2017-08-24 23:39:47 +02:00
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