Commit Graph

5484 Commits

Author SHA1 Message Date
Daniele E. Domenichelli f598f1aa83 ExternalProject: Add ExternalProject_Add_StepDependencies function
The ExternalProject_Add_StepDependencies function add some dependencies
for some external project step.

The syntax is:
 ExternalProject_Add_Step_Dependencies(<name> <step> [target1 [target2 [...]]])

This function takes care to set both target and file level dependencies,
and will ensure that parallel builds will not break.

It should be used instead of add_dependencies() when adding a dependency
for some of the step targets generated by ExternalProject. See also:
http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/8680/focus=8926
2014-11-03 16:15:14 +01:00
Daniele E. Domenichelli 4ae133e09c ExternalProject: Add independent step targets
When adding step targets using ExternalProject_Add_StepTargets, the
STEP_TARGETS argument or the EP_STEP_TARGETS property, ExternalProject
sets all the dependencies for the main project to that target.  Due to
this, the update target cannot be used without downloading and building
all the dependencies.

In order to be able to add step targets that do not depend on other
external projects, this patch adds:

* An optional "NO_DEPENDS" argument to the
  ExternalProject_Add_StepTargets function. If this argument is set,
  then no dependencies are set for the target (file dependencies will
  still be set).

* A new argument INDEPENDENT_STEP_TARGETS to the ExternalProject_Add
  function and a new directory property EP_INDEPENDENT_STEP_TARGETS that
  behave like STEP_TARGETS and EP_STEP_TARGETS, but cause the
  ExternalProject_Add_StepTargets to be called with the NO_DEPENDS
  argument.
2014-11-03 16:15:14 +01:00
Brad King 1ee161cf26 Merge branch 'watcom-drop-symfile-option' into release 2014-11-03 09:36:25 -05:00
Brad King a72ff020db Merge branch 'fix-configure_file-COPYONLY' into release 2014-11-03 09:35:34 -05:00
Christian Manning eaf6f67f67 Code Blocks/Eclipse: Add -std= flag matching.
When -std=x is specified in CMAKE_CXX_FLAGS this passes it along.
2014-11-03 09:19:18 -05:00
Christian Manning 45a25d63ba Code Blocks/Eclipse: Use non-default stdlib includes when specified.
When -stdlib=x is specified in CMAKE_CXX_FLAGS this passes it along so
that the correct include dirs are detected.
2014-11-03 09:18:44 -05:00
Brad King 6aa2d47737 Merge topic 'fix-configure_file-COPYONLY'
1531df2b configure_file: Warn about unknown arguments
4abbb140 Qt4: Fix configure_file call to use COPYONLY, not COPY_ONLY
bd7ba8e2 KWSys: Fix configure_file call to use COPYONLY, not COPY_ONLY
e9282782 Help: Fix configure_file call to use COPYONLY, not COPY_ONLY
2014-11-03 09:08:35 -05:00
J Decker 6b63942e45 Watcom: Drop symfile linker option
Cleanup of Windows-wcl386.cmake in commit v3.1.0-rc1~693^2 (Watcom:
Cleanup Windows-wcl386 configuration, 2014-04-01) also introduced use of
the 'symfile' link option but did not mention it in the commit message.

There is no way to set the symbol file name of a target, so it is better
to revert that change.  It is easy to run 'wstrip *' if the symbols need
to be stripped, but it is very difficult to get the right names for the
.sym files to install with debug/rel_with_deb_info configurations.
2014-11-03 08:46:48 -05:00
Brad King 4abbb1400d Qt4: Fix configure_file call to use COPYONLY, not COPY_ONLY 2014-10-31 13:20:19 -04:00
Brad King 0b8db9ced1 Merge topic 'ExternalProject_CMAKE_CACHE_DEFAULT_ARGS'
609037f4 ExternalProject: Add unit tests for CMAKE_CACHE_DEFAULT_ARGS
98cdb658 ExternalProject: Add CMAKE_CACHE_DEFAULT_ARGS arguments
36cf8a1e Tests/Tutorial: Fix when USE_MYMATH is OFF
2014-10-31 11:35:07 -04:00
Brad King 14a983cce6 Merge topic 'CheckStructHasMember-avoid-breakage-on-Wall'
8d6ba358 CheckStructHasMember: Avoid clang -Wall breakage (#15203)
2014-10-31 11:35:04 -04:00
Daniele E. Domenichelli 98cdb658e4 ExternalProject: Add CMAKE_CACHE_DEFAULT_ARGS arguments
This argument allows to set default arguments that are written in the
initial cache file, but that are not forced, and therefore allows the
user to change these values later (CMAKE_ARGS and CMAKE_CACHE_ARGS
always overwrite the values).

Also add some documentation to explain the differences between these 3
arguments.

Extend ExternalProjectLocal test to cover CMAKE_CACHE_DEFAULT_ARGS.
2014-10-31 11:34:04 -04:00
Peter Wu 8d6ba35827 CheckStructHasMember: Avoid clang -Wall breakage (#15203)
With CMAKE_C_COMPILER=clang and CMAKE_C_FLAGS='-Wall -Werror', this test
breaks with -Werror,-Wuninitialized.  Fix this by getting rid of the
temporary variable.
2014-10-30 14:16:06 -04:00
Brad King f2746f2ebe Merge topic 'dev/alternate-generator-binaries'
f04e0a2b ninja: Find alternate Ninja-compatible binaries
2014-10-30 14:11:59 -04:00
Brad King 89fd4b82d1 Merge topic 'cpack-bundle-codesign'
bd3fbf36 CPack: Add support for code signing of bundles on MacOS
2014-10-30 14:11:50 -04:00
Brad King 1e48ea7ab8 Merge branch 'FindCurses-include-CheckLibraryExists' into release 2014-10-29 15:23:57 -04:00
Ben Boeckel f04e0a2b17 ninja: Find alternate Ninja-compatible binaries
On Red Hat distros, Ninja is /usr/bin/ninja-build because /usr/bin/ninja
is an IRC bot.
2014-10-29 13:03:43 -04:00
Brad King 3942cf68b2 Merge topic 'ExternalProject-format-docs'
d9c2c17b ExternalProject: Use explicit markup and definition lists in docs
98936ae3 ExternalProject: Convert docs to a bracket comment
2014-10-29 11:31:13 -04:00
Brad King 0d6cdce5b5 Merge topic 'FindCurses-include-CheckLibraryExists'
f11f9579 FindCurses: Include CheckLibraryExists before using it (#15220)
2014-10-29 11:31:08 -04:00
André Klitzing bd3fbf36b4 CPack: Add support for code signing of bundles on MacOS 2014-10-28 12:20:05 -06:00
Brad King d9c2c17b29 ExternalProject: Use explicit markup and definition lists in docs
Convert ExternalProject module documentation to use explicit markup
blocks for each command.  Enumerate command options with definition
lists instead of a literal block.  This will allow more detail to be
added later.  Also fix the logic that parses options out of the
documentation to be aware of the new layout.
2014-10-28 12:46:17 -04:00
Brad King 98936ae3e0 ExternalProject: Convert docs to a bracket comment
Use a bracket comment to hold the documentation instead of a block of
line comments.  This will make further updates easier.  Also fix the
logic that parses options out of the documentation to be aware of the
new layout.
2014-10-28 12:41:00 -04:00
Brad King 9eb385edd9 Merge topic 'osx-gnu-fortran-deployment'
4fc3367f OS X: Detect deployment target flags from GNU Fortran compilers
2014-10-28 10:26:04 -04:00
Brad King 78c0f514be Merge topic 'cpack-rpm-pre-post-install'
9ed546ff CPackRPM: Support PREUN and POSTUN requirements
add4e50d CPackRPM: Support pre(post) install script requirements
2014-10-28 10:26:02 -04:00
Brad King c752f8f165 Merge topic 'find-boost-no-reroot'
43b8bfb2 FindBoost: fix find_library call when using "re-rooting"
2014-10-28 10:26:00 -04:00
Brad King f11f957949 FindCurses: Include CheckLibraryExists before using it (#15220)
Include the module at the top unconditionally so that all code paths can
use it.
2014-10-28 08:53:28 -04:00
Evgeny Kalishenko 9ed546ff49 CPackRPM: Support PREUN and POSTUN requirements 2014-10-27 12:36:20 -04:00
Evgeny Kalishenko add4e50dea CPackRPM: Support pre(post) install script requirements 2014-10-27 12:36:03 -04:00
Brad King a2456e1572 Merge topic 'autorcc-depends'
6e1c359f QtAutogen: Regenerate qrc files if their input changes (#15074)
a2995318 QtAutogen: Expand rccfiles into a vector early in the autogen process.
506151af QtAutogen: Extract a GetRccExecutable method.
2014-10-27 11:29:17 -04:00
Brad King 4fc3367fcd OS X: Detect deployment target flags from GNU Fortran compilers
Reported-by: Bill Somerville <bill@classdesign.com>
2014-10-27 08:40:55 -04:00
Guillaume Papin 43b8bfb213 FindBoost: fix find_library call when using "re-rooting"
When using CMAKE_FIND_ROOT_PATH, FindBoost is able to find the first
component and cache the full path of the directory in Boost_LIBRARY_DIR
so that all components are looked for in same directory. The issue was
that, when looking for the other components, Boost_LIBRARY_DIR was
re-rooted against CMAKE_FIND_ROOT_PATH even though it was already a path
on the host. This change fixes this by disabling the re-rooting in the
find_library call when using Boost_LIBRARY_DIR as a hint.

See http://www.cmake.org/pipermail/cmake-developers/2014-October/011670.html
2014-10-26 00:03:39 -04:00
Rolf Eike Beer 22362c65e1 FPHSA: remove unneeded variable dereferencing
These variables can be dereferenced by if() alone so do not do it here, avoiding
the risk of their content being treated as a variable name and dereferenced
again.
2014-10-25 19:33:38 +02:00
Stephen Kelly 6e1c359fe9 QtAutogen: Regenerate qrc files if their input changes (#15074)
Get dependencies from the output of ``rcc --list`` if using
Qt 5.  Otherwise process the file in the same way as the
qt4_add_resources macro.

This does not work for RCC files which are generated.

The cmake_autogen build step is implemented as a PRE_BUILD step
of the target currently if possible, rather than a standalone
custom target.  This is to keep the number of (synthesized)
custom targets that appear in the UI low, but in some cases
it is necessary to fall back to a full custom target.

Fall back to a full custom target for the VS builds if autorcc
is used.
2014-10-24 19:45:27 +02:00
Brad King b2a7f60a46 Merge topic 'xcode-ios-compiler-id'
b91020f6 Xcode: Fix compiler id detection when code signing is required
c48f6e12 Xcode: Fix compiler id detection for iOS tools (#15214)
2014-10-23 08:32:32 -04:00
Brad King 2a668e20da Merge topic 'doc-line-lengths'
80b19a71 Help/manual: Avoid long lines in code blocks
4fdacedc Help: Clarify formatting of CPACK_WIX_ACL documentation
35ca4863 Help: Wrap long ctest_submit signature line
58b2d760 Modules: Format documentation to avoid over-long preformatted lines
2014-10-23 08:32:29 -04:00
Brad King 9c4551f274 Merge branch 'xcode-ios-compiler-id' into release 2014-10-22 16:49:14 -04:00
Brad King 7d8879bb8d Merge branch 'doc-line-lengths' into release 2014-10-22 16:49:09 -04:00
Brad King 58b2d760ee Modules: Format documentation to avoid over-long preformatted lines
Convert several preformatted code block literals that enumerate lists of
options or variables to use reST definition lists instead.  Manually
wrap other long lines in code blocks.
2014-10-22 15:52:31 -04:00
Brad King f18dbfee5c Merge branch 'FindHg-no-cygwin-hg-on-windows' into release 2014-10-22 13:39:33 -04:00
Brad King dae2bddf5a Merge branch 'cuda-rpath-osx' into release 2014-10-22 13:39:27 -04:00
Brad King 7303a96776 Merge branch 'fix-OSX-bundle-rpaths-and-Qt5' into release 2014-10-22 13:39:22 -04:00
Brad King 0a5eca07ec Merge topic 'FindHg-no-cygwin-hg-on-windows'
ed997de4 FindHg: Do not use cygwin hg on Windows
2014-10-22 13:37:51 -04:00
Brad King b816563220 Merge topic 'cuda-rpath-osx'
59814cb4 FindCUDA: Remove rpath logic outdated by CMake's own @rpath support
2014-10-22 13:37:47 -04:00
Brad King 1271a93434 Merge topic 'fix-OSX-bundle-rpaths-and-Qt5'
41564ff2 BundleUtilities: Ensure framework symlinks and Info.plist exist
2014-10-22 13:37:46 -04:00
Brad King e5feae9838 Merge topic 'cpack-rpm-component-descriptions'
603ef7fd CPackRPM: Add component based packaging description and summary
2014-10-22 13:37:42 -04:00
Brad King ed997de4f2 FindHg: Do not use cygwin hg on Windows
The cygwin hg client is a text file with a '#!/bin/python" line.
This cannot run on Windows.
2014-10-22 10:52:08 -04:00
Clinton Stimpson 59814cb430 FindCUDA: Remove rpath logic outdated by CMake's own @rpath support
Otherwise binaries end up with two copies of the same value and the OS X
install_name_tool may corrupt them.
2014-10-22 10:50:15 -04:00
Brad King b91020f659 Xcode: Fix compiler id detection when code signing is required
The iOS product type 'com.apple.package-type.bundle.unit-test' requires
code signing on Xcode 6.  Other iOS target types do too.  Until CMake
learns to add the CODE_SIGN_IDENTITY build attribute itself, toolchain
files can set CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY to tell the Xcode
generator to add the attribute.  Teach CMakeDetermineCompilerId to
recognize this variable and add the CODE_SIGN_IDENTITY build attribute
to the compiler id project.
2014-10-22 10:16:07 -04:00
Brad King c48f6e1229 Xcode: Fix compiler id detection for iOS tools (#15214)
Since commit 0cce556b (Xcode: Use sysroot and deployment target to
identify compiler, 2014-04-29) our compiler id detection project uses
the target platform SDK in case Xcode selects a different compiler based
on it.  Now the compiler id project actually compiles with the target
compiler and SDK when cross-compiling.

The iOS tools do not support the 'com.apple.product-type.tool' product
type we use in our compiler id detection project.  When targeting
iPhone, use product type 'com.apple.product-type.bundle.unit-test'
instead.
2014-10-22 10:16:07 -04:00
Brad King 95d84f76d9 Merge topic 'cmake-cmp0054-warnings'
29c3edb8 Avoid if() quoted auto-dereference
2014-10-21 15:08:07 -04:00
Brad King 6dc0bbbd56 Merge topic 'UseJava-classpath-cross-compile'
7a373d5e UseJava: Fix classpath separator on WIN32 cross compilation (#15206)
2014-10-21 15:07:55 -04:00
Brad King 43cb7fadb4 Merge topic 'UseSWIG-r-support'
9de113a9 UseSWIG: Fix R module prefix
2014-10-21 15:07:53 -04:00
Adam Strzelecki 41564ff289 BundleUtilities: Ensure framework symlinks and Info.plist exist
This restores Qt SDK 4.8 and OS X >= 10.6.5 codesign compatibility
improving embedding frameworks using correct bundle layout described at:

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

1. If Versions/VERSION/Resources/Info.plist is missing, well known
   incorrect locations are checked for Info.plist and Info.plist is
   copied from there, otherwise codesign will fail.

2. Root framework symlinks to binary and Resources are restored to
   point inside Versions/Current, otherwise Qt 4.8 looking for
   Resources/ in framework root will fail.
2014-10-21 11:42:30 -04:00
Domen Vrankar 603ef7fd9d CPackRPM: Add component based packaging description and summary
Enable per-component description and summary setting through
CPACK_RPM_<component>_PACKAGE_DESCRIPTION,
CPACK_COMPONENT_<compName>_DESCRIPTION and
CPACK_RPM_<component>_PACKAGE_SUMMARY variables.

Extend the CPackComponentsForAll test to cover these.
2014-10-21 09:06:38 -04:00
Ben Boeckel 29c3edb87a Avoid if() quoted auto-dereference
When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly
dereference or quote the variable. We want if() to auto-dereference the
variable and not its value. Also replace MATCHES with STREQUAL where
equivalent.
2014-10-20 11:49:16 -04:00
Lorenz Witte 7a373d5e55 UseJava: Fix classpath separator on WIN32 cross compilation (#15206)
The condition to use ";" as classpath separator includes a check for the
switch "WIN32" which is a target switch.  When cross-compiling for a
non-windows target, this switch is not present and the separator
defaults to ":".  It should check for "CMAKE_HOST_WIN32" instead.
2014-10-14 10:02:19 -04:00
Julien Schueller 9de113a943 UseSWIG: Fix R module prefix 2014-10-14 09:41:58 -04:00
Peter Wu 384d3ce720 CheckStructHasMember: avoid breakage on -Wall -Werror (#15203)
With CMAKE_C_FLAGS='-Wall -Werror', this test breaks due to
-Werror=unused-value. Fix this by ignoring the return value.
2014-10-13 07:57:05 -04:00
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
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
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
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 26a8b64f7d Merge topic 'FindLATEX-cross-compile-ps2pdf14'
63262434 FindLATEX: Search for ps2pdf14 even on Windows (#15198)
2014-10-08 10:48:10 -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 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 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 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
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
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
Konstantin Podsvirov ed9684a22c CPackIFW: Added support for multiple repositories
Now user can add IFW specific repo with cpack_ifw_add_repository macro
2014-10-05 12:52:57 +04:00
Konstantin Podsvirov f9f748745c CPackIFW: Search algorithm update
Variables like CPACK_IFW_*_EXECUTABLE_FOUND now not needed
2014-10-04 22:55:43 +04:00
Rolf Eike Beer 94a061d372 FindThreads: use a macro for the repetitive thread library checks 2014-10-03 23:20:07 +02:00
Brad King 0dd07f1dfe Merge topic 'FPHSA-include'
3670c6a4 fix inclusion of FPHSA
2014-10-03 15:10:18 -04:00
Brad King 87eb1ed20b Merge topic 'FindThreads-dir'
cbd5db64 FindThreads: search test source relative to module
2014-10-03 15:10:16 -04:00
Brad King 8ec00743a6 Merge topic 'FindLua-exact'
c4a56b9c FindLua: fix wrong version list if EXACT is given
2014-10-03 15:10:14 -04:00
Ben Boeckel ca9cc25ce8 ctest: add support for additional sanitizer options
Sanitizers receive options through their environment variable; support
user-specified options here.
2014-10-03 13:45:07 -04:00
Rolf Eike Beer 3670c6a41c fix inclusion of FPHSA
Make sure these modules also include exactly the version shipped with CMake.
2014-10-02 23:44:39 +02:00
Timo Rothenpieler cbd5db6485 FindThreads: search test source relative to module
This is a simpler way to reference the location of FindThreads.cmake.
2014-10-02 22:13:44 +02:00
Rolf Eike Beer c4a56b9c1c FindLua: fix wrong version list if EXACT is given 2014-10-02 21:41:43 +02:00
Brad King 5b5e80e728 FindVTK: Drop this ancient compatibility module
The FindVTK module only existed to help find_package(VTK) calls work in
old projects written to use "USE_VTK_FILE" instead of "VTK_USE_FILE".
Drop it to allow find_package(VTK) calls to search for VTKConfig.cmake
directly.
2014-10-02 09:28:02 -04:00
Brad King fd6fa65726 FindITK: Drop this ancient compatibility module
The FindITK module only existed to help find_package(ITK) calls work in
old projects written to use "USE_ITK_FILE" instead of "ITK_USE_FILE".
Drop it to allow find_package(ITK) calls to search for ITKConfig.cmake
directly.
2014-10-02 09:28:02 -04:00
Brad King f640b2a41f Merge topic 'cleanup-CMP0054'
69fe5920 GenerateExportHeader: Avoid if() quoted auto-dereference
2014-09-30 11:29:09 -04:00
Brad King 40ae354ebb Merge topic 'GNUInstallDirs-typo'
33f03129 Fix typo in Modules/GNUInstallDirs.cmake (#15176)
2014-09-30 11:29:04 -04:00
Brad King 34d035e70e Merge topic 'vs-nsight-tegra-generator'
df84281d Help: Add notes for topic 'vs-nsight-tegra-generator'
69e198dc VS: Generate Nsight Tegra project revision number
5365c9ac VS: Map Nsight Tegra file types in .vcxproj files
178f56a5 VS: Fix Tegra-Android platform linking of libraries by name
7115702f Tests: Add test for VS Nsight Tegra generator support
a6289499 VS: Generate ANDROID_GUI executables as app packages
c12e4699 Add 'ANDROID_API' target property to set Android Target API
9a4df52a Add 'ANDROID_GUI' target property to mark Android applications
16569abf cmTarget: Track internally whether platform is Android
ef0fd4f0 VS: Teach vcxproj generation about the Tegra-Android platform
d09b60f5 VS: Detect compiler id of Nsight Tegra-Android toolchains
2f071466 VS: Teach VS >= 10 to recognize CMAKE_SYSTEM_NAME 'Android'
2014-09-30 08:46:27 -04:00
Brad King 178f56a579 VS: Fix Tegra-Android platform linking of libraries by name
Nsight Tegra Visual Studio Edition handles prefixing of library names
with '-l' automatically, so teach the generator not to do so.

Reported-by: Mourad Boufarguine <mourad@boufarguine.name>
2014-09-30 08:45:35 -04:00
Brad King d09b60f563 VS: Detect compiler id of Nsight Tegra-Android toolchains
Teach CMakeDetermineCompilerId to recognize the Tegra-Android platform
and generate a test project for Nsight Tegra tools.  Locate the full
path to CMAKE_<LANG>_COMPILER by computing it within the test project
build environment.

Also teach CMakeFindBinUtils that this variant of the Visual Studio
generator uses UNIX-like instead of MS-like archiving and linking tools.
2014-09-29 16:05:53 -04:00
Brad King 69fe5920b3 GenerateExportHeader: Avoid if() quoted auto-dereference
When testing CMAKE_CXX_COMPILER_ID values with if(MATCHES),
do not explicitly dereference or quote CMAKE_CXX_COMPILER_ID.
We want if() to auto-dereference the variable and not its value.
2014-09-29 15:53:38 -04:00
David Coppa 33f031295c Fix typo in Modules/GNUInstallDirs.cmake (#15176)
Commit d4fdd9c189 ("GNUInstallDirs: use the
proper default for info and man paths on OpenBSD") introduced a typo.
2014-09-29 18:25:25 +02:00
Adam Strzelecki 84e3fde94d FindCUDA: Avoid if() auto-dereference in string comparisons
This silences possible CMP0054 warnings.
2014-09-24 10:10:42 -04:00
Brad King 405b92d031 Merge topic 'FindGettext-doc-update'
3919f254 FindGettext: Fix name of GETTEXT_PROCESS_POT_FILE in docs (#15162)
2014-09-22 09:13:14 -04:00
Brad King 3303b5f8b4 Merge topic 'FindProtobuf-depend-protoc'
e380d7c5 FindProtobuf: Make outputs depend on protoc executable
2014-09-22 09:13:07 -04:00
Brad King 2f3985c6a5 Merge topic 'FindOpenSceneGraph-pieces-not-found'
b683da3e FindOpenSceneGraph: Do not add unfound OSG libs if not required
2014-09-22 09:13:05 -04:00
Brad King d4713b84b7 Merge topic 'clang-compile-options-cxx14'
49b8140e Clang: Enable c++14 dialect flag with Clang 3.5.
0b80fc35 Clang: Don't overwrite c++11 compile option value with c++14 flag.
2014-09-22 09:12:56 -04:00
Brad King f28ebcbf1b Merge topic 'cleanup-CMP0054'
fa7d47ac Tests: Fix CMP0054 warnings
3b5ea54a CheckPrototypeDefinition: Avoid if() auto-dereference
c9b301cd ExternalProject: Fix CMP0054 warning in _ep_parse_arguments
2014-09-22 09:12:53 -04:00
Brad King 5eaa3e9025 Merge topic 'ExternalProject-retry'
30a94eec ExternalProject: Fix download retry logic
2014-09-22 09:12:50 -04:00
Brad King 3919f254e8 FindGettext: Fix name of GETTEXT_PROCESS_POT_FILE in docs (#15162)
Rename GETTEXT_PROCESS_POT to GETTEXT_PROCESS_POT_FILE.

Patch-by: maahnat@gmail.com
2014-09-18 09:39:49 -04:00
Michael Hanselmann e380d7c5ba FindProtobuf: Make outputs depend on protoc executable
After updating from Protocol Buffers 2.5.0 to 2.6.0 compilation of the
generated source failed: "This file was generated by an older version of
protoc which is incompatible with your Protocol Buffer headers. Please
regenerate this file with a newer version of protoc.".

Turns out the source and headers generated by way of
FindProtobuf.cmake:PROTOBUF_GENERATE_CPP aren't updated. Adding a
dependency on the compiler executable fixes this issue.
2014-09-18 09:16:27 -04:00
Mattias Helsing b683da3efa FindOpenSceneGraph: Do not add unfound OSG libs if not required 2014-09-18 09:06:58 -04:00
Stephen Kelly 49b8140e5d Clang: Enable c++14 dialect flag with Clang 3.5. 2014-09-17 14:57:07 +02:00
Stephen Kelly 0b80fc350a Clang: Don't overwrite c++11 compile option value with c++14 flag. 2014-09-17 14:56:16 +02:00
Brad King 3b5ea54a27 CheckPrototypeDefinition: Avoid if() auto-dereference
Convert from the old if(MATCHES) hack to if(DEFINED) to check whether
the result variable is already set.
2014-09-16 09:04:20 -04:00
Matt McCormick c9b301cd71 ExternalProject: Fix CMP0054 warning in _ep_parse_arguments
Fix the CMP0054 warning:

 CMake Warning (dev) at .../Modules/ExternalProject.cmake:242 (if):
   Policy CMP0054 is not set: Only interpret if() arguments as variables or
   keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
   details.  Use the cmake_policy command to set the policy and suppress this
   warning.

   Quoted keywords like "COMMAND" will no longer be interpreted as keywords
   when the policy is set to NEW.  Since the policy is not set the OLD
   behavior will be used.
 Call Stack (most recent call first):
   .../Modules/ExternalProject.cmake:1938 (_ep_parse_arguments)
   CMakeLists.txt:5 (ExternalProject_Add)

by avoiding a reference to "${key}" or "COMMAND" in quotes.
2014-09-15 15:56:37 -04:00
Brad King b234836637 Merge topic 'vs-generator-platform'
be6a555d Tests: Test setting a generator platform in a toolchain file
d506fee8 Tests: Use -A option to pass generator platform selection
11c9ddd6 ExternalProject: Use -A option to pass generator platform
29bd843e CTest: Use -A option to pass generator platform selection
eb7d8156 cmake: Add -A option to specify a generator platform
2014-09-15 10:27:38 -04:00
Brad King 9edf6903e6 Merge topic 'if-sanity'
858d5a0b Fix if() checks of CMAKE_SYSTEM_NAME on Cygwin
e177e7af FPHSA: Avoid if() dereferencing of quoted variable
425acc52 cmcurl: Use if(DEFINED) to simplify conditions
cede5cbd libarchive: Avoid depending on if() to dereference a quoted variable
2d97178b FindGTK2: Avoid depending on if() to dereference a quoted variable
0b12815d Modules/Test*.cmake: Use if(DEFINED) to simplify conditions
188a1f23 If: Introduce policy CMP0054 - don't dereference quoted variables in if()
b900c1cc If: Extract cmConditionEvaluator from if() implementation
2014-09-15 10:27:36 -04:00
Brad King 11c9ddd694 ExternalProject: Use -A option to pass generator platform
This is less verbose than defining CMAKE_GENERATOR_PLATFORM.
2014-09-15 10:26:59 -04:00
Ruslan Baratov 30a94eecdb ExternalProject: Fix download retry logic
Do not check file's hash in download script.  If hash will not match
command ``file(DOWNLOAD ...)`` will fail with FATAL_ERROR, ``cmake -P``
will exit with unsuccessful code, and the build will stop.  Leave hash
checking to the existing implementation in the verify step.
2014-09-15 09:08:33 -04:00
Brad King e177e7affb FPHSA: Avoid if() dereferencing of quoted variable
Legacy invocations may pass a variable name where "DEFAULT_MSG" belongs.
When comparing FPHSA_FAIL_MESSAGE to "DEFAULT_MSG", use a leading "x" on
both sides to avoid mistaking the value of the message for a variable
name.
2014-09-11 21:23:24 +02:00
Brad King 2d97178b30 FindGTK2: Avoid depending on if() to dereference a quoted variable
Explicitly dereference GTK2_${_var}CONFIG_INCLUDE_DIR and
GTK2_${_var}_INCLUDE_DIR when comparing their values.
2014-09-11 21:23:24 +02:00
Brad King 0b12815dc2 Modules/Test*.cmake: Use if(DEFINED) to simplify conditions
Replace old hacks of the form 'if("${VAR}" MATCHES "^${VAR}$")'
with the much simpler 'if(NOT DEFINED ${VAR})'.
2014-09-11 21:23:24 +02:00
Brad King b36a795163 Merge topic 'doc-check-results-cached'
908c7439 Help: Document that the CHECK_* macros create cache variables
2014-09-11 12:55:10 -04:00
Brad King efe093dcfd Merge topic 'fix-gnu-hurd-host-detection'
89d7a5a4 Fix CMAKE_HOST_SYSTEM_PROCESSOR detection on GNU/Hurd (#15147)
2014-09-11 12:55:05 -04:00
Sebastian Leske 908c74399a Help: Document that the CHECK_* macros create cache variables
Otherwise callers may expect to be able to re-use result variables.
2014-09-11 08:55:26 -04:00
Brad King 0a92b23c52 Merge topic 'vs-generator-platform'
09c8ad99 enable_language: Initialize system-specific generator info only once
09ab207c Tests: Add generator platform support
6944997b ExternalProject: Propagate the generator platform
8d332091 CTest: Add options to set generator platform
b97736a2 VS: Implement CMAKE_GENERATOR_PLATFORM for VS >= 8
0f1f1271 CMake: Add CMAKE_GENERATOR_PLATFORM option
4f7d0c42 Help: Document CMAKE_VS_PLATFORM_NAME variable
68d4280a VS: Refactor internal default platform name selection
ad2a4776 cmGlobalVisualStudio10Generator: Re-order some methods
03b7b6cd cmGlobalGenerator: Call SetGeneratorToolset even for empty toolset
2014-09-10 11:23:22 -04:00
Brad King 81b2a250dc Merge topic 'FindIce-updates'
2131aedd FindIce: Respect Ice_FIND_QUIETLY when printing messages
d5047ca1 FindIce: Remove unneeded search path modification
2014-09-10 11:23:17 -04:00
Felix Geyer 89d7a5a417 Fix CMAKE_HOST_SYSTEM_PROCESSOR detection on GNU/Hurd (#15147)
On Debian GNU/Hurd 'uname -p' prints "unknown", so use 'uname -m'
instead.
2014-09-10 09:06:33 -04:00
Roger Leigh 2131aeddaa FindIce: Respect Ice_FIND_QUIETLY when printing messages 2014-09-09 15:19:00 -04:00
Roger Leigh d5047ca1b2 FindIce: Remove unneeded search path modification
Drop code adding redundant "/opt/Ice-${ice_version}" paths.
2014-09-09 11:45:51 -04:00
Brad King 7b2e3cc63b Merge topic 'use-consistent-regex-for-info-strings'
3e84e78c Use a more reliable regex for extracting binary INFO strings
2014-09-09 11:23:34 -04:00
Brad King 371f06d005 Merge topic 'ExternalProject-download-loop'
9f49ac3d ExternalProject: Avoid infinite loop on file download hash mismatch
2014-09-09 11:23:30 -04:00
Brad King 0161761d68 Merge branch 'ExternalProject-download-loop' into release 2014-09-08 16:38:49 -04:00
Alan W. Irwin 9f49ac3df0 ExternalProject: Avoid infinite loop on file download hash mismatch
When the loop was added by commit v3.0.0-rc1~103^2~3 (ExternalProject:
Reattempt download when verification fails, 2015-01-15), we forgot to
actually increment the loop counter.  Add the increment line.
2014-09-08 16:36:35 -04:00
Brad King d11a19528e Merge topic 'fix-clang-cross-compile-find-binutils'
72d66818 Fix finding binutils when cross-compiling with Clang
2014-09-08 12:57:01 -04:00
Brad King 6944997bd6 ExternalProject: Propagate the generator platform
When the CMAKE_GENERATOR option is given to ExternalProject_Add, look
also for option CMAKE_GENERATOR_PLATFORM to pass on to cmake as a cache
definition.  When no CMAKE_GENERATOR option is given explicitly then use
the current project's CMAKE_GENERATOR_PLATFORM (since we already use its
CMAKE_GENERATOR).
2014-09-05 15:20:47 -04:00
Brad King d2364f15ae Merge branch 'fix-clang-cross-compile-find-binutils' into release 2014-09-05 12:06:52 -04:00
Brad King 72d6681826 Fix finding binutils when cross-compiling with Clang
Since commit v3.0.0-rc1~342^2~2 (Add compiler target compile options,
2013-05-19) we use CMAKE_<LANG>_COMPILER_TARGET as the binutils prefix
when cross-compiling with Clang.  Fix the implementation to use the
compiler target as the prefix only when it is set.  Otherwise toolchain
files not using CMAKE_<LANG>_COMPILER_TARGET cause the logic to use
a prefix of just "-" and of course cannot find "-ar" or "-ld".
2014-09-05 12:06:27 -04:00
Brad King 103ddca336 Merge topic 'fix-gtk2-missing-optional-includes'
cb8f0f7c FindGTK2: Fix missing optional include dirs.
2014-09-04 10:03:54 -04:00
Brad King 9651cb70ae Merge topic 'InstallRequiredSystemLibraries-vs-openmp'
d538c55e Help: Add notes for topic 'InstallRequiredSystemLibraries-vs-openmp'
bdb5007b InstallRequiredSystemLibraries: Install OpenMP runtime libs (#15117)
2014-09-04 09:48:17 -04:00
Chuck Atkins cb8f0f7c81 FindGTK2: Fix missing optional include dirs.
FindGTK2 was adding optional include directories to the
interface include dirs regardless of whether or not they
existed.  This ensures that the directories only get added
if they are actually found. This is particularly a problem
on Solaris where the gtk2 libs and headers might exist but
the FreeType2 headers might not.
2014-09-03 23:25:57 -04:00
Chuck Atkins 3e84e78c3f Use a more reliable regex for extracting binary INFO strings
A few different regular expressions were being used in various
places to extract info strings from binaries.  This uses a
consistent regex amongst all of them now.  This also fixes the
broken ABI detection for Cray compilers.
2014-09-03 17:00:48 -04:00
Gregory Sharp bdb5007b17 InstallRequiredSystemLibraries: Install OpenMP runtime libs (#15117)
Add option CMAKE_INSTALL_OPENMP_LIBRARIES to control the behavior.
2014-09-02 11:07:32 -04:00
Brad King 85e39553fb Merge topic 'fix-findpostgres-for-multilib'
741f29cc FindPostgreSQL: Fix for pg_config in multilib configurations.
2014-09-02 10:43:19 -04:00
Brad King 14cdf5971e Merge topic 'asm-user-override-files'
487f147f Load CMAKE_USER_MAKE_RULES_OVERRIDE[_ASM] for assembler (#15108)
2014-09-02 10:43:14 -04:00
Chuck Atkins 741f29cc00 FindPostgreSQL: Fix for pg_config in multilib configurations.
Some platforms, Fedora 20 and RHEL 7 in particular, will have multiple
pg_config_${arch}.h files all included by the top level pg_config.h.
This checks all of the available pg_config*.h headers for version
information.
2014-09-02 10:35:37 -04:00
Brad King bfc81c5934 Merge topic 'vs-windows-apps'
39fefde2 VS: Add test case for Windows Phone and Windows Store
89da8465 MSVC: Define 'WIN32' for Windows Store and Windows Phone
ed7f085f Help: Add notes for topic 'vs-windows-apps'
dd11ae8f VS: Do not compile C sources as WinRT (#15100)
b8e40538 VS: Mark Windows Phone and Store targets as App Containers
0432f062 VS: Always ignore ole32 on Windows Phone 8.0
e6ff2f8b VS: Generate Windows Metadata for WinRT components
ee48f4c7 VS: Generate Windows Phone and Windows Store projects as Unicode
cb1aceed VS: Add VS_WINRT_COMPONENT property to enable CompileAsWinRT
401269e4 VS: Handle .pfx files explicitly in generator
23782171 VS: Handle AppxManifest sources explicitly in generator
bc373c6d VS: Set Window Phone/Store app type in CMake-generated targets
d89b2889 VS: Mark CMake-generated targets as Utility in .vcxproj files
03ad8f28 CMakeDetermineCompilerABI: Link with standard libraries on MSVC
2014-09-02 10:16:37 -04:00
Gilles Khouzam 89da84657a MSVC: Define 'WIN32' for Windows Store and Windows Phone
This was accidentally left out of commit c72f0887 (MSVC: Add default
WindowsPhone and WindowsStore compile flags, 2014-07-28).
2014-09-02 10:17:03 -04:00
Mikhail Nikonov 487f147fa9 Load CMAKE_USER_MAKE_RULES_OVERRIDE[_ASM] for assembler (#15108)
This is already done for C, CXX, and Fortran.
2014-08-27 09:27:36 -04:00
Brad King 3d95b39797 Merge topic 'wxWidgets-cflags'
e6fa6e60 UsewxWidgets: CFLAGS are expected to be a string here, not a list.
2014-08-27 09:04:56 -04:00
Richard M. Shaw 3328623504 FindwxWidgets: Improve path detection logic when cross-compiling. 2014-08-22 12:20:42 -05:00
Richard M. Shaw e6fa6e60f6 UsewxWidgets: CFLAGS are expected to be a string here, not a list. 2014-08-22 10:27:48 -05:00
Brad King 8c30014982 Merge topic 'vs-masm'
cbd1d42b Help: Add notes for topic 'vs-masm'
0f8522a6 VS: Add MASM support to VS 8 and 9 (#8170, #14984)
a43f4400 VS: Move internal MasmEnabled member up to VS 7 generator
df3b007d VS: Add test for MASM support
e8727449 VS: Populate MASM tool build settings in .vcxproj files
0271a5f9 VS: Manually fix MASM flag table entries
1d662e48 VS: Generate MASM flag tables from MSBuild tool files
4f6940df VS: Fix ASM_MASM support in VS >= 10
d7866c52 ASM_MASM: Fix selection of ml64
0374abdb ASM_MASM: Add preprocessor definitions to compile lines
5b0a46e1 ASM_MASM: Do not require compiler to be a full path
802dbe52 cmLocalVisualStudio7Generator: Rename local 'lang' var
2014-08-22 10:37:55 -04:00
Brad King b4d3e7a7b0 Merge topic 'FindXerces'
20407006 FindXerces: New module to find Apache Xerces-C++
2014-08-22 10:37:53 -04:00
Brad King 03ad8f28c8 CMakeDetermineCompilerABI: Link with standard libraries on MSVC
In commit v2.8.0~395 (Implicit link info for C, CXX, and Fortran,
2009-07-23) we added a '-DCMAKE_${lang}_STANDARD_LIBRARIES=' flag to the
try_compile used to build the ABI detection project.  It is needed when
detecting the implicit libraries added by the GNU compiler on Windows
(MinGW tools) to avoid contaminating the list with standard Windows
libraries.  However, with MSVC we do not detect such implicit link
libraries anyway, and for some target platforms (e.g. Windows Phone) we
may need the standard libraries to link the ABI detection executable.
Drop the flag when detecting the ABI using MSVC.
2014-08-21 09:28:19 -04:00