Commit Graph

14813 Commits

Author SHA1 Message Date
Brad King ab65862417 Clang: Add separate "AppleClang" compiler id
Apple distributes their own Clang build with their own version numbers
that differ from upstream Clang.  Use the __apple_build_version__ symbol
to identify the Apple Clang compiler and report the Apple Build Version
as the fourth version component in CMAKE_<LANG>_COMPILER_VERSION.  Add
Compiler/AppleClang-<lang> and Platform/Darwin-AppleClang-<lang> modules
that simply include the upstream equivalents.

Fix comparisons of CMAKE_<LANG>_COMPILER_ID to Clang in CMake's own
source and tests to account for AppleClang.
2013-10-07 20:12:46 -04:00
Stephen Kelly 904ff9fe59 export: Add policy CMP0024 to disallow include() of export files
Currently, export() is executed at configure-time.

One problem with this is that certain exported properties like
the link interface may not be complete at the point the export() is
encountered leading to an incorrect or incomplete exported
representation. Additionally, the generated IMPORTED_LOCATION
property may even be incorrect if commands following the export()
have an effect on it.

Another problem is that it requires the C++ implementation of cmake
to be capable of computing the exported information at configure time.
This is a limitation on the cleanup and maintenance of the code. At
some point in the future, this limitation will be dropped and more
implementation will be moved from cmTarget to cmGeneratorTarget.
2013-10-07 19:57:06 -04:00
Brad King d4134352ab Begin post-2.8.12 development 2013-10-07 15:24:20 -04:00
Brad King ffff99c58e CMake 2.8.12 2013-10-07 08:28:26 -04:00
Brad King 431eaf3783 Merge branch 'release' 2013-10-07 08:26:01 -04:00
Brad King c515dc5748 Merge topic 'fix-install-include-dirs-processing'
6f98f4a Genex: Fix processing multiple include directories for relative paths
2013-10-07 08:26:46 -04:00
Stephen Kelly 6f98f4ac92 Genex: Fix processing multiple include directories for relative paths
Re-insert the semicolon which was removed during splitting.

Commit d777b8e7 (Genex: Allow relative paths in INSTALL_INTERFACE.,
2013-07-25) introduced the prefixItems method to allow relative paths
in the argument of the INSTALL_INTERFACE expression. That method was
buggy in that it did not re-introduce the semicolon separator in
the result.

This bug also affects paths which are already absolute in user code.
2013-10-07 08:17:12 -04:00
Kitware Robot d85b06602a CMake Nightly Date Stamp 2013-10-07 00:01:10 -04:00
Kitware Robot 5b98d09e80 CMake Nightly Date Stamp 2013-10-06 00:01:10 -04:00
Kitware Robot dc92741d03 CMake Nightly Date Stamp 2013-10-05 00:01:06 -04:00
Kitware Robot e20edcdb3d CMake Nightly Date Stamp 2013-10-04 00:01:07 -04:00
Brad King e27523a834 Merge topic 'xcode-5'
a3194ff Xcode: Fix OBJECT library support for Xcode 5 (#14254)
dff8d11 Xcode: Drop XCODE_DEPEND_HELPER for Xcode >= 5
1180322 Xcode: Teach Tests/BuildDepends to allow LINK_DEPENDS_NO_SHARED failure
765b46d Xcode: Fix test architecture selection for Xcode >= 5
2013-10-03 08:17:43 -04:00
Kitware Robot a9a48ff9f4 CMake Nightly Date Stamp 2013-10-03 00:01:05 -04:00
Brad King a3194ff4a7 Xcode: Fix OBJECT library support for Xcode 5 (#14254)
Xcode 2.1 through 4 supported $(CURRENT_ARCH) in a PBXFileReference
'path' value used in the "Link Binary with Libraries" build phase.
CMake uses this to reference object file locations on link lines to
bring in OBJECT library content.  However, Xcode 5 now evaluates the
$(CURRENT_ARCH) reference in this context as "undefined_arch" so the
wrong path is given to the linker.  There seems to be no alternative way
to produce an architecture-specific value in a PBXFileReference.

Fortunately Xcode 5 now also handles link dependencies for paths linked
through OTHER_LDFLAGS.  For Xcode >= 5, move the OBJECT library object
file references from the link build phase to OTHER_LDFLAGS.  We can
still show the object files in the source group listing in either case.
2013-10-02 13:03:21 -04:00
Brad King dff8d113b4 Xcode: Drop XCODE_DEPEND_HELPER for Xcode >= 5
Xcode 5.0 now computes dependencies from files linked through
OTHER_LDFLAGS, so we no longer need the XCODE_DEPEND_HELPER hack to
re-link dependents when targets change.
2013-10-02 12:49:09 -04:00
Kitware Robot c0133a58e8 CMake Nightly Date Stamp 2013-10-02 00:01:07 -04:00
Brad King c33a38fe22 CMake 2.8.12-rc4 2013-10-01 08:05:44 -04:00
Brad King e02e56c4a6 Merge topic 'fix-duplicate-custom-commands'
dccd494 Use first custom command for the same output (#14446)
2013-10-01 08:05:17 -04:00
Brad King 204a54774c Merge branch 'release' 2013-10-01 08:03:41 -04:00
Kitware Robot fa97f43c81 CMake Nightly Date Stamp 2013-10-01 00:01:06 -04:00
Brad King dccd4949c0 Use first custom command for the same output (#14446)
In buggy code like

 add_custom_command(
   OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/out.h
   MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/out.h.in
   ...)
 add_custom_command(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/out.h
   ...)

that has more than one rule to generate the same output CMake has always
used the first rule.  However, since commit 2268c41a (Optimize custom
command full-path dependency lookup, 2013-08-06) we update the map from
output to cmSourceFile for every rule generating an output, effectively
keeping the last command instead of the first.

Fix this regression by checking for each map update if the output
already has an entry.  If so, keep only the original entry.  The VS 8
generator triggers this with a special case for generate.stamp rules
that differ between ZERO_CHECK and normal targets, so do not warn for
now.  Leave a TODO comment for warning in the future.
2013-09-30 15:03:00 -04:00
Kitware Robot 6a3958b374 CMake Nightly Date Stamp 2013-09-30 00:01:04 -04:00
Kitware Robot 6f74212360 CMake Nightly Date Stamp 2013-09-29 00:01:07 -04:00
Kitware Robot 1bf010ae98 CMake Nightly Date Stamp 2013-09-28 00:01:10 -04:00
Kitware Robot 6ed8504ea5 CMake Nightly Date Stamp 2013-09-27 00:01:08 -04:00
Kitware Robot b89cedd112 CMake Nightly Date Stamp 2013-09-26 00:01:16 -04:00
Kitware Robot 5f8eefa301 CMake Nightly Date Stamp 2013-09-25 00:01:11 -04:00
Kitware Robot e5538f323e CMake Nightly Date Stamp 2013-09-24 00:01:07 -04:00
Kitware Robot 475635ec0f CMake Nightly Date Stamp 2013-09-23 00:01:05 -04:00
Kitware Robot fe5e193020 CMake Nightly Date Stamp 2013-09-22 00:01:06 -04:00
Kitware Robot ee6b7a8a18 CMake Nightly Date Stamp 2013-09-21 00:01:05 -04:00
Kitware Robot 45b182180c CMake Nightly Date Stamp 2013-09-20 00:01:10 -04:00
Kitware Robot 5e2b499485 CMake Nightly Date Stamp 2013-09-19 00:01:05 -04:00
Kitware Robot 9bcf6adc38 CMake Nightly Date Stamp 2013-09-18 00:01:06 -04:00
Kitware Robot abfd574d05 CMake Nightly Date Stamp 2013-09-17 00:01:06 -04:00
Brad King 237aaafe80 Merge topic 'fix-genex-preprocessing-incomplete'
70089d0 genex: Fix preprocessing with incomplete content (#14410).
2013-09-16 08:55:21 -04:00
Kitware Robot c1122e1ecb CMake Nightly Date Stamp 2013-09-16 00:01:06 -04:00
Kitware Robot 3cc8a78403 CMake Nightly Date Stamp 2013-09-15 00:01:05 -04:00
Kitware Robot 396dfafa59 CMake Nightly Date Stamp 2013-09-14 00:01:07 -04:00
Stephen Kelly 70089d0769 genex: Fix preprocessing with incomplete content (#14410).
Similar incomplete generator expressions are already tested
in the GeneratorExpression unit test, but those are executed
with add_custom_target. The generator expressions in the include
directories are run through the preprocessor, whereas the ones
run through add_custom_target are not.
2013-09-13 18:21:37 +02:00
Brad King b434b0510a Merge topic 'print-CMP0022-content-conflict'
271bf10 Fix CMP0022 warning when no old-style property is set
2013-09-13 11:37:53 -04:00
Stephen Kelly 271bf10263 Fix CMP0022 warning when no old-style property is set
The string could be null at this point.
2013-09-13 11:34:08 -04:00
Kitware Robot 1fef29e4c6 CMake Nightly Date Stamp 2013-09-13 00:01:06 -04:00
Brad King 4c4bafdeab Merge topic 'print-CMP0022-content-conflict'
81d2793 Add differing target property content to policy CMP0022 warning
2013-09-12 08:46:44 -04:00
Brad King 00e44b6f0d Merge topic 'vs-intel-version'
cd90a0e VS: Future-proof Intel project format selection
2013-09-12 08:46:30 -04:00
Kitware Robot 85e35a3aed CMake Nightly Date Stamp 2013-09-12 00:01:09 -04:00
Stephen Kelly 81d2793e92 Add differing target property content to policy CMP0022 warning
List the contents of the INTERFACE_LINK_LIBRARIES and the old-style
property.
2013-09-11 22:28:32 +02:00
Kitware Robot 7c7cdf7073 CMake Nightly Date Stamp 2013-09-11 00:01:05 -04:00
Brad King cd90a0eadd VS: Future-proof Intel project format selection
The version of Intel Fortran that actually uses 9.10 as a project format
is very old.  Default to the latest format version (11.0) and use the
older format only when known to be necessary.

Suggested-by: Dick Munroe <munroe@csworks.com>
2013-09-10 13:44:10 -04:00
Kitware Robot b2ce2f5e48 CMake Nightly Date Stamp 2013-09-10 00:01:10 -04:00