Commit Graph

25947 Commits

Author SHA1 Message Date
Brad King 26bffa6e74 Merge topic 'fix-OSX-bundle-rpaths-and-Qt5'
631fadea Help: Add notes for topic 'fix-OSX-bundle-rpaths-and-Qt5'
50e261dd OSX: Warn when attempting to change runtime paths on OS X 10.5
9b98fd52 cmake-gui: Make sure we bundle Qt5 Cocoa platform plugin
83a06bb4 BundleUtilities: Framework codesign Resources/Info.plist & Current
f7df82ac BundleUtilities: Resolve & replace @rpath placeholders
14bc686f GetPrerequisites: Make sure dyld placeholders are prefixes
6c313797 BundleUtilities: Use find on UNIX for fast executable lookup
2014-10-10 10:55:44 -04:00
Brad King 8bd81981ad Help: Add note about restoring pre-3.0 link libraries genex behavior 2014-10-10 10:48:05 -04:00
Brad King 631fadeae9 Help: Add notes for topic 'fix-OSX-bundle-rpaths-and-Qt5' 2014-10-10 10:23:52 -04:00
Clinton Stimpson 50e261ddb6 OSX: Warn when attempting to change runtime paths on OS X 10.5
Even though 10.5 supports @rpath, the support is not complete
enough for CMake.  For instance, install_name_tool doesn't support
adding and removing rpaths.

Also modifying BundleUtilities test to remove an undesirable cmake
generated runtime path.  The intent was to build with the install
rpath as is done with the other cases in this test.
2014-10-10 10:17:27 -04:00
Adam Strzelecki 9b98fd528d cmake-gui: Make sure we bundle Qt5 Cocoa platform plugin
Otherwise CMake.app bundle will not run when using Qt5.
2014-10-10 10:17:18 -04:00
Adam Strzelecki 83a06bb4ab BundleUtilities: Framework codesign Resources/Info.plist & Current
We need to ensure copied framework has proper layout with Resources/Info.plist
present next to versioned binary and Current symlink in Versions:

https://developer.apple.com/library/mac/technotes/tn2206

https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html

If Resources/ is not present we may try to copy Contents/Info.plist if present
to embedded Resources/Info.plist. This is a case of Qt5 that has
obsolete/invalid framework layout (see QTBUG-38511).
2014-10-10 10:17:04 -04:00
Adam Strzelecki f7df82acaa BundleUtilities: Resolve & replace @rpath placeholders
This is done by gathering LC_RPATH commands for main bundle executable and
using it for @rpath lookup in dependent frameworks.

All functions that need to carry rpaths to now take optional <rpaths> argument.

This enabled apps using @rpath to be bundled correctly, which will be necessary
for upcoming Qt 5.4 that will use @rpath for all frameworks.

Check that install_name_tool has -delete_rpath before using it.
Otherwise it will fail with Xcode 3.x on 10.5 which has no -delete_rpath
option for install_name_tool command, that was first introduced in 10.6
SDK, even that 10.5 supports LC_RPATH and @rpath.
2014-10-10 10:16:24 -04:00
Adam Strzelecki 14bc686fff GetPrerequisites: Make sure dyld placeholders are prefixes
Mac OS X dyld placeholders should be always prefixes, otherwise this can lead
to some undefined behavior.
2014-10-10 10:16:15 -04:00
Adam Strzelecki 6c31379741 BundleUtilities: Use find on UNIX for fast executable lookup
It makes whole executable process quicker on UNIX, especially for large bundles
containing many files, since using find narrows results to only files having
executable flags then all further tests follow.

Since find ... -perm +0111 is not clearly POSIX compliant and some Linux
versions refuse it, it is better to use longer but portable:

   find ... -perm \( -perm -0100 -o -perm -0010 -o -perm -0001 \)
2014-10-10 10:15:56 -04:00
Kitware Robot 5ab9aa62fe CMake Nightly Date Stamp 2014-10-10 00:01:09 -04:00
Brad King c0a4f59160 Merge topic 'FindThreads_overhaul'
b7e5c5a2 FindThreads: introduce THREADS_PREFER_PTHREAD_FLAG (#14767)
bcb0e387 FindThreads: introduce an imported target to link to
46368edd FindThreads: move checking of the -pthread compiler flag into a macro
2014-10-09 16:12:06 -04:00
Brad King 6b135a6c29 Merge topic 'doc-drop-dart'
b8aa0cdf Help: Replace 'Dart' with 'CDash' in ctest.1 manual
2014-10-09 16:12:04 -04:00
Brad King 4c02746372 Merge topic 'ninja-phony-rules-only-in-build-tree'
de8e534b Ninja: Limit custom command side-effects to build folder
2014-10-09 16:12:01 -04:00
Kitware Robot a358448d3e CMake Nightly Date Stamp 2014-10-09 00:01:08 -04:00
Curl Upstream 3fe5d9bff9 curl 7.38.0 (reduced)
Extract upstream curl using the following shell code.

url=git://github.com/bagder/curl.git &&
v=7.38.0 &&
r=202aa9f7 &&
paths="
  CMake/*
  CMakeLists.txt
  COPYING
  include/curl/*.h
  include/curl/curlbuild.h.cmake
  lib/*.c
  lib/*.h
  lib/CMakeLists.txt
  lib/Makefile.inc
  lib/curl_config.h.cmake
  lib/libcurl.rc
  lib/vtls/*.c
  lib/vtls/*.h
" &&
mkdir curl-$v-g$r-reduced &&
git clone $url curl-git &&
date=$(cd curl-git && git log -n 1 --format='%cd' $r) &&
(cd curl-git && git checkout $r &&
 git archive --format=tar $r -- $paths) |
(cd curl-$v-g$r-reduced && tar xv &&
 rm lib/config-*.h) &&
echo "g$r date: $date"
2014-10-08 15:53:25 -04:00
Curl Upstream f086cb372e curl 7.16.1 (reduced)
Extract upstream curl using the following shell code.

url=git://github.com/bagder/curl.git &&
v=7.16.1 &&
r=ef442d58 &&
paths="
  COPYING
  include/curl/*.h
  lib/*.c
  lib/*.h
" &&
mkdir curl-$v-g$r-reduced &&
git clone $url curl-git &&
date=$(cd curl-git && git log -n 1 --format='%cd' $r) &&
(cd curl-git && git checkout $r &&
 git archive --format=tar $r -- $paths) |
(cd curl-$v-g$r-reduced && tar xv &&
 rm lib/config-*.h) &&
echo "g$r date: $date"
2014-10-08 15:05:02 -04:00
Rolf Eike Beer b7e5c5a23a FindThreads: introduce THREADS_PREFER_PTHREAD_FLAG (#14767) 2014-10-08 17:57:34 +02:00
Timo Rothenpieler bcb0e3872b FindThreads: introduce an imported target to link to
This not only holds the library, but can also hold compiler flags needed, e.g.
the -pthread flag preferred by gcc on some platforms. There was no clean way
to get that compiler flag from the module until now.
2014-10-08 17:57:34 +02:00
Brad King b3cbb9e188 Merge topic 'FPHSA_exact_version'
ba907f7d FPHSA: fix when requested or found version is exactly 0
4f9bf446 FPHSA: when EXACT version match is requested only compare the components given
2014-10-08 10:48:14 -04:00
Brad King ec941fc04b Merge topic 'ctest-memcheck-sanitizers'
e0e75a72 Help: Add notes for topic 'ctest-memcheck-sanitizers'
7345a1f7 tests: Add a test for ctest_memcheck MemorySanitizer
0c6330da ctest_memcheck: Add support for MemorySanitizer msan
9ba8bf12 tests: add a test for ctest_memcheck UndefinedBehaviorSanitizer
816c100a ctest_memcheck: Add support for UndefinedBehaviorSanitizer ubsan
b67ef537 ctest_memcheck: Order sanitizer type code consistently
f48a2968 Tests: Organize CTestTestMemcheck inner test code
2014-10-08 10:48:12 -04:00
Brad King 26a8b64f7d Merge topic 'FindLATEX-cross-compile-ps2pdf14'
63262434 FindLATEX: Search for ps2pdf14 even on Windows (#15198)
2014-10-08 10:48:10 -04:00
Brad King b8aa0cdf9b Help: Replace 'Dart' with 'CDash' in ctest.1 manual
The modern dashboard server is CDash, not Dart, so update the manual
to talk about CTest as a CDash client.  Also drop documentation for
a Dart2-specific option.
2014-10-08 09:58:30 -04:00
Brad King de8e534b41 Ninja: Limit custom command side-effects to build folder
Revert commit 7243c951 (Ninja: Don't limit custom cmd side-effects to
build folder, 2014-06-27) because it causes every custom command
dependency in the source tree to get a phony rule.  For large projects
these rules get too big for Ninja to handle efficiently.  While the
original change addressed a valid concern, it did not seem to occur
regularly in practice because well-behaved projects generate their
side-effects only in the build tree.  Until we support explicit
specification of side-effects (CMake issue #14963), we will have to use
this as a middle-ground.
2014-10-08 08:50:15 -04:00
Kitware Robot 734580a8db CMake Nightly Date Stamp 2014-10-08 00:01:08 -04:00
Rolf Eike Beer ba907f7dc2 FPHSA: fix when requested or found version is exactly 0
Until now it was checked with "if(VAR)", which will be false in case "0" is the
content of the variable.
2014-10-07 23:14:46 +02:00
Rolf Eike Beer 4f9bf4468b FPHSA: when EXACT version match is requested only compare the components given
Given that you have a foobar that identifies itself as 1.2.3 from now on a

  find_package(foobar 1.2 EXACT)

will succeed, as 1.2.3 will now be considered as being 1.2. Until now this was
only the case for version 1.2.0.
2014-10-07 23:14:45 +02:00
Brad King e0e75a7201 Help: Add notes for topic 'ctest-memcheck-sanitizers'
Consolidate earlier sanitizer notes.
2014-10-07 15:27:34 -04:00
Bill Hoffman 7345a1f71d tests: Add a test for ctest_memcheck MemorySanitizer 2014-10-07 15:27:34 -04:00
Bill Hoffman 0c6330da38 ctest_memcheck: Add support for MemorySanitizer msan 2014-10-07 15:27:34 -04:00
Ben Boeckel 9ba8bf123c tests: add a test for ctest_memcheck UndefinedBehaviorSanitizer 2014-10-07 15:27:34 -04:00
Ben Boeckel 816c100ae2 ctest_memcheck: Add support for UndefinedBehaviorSanitizer ubsan
UBSan instruments a build and logs messages on any undefined behavior
instances.
2014-10-07 15:27:34 -04:00
Brad King b67ef537d4 ctest_memcheck: Order sanitizer type code consistently
Use alphabetic order everywhere we enumerate the sanitizer types.
2014-10-07 15:27:33 -04:00
Brad King f48a2968aa Tests: Organize CTestTestMemcheck inner test code
Update some whitespace and add comment dividers.
2014-10-07 15:27:33 -04:00
Brad King fa56eb56b9 Merge topic 'ctest-memcheck-sanitizers'
f25e431d tests: set sanitizer options properly
f0661bf3 tests: fix copy/paste from tsan -> asan comments
ca9cc25c ctest: add support for additional sanitizer options
0b9ffffc ctest: update documentation for CTEST_MEMORYCHECK_TYPE
2014-10-07 14:45:26 -04:00
Brad King 36c7f66206 Merge topic 'fix-ninja-rsp-var-duplication'
71da30ca Ninja: Fix variable duplication in RSP rules
2014-10-07 14:12:20 -04:00
Brad King 68abbdbd8a Merge topic 'FindBoost-CMP0054'
c9300464 FindBoost: Avoid if() quoted auto-dereference
2014-10-07 14:12:18 -04:00
Brad King 1ed0379f79 Merge topic 'cpack-ifw-updates'
ed9684a2 CPackIFW: Added support for multiple repositories
f9f74874 CPackIFW: Search algorithm update
2014-10-07 14:12:16 -04:00
Brad King a7a80da0a0 Merge topic 'encoding-fstream'
42e39bb3 Fix a few more places to use cmsys::[io]fstream instead of std::fstream.
2014-10-07 14:12:14 -04:00
Brad King 63262434bf FindLATEX: Search for ps2pdf14 even on Windows (#15198)
When cross-compiling from Linux to Windows the tool on the host
does not have a .bat extension.
2014-10-07 09:41:52 -04:00
Kitware Robot b8f194732f CMake Nightly Date Stamp 2014-10-07 00:01:08 -04:00
Nils Gladitz 71da30cae0 Ninja: Fix variable duplication in RSP rules
Stream clear() resets stream state but does not actually clear its content.
2014-10-06 22:29:09 +02:00
Rolf Eike Beer 46368eddfd FindThreads: move checking of the -pthread compiler flag into a macro
This allows a following commit to introduce a switch to prefer that check over
searching for the explicit library names without breaking backward
compatibility.
2014-10-06 21:30:09 +02:00
Ben Boeckel f25e431d6e tests: set sanitizer options properly
Prior to this, these options were just being set in the environment.
2014-10-06 15:28:45 -04:00
Ben Boeckel f0661bf318 tests: fix copy/paste from tsan -> asan comments 2014-10-06 15:28:45 -04:00
Brad King 3f91919322 Merge topic 'fix-cobertura-parsing'
1c838add cmParseCoberturaCoverage: Initialize CurFileName to empty string
2014-10-06 09:41:23 -04:00
Brad King c74d2ddfa4 Merge topic 'wix-fix-root-dir-prop'
fb009f00 CPackWiX: Work around RelativePath() returning an empty string for the root
2014-10-06 09:41:21 -04:00
Brad King b1531431dd Merge topic 'ninja-console-pool'
9f32a241 Ninja: Use 'console' pool for CMake re-run if possible (#14915)
2014-10-06 09:41:18 -04:00
Brad King e0fef85c7a Merge topic 'FindThreads-macro'
94a061d3 FindThreads: use a macro for the repetitive thread library checks
2014-10-06 09:41:16 -04:00
Nils Gladitz c930046410 FindBoost: Avoid if() quoted auto-dereference
When testing CMAKE_CXX_COMPILER[_ID] values with if(MATCHES) or
if(STREQUAL), do not explicitly dereference or quote the variable.
We want if() to auto-dereference the variable and not its value.
2014-10-06 09:40:41 -04:00
Kitware Robot f17989b32d CMake Nightly Date Stamp 2014-10-06 00:01:07 -04:00