Commit Graph

33081 Commits

Author SHA1 Message Date
Dan Kegel 9370b697e9 Re-order link line to place RPATH entries before libraries
Since we support adding arbitrary flags to the link line via
`target_link_libraries` the project/user may add their own RPATH flags
(typically for system library locations).  Re-order the link line to
place our generated RPATH entries before the libraries so that they also
come before flag-specified entries.  Otherwise our in-build-tree RPATH
entries may not be preferred by the dynamic loader and we could collide
with libraries in the system directories.

Closes: #16293
2016-09-12 10:51:18 -04:00
Matthew Woehlke 612d6f29f8 Tests: Refactor GenerateExportHeader test code
Refactor the library code used in the GenerateExportHeader test to use
an improved naming convention that more directly identifies what it
being tested, making use of namespaces to avoid possible symbol
collisions. This also eliminates duplicate cases such as `libshared()`
and `libshared_not_exported()` which had the same decoration, and adds
consistent pairings of <name>_EXPORT and <name>_DEPRECATED_EXPORT which
were missing previously. The data tests from the previous commit are
also added to `libstatic` and `libshared_and_static` for consistency.

Note that there are no exported members of exported classes, as these
are not allowed on Windows.
2016-09-12 10:29:20 -04:00
Matthew Woehlke ce76abb4c4 Tests: Add data symbols to GenerateExportHeader test
Add static data members and global variables to the GenerateExportHeader
shared library, testing that export decoration for these works in
addition to decoration of classes and free functions.
2016-09-12 10:28:59 -04:00
Matthew Woehlke 8f95b93b41 Tests: Add failure test for GenerateExportHeader
Modify notation of statements in the GenerateExportHeader test expected
to result in link errors. Modify script used to build the test to also
generate a suite of modified sources, each having exactly one of the
failing lines enabled, and to generate EXCLUDE_FROM_ALL executables for
the same. Modify RunCMake script used to drive the test to read the list
of such executables and try to build each of them, verifying that they
do in fact fail to build.

This will verify that the _NO_EXPORT macros are working as expected, and
will also catch errors like the one that commit 0cbaaf2d
(GenerateExportHeader: Fix add_compiler_export_flags regression,
2016-09-01) fixed.

When setting up the failure tests for GenerateExportHeader, check if the
compiler actually hides non-exported stuff.  If not, the failure tests
won't fail, and will cause the overall test to fail.  Since this
typically is only the case for very old compilers, simply skipping them
as opposed to trying to do something more fine grained seems reasonably
safe.
2016-09-12 10:27:45 -04:00
Brad King 03bae46865 Merge topic 'clang-tidy'
73128b82 cmDependsFortran: simplify boolean expression
8f324c7c cmSystemTools: simplify boolean expressions
5d3b5bef QCMakeCacheView: simplify boolean expression
ad42eb33 QCMakeCacheView: no else after return
2016-09-12 09:31:45 -04:00
Brad King b3b238c3cc Merge topic 'bzip2-imported-targets'
79eba4b7 Help: Add notes for topic 'bzip2-imported-targets'
069cac58 Tests: Add FindBZip2 unit tests
e9ce0503 FindBZip2: Add imported target
2016-09-12 09:31:41 -04:00
Brad King a3aaf0a181 Merge topic 'drop-cygwin-binary'
db915a37 Utilities/Release: Drop Cygwin binary
2016-09-12 09:31:39 -04:00
Brad King f27f6f8f3f Merge topic 'wix-feature-patch'
c0bccc51 CPackWIX: Enabled patching of WIX <Feature> tags
2016-09-12 09:31:35 -04:00
Brad King 58e56607c1 Merge topic 'vs-default-v100'
861f1b3d VS: Do not default to missing v100 64-bit toolset on VS 2010 Express
2016-09-12 09:31:32 -04:00
Brad King 71a70c0e6c Merge topic 'libuv-link-kvm'
c6d83a15 libuv: Link with kvm on NetBSD and OpenBSD
6a497bb0 libuv: Link with kvm on FreeBSD
2016-09-12 09:31:29 -04:00
Daniel Pfeifer 73128b823c cmDependsFortran: simplify boolean expression 2016-09-12 09:28:21 -04:00
Daniel Pfeifer 8f324c7cef cmSystemTools: simplify boolean expressions 2016-09-12 09:28:21 -04:00
Brad King db915a3785 Utilities/Release: Drop Cygwin binary
Cygwin has packaged CMake independently of upstream for a long time.
See its [cygport](https://github.com/cygwinports/cmake).
2016-09-12 09:22:50 -04:00
Kitware Robot 5088765a2c CMake Nightly Date Stamp 2016-09-12 00:01:04 -04:00
Kitware Robot 4e3166ae1a CMake Nightly Date Stamp 2016-09-11 00:01:06 -04:00
Kitware Robot d90432c335 CMake Nightly Date Stamp 2016-09-10 00:01:08 -04:00
Ruslan Baratov 4dd997da54 file(DOWNLOAD|UPLOAD): Warn on unexpected arguments
Emit warning message on unparsed argument instead of silently ignoring it.
Can't stop with the error message because it may break old code.
2016-09-09 23:19:39 +03:00
Brad King 79eba4b7ab Help: Add notes for topic 'bzip2-imported-targets' 2016-09-09 11:42:35 -04:00
Roger Leigh 069cac584f Tests: Add FindBZip2 unit tests 2016-09-09 11:42:35 -04:00
Roger Leigh e9ce050342 FindBZip2: Add imported target 2016-09-09 11:42:34 -04:00
Brad King d5e4cdc0f8 Merge topic 'GetPrerequisites-absolute-ucrt'
258b7b28 GetPrerequisites: Recognize absolute paths to UCRT system libraries
2016-09-09 11:32:38 -04:00
Brad King 2572b824d4 Merge topic 'cmGeneratorTarget-cleanup'
cc6b948e cmGeneratorTarget: factor out common part of AddSources commands
52052ef8 cmGeneratorTarget: use erase-unique instead of reinitialization
3b362230 cmGeneratorTarget: don't clear container in destructor
2016-09-09 11:18:10 -04:00
Brad King c40cbccf7d Merge topic 'parse_arguments_argv_n'
cb299acc cmake_parse_arguments: Add option to read arguments from ARGC/ARGV#
2016-09-09 11:18:07 -04:00
Brad King c580227173 Merge topic 'fortran-parser-keywords'
695f0d0d cmFortranParser: Parse keywords as lexical tokens
1619fb46 cmFortranParser: Simplify grammar by skipping unknown statements
2016-09-09 11:18:04 -04:00
Brad King 46cf4151c4 Merge topic 'fortran-scanbuild-fixes'
52b95d88 CTestCustom: Suppress scan-build warnings in flex-generated lexer
2016-09-09 11:18:01 -04:00
Brad King 7c05f1371c Merge topic 'update-kwiml'
f2c98e12 Merge branch 'upstream-KWIML' into update-kwiml
e83b96b7 KWIML 2016-09-08 (d564b3c7)
aa668280 kwiml: Update import script for new upstream URL
2016-09-09 11:17:58 -04:00
Brad King 188a42a72f Merge topic 'FindMatlab-regression-tests-print-on-error'
1031e5d9 FindMatlab: add verbosity to the nightly tests
2016-09-09 11:17:55 -04:00
Brad King c6d83a15d8 libuv: Link with kvm on NetBSD and OpenBSD
We include the `kvm.h` header on these platforms and call kvm APIs.
Link with the library to ensure they are available.
2016-09-09 11:11:40 -04:00
Roger Leigh 6a497bb0a3 libuv: Link with kvm on FreeBSD
Add it unconditionally.  It is present in FreeBSD 11, 10 and 9.
2016-09-09 11:07:46 -04:00
Brad King 861f1b3da6 VS: Do not default to missing v100 64-bit toolset on VS 2010 Express
Since commit 059c230d (VS: Explicitly default to v100 toolset in Visual
Studio 2010, 2016-07-21) the VS 2010 generator now correctly defaults to
the v100 toolset instead of no toolset.  However, this broke our logic
for defaulting to the `Windows7.1SDK` toolset for 64-bit builds on VS
2010 Express.  Fix the logic by ignoring the `v100` default in the case.
2016-09-09 10:17:23 -04:00
Michael Stürmer c0bccc51df CPackWIX: Enabled patching of WIX <Feature> tags 2016-09-09 13:03:57 +02:00
Kitware Robot d62a5dfc86 CMake Nightly Date Stamp 2016-09-09 00:01:05 -04:00
Daniel Pfeifer cc6b948e5e cmGeneratorTarget: factor out common part of AddSources commands 2016-09-08 23:47:16 +02:00
Daniel Pfeifer 52052ef88b cmGeneratorTarget: use erase-unique instead of reinitialization
Just to make it easier to find places where containers are cleared in
order to be recomputed.
2016-09-08 23:46:45 +02:00
Daniel Pfeifer 3b3622305b cmGeneratorTarget: don't clear container in destructor
It will be destroyed anyway.  This also makes it easier to search for
places where containers are atually cleared in order to be recomputed.
2016-09-08 23:46:18 +02:00
Daniel Pfeifer 5d3b5bef11 QCMakeCacheView: simplify boolean expression 2016-09-08 23:35:59 +02:00
Daniel Pfeifer ad42eb33b6 QCMakeCacheView: no else after return 2016-09-08 23:33:08 +02:00
Bill Hoffman cb299acc27 cmake_parse_arguments: Add option to read arguments from ARGC/ARGV#
The `ARGC`/`ARGV#` variables in function scope hold the original
arguments with no ;-list flattening.  Add a way for functions to
cleanly parse arguments that may contain `;`.  This also avoids
extra copying of the arguments.

Co-Author: Brad King <brad.king@kitware.com>
2016-09-08 11:33:46 -04:00
Bill Hoffman d5257063b0 Export: Virtualize file generation step helpers
Allow subclasses to override the actual content generation.
2016-09-08 10:37:33 -04:00
Bill Hoffman f81b9475f3 Export: Factor out file generation steps into helpers
Do not actually generate any content in the driving code paths.
Use helpers for that.
2016-09-08 10:37:31 -04:00
Brad King 258b7b2833 GetPrerequisites: Recognize absolute paths to UCRT system libraries
The matching expression added by commit v3.5.0-rc1~33^2
(GetPrerequisites: Define api-ms-win-* files as system libraries,
2016-01-19) did not account for absolute paths to the UCRT libraries.
We already recognize absolute paths to the MSVC runtime libraries.
Do this for UCRT libraries too.

Issue: #16240
2016-09-08 10:24:01 -04:00
Brad King f2c98e125f Merge branch 'upstream-KWIML' into update-kwiml
* upstream-KWIML:
  KWIML 2016-09-08 (d564b3c7)

Closes: #16290
2016-09-08 09:50:31 -04:00
KWIML Upstream e83b96b793 KWIML 2016-09-08 (d564b3c7)
Code extracted from:

    https://gitlab.kitware.com/utils/kwiml.git

at commit d564b3c71a6dcec9b1cd84afb498b14a69307780 (master).

Upstream Shortlog
-----------------

Brad King (1):
      d564b3c7 Update copyright year

Richard W.M. Jones (1):
      12f000d5 abi.h: Add RISC-V, a little-endian architecture.
2016-09-08 09:50:04 -04:00
Brad King aa6682802e kwiml: Update import script for new upstream URL 2016-09-08 09:49:39 -04:00
Brad King 52b95d8893 CTestCustom: Suppress scan-build warnings in flex-generated lexer 2016-09-08 09:43:33 -04:00
Brad King 695f0d0d3a cmFortranParser: Parse keywords as lexical tokens
Teach the lexer to match and return specific Fortran keywords as tokens.
Update the parser to use these instead of always using a WORD token and
then checking the text.  This avoids extra string comparisons and will
allow more grammar productions to be unambiguously added later for
additional Fortran statements.
2016-09-08 09:40:02 -04:00
Brad King 1619fb46a8 cmFortranParser: Simplify grammar by skipping unknown statements
Our Fortran grammar is a bare minimum to extract dependencies.
Other statement syntax can be ignored, so simply skip to the
end of unrecognized statements.  This allows some of our existing
productions to be dropped.
2016-09-08 09:40:02 -04:00
Brad King f506489d1e Merge topic 'fortran-depend-cleanup'
d28da906 cmFortranParser: Inject a newline at end-of-file when missing
8c65a501 cmFortranParser: Revise indentation style to match rest of CMake
f70c71c5 cmFortranLexer: Update to flex 2.6
e11cd31f Fortran: Warn when dependency scanning fails to parse a source file
2016-09-08 09:36:57 -04:00
Brad King 988b3806b6 Merge topic 'vs-15-generator'
bdc679a8 VS15: Add Visual Studio 15 generator
a8936656 VS: Update v140 flag tables from VS 15 MSBuild files
21346d3f Features: Record features for VS 15 Preview 4
2016-09-08 09:36:54 -04:00
Brad King 04657ee2f8 Merge topic 'install-export-root-prefix'
290e4ce8 install: Fix computed import prefix in export files when it is "/"
2016-09-08 09:36:51 -04:00