Commit Graph

38863 Commits

Author SHA1 Message Date
Brad King
b28e093f6a Merge branch 'FindBoost-backport-python-deps' into release-3.11
Merge-request: !2045
2018-05-09 08:02:57 -04:00
Filip Matzner
81cc993f89 FindBoost: Backport versioned python dependencies for v1.35 to v1.66
Update `mpi_python##` and `numpy##` component dependencies to honor
python version suffixes on components named by the caller.  Although
upstream Boost did not add version suffixes prior to version 1.67, it is
commonly done by distros.  Honor suffixes specified by project code.
Projects must take responsibility for naming distro-specific component
suffixes for versions prior to 1.67.

Fixes: #17892, #17970
2018-05-09 07:57:36 -04:00
Brad King
557e68e1a3 FindBoost: Remove extra indentation in 1.65/1.66 dependency block 2018-05-08 08:51:57 -04:00
Brad King
0df2e30638 Merge branch 'FindCUDA-revert-sepcomp-cublas' into release-3.11
Merge-request: !2048
2018-05-08 08:38:46 -04:00
Brad King
c400cd4f3a Merge branch 'doc-updates' into release-3.11
Merge-request: !2043
2018-05-08 08:38:34 -04:00
Brad King
6a95a097d9 Merge branch 'java-new-packaging-fixes' into release-3.11
Merge-request: !2042
2018-05-08 08:38:25 -04:00
Brad King
9a66345752 FindCUDA: Fix regression in separable compilation without cublas
Revert commit v3.11.0-rc1~274^2 (FindCUDA: Add cublas device library to
separable compilation, 2017-11-03).  It breaks targets that do not link
to cublas.  Another solution will be needed to solve the original
problem in a more compatible way.

Fixes: #17965
2018-05-07 11:30:21 -04:00
Marc Chevrier
e15adbfed3 Help: Specify COMPILE_OPTIONS and COMPILE_FLAGS source properties usage 2018-05-07 09:45:23 -04:00
Marc Chevrier
b4e1569315 FindJava, FindJNI: fix erroneous regex, enhance registry lookup 2018-05-07 09:40:55 -04:00
Brad King
5089d950c3 Merge branch 'ctest-libuv-linux-sparc64' into release-3.11
Merge-request: !2029
2018-05-02 11:21:04 -04:00
Brad King
1c22fdf360 libuv: linux/sparc64: use fcntl to set and clear O_NONBLOCK
Upstream libuv commits:

* node-v0.6.0~28 (linux: use ioctl(FIONBIO) to set O_NONBLOCK, saves a syscall, 2011-10-29)
* v1.11.0~11 (unix: use async-signal safe functions between fork and exec, 2016-12-12)

left an asymmetry in the way O_NONBLOCK is set and cleared.  Normally
ioctl/FIONBIO is used for both.  However, uv_spawn uses fcntl/O_NONBLOCK
to clear O_NONBLOCK between fork and exec.  This fails on Linux/sparc64
where setting via ioctl/FIONBIO actually sets two bits (in O_NDELAY)
that cause clearing via fcntl/O_NONBLOCK to be silently ignored (though
clearing via ioctl/FIONBIO or fcntl/O_NDELAY works).

Since CMake commit v3.11.0-rc1~117^2 (CTest: Re-implement test process
handling using libuv, 2017-12-10), CTest uses libuv.  On Linux/sparc64
child processes have been started with non-blocking output pipes.  This
can lead to write errors or lost output from children not prepared to
deal with `EAGAIN` on stdout or stderr.

Fix this for now by switching libuv back to fcntl/O_NONBLOCK to set and
clear O_NONBLOCK when compiled on Linux/sparc64.

LibUV-Issue: 1830
Fixes: #17941
2018-05-02 11:16:19 -04:00
Brad King
321442580e Merge branch 'cxx-checks-tolerate-more-warnings' into release-3.11
Merge-request: !2019
2018-04-30 09:18:58 -04:00
Brad King
2254b72061 C++ feature checks: Filter out warnings caused by local configuration
In some environments the linker produces warnings like

    warning: directory not found for option
    warning: object file compiled with -mlong-branch ...

These do not affect the availability of C++ features we're checking,
so filter them out.

Fixes: #17850, #17947
2018-04-30 09:18:15 -04:00
Brad King
1f06c0d8a8 Merge branch 'java-new-packaging-version-sort' into release-3.11
Merge-request: !2016
2018-04-27 08:53:02 -04:00
Marc Chevrier
1013560a6a FindJava, FindJNI: Ensure most recent version is searched first 2018-04-27 08:52:22 -04:00
Brad King
a92ee4e30d Merge branch 'backport-ninja-issue-17942' into release-3.11
Merge-request: !2010
2018-04-26 08:41:18 -04:00
Brad King
0826c20128 Ninja: Do not add empty custom command for file(GENERATE) outputs
Internally we mark `file(GENERATE)` outputs as `GENERATED` in order
to tell custom command dependency tracing logic not to expect the
files to exist on disk yet.  This is because we do not generate the
files until after that tracing is done.

The Ninja generator also interprets the `GENERATED` property to mean
that it is expected that some build rule will generate the file if
another build rule depends on it.  If the generator does not know of a
custom command that generates the file then it adds an empty one so that
the `ninja` build tool does not complain about a dependency on a file
that does not exist and has no rule to generate it.  However, this step
is not necessary for `file(GENERATE)` outputs because there is no build
rule to generate them and they will exist before `ninja` runs.

Add an additional `__CMAKE_GENERATED_BY_CMAKE` property internally to
tell the Ninja generator that a `GENERATED` file will exist before the
build starts and is not expected to have a build rule producing it.

Fixes: #17942
2018-04-26 08:39:44 -04:00
Brad King
b58e41ccbd Merge branch 'backport-java-new-packaging' into release-3.11
Merge-request: !2007
2018-04-25 09:42:58 -04:00
Marc Chevrier
5482f485b8 FindJava, FindJNI, UseJava: update for version 10 support
* new version format
* new registry layout on Windows

Fixes: #17938
2018-04-25 09:18:53 -04:00
Brad King
dc3401d5b0 Merge branch 'BLAS-no-target-in-libs' into release-3.11
Merge-request: !2006
2018-04-24 13:58:11 -04:00
Rolf Eike Beer
7d756f37cc FindBLAS: do not write an imported target name into BLAS_LIBRARIES
Since commit v3.11.0-rc1~177^2 (FindBLAS: optionally query pkg-config
for a library, 2017-12-15) the `BLAS_LIBRARIES` result variable may
incorrectly contain the name of an imported target.  Instead store the
list of libraries in the variable.  Unfortunately pkg_check_modules does
not provide a way to get this so we need to use a (temporary) hack of
reading `INTERFACE_LINK_LIBRARIES` from the interface library target.

Fixes: #17934
2018-04-24 13:49:20 -04:00
Rolf Eike Beer
946846aaf5 FindPkgConfig: do not unset unused variable
_props is never used, it was a leftover from a development step.
2018-04-24 13:46:41 -04:00
Brad King
0b992b9751 Merge branch 'fix-CMAKE_DISABLE_SOURCE_CHANGES-top-dir' into release-3.11
Merge-request: !2001
2018-04-24 10:44:49 -04:00
Marc Chevrier
60cb75e4a1 Fix CMAKE_DISABLE_SOURCE_CHANGES recognition of top of build tree
The change in commit v3.11.0-rc1~480^2 (UseJava: add_jar OUTPUT_DIR
option used only for jar generation, 2017-10-12) added code of the form
`file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR})`.  This exposed an existing
bug in `CMAKE_DISABLE_SOURCE_CHANGES` in which it does not recognize
that the top of the build tree itself is in the build tree.  Fix that
now.

Fixes: #17933
2018-04-24 10:42:00 -04:00
Brad King
c86386caa3 Merge branch 'InstallRequiredSystemLibraries-mfcm' into release-3.11
Merge-request: !1980
2018-04-18 09:19:36 -04:00
Christof Krüger
bdf660cab5 InstallRequiredSystemLibraries: Check for existence of mfcm dlls
Previously, only existence of `mfc${v}.dll` and `mfc${v}d.dll` variants
was checked and it was assumed that the managed variants `mfcm*.dll`
also existed.  This assumption doesn't hold with Visual Studio 2017.
Check each file separately.

Fixes: #17913
2018-04-18 09:18:57 -04:00
Brad King
fbe6cd1596 CMake 3.11.1 2018-04-17 08:33:46 -04:00
Brad King
d1d43a6dbf Merge branch 'bootstrap_system_libuv_option' into release-3.11
Merge-request: !1971
2018-04-17 07:52:19 -04:00
Kirill Erofeev
bbf64794ac bootstrap: Add option to enable/disable usage of system libuv 2018-04-17 07:44:01 -04:00
Brad King
054c849112 Merge branch 'FindOpenMP-Intel-Windows' into release-3.11
Merge-request: !1957
2018-04-16 14:12:46 -04:00
Roland Schulz
0c7433e874 FindOpenMP: Fix support for Intel on Windows
The change in commit v3.11.0-rc1~334^2 (FindOpenMP: Use NO_DEFAULT_PATH
where appropriate, 2017-11-15) broke partial support for Intel on Windows.
Since `OpenMP_${LANG}_IMPLICIT_LINK_DIRS` is empty for this compiler
the `find_library` call without `NO_DEFAULT_PATH` worked accidentally
in environments with the needed libraries in the search path already.

Fix support for Intel on Windows by simply removing our explicit search
for the `libiomp5md` library.  In cases that it is needed, the compiler
already inserts metadata in `.obj` files to tell the MSVC linker to use
the library.

Suggested-by: Christian Pfeiffer <cpfeiffer@live.de>
Fixes: #17910
2018-04-16 14:11:12 -04:00
Brad King
90cdd06f4c Merge branch 'implicit-lib-gcceh-file' into release-3.11
Merge-request: !1967
2018-04-16 11:58:30 -04:00
Brad King
eb0498357f Exclude "libgcc_eh" library files from implicit link libraries
Extend the fix in commit v3.9.6~1^2 (Restore exclusion of "gcc_eh" from
implicit link libraries, 2017-11-07) to also exclude `gcc_eh` libraries
referenced by absolute path to the library file.

Issue: #17436
2018-04-16 11:56:23 -04:00
Brad King
cb8c758fdb Merge branch 'libuv_version_bump' into release-3.11
Merge-request: !1966
2018-04-16 11:38:17 -04:00
ErofeevK
f5f72ff844 Explicitly require LibUV 1.10 or higher to build CMake
CMake 3.11 now uses `uv_translate_sys_error` introduced in LibUV 1.10.
2018-04-16 11:33:52 -04:00
Brad King
d00306636b Merge branch 'backport-fix-explicit-CMakeLists.txt' into release-3.11
Merge-request: !1959
2018-04-13 09:49:51 -04:00
Brad King
8480c2afc0 Restore support for explicitly referenced CMakeLists.txt sources
Since commit v3.11.0-rc1~467^2 (VS,Xcode: Add CMakeLists.txt sources
without mutating targets, 2017-10-18) we do not add `CMakeLists.txt` to
target sources but instead generate references to them directly.  This
broke projects that explicitly specify their `CMakeLists.txt` file as a
source file because the explicit entry is no longer consolidated with
the generated one.

Teach the relevant generators to avoid duplicating `CMakeLists.txt`
source references and add test cases.

Fixes: #17828
2018-04-13 09:41:06 -04:00
Brad King
61607fffbb Merge branch 'features-msvc-2017' into release-3.11
Merge-request: !1903
2018-04-11 11:30:02 -04:00
Daniel Filipe
5f4272cc06 Features: Record for VS 2017 through 15.6
VS 15.3 has more features than we recorded in commit v3.7.0-rc1~156^2~2
(Features: Record features for VS 15 Preview 4, 2016-09-05).

While at it, update comments and simplify some cases.
2018-04-11 11:27:07 -04:00
Brad King
3c0fed488f Merge branch 'cpack-trace-nullptr' into release-3.11
Merge-request: !1950
2018-04-10 15:01:43 -04:00
Brad King
6f2701abf6 CPack: Fix crash on invalid generator name
In commit v3.11.0-rc1~68^2 (CPack: accept --trace and --trace-expand,
2017-12-09) a nullptr dereference was added that occurs when
`cpack -G NotAGenerator` is invoked.  Add the needed condition.

Fixes: #17900
2018-04-10 15:00:37 -04:00
Brad King
ef077c8ba4 Merge branch 'fix-crash-trace-exp-uninit-vars' into release-3.11
Merge-request: !1944
2018-04-09 12:01:10 -04:00
R2RT
aad360eb3d Fix crash with --trace-expand --warn-uninitialized together
Some code paths in `ExpandVariablesInString{New,Old}` were not checking
the `filename` parameter for a null pointer, but this can happen when
using the above flags together.  Add the checks and a test case.

Fixes: #17896
2018-04-09 11:59:07 -04:00
Brad King
1c85742701 Merge branch 'revert-CheckIncludeFile-required-libs' into release-3.11
Merge-request: !1931
2018-04-04 13:17:30 -04:00
Brad King
35109e718b Revert "CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES"
This reverts commit v3.11.0-rc1~108^2 (CheckIncludeFiles: Honor
CMAKE_REQUIRED_LIBRARIES, 2017-12-24).  The behavior change can
affect checks in existing projects that don't expect the behavior.
Introducing the behavior again will require a policy.

Fixes: #17874
Issue: #9514
2018-04-04 13:14:01 -04:00
Brad King
b1aa90f057 Merge branch 'autogen-protect-cmsys-calls' into release-3.11
Merge-request: !1918
2018-04-04 11:20:53 -04:00
Sebastian Holtermann
b11e2c80b1 Autogen: Print moc/uic/rcc output to stdout
The output of moc/uic/rcc used to be discarded unless
the program failed. This lets moc/uic/rcc print their
output to stdout even on success.

Closes #17860
2018-04-03 17:20:30 +02:00
Sebastian Holtermann
1d2c9d8c6d Autogen: Use std::istreambuf_iterator for file so string reading
This adds a dedicated mutex for file reading and writing to
cmQtAutoGenerator::FileSystem. The purpose of the change is
to avoid that long files reads block cmsys based path computations,
which are protected by an other mutex.
2018-04-03 17:20:30 +02:00
Sebastian Holtermann
ccc38fa509 Autogen: Protected calls to cmFilePathChecksum
Closes #17861
Closes #17862
2018-04-03 17:20:30 +02:00
Sebastian Holtermann
719b24c872 Autogen: Protected calls to cmQtAutoGen::SubDirPrefix 2018-04-03 17:20:30 +02:00