Commit Graph

25671 Commits

Author SHA1 Message Date
Stephen Kelly bb5905bb13 cmTarget: Don't allow relative paths in INTERFACE_SOURCES
Follow the pattern of checks that are made for INTERFACE_INCLUDE_DIRECTORIES.
Existence is already checked by cmSourceFile::GetFullPath.  Add a check
to disallow relative paths in source directories. Otherwise code such as

 target_sources(lib1 INTERFACE foo.cpp)

would fail if consumed by a target in a different directory.

Unlike the INTERFACE_INCLUDE_DIRECTORIES behavior, we don't care whether
the entry comes from an IMPORTED target or not.  In the include directories
case, the directory for a non-imported target might not exist yet but
might be created.  In the sources case, a file which does not yet
exist in the filesystem must be explicitly marked with the GENERATED
property.

Adjust existing tests and add a new test for the error.
2014-11-29 12:24:59 +01:00
Brad King d2f2a2e226 Merge branch 'C-features-Wundef' into release 2014-11-26 10:33:54 -05:00
Brad King e002f0605d Merge branch 'fix-WCDH-docs' into release 2014-11-25 10:10:50 -05:00
Brad King c66f697a8b Merge branch 'fix-GNU-CXX-dialect-versions' into release 2014-11-25 10:10:46 -05:00
Brad King f8099e1c37 Merge branch 'default-lang-dialect' into release 2014-11-25 10:07:34 -05:00
Stephen Kelly d0af0faefb WCDH: Make the header -Wundef safe for the C language.
The __STDC_VERSION__ macro may be defined or not depending on the
implementation dialect of C.  Test that it is defined before testing
its value.

The CXX tests do not need such a change because they define __cplusplus
in all dialects.
2014-11-25 14:44:21 +01:00
Stephen Kelly 0db3db41d4 WCDH: Don't imply that MSVC is supported by the module.
Remove the mention of it from the docs.
2014-11-23 10:12:49 +01:00
Stephen Kelly 36bb100e2b Fix the test for running the CxxDialog unit test.
The existing versions have been used since commit
v3.1.0-rc1~635^2~8 (cmTarget: Add CXX_STANDARD and CXX_EXTENSION
target properties., 2013-10-13), but further discussions since then
increased the initial minimum compiler versions this feature is
available for.
2014-11-20 22:10:25 +01:00
Stephen Kelly a3d0ae1758 Features: Fix the default C dialect for Clang and GNU.
Clang 3.4 uses C99 by default, and Clang 3.6 uses C11 by default:

 http://thread.gmane.org/gmane.comp.compilers.clang.devel/39379

GNU 4.9 uses C90 by default, and GNU 5.0 uses C11 by default:

 https://gcc.gnu.org/gcc-5/changes.html

Test that the default compiler settings result in the expected dialect
macros being defined for both C and CXX.  Remove the unused main.c
file from the CompileFeatures unit test.
2014-11-20 18:24:59 +01:00
Brad King 64678cbc0a Merge branch 'fix-openmp-fortran' into release 2014-11-20 09:00:33 -05:00
Nils Gladitz 7d633ebfa0 FindOpenMP: Use fixed form Fortran test program
This prevents the test program from failing when build as Fortran 77.

Suggested-by: Alin Marin Elena <alinm.elena@gmail.com>
2014-11-20 14:54:11 +01:00
Brad King b1e7fe9e8d Merge branch 'backport-fix-CMP0054-MSVC' into release 2014-11-20 08:53:47 -05:00
Fraser Hutchison 543c4304bb Avoid if() quoted auto-dereference when checking for "MSVC"
When testing CMAKE_<LANG>_COMPILER_ID values against "MSVC", do not
allow the definition of the "MSVC" variable to be expanded.
2014-11-19 16:22:56 -05:00
Brad King 5ee198d76e Merge branch 'FindJava-no-osx-stub' into release 2014-11-19 16:15:43 -05:00
Brad King dd378258f1 FindJava: Do not accept OS X stub 'java' as Java
OS X provides a stub 'java' to inform callers that Java is not present.
When checking the 'java -version' output, look for such a message and if
found pretend 'java' was not found.

Suggested-by: Sean McBride <sean@rogue-research.com>
2014-11-19 16:14:56 -05:00
Stephen Kelly c03c184be0 Features: Record C++11 dialect switch only for GNU 4.7 and later.
Previous versions of GNU are not currently supported by this
CMake feature.
2014-11-19 09:39:44 +01:00
Stephen Kelly 49e2b689a8 Features: Fix references to CXX compiler version in Clang-C.cmake. 2014-11-19 00:42:51 +01:00
Stephen Kelly 7565ab2cd1 Features: Test the CXX compiler only if it has features.
If using different C and CXX compilers, we might not have a
feature-full CXX compiler at this point.
2014-11-19 00:42:35 +01:00
Brad King bea609ac2a Merge branch 'vs-check-phone-store-tools' into release 2014-11-17 15:39:17 -05:00
Brad King 536baafb76 Merge branch 'doc-sphinx-cmake-fixup' into release 2014-11-17 15:39:09 -05:00
Brad King 5cda220548 Utilities/Sphinx: Add missing call to note_explicit_target
Sphinx calls document.note_explicit_target with any nodes.target() it
creates.  Add such a call when we create a document target in
CMakeTransform.
2014-11-17 15:37:31 -05:00
Brad King d4fdfaaef1 Merge branch 'doc-target_include_directories-fixup' into release 2014-11-17 15:16:35 -05:00
Brad King 1d22ee67aa Help: target_include_directories does not allow target names
Since commit v2.8.11~227^2~1 (Don't allow targets args in the new target
commands, 2013-01-29) the target_include_directories command does not
support target names on the right hand side, but that commit forgot to
remove it from the docs.  It was never released with such support.
Update the command documentation now.
2014-11-17 14:47:42 -05:00
Brad King 598a316154 Merge branch 'vs14-is-2015' into release 2014-11-17 09:44:52 -05:00
Brad King ec34b4b8f7 Merge branch 'kwsys-SharedForward-vs14' into release 2014-11-17 09:44:45 -05:00
Gilles Khouzam 689cd0d43e VS: Do not produce WinMD file for OBJECT libraries (#15228)
They are implemented as static libraries for the IDE so treat them the
same.
2014-11-17 08:57:14 -05:00
Brad King f5afb90d7c VS: Rename VS 14 generator to 'Visual Studio 14 2015'
Now that we know the year component of this VS version we
can add it to the generator name.  For convenience, map
the name without the year to the name with the year.
2014-11-14 14:23:36 -05:00
Brad King 480ed9cdec KWSys SharedForward: Hard-code the ldpath buffer size to below VS 14 limit
Visual Studio 14 (2015) complains if a static character array is
declared with more than 65535 elements.  This limit should be large
enough for SharedForward clients, so just hard-code that instead of
trying to compute a limit.
2014-11-14 13:56:58 -05:00
Gilles Khouzam b20a32ac73 VS: Improve error messages when compiler is not detected (#15228)
CMake requires both the Desktop SDK and the correct platform SDK
(Windows Phone or Windows Store) to be installed when targeting the
Windows mobile platforms.  Verify that the right platform components are
installed and give a more detailed error message when something is
wrong.
2014-11-14 09:13:27 -05:00
Brad King 6a16d9c7df Merge branch 'vs-nsight-tegra-version' into release 2014-11-13 14:07:10 -05:00
Dmitry Polyanitsa bb3c87f1da VS: Change Nsight Tegra 2.0 Project Revision Number from 8 to 9
A hotfix to Nsight Tegra 2.0 needed to increase the project number.
Teach CMake to generate the newer number for this version.
2014-11-13 14:05:12 -05:00
Brad King 0d047e81f3 Merge branch 'no-cmake-self-install-when-cross-compiling' into release 2014-11-13 10:22:06 -05:00
Brad King 4fba217dac Merge branch 'no-AppleClang-C-features' into release 2014-11-13 10:22:02 -05:00
Brad King 3d0addd965 Merge branch 'doc-install-SCRIPT-CODE-COMPONENT' into release 2014-11-13 10:21:53 -05:00
Brad King 15f55cca59 Do not use just-built CMake to install itself when cross-compiling (#15248)
The special case added by commit v2.4.0~3051 (When building CMake
itself, use the new cmake to install so that the current cmake can be
overwritten, 2004-06-09) does not make sense when cross-compiling.
2014-11-13 08:58:16 -05:00
Brad King 7361e8102a Help: Document COMPONENT option of install(SCRIPT/CODE) (#14956) 2014-11-13 08:41:56 -05:00
Stephen Kelly ded30405b2 Features: Don't record for AppleClang
Features are currently recorded accidentally for all versions of
AppleClang > 3.4 (I have no idea how that relates to upstream
Clang). Presumably that version has the features which are
accidentally recorded, but in the future features will be
recorded initially for only AppleClang >= 5.1, which would
appear as a feature regression.

Commit v3.1.0-rc1~635^2~11 (Don't load Clang-CXX from
AppleClang-CXX., 2013-11-11) ajusted the logic for the CXX
language.  Make a similar change for the C language.
2014-11-12 23:20:36 +01:00
Brad King 433c6d4689 CMake 3.1.0-rc2 2014-11-12 09:41:58 -05:00
Brad King 5d1fe90ed1 Merge branch 'emacs-mode-underscore-in-symbol' into release 2014-11-12 09:30:15 -05:00
Brad King cb80e51346 Help: Add 3.1 release note Emacs mode update 2014-11-12 09:29:25 -05:00
Brad King 5bed08a06d Merge branch 'kwsys-SystemInformation-AIX-_SC_AIX_REALMEM' into release 2014-11-12 09:17:13 -05:00
Brad King 0011abeab0 Merge branch 'doc-CMAKE_INSTALL_PREFIX-link-GNUInstallDirs' into release 2014-11-12 09:17:07 -05:00
Brad King b3bbb6550e Merge branch 'doc-index-xrefs' into release 2014-11-12 09:17:01 -05:00
Brad King 7ca9a459eb Utilities/Sphinx: Add index entries for cross-references
Add a document transform to insert index and target nodes just before
any CMake domain cross-reference node.  This will make references to
CMake domain objects appear in the index.  Also add a comment explaining
why it cannot be done in a result_nodes method of the CMakeXRefRole.
2014-11-12 09:10:52 -05:00
Syohei YOSHIDA 30f14aebee cmake-mode.el: syntax of '_' should be treated as symbol
Word commands, such as foward-word(M-f), backward-kill-word(M-backspace),
don't work well like other major-modes if syntax of '_' is treated as "word".

Tested-by: Guillaume Papin <guillaume.papin@parrot.com>
2014-11-12 08:40:14 -05:00
Brad King 00d4cdc935 Help: Link to GNUInstallDirs from CMAKE_INSTALL_PREFIX (#15246)
Add a note to the CMAKE_INSTALL_PREFIX documentation that refers readers
to the GNUInstallDirs module to make the latter easier to discover.
2014-11-12 08:32:01 -05:00
Brad King ec893d9a26 Merge branch 'fix_link-line-dedup_regression' into release 2014-11-11 12:46:27 -05:00
Ådne Hovda a234bcafd2 KWSys SystemInformation: Check for _SC_AIX_REALMEM before using it
Add a check for supported flag when querying for system memory on
AIX 5.1.
2014-11-11 09:16:46 -05:00
Daniele E. Domenichelli 4db31095e5 Fix link line order when shared libraries are de-duplicated
Since commit v3.1.0-rc1~227^2~1 (De-duplicate shared library targets in
generated link lines, 2014-07-30) we de-duplicate shared library targets
on the link line.  However, some toolchains will fail linking if an
executable is linking to a shared library that is not used directly and
a static library that depends on the shared one.  The linker may not
keep the reference to the shared library the first time and then the
symbols needed by the static library may not be found.

Fix this by reversing the direction of the for loop that removes the
duplicate shared libraries, in order to ensure that the last occurrence
of the library is left instead of the first one.

Extend Tests/Dependency with a case covering this behavior.  Create an
executable that links to a shared library and a static library but only
needs the shared library as a dependency of the static library.

Co-Author: Brad King <brad.king@kitware.com>
2014-11-10 14:46:22 -05:00
Brad King 41b4fb997b Merge branch 'ExternalProject-check-hash-before-download' into release 2014-11-10 11:29:21 -05:00