Commit Graph

5420 Commits

Author SHA1 Message Date
Brad King 4ffec8f666 Check*: Add compatibility hack for old VXL code
The cleanup in commit 4f2fcce4 (Check*: Allow result variables to
contain regex special characters, 2014-07-31) broke old VXL code that
abuses the old "if(MATCHES)" implementation by using

  SET( ${VARIABLE} ${VARIABLE} )

to reset a check result variable.  Add a compatibility hack to the
CheckFunctionExists, CheckIncludeFileCXX, and CheckSymbolExists modules
to re-run their checks when the result variable is set to its own name.
Use STREQUAL instead of MATCHES so that special characters still work.
2014-08-18 10:59:08 -04:00
Brad King d7866c52c9 ASM_MASM: Fix selection of ml64
Recognize 64-bit platforms based on the C or CXX architecture or
the platform specified with a VS generator name.
2014-08-13 14:47:54 -04:00
Brad King 0374abdb18 ASM_MASM: Add preprocessor definitions to compile lines
The MASM tools (ml, ml64) support -D preprocessor definition flags.
Update our compilation rule variable to pass them.
2014-08-13 14:47:52 -04:00
Brad King b26faaf1b5 ExternalProject: Clarify SVN_REVISION format in docs (#15081)
Show the explicit '-r' that is required.
2014-08-13 10:56:35 -04:00
Konstantin Podsvirov e6496b6023 CPackIFW: Revise this generator
CPack IFW generator updates:
- Group now can have script;
- Root package (for monolithic or one package installers) can be
  configured from group.

CMake updates:
- Native installation (no Unspecified component).
2014-08-12 15:20:59 -04:00
Brad King 1f8cfc3b5f Merge topic 'vs-windows-sdk-desktop-arm'
2b20110f MSVC: Select default standard libraries for ARM platform
2dfcf0ed VS: Fix generation of desktop applications for ARM
dbb5a7ee CMakeDetermineCompilerId: Fix detection for VS ARM platform
2014-08-12 10:17:22 -04:00
Brad King 2b20110f68 MSVC: Select default standard libraries for ARM platform
For Windows ARM targets, only kernel32.lib and user32.lib are standard.
2014-08-12 10:08:42 -04:00
Brad King dbb5a7ee31 CMakeDetermineCompilerId: Fix detection for VS ARM platform
Add WindowsSDKDesktopARMSupport to the compiler id .vcxproj to
avoid 'error MSB8022: Compiling Desktop applications for the ARM
platform is not supported.' from VS.

Inspired-by: Minmin Gong <minmin.gong@gmail.com>
Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
2014-08-12 10:08:37 -04:00
Brad King 7365a9fe92 Merge topic 'vs-windows-phone-and-store'
5d3d9a22 Help: Add notes for topic 'vs-windows-phone-and-store'
401a00d9 VS: Set WindowsPhone and WindowsStore min VS version required
709cebde VS: Generate WindowsPhone and WindowsStore application types
72395ab2 VS: Add .sln "Deploy" mark for WindowsPhone and WindowsStore binaries
2074f581 MSVC: Add system libs for WindowsPhone and WindowsStore
c72f0887 MSVC: Add default WindowsPhone and WindowsStore compile flags
1c94558a MSVC: Disable incremental linking for WindowsPhone and WindowsStore
592098e2 Define 'WINDOWS_PHONE' and 'WINDOWS_STORE' variables
aa42a78f Add WindowsPhone and WindowsStore platform information modules
b94ddf6c CMakeDetermineCompilerId: Recognize WindowsPhone and WindowsStore
d7938bff VS: Select WindowsPhone and WindowsStore default toolsets
3abd150c VS: Save WindowsPhone and WindowsStore system internally
2014-08-12 10:03:03 -04:00
Marcel Loose 150c2125dd FindMPI: Honor MPI_HOME for MPIEXEC (#14347)
We already use MPI_HOME and ENV{MPI_HOME} as hints for the location
of the MPI compilers.  Do the same for mpiexec, and then use the
location of mpiexec as a hint to find the compilers.
2014-08-11 13:09:02 -04:00
Erik Lindahl 0578c283e8 Add Fujitsu compiler detection
The Fujitsu C/C++ compilers are the default ones for K computer.
Detect both native and cross compilers by looking for the __FUJITSU
preprocessor definition.
2014-08-11 10:31:06 -04:00
Brad King f85dee25fb Merge topic 'BundleUtilities-os9-newlines'
810f5cce BundleUtilities: Allow Info.plist files which use CR line endings
2014-08-11 09:54:14 -04:00
Brad King 2fdd5d88a1 Merge topic 'cpack-ifw-generator'
ebe8d51b CPackIFW: Refactor and revise this generator
82382479 Doxygen: Add STRIP_FROM_PATH variable to doxyfile.in
3040ab8f Doxygen: Add CPack/IFW subdir to doxyfile.in INPUT section
2014-08-11 09:54:10 -04:00
Brad King 52584050c2 Merge topic 'CMakePackageConfigHelpers-INSTALL_PREFIX'
704830ae Help: Add notes for topic 'CMakePackageConfigHelpers-INSTALL_PREFIX'
e3007c92 CMakePackageConfigHelpers: Add unit tests for INSTALL_PREFIX option
d057bf85 CMakePackageConfigHelpers: Add INSTALL_PREFIX option
f3dd116c CMakePackageConfigHelpers: restructure documentation and document commands
64eca30d CMakePackageConfigHelpers: Remove unused variable
2014-08-11 09:54:08 -04:00
Konstantin Podsvirov ebe8d51b11 CPackIFW: Refactor and revise this generator
Split the monolithic cmCPackIFWGenerator source into three parts:
cmCPackIFWGenerator, cmCPackIFWInstaller, and cmCPackIFWPackage
to isolate the implementations somewhat.

Add a COMMON option to the cpack_ifw_configure_component command to make
the data component common to its parent group.

Change the default packaging method to ONE_PACKAGE_PER_COMPONENT.
This is not incompatible because the CPack IFW generator has not
yet been in a release.
2014-08-11 09:40:28 -04:00
Daniele E. Domenichelli d057bf85a6 CMakePackageConfigHelpers: Add INSTALL_PREFIX option
This option instructs configure_package_config_file to consider paths
that are not absolute as relative to the INSTALL_PREFIX directory
instead of relative to the CMAKE_INSTALL_PREFIX directory.

If this argument is not passed, the default behaviour is to use
the CMAKE_INSTALL_PREFIX variable.

The new signature is therefore:

  configure_package_config_file(<input> <output> INSTALL_DESTINATION <path>
                                                 [PATH_VARS <var1> <var2> ... <varN>]
                                                 [NO_SET_AND_CHECK_MACRO]
                                                 [NO_CHECK_REQUIRED_COMPONENTS_MACRO]
                                                 [INSTALL_PREFIX <path>])
2014-08-11 09:38:29 -04:00
Daniele E. Domenichelli f3dd116cee CMakePackageConfigHelpers: restructure documentation and document commands 2014-08-11 09:38:29 -04:00
Tim Blechmann 00ad505b37 BundleUtilities: Allow Info.plist files which use CR line endings
Convert \r to our internal end-of-line character just as we do \n.

Signed-off-by: Tim Blechmann <tim@klingt.org>
2014-08-07 14:00:16 -04:00
Tim Blechmann 810f5ccefc BundleUtilities: Allow Info.plist files which use CR line endings
Convert \r to our internal end-of-line character just as we do \n.

Signed-off-by: Tim Blechmann <tim@klingt.org>
2014-08-07 14:00:01 -04:00
Brad King ebd8fa2256 Merge topic 'ExternalData-drop-security-disclaimer'
f2ccc14b ExternalData: Drop 'not security software' disclaimer (#15060)
2014-08-06 09:26:35 -04:00
Brad King f2ccc14b22 ExternalData: Drop 'not security software' disclaimer (#15060)
Let clients do their own research on the current strength of each
hash algorithm to choose what is best for their needs.

Suggested-by: Nico Schlömer <nico.schloemer@gmail.com>
2014-08-05 11:31:47 -04:00
Nate Eldredge bf89f91034 CheckIncludeFiles: Use modern C declaration for 'main' (#15058)
Otherwise some compilers will incorrectly fail the checks when certain
warning/error flags are enabled.
2014-08-05 09:09:58 -04:00
Daniele E. Domenichelli 64eca30dc4 CMakePackageConfigHelpers: Remove unused variable 2014-08-04 10:07:16 -04:00
Brad King 9d9333b26a Merge topic 'cpack-options-sort'
58f3d96d CPack: Sort packaging options lexicographically
efb45007 CPack: Expand mark_as_advanced arguments to one-per-line
2014-08-04 10:02:22 -04:00
Brad King 506ed92c68 Merge topic 'fix-check-module-DEFINED-tests'
4f2fcce4 Check*: Allow result variables to contain regex special characters (#14923)
2014-08-04 10:02:20 -04:00
Brad King 2074f58138 MSVC: Add system libs for WindowsPhone and WindowsStore
Use the libraries that are added by default by the VS 2013 IDE
for Windows Phone and Windows Store projects.
2014-07-31 14:08:58 -04:00
Paul Annetts c72f0887ce MSVC: Add default WindowsPhone and WindowsStore compile flags
Also set the list of standard libraries to empty.
2014-07-31 14:08:56 -04:00
Gilles Khouzam 1c94558abb MSVC: Disable incremental linking for WindowsPhone and WindowsStore
Do not add a "/INCREMENTAL" flag when using the toolchains for these
systems.
2014-07-31 14:08:54 -04:00
Gilles Khouzam 592098e2d5 Define 'WINDOWS_PHONE' and 'WINDOWS_STORE' variables
Set one of these when CMAKE_SYSTEM_NAME is "WindowsPhone" or
"WindowsStore", respectively.
2014-07-31 14:08:52 -04:00
Brad King aa42a78f52 Add WindowsPhone and WindowsStore platform information modules
Simply include the "Windows" platform equivalents.  This will allow
-DCMAKE_SYSTEM_NAME=WindowsPhone or -DCMAKE_SYSTEM_NAME=WindowsStore to
select variants of the Windows platform while re-using most of the
platform information from "Windows".
2014-07-31 14:08:50 -04:00
Gilles Khouzam b94ddf6cd7 CMakeDetermineCompilerId: Recognize WindowsPhone and WindowsStore
When CMAKE_SYSTEM_NAME is set to target one of these, add
ApplicationType and ApplicationTypeRevision elements to the .vcxproj
file used to identify the compiler so that the WindowsPhone or
WindowsStore toolchains can work.

Co-Author: Brad King <brad.king@kitware.com>
2014-07-31 14:08:48 -04:00
Brad King 58f3d96d17 CPack: Sort packaging options lexicographically
This will allow new options to be added more cleanly.
2014-07-31 10:24:59 -04:00
Brad King efb45007f9 CPack: Expand mark_as_advanced arguments to one-per-line
This will allow new values to be added without editing existing lines.
2014-07-31 10:24:03 -04:00
Brad King 4f2fcce4b9 Check*: Allow result variables to contain regex special characters (#14923)
Prior to the existence of the if(DEFINED) condition, many of our Check
modules implemented the condition with a hack that takes advantage of
the auto-dereference behavior of the if() command to detect if a
variable is defined.  The hack has the form:

 if("${VAR} MATCHES "^${VAR}$")

where "${VAR}" is a macro argument reference.  However, this does not
work when the variable named in the macro argument contains characters
that have special meaning in regular expressions, such as '+'.  Run the
command

 git grep -E 'if\("\$\{.*\}" MATCHES "\^\$\{.*\}\$"\)' -- Modules/Check*

to identify lines with this problem.  Use if(NOT DEFINED) instead.
2014-07-31 09:48:41 -04:00
Erik Lindahl 5570d8d3f3 Check*CompilerFlag: Add pattern for Fujitsu compiler (#15051) 2014-07-31 09:22:02 -04:00
Brad King 9e7d12466e Merge topic 'cpack-mark-ifw-advanced'
5cabc2cd CPack: Mark CPACK_BINARY_IFW option as advanced
2014-07-31 09:17:47 -04:00
Brad King b056b8c46c Merge topic 'cpack-add-lzma-package-options'
9d93e099 CPack: Add lzma-compressed package options
2014-07-31 09:17:45 -04:00
Brad King ba53bc5a9d Merge topic 'check-flag-avoid-semicolon'
cac91206 Check*CompilerFlag: Avoid ';' in common pattern (#15048)
2014-07-31 09:17:43 -04:00
Brad King 2ba18f6284 Merge topic 'cpack-ifw-generator'
e7511b7f CPackIFW: Add package configuration variables
b2340001 CPackIFW: Document cpack_ifw_configure_component DEPENDS option
2014-07-31 09:17:37 -04:00
Brad King 9f575a26fd Merge topic 'pdb-genex'
f86850ef Genex: Implement generator expressions for target PDB files.
028ad318 Genex: Simplify filesytem artifact code
2014-07-31 09:17:35 -04:00
Nils Gladitz f86850ef60 Genex: Implement generator expressions for target PDB files. 2014-07-31 09:17:53 -04:00
Brad King 5cabc2cd43 CPack: Mark CPACK_BINARY_IFW option as advanced
All similar options are already marked.

Suggested-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
2014-07-30 16:00:06 -04:00
Daniel Pfeifer 9d93e099e6 CPack: Add lzma-compressed package options
Add options to package binary and source tarballs:

 CPACK_BINARY_7Z
 CPACK_BINARY_TXZ
 CPACK_SOURCE_7Z
 CPACK_SOURCE_TXZ
2014-07-30 15:56:34 -04:00
Brad King 2eda7499d1 Merge branch 'check-flag-avoid-semicolon' into release 2014-07-30 15:31:45 -04:00
Brad King cac91206b3 Check*CompilerFlag: Avoid ';' in common pattern (#15048)
In commit v3.0.0-rc1~551^2~1 (Check*CompilerFlag: make C and CXX modules
share most error patterns, 2013-08-08) a pattern containing a ';' was
moved out of a ""-quoted argument and into a variable.  CMake flattens
the containing list and breaks the pattern.  Use a '.' to match ';'.
2014-07-30 15:21:44 -04:00
Brad King 128a0c36ec Merge topic 'remove-link-remnants'
250ad08a Ninja: Remove _COMPILER_LINKER_OPTION_FLAG_ remnants
2014-07-30 09:31:50 -04:00
Konstantin Podsvirov e7511b7fbe CPackIFW: Add package configuration variables 2014-07-29 15:55:19 -04:00
Konstantin Podsvirov b234000184 CPackIFW: Document cpack_ifw_configure_component DEPENDS option 2014-07-29 15:52:01 -04:00
Nils Gladitz 250ad08a08 Ninja: Remove _COMPILER_LINKER_OPTION_FLAG_ remnants 2014-07-29 21:33:38 +02:00
Brad King 56e6975ce9 ExternalProject: Recognize lzma-compressed files (#13515)
Add .7z, .tar.xz, and .txz file extensions.

Inspired-by: Joke de Buhr <joke@seiken.de>
Inspired-by: David Cole <DLRdave@aol.com>
2014-07-29 09:32:27 -04:00
Brad King 98ea03443b ExternalProject: Recognize .tbz2 extension
Also fix .bz2 extension to be .tar.bz2 since we only support compressed
tarballs and not plain compressed files.

Suggested-by: Nils Gladitz <nilsgladitz@gmail.com>
Suggested-by: Rolf Eike Beer <eike@sf-mail.de>
2014-07-29 09:29:57 -04:00
Brad King 8cd83e0b71 Merge topic 'windows-ce-cleanup'
7079f33d WindowsCE: Drop unused Platform/WindowsCE-MSVC module
05373f7e WindowsCE: Refactor setting of "WINCE"
1acde6b0 MSVC: Use STREQUAL to check for WindowsCE
2014-07-29 08:52:21 -04:00
Brad King e8698861c6 Merge topic 'osx-no-sysroot-for-deployment'
5b4faeef OS X: Allow deployment target with "/" sysroot (#15040)
2014-07-29 08:52:13 -04:00
Brad King 35746899a3 Merge topic 'FindQt4-more-plugins'
4b5052b0 FindQt4: Add nativewifi and qtga plugins
2014-07-29 08:52:11 -04:00
Brad King 7079f33d6a WindowsCE: Drop unused Platform/WindowsCE-MSVC module
This module was created to mirror Platform/Windows-MSVC.cmake, but this
is not necessary because nothing includes "Platform/<os>-<id>.cmake"
directly.  The Platform/Windows-MSVC module is only a helper for the
Platform/Windows-MSVC-<lang> modules.
2014-07-28 16:21:50 -04:00
Brad King 05373f7ea7 WindowsCE: Refactor setting of "WINCE"
Move it to the Platform/Windows module since it is independent of the
compiler used.  While at it, remove redundant "WIN32" setting from
Platform/Windows-MSVC since Plaform/Windows already sets its.
2014-07-28 16:21:47 -04:00
Brad King 1acde6b003 MSVC: Use STREQUAL to check for WindowsCE
In the Platform/Windows-MSVC module it is not necessary to use MATCHES
because we are comparing against an exact string.
2014-07-28 16:21:45 -04:00
Brad King 931bd59e68 Merge branch 'FindQt4-more-plugins' into release 2014-07-28 13:20:08 -04:00
Brad King 2699ac5ef7 Merge topic 'fix-re-cmake-with-compiler'
8981513a CMakeDetermineCompiler: Simplify CMAKE_<LANG>_COMPILER default force-cache
731427a6 cmGlobalGenerator: Do not re-add CMAKE_<LANG>_COMPILER
2014-07-28 10:35:53 -04:00
Brad King 68f4a0ee30 Merge topic 'cpack-ifw-generator'
b9be4d21 Help: Add notes for topic 'cpack-ifw-generator'
73b336c9 CPackIFW: Replace use of strftime with cmTimestamp
44850a26 CPack: Add an "IFW" generator for Qt Framework Installer
2014-07-28 10:35:49 -04:00
Konstantin Podsvirov 44850a267d CPack: Add an "IFW" generator for Qt Framework Installer
Add support for packaging with the Qt Framework Installer tools:

 http://qt-project.org/doc/qtinstallerframework/index.html

Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
2014-07-28 10:24:03 -04:00
Jeremy Huddleston 5b4faeefe3 OS X: Allow deployment target with "/" sysroot (#15040)
Allow the combination

 -DCMAKE_OSX_DEPLOYMENT_TARGET="10.8" -DCMAKE_OSX_SYSROOT="/"

to work.  Treat the "/" sysroot as targeting the current OS X version.
2014-07-28 09:52:21 -04:00
Mathieu MARACHE 4b5052b0cd FindQt4: Add nativewifi and qtga plugins
While at it, update QT_QTGUI_PLUGINS to use QT_IMAGEFORMATS_PLUGINS
instead of duplicating the list.
2014-07-28 09:39:23 -04:00
Brad King 8981513a81 CMakeDetermineCompiler: Simplify CMAKE_<LANG>_COMPILER default force-cache
If find_program does not find CMAKE_<LANG>_COMPILER, use set_property()
to force the value to be that of CMAKE_<LANG>_COMPILER_INIT instead of
set().  This allows us to set the value without re-specifying the type
and documentation, thus preserving what find_program set.
2014-07-24 13:37:07 -04:00
Brad King 1342e0222f FindImageMagick: Provide per-component include dirs (#15007)
Set the ImageMagick_<component>_INCLUDE_DIRS variable that is mentioned
in the documentation but was not set before.
2014-07-23 15:33:48 -04:00
bastien ROUCARIES 6f5581c105 FindImageMagick: Find arch include dir (#15007) 2014-07-23 09:44:55 -04:00
Brad King c86b99c351 Merge topic 'fix-QCC-compile-flags'
3151024d QNX: Add missing flags for configurations and artifact creation.
2014-07-21 10:36:07 -04:00
Brad King d8934eedaf Merge branch 'fix-QCC-compile-flags' into release 2014-07-17 09:41:40 -04:00
Stephen Kelly 3151024d24 QNX: Add missing flags for configurations and artifact creation.
Commit v3.0.0-rc1~111^2 (QNX: Introduce QCC compiler id for that
QNX platform compiler., 2014-01-20) split handling of the QNX QCC
compiler into a separate compiler-id.  That refactoring results in
the QCC compiler not using the CMake-compiler-id "GNU", which means
that the __compiler_gnu macro is no longer executed for it.

Add Compiler/QCC*.cmake modules to define and call the __compiler_qcc
macro and teach it to call __compiler_gnu internally.  Remove the
corresponding pieces from the Platform/QNX*.cmake modules.

It is also necessary to change the language conditional to dereference
the lang macro parameter, which is another bug introduced by the
same commit.  The extra -lang-c++ flag is only necessary when the CXX
compiler is specified as 'qcc' instead of 'QCC' in the toolchain file,
which is why this bug was not noticed before.  The flag is also necessary
in that case when linking in order to find the appropriate standard
libraries.  The flag was not previously added when linking executables,
so linking failed even with CMake 2.8.12 with the lower-case compiler-id.

Co-Author: Brad King <brad.king@kitware.com>
2014-07-17 09:36:18 -04:00
Bill Hoffman 1e005eadbc CTest: Fix MemoryCheckType from 'ctest -T MemCheck'
Before this commit, you would have to run ctest -S mode to get
MemoryCheckType to work. This is because CMAKE_COMMAND was not set.
The fix is to use cmSystemTools::GetCMakeCommand instead.
2014-07-16 11:50:33 -04:00
Brad King 41fc00820a Merge topic 'FindCurses-overhaul'
6c8364e6 FindCurses: Overhaul Curses and NCurses search logic (#15011)
2014-07-15 10:48:20 -04:00
Rex Dieter 90245fe86e FindImageMagick: Use pkgconfig hints if available (#14012)
Tested-by: bastien ROUCARIES <roucaries.bastien@gmail.com>
2014-07-14 15:05:28 -04:00
Brad King 6c8364e6cb FindCurses: Overhaul Curses and NCurses search logic (#15011)
Produce a more consistent result by finding only a single include
directory and reporting which headers may be included from it.  The
previous search for each header separately might find pieces from
separate and incompatible packages.

While at it, provide the CURSES_INCLUDE_DIRS result variable to be
consistent with other modules.
2014-07-14 11:23:02 -04:00
Brad King c72642f927 Merge topic 'FindCurses-blank-at-eof'
ccf2fca1 FindCurses: Remove blank line at end of file
2014-07-14 09:42:40 -04:00
Brad King 23eb0aaef5 Merge topic 'wince-fix-dll-linking'
7e1283e4 MSVC: Fix linking of DLLs on WinCE (#15013)
2014-07-14 09:37:57 -04:00
Brad King ccf2fca1fa FindCurses: Remove blank line at end of file 2014-07-14 09:14:49 -04:00
Brad King afc452fe21 Merge branch 'wince-fix-dll-linking' into release 2014-07-10 15:16:19 -04:00
Brad King 7e1283e48c MSVC: Fix linking of DLLs on WinCE (#15013)
On WinCE we must link both shared libraries and executables with the
/subsystem:windowsce flag.  Teach Platform/Windows-MSVC to pass it
to the linker in both cases.

Suggested-by: Gunnar Roth <gunnar.roth@gmx.de>
2014-07-10 15:10:32 -04:00
Brad King 49910f1a2c Merge topic 'FindSWIG-swig3.0'
7400695e FindSWIG: Add support for swig 3.0 application
2014-07-09 10:02:43 -04:00
Brad King 77e4f5490e Merge topic 'CMakeExpandImportedTargets-CMP0045'
49f32168 CMakeExpandImportedTargets: Do not read property on non-target (#15008)
2014-07-09 10:02:41 -04:00
Brad King 8df37d6d5e Merge branch 'CMakeExpandImportedTargets-CMP0045' into release 2014-07-07 11:19:32 -04:00
Brad King 49f3216854 CMakeExpandImportedTargets: Do not read property on non-target (#15008)
Avoid behavior that is disallowed by CMP0045.  Check whether a target
exists before trying to read its properties.
2014-07-07 10:58:43 -04:00
Sylvain Joubert 7400695ee3 FindSWIG: Add support for swig 3.0 application 2014-07-07 09:18:50 -04:00
Brad King f1626aa101 Merge topic 'dev/export-from-obj-libs'
5ca1d3d5 GenerateExportHeader: support exporting from OBJECT libraries
2014-07-07 08:54:37 -04:00
Brad King c9feebb9e8 Merge topic 'WriteCompilerDetectionHeader-valid-prefix'
b47c125f WCDH: Ensure that the prefix argument to the macro is valid.
2014-07-07 08:54:33 -04:00
Brad King f59ad29a0e Merge topic 'no-cross-install_name_tool'
591a7388 OS X: Only search for install_name_tool if the toolchain has it
2014-07-07 08:54:25 -04:00
Ben Boeckel 5ca1d3d59c GenerateExportHeader: support exporting from OBJECT libraries 2014-07-03 10:23:40 -04:00
Stephen Kelly b47c125ff7 WCDH: Ensure that the prefix argument to the macro is valid.
The prefix must be a C-identifier because it is written as the
prefix of preprocessor macros and possibly structs.
2014-07-02 19:37:04 +02:00
Brad King 164bd68a03 Merge topic 'FindJNI-ppc64le'
18ac6713 FindJNI: search for ppc64 on ppc64le as well
2014-07-02 09:54:46 -04:00
Florent Castelli 591a7388cf OS X: Only search for install_name_tool if the toolchain has it
When cross compiling, toolchains won't have install_name_tool,
which is provided by Xcode and command line tools on OS X.
This is a Mach-O specific utility and not required on all platforms.
2014-07-02 09:42:22 -04:00
Brad King 9750a5581d Merge topic 'cuda_osx_clang'
32bcec5f FindCUDA: Fix OSX Clang & no C language enabled
2014-07-01 09:23:17 -04:00
Brad King 31ec558be1 Merge topic 'FindVTK-drop-4.0-support'
117e7e11 FindVTK: Drop support for finding VTK 4.0
2014-07-01 09:23:15 -04:00
Brad King 117e7e1177 FindVTK: Drop support for finding VTK 4.0
Convert to a simple thin-wrapper around the find_package(VTK NO_MODULE).
This makes the code much simpler and improves error messages.
2014-07-01 08:41:52 -04:00
Dinar Valeev 18ac6713e8 FindJNI: search for ppc64 on ppc64le as well
IcedTea 2.5 have changed libarch for ppc64le to ppc64. Adjust FindJNI
to look for both for backward compatibility.

Signed-off-by: Dinar Valeev <dvaleev@suse.com>
2014-07-01 12:07:37 +02:00
Brad King 1a575a91d2 Merge topic 'FindQt4-ignore-qt5'
567d4d8d FindQt4: Don't further process qmake if it does not belong to Qt4
2014-06-30 14:50:37 -04:00
Brad King 1563668fd0 Merge topic 'vs14-generator'
f0e298ad Help: Add notes for topic 'vs14-generator'
5c105140 Tests: Simplify LoadCommand tests
b1cbd577 FindBoost: Add -vc140 mangling for VS 14
bdc7d9c8 VS14: Fix Cl and Link flag tables as previous versions
d96b3f68 VS14: Generate flag tables from MSBuild v140 tool files
65624c39 VS14: Add Visual Studio 14 generator (#14982)
8635ac23 Tests/Preprocess: Remove unnecessary VS version tests
2014-06-30 14:50:34 -04:00
Brad King 4f7f665183 Merge topic 'FindOpenMP-intel-qopenmp'
4671f3ab FindOpenMP: ICC 15 deprecates -openmp, use -qopenmp
2014-06-30 14:50:33 -04:00
Brad King 2e8a5ac31f Merge topic 'FindJPEG-new-windows-name'
115811dc FindJPEG: Add alternative name 'libjpeg'
2014-06-30 14:50:31 -04:00
Adam Strzelecki 32bcec5fab FindCUDA: Fix OSX Clang & no C language enabled
When setting default CUDA_HOST_COMPILER we must dereference CMAKE_C_COMPILER,
i.e. /usr/bin/clang should be used instead /usr/bin/cc which is symlink.
Otherwise CUDA thinks it is GCC and issues -dumpspecs which is unknown option
to Clang.

Also in case neither CMAKE_C_COMPILER is defined (project does not use C
language) nor CUDA_HOST_COMPILER is specified manually we should skip -ccbin
and let nvcc use its own default C compiler.
2014-06-30 11:23:36 -04:00
Nils Gladitz 567d4d8dc6 FindQt4: Don't further process qmake if it does not belong to Qt4
If the only qmake that can be found belongs to Qt5 the find module
would otherwise still further interrogate it and issue diagnostics
which are specific to Qt4.
2014-06-27 16:24:40 +02:00
Brad King 2196cae4ec Merge topic 'UseSWIG-fix-noproxy-check'
e932ac9c UseSWIG: Fix check for noproxy flag (#14990)
2014-06-27 09:42:54 -04:00
Adam Strzelecki 4671f3ab7d FindOpenMP: ICC 15 deprecates -openmp, use -qopenmp
Intel Composer XE 2015 Beta 2 deprecates all options starting with -o
for sake of compatibility with other compilers expecting anything goes
after -o... is output file name.
2014-06-27 09:30:51 -04:00
Sebastian Elsner 115811dcbd FindJPEG: Add alternative name 'libjpeg'
Newer versions of jpeglib build the .lib file on Windows with a
different name by default.  Its now called libjpeg.lib instead of
jpeg.lib.
2014-06-27 09:26:05 -04:00
Brad King b1cbd577c1 FindBoost: Add -vc140 mangling for VS 14
Co-Author: Pawel Stopinski <diokhan@go2.pl>
2014-06-25 14:51:25 -04:00
Brad King 65624c39e3 VS14: Add Visual Studio 14 generator (#14982)
Call the generator "Visual Studio 14" without any year because this
version of VS does not provide a year in the product name.

Copy cmGlobalVisualStudio12Generator to cmGlobalVisualStudio14Generator
and update version numbers accordingly.  Add the VS14 enumeration value.
Teach the platform module Windows-MSVC to set MSVC14 and document the
variable.  Teach module InstallRequiredSystemLibraries to look for the VS
14 runtime libraries.

Teach tests CheckCompilerRelatedVariables, VSExternalInclude, and
RunCMake.GeneratorToolset to treat VS 14 as they do VS 10, 11, and 12.

Co-Author: Pawel Stopinski <diokhan@go2.pl>
2014-06-25 14:51:19 -04:00
Brad King e932ac9cad UseSWIG: Fix check for noproxy flag (#14990)
The check for this flag added by commit v3.0.0-rc1~284^2 (UseSWIG: Name
python module according to swig flags, 2013-11-26) can get false
positives on flags like "-noproxydel".  Improve the check to match only
"-noproxy".

Suggested-by: Garth Wells <gnw20@cam.ac.uk>
2014-06-25 13:57:24 -04:00
Brad King a51efd1e6d Merge topic 'update-cdash-location'
57ddde52 Update CDash server URL
1bd4e006 Tests: Fix CMAKE_TESTS_CDASH_SERVER parsing
2014-06-25 10:53:05 -04:00
Philipp Moeller 144b255b08 FindGLUT.cmake: Add imported targets and documentation
Also let find_library really search for frameworks on OS X.
2014-06-24 14:08:02 -04:00
Brad King 57ddde524b Update CDash server URL
It is now at open.cdash.org and does not start in "/CDash".
2014-06-24 13:54:52 -04:00
Philipp Möller c90c7fca6e FindX11: fix documentation formatting error
While at it, remove excess indentation.
2014-06-24 08:24:33 -04:00
Philipp Möller 3d82a2234a FindGLEW: Add imported target and documentation 2014-06-23 11:09:29 -04:00
Philipp Möller 5a7ff42100 FindZLIB: Add imported target and documentation 2014-06-23 11:09:25 -04:00
Brad King 0474aa4a78 Merge topic 'FindOpenCL-fix-ENV'
d4295539 FindOpenCL: Added missing ENV for each environment variable reference
2014-06-23 10:27:58 -04:00
Matthäus G. Chajdas d429553976 FindOpenCL: Added missing ENV for each environment variable reference
Also add an 'include' path suffix that may appear after the value of
some of the environment variables.
2014-06-23 10:26:52 -04:00
Bjoern Thiel 15a19c31e5 InstallRequiredSystemLibraries: Allow repeat use per-config
To be able to include InstallRequiredSystemLibraries more than once
(e.g. to get the Debug and Release libraries separately), clear the
internal library list for non-matching configuration.
2014-06-16 15:36:25 -04:00
Stephen Kelly f0a0f3dcb4 WCDH: Fix compiler id test for compatibility macros.
Enable the alignment features for Clang.
2014-06-13 18:50:10 +02:00
Stephen Kelly 627ad96bd3 Project: Detect other compilers before detecting Clang.
Commit v2.8.10.1~5^2 (Fix PathScale compiler id for Clang-based
upstream, 2012-11-05) re-ordered the detection logic for PathScale.

Other compiler vendors are also producing Clang-based frontends, so
detect "actual" Clang as one of the last compilers to allow for others
doing the same.

    http://llvm.org/devmtg/2014-04/PDFs/Posters/ClangIntel.pdf
    http://docwiki.embarcadero.com/RADStudio/XE5/en/Clang-based_C%2B%2B_Compilers
2014-06-13 18:50:10 +02:00
Stephen Kelly bc950169c7 WCDH: Remove noise from generated defines.
The DECL part is redundant, and the language part is not needed. The
source language and context already determines the language, so there
is no need to repeat it in the define name.
2014-06-13 18:50:10 +02:00
Brad King 1f00d738bd Merge topic 'doc-WCDH-align-macros'
34f95bcf WCDH: Document the alignof and alignas wrapper macros.
2014-06-12 11:28:47 -04:00
Eric Berge dbc0f63d11 ProcessorCount: Update for HPUX 11iv3 2014-06-10 13:27:58 -04:00
Stephen Kelly 34f95bcfff WCDH: Document the alignof and alignas wrapper macros. 2014-06-10 18:07:32 +02:00
Brad King 487b6ccdcd Merge topic 'WriteCompilerDetectionHeader-compiler-versions'
ddec418a Features: Add compiler version support to WriteCompilerDetectionHeader.
b7029576 Project: Add configurable name for version computation macros.
78acaafe Project: Separate simulated compiler id from version detection.
567af1a5 WCDH: Issue a better message for version compatibility.
2014-06-10 09:17:43 -04:00
Brad King 2944bf164e Merge topic 'android-platform'
42f74df6 Add basic Android platform module
2014-06-10 09:17:39 -04:00
Stephen Kelly ddec418a8f Features: Add compiler version support to WriteCompilerDetectionHeader. 2014-06-09 23:42:20 +02:00
Brad King 074ac5dbe9 Merge topic 'WriteCompilerDetectionHeader-deprecated-define'
62863106 WCDH: Add compatibility defines for deprecation.
2014-06-09 10:28:45 -04:00
Brad King d20792f302 Merge topic 'windows-RC-extension'
514c2e3d CMakeRCCompiler: Handle uppercase 'RC' as resource file format extension
2014-06-09 10:28:38 -04:00
Stephen Kelly 62863106f0 WCDH: Add compatibility defines for deprecation. 2014-06-09 10:28:24 -04:00
Brad King 94770baf30 FindOpenGL: Fix typo in documented target name
We provide "OpenGL::GL", not "OpenGL::OpenGL".

Reported-by: Daniel Pfeifer
2014-06-09 08:54:22 -04:00
Brad King 42f74df6d4 Add basic Android platform module
Create a Platform/Android module that includes Platform/Linux since
Android is based on Linux.  Provide only the minimal settings needed to
get builds with Android NDK toolchains to work.

Disable use of RPATH since the Android loader ignores it and we cannot
predict the install destination anyway.

Android supports soname but shared library names must end in ".so" and
we cannot represent the versioned names with associated symlinks on all
host operating systems anyway.  However, we do want the SONAME of
library files to be set so that linking to them by path to the library
file produces NEEDED entries with the soname and not the path.  Add a
new CMAKE_PLATFORM_NO_VERSIONED_SONAME setting to tell the
cmTarget::GetLibraryNames method that not to use the VERSION or
SOVERSION target properties in the soname.
2014-06-06 14:03:42 -04:00
Tim Blechmann 514c2e3d9e CMakeRCCompiler: Handle uppercase 'RC' as resource file format extension
We already match lowercase 'rc'.  Add 'RC' too.  The latter is listed in
other CMake<LANG>Compiler modules as ignored for their languages already.

Signed-off-by: Tim Blechmann <tim@klingt.org>
2014-06-06 10:11:15 -04:00
Philipp Möller b7804cb6ce FindOpenGL: Provide imported targets for GL and GLU
Create OpenGL::GL and OpenGL::GLU imported targets using the locations
found.
2014-06-05 14:29:45 -04:00
Philipp Möller 0496c4302e FindOpenGL: Organize and format module documentation 2014-06-05 09:58:40 -04:00
Stephen Kelly b70295760c Project: Add configurable name for version computation macros. 2014-06-05 14:02:52 +02:00
Stephen Kelly 78acaafebe Project: Separate simulated compiler id from version detection. 2014-06-05 14:02:52 +02:00
Stephen Kelly 567af1a596 WCDH: Issue a better message for version compatibility. 2014-06-05 13:58:27 +02:00
Brad King 06ab7db30c FindQt4: Use standard section header underline convention
The FindQt4 module is a CMake Domain object of type "module".
Our convention for domain object document titles is "------"
and domain object document sections is "^^^^^^".  Switch to
these within the FindQt4 documentation.
2014-06-02 14:11:54 -04:00
Brad King 7e011a3db3 Merge topic 'dpkg-shlibdeps-locale'
21ec5f84 CPackDeb: Invoke "dpkg-shlibdeps --version" with C locale
2014-05-29 09:58:45 -04:00
Brad King 0fbec3d3c2 Merge topic 'FindDoxygen-windows-dot'
f49b6a33 FindDoxygen: Deprecate DOXYGEN_DOT_PATH
7980eab8 FindDoxygen: Improve search for Graphviz "dot" on Windows
2014-05-29 09:58:39 -04:00
Brad King 1468e986e1 Merge topic 'cxx14-features'
dd043c3f Features: Add support for C++14 features.
2014-05-29 09:58:37 -04:00
Brad King ca2b012cb9 Merge topic 'FindFreetype-updates'
58f7baab FindFreetype: Indent with 2 spaces instead of 4
444f8801 FindFreetype: Use lower-case name in call to FPHSA
836a28d5 FindFreetype: Move PATH_SUFFIXES argument for more consistency
4ad6dace FindFreetype: Add newlines to reduce code width
2014-05-28 12:34:35 -04:00
Brad King c8c359bb0f Merge topic 'GNUtoMS-vs-12'
668e571d GNUtoMS: Add support for VS 2013 (#14936)
2014-05-28 12:34:32 -04:00
Nils Gladitz 21ec5f8451 CPackDeb: Invoke "dpkg-shlibdeps --version" with C locale
The version message is localized and may not match when a non-english locale is in use.
2014-05-28 13:17:57 +02:00
Brad King f49b6a33f6 FindDoxygen: Deprecate DOXYGEN_DOT_PATH
While at it, do not cache the value since it should always be
computed directly from DOXYGEN_DOT_EXECUTABLE.

Inspired-by: Lars Bilke <larsbilke83@googlemail.com>
2014-05-27 16:40:40 -04:00
Brad King 7980eab8d5 FindDoxygen: Improve search for Graphviz "dot" on Windows
As of Graphviz 2.31, their installer provides no PATH or registry
modifications.  Glob possible install paths instead.

Inspired-by: Lars Bilke <larsbilke83@googlemail.com>
2014-05-27 16:34:18 -04:00
Taylor Holberton 58f7baab14 FindFreetype: Indent with 2 spaces instead of 4
This is more consistent with style elsewhere.
2014-05-27 10:42:10 -04:00
Taylor Holberton 444f880146 FindFreetype: Use lower-case name in call to FPHSA
Use 'find_package_handle_standard_args' because lower-case style is
now preferred.
2014-05-27 10:42:10 -04:00
Taylor Holberton 836a28d537 FindFreetype: Move PATH_SUFFIXES argument for more consistency 2014-05-27 10:42:10 -04:00
Taylor Holberton 4ad6dacede FindFreetype: Add newlines to reduce code width
This also makes argument lists easier to update.
2014-05-27 10:42:10 -04:00
Stephen Kelly ca5d990f02 Help: Add a manual for compiler feature control.
Link to it from the documentation of related properties, variables
and commands.

Extend the cmake-developer(7) documentation with notes on
extending feature support for compilers.
2014-05-27 09:35:00 -04:00
Brad King 668e571d61 GNUtoMS: Add support for VS 2013 (#14936)
Add to the Platform/Windows-GNU module list of VS registry entries those
for VS 2013.  Also add the name "vcvars64.bat" used by VS 10 and above
for 64-bit tools.
2014-05-27 09:24:26 -04:00
Stephen Kelly dd043c3f21 Features: Add support for C++14 features.
Record the features implemented by GNU 4.9 and Clang 3.4.
2014-05-22 18:01:23 +02:00
Brad King 04fc5dd493 Merge topic 'OpenBSD-paths'
bd32b682 OpenBSD: honor the LOCALBASE and X11BASE environment variables
2014-05-22 10:37:46 -04:00
Brad King 99d718c51d Merge topic 'FindQt_versioned_tools'
0645eedb FindQt[34]: Prefer matching versioned tool names
2014-05-22 10:37:45 -04:00
Rolf Eike Beer 0645eedb71 FindQt[34]: Prefer matching versioned tool names
After finding qmake we search in QT_BINARY_DIR for the other Qt tools.
Try all versioned executable names before trying the plain executable name.
This makes it much more likely that if 2 different major versions are installed
in the same prefix CMake will be able to detect a proper set of tools.
2014-05-22 08:56:05 -04:00
Rolf Eike Beer bd32b682f2 OpenBSD: honor the LOCALBASE and X11BASE environment variables 2014-05-21 20:38:55 +02:00
Brad King 04a0e5ff14 Merge topic 'clang-features'
cda23319 Features: Record for Clang 3.4
2014-05-21 10:31:54 -04:00
Brad King 20a32a4b72 Merge topic 'GNUInstallDirs-OpenBSD'
d4fdd9c1 GNUInstallDirs: use the proper default for info and man paths on OpenBSD
2014-05-21 10:31:52 -04:00
Brad King 7e62353a4c Merge topic 'OpenBSD_no_multilib'
956b7190 OpenBSD: disable FIND_LIBRARY_USE_LIB64_PATHS
2014-05-21 10:31:50 -04:00
Rolf Eike Beer 956b719087 OpenBSD: disable FIND_LIBRARY_USE_LIB64_PATHS
OpenBSD has no multilib paths.
2014-05-20 18:36:34 +02:00
Rolf Eike Beer d4fdd9c189 GNUInstallDirs: use the proper default for info and man paths on OpenBSD 2014-05-20 18:14:10 +02:00
Stephen Kelly 0dffbb93de Features: Ensure that list exists to remove from. 2014-05-20 16:42:54 +02:00
Stephen Kelly cda233194f Features: Record for Clang 3.4
Clang 3.4 supports all features currently known to CMake.
2014-05-20 16:03:48 +02:00
Brad King d01320d4b7 Merge topic 'preserve_cmake_minimum_required_version'
1890c668 Keep cmake_minimum_required calls in sync with current version
81a3f228 Do not change minimum required version in modules
2014-05-20 09:40:16 -04:00
Brad King c1edede31f Merge topic 'compile-features-C-language'
e0890d03 Features: Extend concept to C language.
2014-05-20 09:40:14 -04:00
Daniele E. Domenichelli 1890c668e9 Keep cmake_minimum_required calls in sync with current version
Update cmake_minimum_required calls in CMakeLists.txt in Modules and in
CMakeLists.txt generated by other modules, so that they are always in
sync with current CMake version.
2014-05-19 16:55:12 +02:00
Daniele E. Domenichelli 81a3f22882 Do not change minimum required version in modules
Some modules change CMake minimum required version when they are
included. For example:

  cmake_minimum_required(VERSION 2.8.12)
  message("${CMAKE_MINIMUM_REQUIRED_VERSION}")
  include(CheckTypeSize)
  message("${CMAKE_MINIMUM_REQUIRED_VERSION}")

will produce the following output:

  2.8.12
  2.6

This patch ensures that when you include a CMake module the minimum
required version and the policies set are left unchanged.

Fixes Issue #14864
2014-05-19 16:55:12 +02:00
Brad King 7019152aa2 Merge topic 'FindCUDA-separable-compilation-flags'
6ad14c71 FindCUDA: Use CUDA_NVCC_FLAGS* for separable compilation
2014-05-19 10:40:24 -04:00
James Bigler 6ad14c71bb FindCUDA: Use CUDA_NVCC_FLAGS* for separable compilation
Previously when linking the intermediate link file for separable compilation
the CUDA_NVCC_FLAGS* were not used.  This caused tremendous confusion when
using this feature, and I consider it to be a bug.  This change should fix
this.
2014-05-19 09:14:15 -04:00
Stephen Kelly f6f1095413 Features: Use the features symbol in the feature-test compile.
Clang discards the entire string if it is not used, removing
the ability to read the features from the compiled binary. That
is prevented by using the symbol.

GNU with -O3 also discards the string, so use the string in a
way which is determined by a runtime value (argc) to prevent
it being discarded.
2014-05-15 19:38:25 +02:00
Stephen Kelly e0890d03a4 Features: Extend concept to C language.
Add properties and variables corresponding to CXX equivalents.

Add features for c_function_prototypes (C90), c_restrict (C99),
c_variadic_macros (C99) and c_static_assert (C11). This feature
set can be extended later.

Add a <PREFIX>_RESTRICT symbol define to WriteCompilerDetectionHeader
to conditionally represent the c_restrict feature.
2014-05-15 00:15:18 +02:00
Stephen Kelly 5c04dfe465 Features: Only require AppleClang policy to be NEW on APPLE. 2014-05-14 23:55:34 +02:00
Brad King 2e347eb183 Merge topic 'WriteCompilerDetectionHeader-module'
62a4a67d Add the WriteCompilerDetectionHeader module.
2014-05-14 13:58:30 -04:00
Stephen Kelly 62a4a67dc5 Add the WriteCompilerDetectionHeader module.
Provide a function to write a portable header to detect compiler
features.  Generate a preprocessor #error for unknown compilers
and compiler versions whose features are not yet recorded.  This
error condition might be relaxed in the future, but for now it
is useful for verification of expectations.
2014-05-14 13:57:30 -04:00
Rolf Eike Beer 293bcf7a60 FindGTest: use new add_test() signature (#14913)
This allows to use target names as executables.
2014-05-12 18:21:37 +02:00
Brad King e506f1f16e Merge topic 'features-gnu-oldest-supported'
f782417b Features: Record the oldest supported compiler.
2014-05-12 09:31:08 -04:00
Stephen Kelly e2f09aff12 CMakeConfigurableFile: Remove excess newline. 2014-05-10 09:07:05 +02:00
Stephen Kelly 5109b0428d Features: Fix GNU 4.8.1 version test. 2014-05-10 08:58:49 +02:00
Stephen Kelly f5bf9d4311 Tests: Make CompileFeature tests use highest standard known.
Remove the use of check_cxx_source_compiles which is now just getting in
the way.

Blacklist the cxx_alignof feature in the test with GNU 4.7. The test
file compiles, but it is documented as available first in GNU 4.8.
2014-05-09 14:39:30 +02:00
Ben Boeckel e423f1c05d Windows: Avoid () in environment variable references
Use nested variable evaluation instead.
2014-05-08 13:24:49 -04:00
Stephen Kelly f782417b8c Features: Record the oldest supported compiler.
This may be used to ensure that features are reported correctly
only if the compiler minimum version is met.
2014-05-08 18:02:14 +02:00
Brad King f1d504d6cd Merge topic 'GNU-4.7-features'
9cbc63e4 Features: Record for GNU 4.7.
2014-05-08 11:28:03 -04:00
Brad King 3e206022ab Merge topic 'minor-cleanups'
47795421 Fix whitespace in docs.
aa283b6b Features: Fix test for GNU 4.8.1.
bbfd4cd4 Features: Include the language of the compiler in error messages.
2014-05-08 11:27:57 -04:00
Brad King 9add7071a5 Merge topic 'hp-cpp98-tests'
b0f277db HP aCC: record compiler flag for Ansi C++98 support for version 3.80 onwards
2014-05-08 11:27:55 -04:00
Brad King 7b3def93b6 Merge topic 'decay-language-version'
205215fb cmTarget: Add CXX_STANDARD_REQUIRED to control decay.
1df2116b Features: Decay language flag if requested is not available.
c4f4dac2 Project: Fix exit-on-error with compile feature tests.
5bb7ce72 Project: Use nullary form of main for compile feature tests.
64254e7a Project: Remove extern from static string in feature tests.
0d9c99bf Help: Fix order of help entries.
dc7639bd Tests: Fix name of cache variable.
2014-05-08 11:27:53 -04:00
Brad King 6eafe843ca Merge topic 'compiler-id-refactor'
3b59f8b7 Project: Refactor C compiler determination into multiple files.
8896501b CompilerId: Allow specifying a prefix for preprocessor defines.
23f451bb CompilerId: Guard the platform-default compiler code with a parameter.
30a99f5c CompilerId: Add option to generate compiler-id-specific defines.
36ed5894 CompilerId: Allow specifying the compiler-specific components to generate.
9a083bce Project: Split the compiler id detection into a separate function.
9d285600 Project: Generate the CXX compiler Id test from multiple files.
2014-05-08 11:27:51 -04:00
Brad King d02e58c470 Merge topic 'ncurses-tinfo'
1f646c6c FindCurses: Detect and satisfy ncurses dependency on tinfo
0e4a2c7e FindCurses: Honor CURSES_NEED_NCURSES when curses is found
2014-05-08 11:27:49 -04:00
Stephen Kelly 9cbc63e40c Features: Record for GNU 4.7.
Update the CompileFeatures test to verify that unsupported features
do not work.
2014-05-07 22:02:02 +02:00
Brad King ff95e44264 Merge topic 'compiler-id-comment'
c7ddd409 Project: Clarify comment about platform-native compilers.
2014-05-07 09:23:59 -04:00
Brad King 2e095099ec Merge topic 'osx-iframework'
1bed75a5 OS X: Use -iframework for system framework directories
2014-05-07 09:13:37 -04:00
Brad King 3e2e15eead Merge topic 'xcode-sdkroot'
5dfe9b7d Xcode: Find fallback SDK if one matching the OS version doesn't exist.
2014-05-07 09:13:35 -04:00
Brad King 623fcc2972 Merge topic 'InstallRequiredSystemLibraries-vs12-mfc'
c0a6646d InstallRequiredSystemLibraries: MBCS MFC is optional on VS 12 (#14903)
2014-05-07 09:13:32 -04:00
Brad King b4479ec0b9 Merge topic 'ExternalProject_labels'
93730bb3 ExternalProject: Set FOLDER property to targets
39ef8046 ExternalProject: Set LABELS property to targets
2014-05-07 09:13:30 -04:00
Mikołaj Siedlarek 1bed75a590 OS X: Use -iframework for system framework directories
Just like -I flag has its -isystem counterpart which marks an include
directory as a system directory and prevents unwanted warnings, on Apple
systems there is -iframework -- a system directory replacement for -F.
Use this flag to implement include_directories(SYSTEM) for frameworks.
2014-05-07 09:04:48 -04:00
Stephen Kelly 3b59f8b7c6 Project: Refactor C compiler determination into multiple files. 2014-05-07 14:28:36 +02:00
Stephen Kelly 8896501b23 CompilerId: Allow specifying a prefix for preprocessor defines. 2014-05-07 14:00:01 +02:00
Stephen Kelly 23f451bb33 CompilerId: Guard the platform-default compiler code with a parameter. 2014-05-07 14:00:00 +02:00
Stephen Kelly 30a99f5c06 CompilerId: Add option to generate compiler-id-specific defines. 2014-05-07 14:00:00 +02:00
Stephen Kelly 36ed589484 CompilerId: Allow specifying the compiler-specific components to generate. 2014-05-07 14:00:00 +02:00
Stephen Kelly 9a083bce83 Project: Split the compiler id detection into a separate function.
This can be extended with parameters to control the output and re-used
in other contexts.
2014-05-07 14:00:00 +02:00
Stephen Kelly 9d285600d4 Project: Generate the CXX compiler Id test from multiple files.
This will allow sharing of the logic of the order to test compilers in
and the preprocessor macros used to do that and to determine the
version components.
2014-05-07 14:00:00 +02:00
Stephen Kelly c7ddd409fd Project: Clarify comment about platform-native compilers. 2014-05-07 12:48:11 +02:00
Stephen Kelly aa283b6b01 Features: Fix test for GNU 4.8.1. 2014-05-07 12:40:42 +02:00
Stephen Kelly 1df2116bfa Features: Decay language flag if requested is not available.
Use the highest standard compile flags available if requested language
version is too new.

This supports use-cases like

 set(CMAKE_CXX_STANDARD 14)

 # Compiled with -std=c++11 with GNU 4.7, which has no -std=c++14
 # or equivalent flag
 add_executable(main main.cpp)

This can be used in combination with preprocessor defines which
communicate the availability of certain language features for
optional use.
2014-05-07 12:17:49 +02:00
Stephen Kelly c4f4dac2d5 Project: Fix exit-on-error with compile feature tests. 2014-05-07 12:16:14 +02:00
Stephen Kelly 5bb7ce724c Project: Use nullary form of main for compile feature tests. 2014-05-07 12:16:13 +02:00
Stephen Kelly 64254e7a74 Project: Remove extern from static string in feature tests. 2014-05-07 12:16:13 +02:00
Brad King d9889e002d Merge branch 'ncurses-tinfo' into release 2014-05-06 15:33:20 -04:00
Mark Wright 1f646c6ce0 FindCurses: Detect and satisfy ncurses dependency on tinfo
When ncurses is built with USE=tinfo we need to find "tinfo" as a
dependency of the main library.  Otherwise 'cbreak' is missing:

  ld: ...: undefined reference to symbol 'cbreak'
  ld: note: 'cbreak' is defined in DSO /lib/libtinfo.so.5 so try adding
            it to the linker command line

See https://bugs.gentoo.org/show_bug.cgi?id=468622 for more information.

Applied-by: Rolf Eike Beer <eike@sf-mail.de>
2014-05-06 15:29:33 -04:00
Mark Wright 0e4a2c7e32 FindCurses: Honor CURSES_NEED_NCURSES when curses is found
Take our CURSES_USE_NCURSES code path when CURSES_NEED_NCURSES is
enabled even if CURSES_CURSES_LIBRARY also happens to be found.

Applied-by: Rolf Eike Beer <eike@sf-mail.de>
2014-05-06 15:29:14 -04:00
Brad King 8e767a27d2 Merge topic 'CMAKE_CXX_KNOWN_FEATURES-global-property'
3fdfa5d3 Features: Make CMAKE_CXX_KNOWN_FEATURES a property.
2014-05-06 13:48:42 -04:00
Brad King 58557486db Merge topic 'dont-rewrite-moc-parameter-file'
17c31b8b Qt4: Extend the Qt4Targets test to cover dir and target moc parameters.
6a5bd7f0 Qt4: write moc parameter file only when content has changed
2014-05-06 13:48:40 -04:00
Clinton Stimpson 5dfe9b7d5a Xcode: Find fallback SDK if one matching the OS version doesn't exist.
For example if one installs Xcode 4.6 on OS X 10.9, it doesn't contain
a 10.9 SDK, so fallback to the next newest version which, in this case,
happens to be a 10.8 SDK.

This fixes bug #14572.
2014-05-06 09:18:00 -06:00
Felix Krause c0a6646d2f InstallRequiredSystemLibraries: MBCS MFC is optional on VS 12 (#14903)
The MBCS (Multi-Byte Character Set) has been deprecated with VS 2013,
and MSVC no longer ships with an MBCS-version of MFC by default.
However, it can be downloaded as an add-on.

Teach InstallRequiredSystemLibraries to install the MBCS MFC only
for VS < 12 or if it happens to exist on the system.
2014-05-06 08:54:39 -04:00
Daniele E. Domenichelli 93730bb3e0 ExternalProject: Set FOLDER property to targets
This is useful when using the USE_FOLDERS global property
2014-05-05 18:49:41 +02:00
Daniele E. Domenichelli 39ef804602 ExternalProject: Set LABELS property to targets
This is useful for using CDash subprojects.
2014-05-05 18:49:41 +02:00
Stephen Kelly 3fdfa5d3fc Features: Make CMAKE_CXX_KNOWN_FEATURES a property.
As a 'built-in' variable it imposes a cost on all variable lookups
and it is expected to be rarely used.
2014-05-02 10:18:16 +02:00
Brad King dc8505cad6 Merge topic 'FindCUDA-cubin-fatbin'
80209fdb Help: Add notes for topic 'FindCUDA-cubin-fatbin'
231b30db FindCUDA: Add support for compilation to fatbin & cubin modules
2014-05-01 09:11:21 -04:00
Brad King 6482fbaf70 Merge topic 'ExternalProject-verify-cmake-var'
420280f3 ExternalProject: Fix path to cmake in verify script
2014-05-01 09:11:18 -04:00
Brad King 420280f322 ExternalProject: Fix path to cmake in verify script
In commit v3.0.0-rc1~103^2~3 (ExternalProject: Reattempt download when
verification fails, 2014-01-15) a reference to ${CMAKE_COMMAND} was
added to generate a reference to the CMake command in a cmake script.
Escape the '$' so that the literal variable reference appears in the
script instead of writing the path to the current cmake.  This is
necessary when the path to CMake contains spaces or other characters
special to CMake syntax.
2014-04-30 16:21:58 -04:00
Brad King d41adb440f Merge topic 'osx-init-early'
bbc358c3 Merge branch 'master' into osx-init-early
0cce556b Xcode: Use sysroot and deployment target to identify compiler
0200d0a9 OS X: Factor a Darwin-Initialize module out of Platform/Darwin
416761e3 Add platform-specific initialization step when enabling languages
2014-04-30 09:42:02 -04:00
Brad King 8535d4cf5d Merge topic 'cxx98-features'
a36b957f Features: Add cxx_template_template_parameters.
2014-04-30 09:42:00 -04:00
Tobias Zirr 231b30dbfb FindCUDA: Add support for compilation to fatbin & cubin modules 2014-04-30 09:02:52 -04:00
Brad King 9442928745 Merge topic 'UseSWIG-go-support'
a3b1be5e UseSWIG: Add support for Go and Lua
2014-04-29 09:58:50 -04:00
Julien Schueller a3b1be5e69 UseSWIG: Add support for Go and Lua 2014-04-29 09:56:18 -04:00
Brad King bbc358c3fc Merge branch 'master' into osx-init-early
Resolve conflict in Source/cmGlobalGenerator.cxx by integrating
changes from both sides.
2014-04-29 09:36:55 -04:00
Brad King 0cce556b5f Xcode: Use sysroot and deployment target to identify compiler
Use CMAKE_OSX_SYSROOT and CMAKE_OSX_DEPLOYMENT_TARGET to set the Xcode
SDKROOT and MACOSX_DEPLOYMENT_TARGET build settings.  This is necessary
because some versions of Xcode select a different compiler based on
these settings.  We need to make sure the compiler identified during
language initialization matches what will be used for the actual build.
2014-04-29 09:36:15 -04:00
Brad King 0200d0a9c4 OS X: Factor a Darwin-Initialize module out of Platform/Darwin
Initialize variables CMAKE_OSX_SYSROOT, CMAKE_OSX_DEPLOYMENT_TARGET, and
CMAKE_OSX_ARCHITECTURES prior to enabling any languages.  This will
allow compiler identification to consider these values.
2014-04-29 09:36:14 -04:00
Brad King 416761e35c Add platform-specific initialization step when enabling languages
Create a Modules/CMakeSystemSpecificInitialize.cmake module loaded after
CMakeSystem.cmake but before per-language initialization.  Use it to
load an optional Platform/<os>-Initialize.cmake module.  This will be
useful to do per-platform initialization that does not depend on the
language and use the results when enabling specific languages.
2014-04-29 09:36:14 -04:00
Peter Kümmel 6a5bd7f0da Qt4: write moc parameter file only when content has changed 2014-04-25 18:24:56 +02:00
Rolf Eike Beer b0f277db38 HP aCC: record compiler flag for Ansi C++98 support for version 3.80 onwards
Old versions of aCC need a special compiler flag to get full C++98 template
support as e.g. CMake itself or the Complex and ComplexOneConfig tests need.
The same versions need a special flag to get a proper C++ library, too.
2014-04-25 17:59:57 +02:00
Rolf Eike Beer 55f5ea7b0e FindGTK2: search for Fontconfig and X11 before using them 2014-04-23 22:49:38 +02:00
Brad King ba83d84714 Merge topic 'ExternalData-missing-not-fatal'
ccd29b9a ExternalData: Warn on missing file instead of failing
2014-04-21 09:32:32 -04:00
Brad King 464c8ab3a2 Merge topic 'autorcc-target-dir'
33774ca2 QtAutogen: Put generated qrc files in a target-specific dir.
2014-04-21 09:32:27 -04:00
Brad King fd4ee2d86f Merge topic 'FindGTK2_fix_bsd'
d5a6069a FindGTK2: Add GTK2_(FONTCONFIG|X11)_INCLUDE_DIR optional includes
ef9366b0 FindGTK2: Add /usr/X11R6/ to include paths
2014-04-21 09:32:25 -04:00
Brad King ad8041e335 Merge topic 'UseSWIG-guess_module_name'
2c96192f UseSWIG: Revise and format documentation
e147c5c5 UseSWIG: Detect module name from interface file (#10080)
2014-04-21 09:32:23 -04:00
Daniele E. Domenichelli d5a6069a12 FindGTK2: Add GTK2_(FONTCONFIG|X11)_INCLUDE_DIR optional includes 2014-04-21 09:28:55 -04:00
Julien Schueller 2c96192f4c UseSWIG: Revise and format documentation
Also add some documentation of SWIG_MODULE_NAME.
2014-04-21 09:23:41 -04:00
Julien Schueller e147c5c555 UseSWIG: Detect module name from interface file (#10080)
If no SWIG_MODULE_NAME is specified explicitly and the .i file exists,
scan it for the module name declaration.
2014-04-21 09:22:57 -04:00
Stephen Kelly 33774ca201 QtAutogen: Put generated qrc files in a target-specific dir. 2014-04-18 16:41:13 +02:00
Brad King ccd29b9af8 ExternalData: Warn on missing file instead of failing
When the primary source tree path named by a DATA{} reference does not
exist, produce an AUTHOR_WARNING instead of a FATAL_ERROR.  This is
useful when writing a new DATA{} reference to a test reference output
that has not been created yet.  This way the developer can run the test,
manually verify the output, and then copy it into place to provide the
reference and eliminate the warning.

If the named source tree path is expected to be a file but exists as a
directory, we still need to produce a FATAL_ERROR.
2014-04-17 09:45:09 -04:00
Brad King 51a8a37443 Merge topic 'FindGTest-typed-test'
1f3e95ba FindGTest: Teach GTEST_ADD_TESTS about TYPED_TEST
2014-04-17 09:11:08 -04:00
Brad King 41c76d5aeb Merge topic 'ar-no-replace'
1ec6485c Support duplicate object names in large archives (#14874)
2014-04-17 09:10:59 -04:00
Brad King ef10fc47ae Merge topic 'implicit-libNN-dirs'
cc57ff5c Drop /lib32 and /lib64 from link directories and RPATH (#14875)
2014-04-17 09:10:53 -04:00
Jack Morrison 1f3e95ba72 FindGTest: Teach GTEST_ADD_TESTS about TYPED_TEST 2014-04-16 14:01:52 -04:00
Brad King 1ec6485c6a Support duplicate object names in large archives (#14874)
Generalize the change from commit 39d0ade0 (Windows-GNU: Support
duplicate object names in large archives, 2014-04-14) to the default
archive rules.  These rules have used an incremental append approach
since commit v2.8.0~1856 (Build large archives incrementally,
2008-08-04).  Switch from "ar r" to "ar q" to be sure we always append
objects instead of replacing them.
2014-04-16 13:19:43 -04:00
Brad King ac00baa6a8 Merge branch 'implicit-libNN-dirs' into release 2014-04-16 13:19:03 -04:00
Brad King cc57ff5c49 Drop /lib32 and /lib64 from link directories and RPATH (#14875)
Extend CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES with these paths.  We
already have the equivalents under /usr.  Systems that have these
directories have their dynamic loaders configured already.  Do not allow
them to appear in the RPATH explicitly.
2014-04-16 11:40:48 -04:00
Stephen Kelly a36b957fc4 Features: Add cxx_template_template_parameters.
Extend the existing feature infrastructure as needed to support
both C++11 and C++98 features.
2014-04-16 15:16:23 +02:00
Brad King 8472ef243f Merge topic 'cxx11-features'
60c0d2dd Features: Add cxx_defaulted_move_initializers.
c4e67235 Features: Add cxx_long_long_type.
dcaafada Features: Add cxx_func_identifier.
251a1f02 Features: Add cxx_local_type_template_args.
53fe7773 Features: Add cxx_extended_friend_declarations.
16603f7c Features: Add cxx_enum_forward_declarations.
adf22f61 Features: Add cxx_default_function_template_args.
7b3e8a05 Features: Add cxx_right_angle_brackets.
9a49fd21 Features: Add cxx_decltype_incomplete_return_types.
1889045c Features: Add cxx_sizeof_member.
ab455eba Features: Add cxx_thread_local.
300ce248 Features: Add cxx_inline_namespaces.
f9d04a96 Features: Add cxx_variadic_macros.
3d76656f Features: Add cxx_uniform_initialization.
e74b216c Features: Add cxx_generalized_initializers.
ff80c3b4 Features: Add cxx_attributes.
...
2014-04-15 10:32:13 -04:00
Brad King b56a9ae7f1 Merge topic 'target_compile_features'
9eaf3755 Export: Populate INTERFACE_COMPILE_FEATURES property.
8ed59fc2 Add target_compile_features command.
4e6ca504 cmTargetPropCommandBase: Change the interface to return bool.
5412dede cmTarget: Transitively evaluate compiler features.
baff4434 cmTarget: Allow populating COMPILE_FEATURES using generator expressions.
f97bf437 Features: Add cxx_auto_type.
03355d6b cmTarget: Add COMPILE_FEATURES target property.
faeddf64 project: Add infrastructure for recording CXX compiler features
913394af cmTarget: Add CXX_STANDARD and CXX_EXTENSION target properties.
8238a6cd Add some COMPILE_OPTIONS for specifying C++ dialect.
892243fc Tests: Require CMake 3.0 for the SystemInformation test.
59b5fdd3 Don't load Clang-CXX from AppleClang-CXX.
2014-04-15 10:32:11 -04:00