Commit Graph

37656 Commits

Author SHA1 Message Date
Brad King
27a73f1613 cmake-gui: Add build option to use Qt5 windows plugin statically
This will enable builds against a static Qt5 on Windows.
2017-11-13 09:54:49 -05:00
Brad King
78f5d571e4 CMake 3.10.0-rc5 2017-11-10 10:46:29 -05:00
Brad King
98a78f3450 Merge branch 'windows-mt-update-quiet' into release-3.10
Merge-request: !1470
Merge-request: !1473
2017-11-10 10:42:31 -05:00
Brad King
2201ecec44 Windows: Do not report manifest tool update notification as failure
A diagnostic message added in commit v3.10.0-rc1~59^2 (Windows: Improve
link-time error messages when rc or mt fail, 2017-09-22) incorrectly
reports the `mt /notify_update` special return code as a failure.
Fix the logic to consider the special return codes as success.

Fixes: #17444
2017-11-10 10:41:50 -05:00
Brad King
fa5090b441 Merge branch 'doxygen_dot' into release-3.10
Merge-request: !1472
2017-11-10 10:34:34 -05:00
André Apitzsch
9cab8570fa FindDoxygen: Fix setting of HAVE_DOT in non-backward-compat mode
`DOXYGEN_DOT_FOUND` is only set if `_Doxygen_keep_backward_compat` is
used (when no components are requested), so use `Doxygen_dot_FOUND`
directly.  Preserve the "YES" or "NO" value used previously.
2017-11-10 08:49:37 -05:00
Brad King
1f15324824 Merge branch 'FindOpenGL-no-glvnd-for-GL' into release-3.10
Merge-request: !1466
2017-11-09 13:13:54 -05:00
Brad King
e6b209c870 FindOpenGL: Default to non-GLVND libraries for legacy GL
Projects using `OPENGL_LIBRARIES` or `OpenGL::GL` expect legacy GL.
Although GLVND OpenGL+GLX provides legacy GL interfaces, using those
library files may conflict with legacy GL library files used by
dependencies (or dependents) of such projects.  Therefore we should
not yet use OpenGL+GLX when a legacy GL library is available.

If `OPENGL_gl_LIBRARY` is set then use it as the legacy GL library.
If it is *not* set then fall back to using GLVND OpenGL+GLX to provide
legacy GL interfaces.  This will allow users to build projects using
GLVND even if they have not been ported.

Fixes: #17437
2017-11-09 09:47:12 -05:00
Brad King
24ca336981 Merge branch 'FindHDF5-c-version' into release-3.10
Merge-request: !1465
2017-11-08 09:39:05 -05:00
Axel Huebl
a6abb6c8b6 FindHDF5: Fix H5_VERSION on Patch in C
Fix a typo from commit v3.6.0-rc1~85^2 (HDF5: Refactor the use of
compiler wrappers, 2016-04-04) that accidentally used the HDF5 C++
version (which could be empty) while detecting the C patch version.
The detection failed for patch releases, such as `1.10.0-patch1`
becoming `.1` instead of `1.10.0.1`.
2017-11-08 09:35:45 -05:00
Brad King
ddf485511b Merge branch 'implicit-lib-gcceh' into release-3.10
Merge-request: !1460
2017-11-08 08:12:08 -05:00
Christian Pfeiffer
41aacca7fb Restore exclusion of "gcc_eh" from implicit link libraries
Since commit v3.9.0-rc1~148^2 (Do not assume GCC libs are linked by all
compilers, 2017-05-05) we no longer filter out all `gcc*` implicit link
libraries.  This allows mixing of gcc and non-gcc compilers across
languages.  However, this caused a subtle problem with how GCC makes
exception handling symbols available to linked binaries.

GCC (at least on MinGW) provides two different libraries with exception
handling symbols:

* gcc_s: A shared library with -fvisibility=default, used by -shared-libgcc.
* gcc_eh: A static library with -fvisibility=hidden, used by -static-libgcc.

The C compiler (on MinGW) defaults to -static-libgcc and uses gcc_eh.
The C++ compiler defaults to -shared-libgcc and uses gcc_s when linking
shared libraries and executables so that exceptions can propagate across
shared libraries [1].  When linking a mixed-language binary, the C++
compiler should be used along with its choice of gcc_s.  In this case
gcc_eh should not be added even though the C compiler implies it because
gcc_s supersedes it.

Since the above-mentioned change, CMake is adding gcc_eh to C++ link
lines that also contain C code on MinGW.  This causes both gcc_s and
gcc_eh to be used, which is incorrect.  We can fix this simply by
excluding gcc_eh from the C compiler's implicit link libraries.

[1] https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Link-Options.html#Link-Options

Fixes: #17436
2017-11-08 08:10:52 -05:00
Brad King
575250b6c4 Merge branch 'FindOpenGL-clarify-libraries' into release-3.10
Merge-request: !1459
2017-11-07 09:35:04 -05:00
Brad King
f44fb2dd4c FindOpenGL: Clarify logic constructing OPENGL_LIBRARIES
Our comment says the logic matches that for OpenGL::GL.  Structure
the logic the same way to make this clearer.

Issue: #17437
2017-11-07 09:33:43 -05:00
Brad King
9a0d3e2ed6 Merge branch 'csharp-version-english' into release-3.10
Merge-request: !1449
2017-11-07 08:23:36 -05:00
Yoshinori Tahara
04937db103 CSharp: Fix compiler version detection in non-English languages
When we run `csc.exe /help` we look for "Version" in the output.
Explicitly ask for the output in English.

Reported-by: guttally@users.noreply.github.com
2017-11-07 08:23:16 -05:00
Brad King
6f80b10c83 Merge branch 'irsl-win2018' into release-3.10
Merge-request: !1451
2017-11-06 14:11:39 -05:00
Christian Pfeiffer
f6994f436c IRSL: Add support for the 2018 release on Windows.
Fixes: #17421
2017-11-06 14:10:45 -05:00
Brad King
45da558742 CMake 3.10.0-rc4 2017-11-01 08:26:04 -04:00
Brad King
8d1341f4ff Merge branch 'mingw-clang-c-compile-features' into release-3.10
Merge-request: !1435
2017-11-01 07:39:02 -04:00
Brad King
f86879a04c Record C compile features flags for MinGW Clang on Windows
This was done for C++ by commit v3.5.0-rc1~69^2 (Record compile features
for MinGW Clang on Windows, 2016-01-11).  Make the same change for C.
The `UNIX` condition on Clang C compiler features was already dropped by
refactoring in commit v3.9.0-rc1~17^2~4 (Compilers: Port to use default
cmake_record_lang_compile_features macros, 2017-05-10).

Our documentation already claims support for this combination.  This
was simply an oversight when support was added for MinGW Clang C++.

Issue: #15897
Issue: #15943
2017-11-01 07:28:38 -04:00
Brad King
1df31aa92a Merge branch 'autogen-moc-predefs-no-moc-options' into release-3.10
Merge-request: !1432
2017-10-31 10:18:14 -04:00
Sebastian Holtermann
d3caf941e4 Autogen: Tests: Set AUTOMOC_MOC_OPTIONS in a simple test 2017-10-31 14:55:49 +01:00
Sebastian Holtermann
96d20a4de3 Autogen: Don't use AUTOMOC_MOC_OPTIONS in moc-predefs command
Closes #17418
2017-10-31 14:20:24 +01:00
Brad King
f49b6871e9 Merge branch 'autogen-change-rcc-config-suffix' into release-3.10
Merge-request: !1425
2017-10-30 13:58:55 -04:00
Sebastian Holtermann
bda0875ac3 Autogen: Make rcc output file suffix static (instead of pseudo-random) 2017-10-30 16:30:46 +01:00
Brad King
469ac58925 Merge branch 'autogen-qrc-file-name' into release-3.10
Merge-request: !1422
2017-10-30 08:57:38 -04:00
Brad King
da00080ed4 Merge branch 'cpack-rpm-dist-test-fix' into release-3.10
Merge-request: !1424
2017-10-30 08:50:21 -04:00
Domen Vrankar
9ce00caee3 CPack/RPM: DIST-MONOLITHIC-type subtest fix
Test was failing in case dist macro contained
a + symbol which is valid but must be escaped
for using the string as a regex.

Fixes #17328
2017-10-30 08:48:46 -04:00
Sebastian Holtermann
a8bf0b2b37 Autogen: RCC: Append checksum suffix to wrapped file name
Closes #17404
2017-10-29 03:28:20 +01:00
Brad King
0504fc8d84 Merge branch 'backport-fix-co-compile' into release-3.10
Merge-request: !1418
2017-10-27 09:41:25 -04:00
Brad King
dc4d2021e1 Merge branch 'autogen-static-library-cycles' into release-3.10
Merge-request: !1408
2017-10-27 09:41:11 -04:00
Sebastian Holtermann
3a4db8617e Autogen: Tests: Add test for STATIC_LIBRARY cycles 2017-10-27 09:37:15 -04:00
Sebastian Holtermann
798e4f2fad Autogen: Don't add STATIC_LIBRARY cycle targets to the _autogen dependencies
When a STATIC_LIBRARY cycle is detected we don't add any STATIC_LIBRARY target
from the cycle to the `_autogen` target dependencies.

Closes #17389
2017-10-27 09:37:15 -04:00
Brad King
992962c76d cmcmd: Restore support for running multiple lint tools
Refactoring in commit v3.10.0-rc1~115^2 (Clean up iwyu code to not be
one big if statement, 2017-08-28) incorrectly changed the logic to run
only one lint tool at a time.  Restore support for running all tools
specified on the command-line.
2017-10-27 09:26:50 -04:00
Brad King
a5197eeac7 cmcmd: Convert lint handlers to file-static functions
These do not need to be declared in the header.
2017-10-27 08:36:28 -04:00
Brad King
1c075ffd60 cmcmd: Rename loop iteration variable for clarity 2017-10-27 08:36:28 -04:00
Brad King
f01576012f Merge branch 'cmp0040-wording' into release-3.10
Merge-request: !1415
2017-10-26 09:48:28 -04:00
Brad King
a1b1f1a282 CMP0040: Clarify policy warning to match documentation
In commit v3.5.0-rc1~8^2~2 (Help: Clarify policy `CMP0040`
documentation, 2016-01-28) the documentation was clarified to indicate
that the target must be defined in the current directory.  Do the same
for the text of the policy warning itself.

Fixes: #17399
2017-10-26 09:47:29 -04:00
Brad King
a720131006 Merge branch 'clang-cl-TP' into release-3.10
Merge-request: !1407
2017-10-25 07:39:12 -04:00
Brad King
7077a554f1 Clang: Use -TP flag for C++ sources with clang-cl
We do this for `cl`, so we should do it for `clang-cl`.

Fixes: #17394
2017-10-25 07:36:10 -04:00
Brad King
b305e81b3e Merge branch 'omp-oacc-werror-return-type' into release-3.10
Merge-request: !1406
2017-10-24 10:56:36 -04:00
Christian Pfeiffer
15da0ba3a2 Find{OpenMP,OpenACC}: Fix detection with -Werror=return-type
Explicitly return a value from `main` in our test sources.

Fixes: #17391
2017-10-24 10:55:06 -04:00
Brad King
143b2e7b21 Merge branch 'findmpi-core-count' into release-3.10
Merge-request: !1405
2017-10-24 10:41:44 -04:00
Christian Pfeiffer
1610f757ac FindMPI: Use physical cores for MPIEXEC_MAX_NUMPROCS
Since commit v3.9.0-rc1~224^2~1 (FindMPI: MPIEXEC handling improvements,
2017-04-21) the `ProcessorCount` module is being used to initialize
`MPIEXEC_MAX_NUMPROCS`.  However, this leads to the logical cores being
counted rather than the physical ones, and some MPI implementations like
OpenMPI will error if mpiexec is called with that number.  Switch it to
the number of physical cores using `cmake_host_system_information`.

This ensures that if `MPIEXEC_MAX_NUMPROCS` is being used to set up MPI
tests with CTest or similar that the tests won't spuriously fail due to
OpenMPI refusing to start the application.
2017-10-24 10:41:02 -04:00
Brad King
d9430d1739 Merge branch 'FindOpenCL-more-versions' into release-3.10
Merge-request: !1398
2017-10-23 11:40:34 -04:00
Henry Schreiner
55f7930f0e FindOpenCL: Add detection of OpenCL 2.1 and 2.2 2017-10-23 11:39:53 -04:00
Brad King
0f016fae3e Merge branch 'help_parse_arguments' into release-3.10
Merge-request: !1397
2017-10-23 10:35:31 -04:00
Brad King
3d35c3d1a3 Merge branch 'gnuid-cmp54-fix' into release-3.10
Merge-request: !1400
2017-10-23 09:03:10 -04:00
Christian Pfeiffer
a8be8b1b54 GNUInstallDirs: Enable CMP0054
Fixes: #17381
2017-10-23 09:02:54 -04:00