Commit Graph

4253 Commits

Author SHA1 Message Date
Brad King e855dd54df Merge topic 'ExternalProject-svn-auth-blank'
ecd11a2 ExternalProject: Allow blank SVN_USERNAME/SVN_PASSWORD (#14128)
2013-05-16 14:37:50 -04:00
Brad King 18a5c4f4c6 Merge topic 'implicit-linker-detection'
a2bc47d Recognize ld with toolchain prefix (#13960)
2013-05-16 14:37:46 -04:00
Brad King 831dd5abab Merge topic 'cpack-nsis-uninstall'
40566ef CPack/NSIS: Obtain path from which to uninstall from registry (#14124)
2013-05-16 14:37:43 -04:00
Brad King 823022dd2e Merge topic 'WindowsPaths-MinGW-cross-compile-only'
f9eee7f Windows: Search '/' prefix only when cross compiling (#10994)
2013-05-16 14:37:28 -04:00
Brad King e6f2a0d1c8 Merge topic 'check-compiler-flag-locale'
5272372 Check{C,CXX}CompilerFlag: Test using C locale (#14102)
2013-05-16 14:37:17 -04:00
Brad King 3256ecb7b9 Merge topic 'Cuda_WRAP_SRCS_duplicates'
32b582d FindCUDA: Remove duplicate entries from INCLUDE_DIRECTORIES.
2013-05-16 14:37:13 -04:00
Brad King e778522161 Merge topic 'cuda_compute_build_path'
cd2d248 FindCUDA: CUDA_COMPUTE_BUILD_PATH uses relative paths to binary dir.
2013-05-16 14:37:05 -04:00
Brad King d04e765d76 Merge topic 'OpenGL-require-includes'
5be3593 FindOpenGL: require headers to be found on non-Windows platforms (#13746)
b10a171 FindOpenGL: simplify OS selection code
2013-05-16 14:36:59 -04:00
Brad King d86d0e622a Merge topic 'xcode-explicitFileType'
5683146 Xcode: Use explicitFileType to mark source types (#14093)
2013-05-16 14:36:54 -04:00
Brad King 3a0014a1fe Merge topic 'AddIARToolchain2'
d118b8b Add IAR to the CMakeDetectC(XX)CompilerID.c(pp).in
d33f406 Add regexps for the IAR toolchain to the vendor list.
22fb73a Add support files for C, C++ and ASM for the IAR toolchain.
2013-05-16 14:36:44 -04:00
Brad King 0d217e64d0 Merge topic 'CrossCompilingFix13796'
efb19b6 CMakeSystem: include toolchain file after setting CMAKE_HOST_ (#13796)
2013-05-16 14:36:39 -04:00
Brad King 5c2084b74b Merge topic 'fix-comment-typos'
8e0da4c Fix some copyastos in the DetermineRCCompiler file.
2013-05-16 14:36:31 -04:00
Brad King 5386aaecd4 Merge topic 'FindOpenSSL-cross-compiling'
1b614e0 FindOpenSSL: Fix spelling of CMAKE_CROSSCOMPILING (#14075)
2013-05-16 14:36:23 -04:00
Brad King 1b4b64cd3c Merge topic 'vs-no-compiler-pdb-setting'
87c0d16 Ninja: Fix OBJECT_DIR placeholder path conversion
fb9f73d MSVC: Invoke 'link' directly for executables
42ba1b0 VS: Separate compiler and linker PDB files (#11899, #14062)
2013-05-16 14:36:11 -04:00
Brad King 7e7b7fe4b3 Merge topic 'CPackRPM-avoidOwningSystemDirs'
f055c99 CPackRPM add /usr/lib64 to the list of builtin to-be-excluded path
bac5772 CPackRPM add mechanism to remove path from generated list of file in RPM spec.
2013-05-16 14:36:00 -04:00
Brad King e392520309 Merge topic 'CPackRPM-componentizedUserSpecFile'
2ef908f Add support for componentized USER spec file
2013-05-16 14:35:55 -04:00
Matt McCormick ecd11a25cc ExternalProject: Allow blank SVN_USERNAME/SVN_PASSWORD (#14128)
With

  SVN_USERNAME ""
  SVN_PASSWORD ""

in an ExternalProject_Add() call, the blank username and password
will be passed to the svn checkout/update step commands.
2013-05-06 13:16:18 -04:00
Brad King a2bc47df1a Recognize ld with toolchain prefix (#13960)
Teach CMAKE_PARSE_IMPLICIT_LINK_INFO to recognize linker invocations
of the form "<toolchain-prefix>-ld" e.g. "x86_64-pc-linux-gnu-ld".
2013-05-06 08:45:34 -04:00
David Golub 40566ef2f8 CPack/NSIS: Obtain path from which to uninstall from registry (#14124)
Without this, when CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL is set,
the installer tries to uninstall the old version from the default
installation path for the new version, rather than using the path from
the registry where the old version is installed.
2013-05-02 10:22:20 -04:00
Brad King f9eee7f183 Windows: Search '/' prefix only when cross compiling (#10994)
Commit dac78148 (...makes the mingw cross compiler work out of the
box..., 2007-08-02) added to CMAKE_SYSTEM_PROGRAM_PATH and
CMAKE_SYSTEM_LIBRARY_PATH paths like "/bin" and "/lib" with no Windows
drive letter so that cross-compiling to Windows from Linux would search
these paths under CMAKE_FIND_ROOT_PATH.  Later commit 2a782880 (...use
CMAKE_SYSTEM_PREFIX_PATH when possible, 2008-01-16) generalized this
approach by instead adding "/" to CMAKE_SYSTEM_PREFIX_PATH.

Both commits assumed that the paths would never match anything on
Windows hosts without a drive letter.  However, Windows evaluates these
paths relative to the current working drive letter so find_* commands
may report paths like "/lib/..." when paths like "c:/lib/..." exist on
what happens to be current drive.  Such drive-less paths are not
reliable when the working drive changes, so we should not use them.

Fix WindowsPaths.cmake to add '/' to CMAKE_SYSTEM_PREFIX_PATH only when
cross-compiling to Windows from a non-Windows host.  This will avoid
searching and finding local paths without a drive letter on Windows.
2013-04-25 09:07:45 -04:00
Brad King 52723722c7 Check{C,CXX}CompilerFlag: Test using C locale (#14102)
Set the locale to C while running the compiler for these checks because
we match the resulting warning messages in English only.

Suggested-by: Marco Nolden <m.nolden@dkfz-heidelberg.de>
2013-04-22 08:50:08 -04:00
Marcel Loose 32b582d8a5 FindCUDA: Remove duplicate entries from INCLUDE_DIRECTORIES.
As of CMake 2.8.8, the INCLUDE_DIRECTORIES() command does
not de-duplicate entries. Failure to do so can lead to an extremely
long and repetitive list of -I entries on the command line.
2013-04-18 15:15:51 -04:00
Mathias Gaunard cd2d2480cc FindCUDA: CUDA_COMPUTE_BUILD_PATH uses relative paths to binary dir.
make CUDA_COMPUTE_BUILD_PATH use a relative path to the current
binary directory instead of the current source directory if the source
file considered is in the current binary directory. This is done to
shorten the paths given to the compiler.
2013-04-18 09:07:52 -04:00
Rolf Eike Beer 5be35935dc FindOpenGL: require headers to be found on non-Windows platforms (#13746) 2013-04-17 12:59:52 +02:00
Rolf Eike Beer b10a1713dc FindOpenGL: simplify OS selection code
This was using nested if's, now it uses elseif to flatten that. It also removes
one "if" from the general "else" branch that checks for Apple, as that has it's
own branch anyway and can't be true at this point.
2013-04-17 12:46:13 +02:00
Brad King 5683146185 Xcode: Use explicitFileType to mark source types (#14093)
Replace use of lastKnownFileType with explicitFileType to insist
that Xcode treat the file as we ask.
2013-04-16 15:44:48 -04:00
Alex Neundorf d118b8b389 Add IAR to the CMakeDetectC(XX)CompilerID.c(pp).in
With the AVR IAR compiler this can't be found, but it works e.g. for the
ARM AVR compiler.

Alex
2013-04-15 09:14:35 -04:00
Alex Neundorf d33f40638d Add regexps for the IAR toolchain to the vendor list.
The IAR compilers produce object files where the plain strings at least
sometimes can't be found, see:

  http://www.cmake.org/Bug/view.php?id=10176#c19598

Alex
2013-04-15 09:13:10 -04:00
Alex Neundorf 22fb73a0d6 Add support files for C, C++ and ASM for the IAR toolchain.
The original feature request is at http://www.cmake.org/Bug/view.php?id=10176
Documentation can be found at http://www.iar.com/website1/1.0.1.0/675/1/

Alex
2013-04-15 09:11:17 -04:00
Alex Neundorf efb19b6d45 CMakeSystem: include toolchain file after setting CMAKE_HOST_ (#13796)
Make the CMAKE_HOST_* variables always available in the toolchain file.
They are when the file is included in CMakeDetermineSystem.cmake, and
now also here.  For the non-cross-compiling case this does not change
anything at all.

Alex
2013-04-15 09:06:21 -04:00
Stephen Kelly 8e0da4cddc Fix some copyastos in the DetermineRCCompiler file. 2013-04-14 09:03:48 +02:00
Robin Lee 1b614e018c FindOpenSSL: Fix spelling of CMAKE_CROSSCOMPILING (#14075)
Use of the mis-spelled variable name 'CMAKE_CROSS_COMPILING' was
introduced by commit 4b793ad1 (FindOpenSSL: find cross-compiled OpenSSL
from MinGW, 2012-07-23).  Fix the spelling.
2013-04-12 08:50:06 -04:00
Brad King fb9f73de64 MSVC: Invoke 'link' directly for executables
Update the CMAKE_<LANG>_LINK_EXECUTABLE rule variable to invoke the
linker directly instead of through the compiler.  We already do this
for DLL linking with CMAKE_<LANG>_CREATE_SHARED_LIBRARY.

This also works around a VS 6 cl bug.  While invoking the link tool
internally it fails to correctly quote flags like /pdb:... with spaces
in the value.
2013-04-08 13:03:56 -04:00
Brad King 42ba1b08f3 VS: Separate compiler and linker PDB files (#11899, #14062)
The MS tools create two types of PDB files as explained here:

 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.71%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.80%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.90%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.100%29.aspx

One is created by the compiler (/Fd) and the other by the linker (/pdb).
The two options should not specify the same file.  Split them up.

In the VS IDE generators, simply drop ProgramDataBaseFileName to
take the VS default "/Fd$(IntDir)vc$(PlatformToolsetVersion).pdb".

In the Makefile generators, set "/Fd" on the compile line to be
the directory containing object files (with a trailing slash the
compiler will add the "vc$(PlatformToolsetVersion).pdb" filename
automatically).  Drop the /Fd option from the exe link command
line and add "/pdb" instead (already done for dll linking).
Update these rules for both MSVC and Intel tools.

Drop support for PDB_OUTPUT_DIRECTORY and PDB_NAME in STATIC
libraries because the generated .pdb files are only from /Fd
and not real linker-generated .pdb files.  Update documentation to
clarify that the PDB_* properties are only for linker .pdb files.

This regresses the PDBDirectoryAndName test for STATIC libraries.
Since it is not clear at this time what should be done for STATIC
library .pdb files, comment out the relevant portion of the test
and leave a TODO comment.
2013-04-05 11:25:09 -04:00
Eric NOULARD f055c997a5 CPackRPM add /usr/lib64 to the list of builtin to-be-excluded path 2013-04-05 12:53:47 +02:00
Eric NOULARD bac5772b39 CPackRPM add mechanism to remove path from generated list of file in RPM spec.
This fixes bug #0013609, and is a possible solution to #0012864 as well.
The later will be completely fixed in another way. Both approaches
needs to be implemented because the current one is more automatic.

Inspired-By: Ari
2013-04-05 12:43:50 +02:00
Brad King 9cccd2c29c Merge topic 'usr-move-relocatable'
6c613b4 Handle usr-move without forcing absolute paths (#14041)
2013-04-04 14:20:21 -04:00
Brad King 6c613b433c Handle usr-move without forcing absolute paths (#14041)
In commit 0c727b90 (install(EXPORT): Force absolute paths for usr-move,
2013-03-08) and commit d4774140 (configure_package_config_file: force
absolute paths for usr-move, 2013-01-24) we supported Linux
distributions implementing the "/usr move" by assuming that installation
to (/usr)?/lib(64)? represents a non-relocatable system package.

When cross-compiling one may prepare a package for installation into a
system location on a target machine but install the package files on the
*host* machine inside another path for use with CMAKE_FIND_ROOT_PATH.
In this case the package development files must still be relocatable.

Handle "/usr move" with a new approach that works with relocatable
files.  Teach configure_package_config_file and install(EXPORT) to
generate special logic in a package configuration file or targets file
for installation under (/usr)?/lib(64)?.  Teach the file to recognize
when it is loaded through a symlink that refers to the same realpath as
its original install destination.  In such a case, use the original
install prefix.  Otherwise, compute the prefix relative to the current
file location to make it relocatable.
2013-04-03 11:19:47 -04:00
Clinton Stimpson bec8e64c73 Qt4: Fix typo setting a variable for FindThreads.
Fixes bug 14055.
2013-04-02 07:46:51 -06:00
Eric NOULARD 2ef908f911 Add support for componentized USER spec file
CPACK_RPM_USER_BINARY_SPECFILE can now be specified on a per-component
basis using CPACK_RPM_<componentName>_USER_BINARY_SPECFILE.

Inspired-By: Theodore Papadopoulo with its patch proposal.
2013-04-01 16:06:22 +02:00
Brad King 1c7833e7ae Merge topic 'ExactCaseReadmeTxt'
5479251 Modules/readme.txt: make lines a bit shorter for easier readability
140692d Modules/readme.txt: switch from "XXX" to "Xxx"
2013-03-28 10:42:24 -04:00
Brad King 9852d8f42b Merge topic 'use-java-INCLUDE_JARS'
8a2fca8 UseJava.cmake: require explicit request to include jars
2013-03-28 10:42:07 -04:00
Brad King 91461b48c8 Merge topic 'dev/add-isystem-for-clang'
4d668f3 Clang: Add -isystem flag support everywhere
2013-03-28 10:41:55 -04:00
Alex Neundorf 5479251b3b Modules/readme.txt: make lines a bit shorter for easier readability
This patch doesn't make them 79 characters long, but at least gets rid
of really long lines.  While at it, fix spelling of "relevant".

Alex
2013-03-28 10:39:14 -04:00
Alex Neundorf 140692d84c Modules/readme.txt: switch from "XXX" to "Xxx"
Using XXX as name of the package is ambiguous, since it can be
interpreted as "ALLUPPERCASE" and also as "ExactCase (if the name
is already ALLUPPERCASE)".
After extensive discussion there is the conclusion that ExactCase
is intended, so using a CamelCased name makes that more obvious.

Alex
2013-03-28 10:38:49 -04:00
Matthew Woehlke 8a2fca8cd7 UseJava.cmake: require explicit request to include jars
Modify add_jar to (partly) use cmake_parse_arguments, and to require
using the named argument list INCLUDE_JARS to specify jar files (or jar
targets) to use as dependencies when creating a jar. This preserves the
ability to have such, while restoring the historic behavior that jar
files listed as sources are ignored. (The code now explicitly ignores
them, however, rather than adding them to an unused local variable, so
that it is more clear that nothing is being done with them.)
2013-03-28 10:35:42 -04:00
Ben Boeckel 4d668f3311 Clang: Add -isystem flag support everywhere
In GNU.cmake, -isystem is not used if APPLE is set. However, Clang has
pretty much always supported -isystem, so we should always use it.

In the future, GNU.cmake should do a version check to see if -isystem is
supported.
2013-03-28 10:32:24 -04:00
Bill Hoffman 118f741c49 ExternalProject: Retry on a failed git clone
Git sometimes fails to clone repositories due to network outage or
server load.  Try 3 times before giving up.
2013-03-26 10:31:39 -04:00
Brad King 36f158159b Merge topic 'FindImageMagick-v6.8.0-8'
dbd895b FindImageMagick: Search versioned suffixes (#14012)
2013-03-19 15:20:34 -04:00
Brad King b04b8ddfd8 Merge topic 'Ruby-version-selection'
d7e05e4 FindRuby: improve version selection
2013-03-19 15:20:30 -04:00