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
d094b679 Merge branch 'upstream-KWSys' into update-kwsys
5fa41459 KWSys 2017-11-30 (fa1ab7b8)
a3e029ef cmStandardLexer.h: Do not include a C++ header
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1539
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
The implementation of `target_link_libraries` did grow over the years
when new features where added. This commit cleans up the implementation
and adds comments to better document its intention.
The behavior of `target_link_libraries` itself is left untouched.
In commit 5b9da05b7a (Windows: Embed version information into CMake
binaries, 2017-10-25) we left out `<winres.h>` since MinGW does not have
the header, but it is needed for the `VS_VERSION_INFO` macro. Provide
the macro ourselves.
Suggested-by: Christian Pfeiffer <cpfeiffer@live.de>
Use the macro now provided by KWSys instead of using `try_compile`
checks. It will no longer consider the `__attribute__((fallthrough))`
variant, but compilers that don't have one of the modern attributes
shouldn't warn about not using one anyway.
In commit 7669695a74 (CheckIncludeFiles: extend to allow a LANGUAGE
argument, 2017-11-08) the file name used for the check was accidentally
left as `${var}.c`, where `var` is not a variable we define. It was
passing tests by accidentally using just `.c` as the file name, but can
break in real projects that may leave `var` defined to something else.
The reference was taken from similar code in CheckTypeSize where the
variable names are different. Fix our reference to be `${VARIABLE}`.
The `uv_*_t` handle types are closed by `uv_close`, but the semantics
are tricky. Calling `uv_close` may not close immediately. Instead it
hands ownership to the uv loop to which the handle is currently
attached. When the loop decides to close it, a callback is used to
allow the `uv_close` caller to free resources.
Provide an abstraction layer as `cm::uv_*_ptr` types corresponding to
the `uv_*_t` handle types. Each pointer is either empty (`nullptr`)
or has an initialized handle attached to a loop. Use move semantics
to ensure a single owner of the handle so that clients can predict
when the handle is destroyed.
b31d5e1d CheckIncludeFiles: improve warning for missing argument
1f1c2a9f CheckIncludeFiles: clean up documentation of new features
c8609992 Help: Add notes for topic 'CheckIncludeFiles-language-CXX'
ea1bb902 CheckIncludeFiles: add unit tests
7669695a CheckIncludeFiles: extend to allow a LANGUAGE argument
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1464
458c589f FindBoost: Add Windows ABI tag for Clang debug
00e39a4a FindBoost: Use CMAKE_CXX_COMPILER_ID for Intel compiler
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1529