Commit Graph

6198 Commits

Author SHA1 Message Date
Brad King ef0bf87939 Merge topic 'java-updates'
4476feac UseJava: Add support for javah tool
2015-08-27 10:03:56 -04:00
Brad King 90eb6de68f Merge topic 'fphsa-typo'
64e527db FPHSA: fix typo in documentation
2015-08-25 15:13:29 -04:00
Marc Chevrier 290b0f94b5 FindJNI: Add support for SuSE platform and IBM Java SDK 2015-08-25 09:47:05 -04:00
Gregor Jasny 67f60958b6 Darwin: Add support for tbd library stub files
Starting with Xcode 7 the OSX and iOS SDKs contain only stub
files for dynamic system libraries. These stub files contain
some meta data and a list of exported sysbols in plain text.

They are handled by the toolchain like regular dylibs.
2015-08-24 22:29:33 +02:00
Rolf Eike Beer 64e527dbe3 FPHSA: fix typo in documentation 2015-08-24 18:22:13 +02:00
Thorsten Glaser c4d78b8bc0 FindJNI: Add support for x32 architecture on Linux (#15710)
This architecture uses an amd64 kernel but x32 userland.
Use CMAKE_LIBRARY_ARCHITECTURE to distinguish it for now.
2015-08-24 10:54:13 -04:00
Marc Chevrier 4476feac33 UseJava: Add support for javah tool
Add a `create_javah` API.
2015-08-21 09:30:08 -04:00
Brad King def5795bac Merge topic 'FindCUDA-vs2013-separate-compilation'
9b2f6992 FindCUDA: Fix object build rule for separate compilation on VS 2013+ (#15697)
2015-08-21 09:29:04 -04:00
Brad King 870d839f0d Merge topic 'sublime-msvc-includes'
c66835fc Extra Generator: Populate MSVC system include paths from environment (#15597)
2015-08-21 09:29:00 -04:00
Brad King f9865743ed Merge topic 'hp-ux-itanium-shared-libs'
625225bb HP-UX: Do not use ".sl" extension for shared libs on Itanium
2015-08-21 09:28:55 -04:00
Brad King 162e7b5675 Merge topic 'determine-compiler-CMP0054'
dc8822f0 CMakeDetermine{C,CXX}Compiler: Avoid if() auto-dereferene in quoted arguments
2015-08-21 09:28:50 -04:00
Dominic Meiser 9b2f69925a FindCUDA: Fix object build rule for separate compilation on VS 2013+ (#15697)
The handling of multilevel dependencies has been fixed in Visual Studio 2013.
The work around used for VS 2010 and VS 2012 does not work for VS 2013 any more.
Switch to normal object build rules for VS 2013 and newer.
2015-08-20 11:52:11 -04:00
Matt McCormick dc8822f0a7 CMakeDetermine{C,CXX}Compiler: Avoid if() auto-dereferene in quoted arguments
Exposed by a CMP0054 warning with code like:

  cmake_minimum_required(VERSION 2.8.9 FATAL_ERROR)
  project(MyProj NONE)
  enable_language(C)
  enable_language(CXX)

While at it, use STREQUAL for testing the compiler id against "GNU".

Suggested-by: Rolf Eike Beer <eike@sf-mail.de>
2015-08-20 09:35:16 -04:00
Gregor Jasny c66835fc37 Extra Generator: Populate MSVC system include paths from environment (#15597) 2015-08-18 22:30:55 +02:00
Brad King 625225bbe6 HP-UX: Do not use ".sl" extension for shared libs on Itanium
Instead use the standard ".so" extension.

Suggested-by: Gerhard Grimm <gerhard.grimm@detec.com>
2015-08-18 10:55:16 -04:00
Brad King a712575da1 Merge topic 'finpkgconfig-if-deref'
b9ec9392 FindPkgConfig: remove variable dereference
2015-08-18 10:12:05 -04:00
Rolf Eike Beer b9ec9392da FindPkgConfig: remove variable dereference
If CMAKE_MINIMUM_REQUIRED_VERSION is not set because no
cmake_minimum_required() call is present this line can lead to an error as that
string is empty so too few arguments are passed to if():

See also "/var/tmp/paludis/build/kde-krdc-15.08.0/work/build/CMakeFiles/CMakeOutput.log".
See also "/var/tmp/paludis/build/kde-krdc-15.08.0/work/build/CMakeFiles/CMakeError.log".
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:112 (elseif):
  given arguments:

    "VERSION_LESS" "3.1"

  Unknown arguments specified
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:501 (_pkgconfig_parse_options)
  /usr/share/cmake/Modules/FindOpenSSL.cmake:43 (pkg_check_modules)
2015-08-18 12:14:43 +02:00
Kars de Jong 462fbd1eca Add support for ARTOS platform using GNU C with ac compiler driver
Add platform and compiler descriptions for ARTOS RTOS (locamation.com).

Signed-off-by: Kars de Jong <kars.dejong@locamation.nl>
2015-08-17 10:32:50 -04:00
Brad King f4885a94ed Merge topic 'FindBoost-1.59'
ff5bb2ef FindBoost: Add support for Boost 1.59
2015-08-17 10:24:57 -04:00
Brad King 9cba05c684 Merge topic 'FindXercesC-updates'
db292564 FindXercesC: Add support for 3D_1 variant of the library
021bf871 FindXercesC: Find debug and release libraries separately
2015-08-17 10:24:55 -04:00
Brad King 8ca1c2b2b3 Merge topic 'FindTIFF-updates'
724fa682 FindTIFF: Find debug and release libraries separately
2015-08-17 10:24:53 -04:00
Brad King da3b62cffd Merge topic 'compiler-id-ancient-gcc-version'
6699834d GNU-DetermineCompiler: Add support for very old versions of GCC
2015-08-17 10:24:47 -04:00
Roger Leigh ff5bb2efbe FindBoost: Add support for Boost 1.59 2015-08-14 09:55:07 -04:00
Roger Leigh db29256429 FindXercesC: Add support for 3D_1 variant of the library
This version is generated by the Windows Visual Studio
project files for unknown reasons, but is required to
pick up the debug version of the library created by
current versions of Xerces-C.
2015-08-14 09:52:48 -04:00
Roger Leigh 021bf871a6 FindXercesC: Find debug and release libraries separately 2015-08-14 09:52:36 -04:00
Roger Leigh 724fa68270 FindTIFF: Find debug and release libraries separately 2015-08-14 09:49:46 -04:00
Kars de Jong 6699834d62 GNU-DetermineCompiler: Add support for very old versions of GCC
Very old versions of gcc (2.3.1) do not define __GNUC_MINOR__.

Signed-off-by: Kars de Jong <kars.dejong@locamation.nl>
2015-08-13 11:07:03 -04:00
Konstantin Podsvirov 75e3a8e811 FindOpenSSL: Provide imported targets OpenSSL::{SSL,Crypto} 2015-08-13 10:58:40 -04:00
Brad King 79a364376c FindOpenSSL: Revise and format module documentation
Improve reStructuredText formatting and add section headers.
2015-08-13 10:53:08 -04:00
Brad King 0576aa6085 Merge topic 'FindPkgConfig-capital-messages'
50c9f521 FindPkgConfig: Capitalize first letter of all message()s
2015-08-13 10:38:46 -04:00
Brad King 7a7922e020 Merge topic 'fix-hpux-link-search-shared-flags'
dc64d825 HP-UX: Fix linker search type flags for C shared libs on HP-UX
2015-08-13 10:34:18 -04:00
Chuck Atkins dc64d8250b HP-UX: Fix linker search type flags for C shared libs on HP-UX
Since commit v2.8.7~31^2 (HP: Drive shared library linking with compiler
front end, 2011-12-12) the C compiler is used to link shared libraries
instead of calling the linker directly, so linker options need to be
wrapped as -Wl,-foo instead of -foo.
2015-08-12 09:36:57 -04:00
Brad King e6883772ff Merge topic 'FindProtobuf-vs-x64'
8dc6cbcb FindProtobuf: Search x64 directories in VS-built protobuf source (#14833)
2015-08-12 09:30:34 -04:00
Brad King 1cb7237b51 Merge topic 'ExternalProject-hg-clone-without-update'
6a77a77a ExternalProject: Tell "hg clone" not to implicitly update
2015-08-12 09:30:31 -04:00
Christopher Meng 50c9f521e2 FindPkgConfig: Capitalize first letter of all message()s
This makes FindPkgConfig output more formal and more consistent with
many other messages produced by CMake.
2015-08-12 09:24:44 -04:00
Daniel Pfeifer 48c6e7f2cf CTest: Report to CDash the compiler version used to build the project
The compiler version reported since commit v2.8.2~1018 (CTest-side
support for compiler name and compiler version, 2009-10-12) only
reported the version of the compiler used to build CMake, and only
if it defined "_COMPILER_VERSION".  Instead use the version of
the compiler used to build the project CTest is testing.
2015-08-11 09:40:25 -04:00
A. Joël Lamotte 6a77a77a62 ExternalProject: Tell "hg clone" not to implicitly update
By default Mercurial command "clone" will implicitly call "update" with
the "default" branch after downloading the cloned repository.  However
ExternalProject_Add() always generates a second "update" command after
cloning with a tag which is either specified or "tip" (equivalent to
"default" by default).  Therefore ExternalProject will first clone then
update to default branch then update to another specified branch if
provided.  This leads to potentially very long clone operation (in
particular when the repository default branch contain subrepos) which
can lead to transaction abort triggered by the server.

Simply use "hg clone -U" to avoid the implicit update during clone.
Our following call to "hg update" will take care of updating anyway.
2015-08-11 09:25:31 -04:00
A. Joël Lamotte 8dc6cbcb24 FindProtobuf: Search x64 directories in VS-built protobuf source (#14833)
Protobuf 2.6.x and lower do not use CMake (cmake is usable in Protobuf
3.x) but provide legacy Visual Studio projects files.  Search their
output directories in 64-bit builds.
2015-08-11 08:57:21 -04:00
Brad King 22590805bf Merge topic 'cpack-rpm-documentation-fixes'
94226751 Tests/RunCMake/CPack: Add dependencies tests
105011e0 Tests/RunCMake/CPack: Bump verify result cmake version
d882d477 Tests/RunCMake/CPack/DEB: Add getPackageInfo helper function
145735b7 Tests/RunCMake/CPack: Enable CXX language in tests
e26f53a8 CPack/RPM: missing PACKAGE_CONFLICTS documentation
64aacb24 CPack/RPM: undocumented variables
2015-08-06 09:38:33 -04:00
Brad King 4f0a6d462e Merge topic 'compiler-version-Fortran'
f0609182 Fortran: Store detected compiler version persistently (#15684)
2015-08-06 09:38:20 -04:00
Brad King bcd8fc58a0 Merge branch 'compiler-version-Fortran' into release 2015-08-05 10:41:23 -04:00
Brad King f0609182cc Fortran: Store detected compiler version persistently (#15684)
The Fortran compiler version detection infrastructure added by commit
v3.3.0-rc1~436^2~9 (Fortran: Add infrastructure to detect compiler
version, 2015-02-17) forgot to update CMakeFortranCompiler.cmake.in to
save the compiler version persistently as we do already in
"CMake{C,CXX}Compiler.cmake.in".  Add the missing line now.
2015-08-05 10:39:03 -04:00
Frank-Christian Otto e26f53a88b CPack/RPM: missing PACKAGE_CONFLICTS documentation 2015-08-04 22:49:13 +02:00
Domen Vrankar 64aacb24b6 CPack/RPM: undocumented variables
Some CPack/RPM variables were undocumented
even though they are implemented in code
for quite a while now.
2015-08-04 22:49:12 +02:00
Marc Chevrier cc23f0e9d3 UseJava: Teach install_jar new DESTINATION and COMPONENT options 2015-08-04 11:19:44 -04:00
Marc Chevrier 3d287de4ea UseJava: Teach add_jar to support file syntax for sources 2015-08-04 11:19:43 -04:00
Marc Chevrier e72806fb30 FindJava: Add support for idlj and jarsigner tools 2015-08-04 11:19:40 -04:00
Brad King 7ac2b1256b Merge topic 'if-test'
14e49ed1 if: Add "TEST <test>" condition
623dcc85 ExternalProject: Avoid if() auto-dereference of a "TEST" variable
2015-08-03 09:25:10 -04:00
Matt McCormick 623dcc85a4 ExternalProject: Avoid if() auto-dereference of a "TEST" variable
Exposed by CMP0054 warnings.
2015-08-03 09:21:39 -04:00
Brad King 94d53d1664 Merge topic 'GetPrerequisites-updates'
5d0a8b1a GetPrerequisites: Optionally filter "objdump" output for speed
afb674ab GetPrerequisites: Add error checks for execute_process() calls
2015-08-03 09:11:34 -04:00
Brad King 6508cc5355 Merge topic 'FindMPI-drop-GetPrerequisites'
1c46b6ae FindMPI: Drop unnecessary and incorrect use of GetPrerequisites
2015-08-03 09:11:32 -04:00
Bill Somerville 5d0a8b1abc GetPrerequisites: Optionally filter "objdump" output for speed
As dumpbin.exe is no longer reliable for gcc libraries on MinGW because
it crashes on many common libraries like libgcc_s and libgfortran it is
now necessary too resort to using objdump for DLL dependency walking.
Using objdump has a secondary problem in that it generates a lot of
output for large libraries and causes fixup_bundle() to take many
minutes to process what took fractions of a second with
"dumpbin.exe /dependents".

Add a 'grep' pre-filter in the execute_process() command pipeline to
reduce this output to a minimum for a several orders of magnitude speed
up.  If grep is not available just use the full output.

As there does not seem to be a reliable way of detecting MinGW, callers
of fixup_bundle() may have to set the variable gp_tool to "objdump" if
dumpbin.exe is installed on the build machine to stop it using the
broken MS dumpbin.exe for library dependency walking.
2015-07-31 09:50:32 -04:00
Bill Somerville afb674ab46 GetPrerequisites: Add error checks for execute_process() calls
Add return status checks to external command invocations so that they do
not fail silently producing incomplete install packages.
2015-07-31 09:50:32 -04:00
Brad King 1c46b6aed0 FindMPI: Drop unnecessary and incorrect use of GetPrerequisites
Since commit v2.8.5~121^2~2 (FindMPI: Handle multiple languages,
2010-12-29) we called the GetPrerequisites is_file_executable function
but passed the name of a CMake variable instead of its value.  Therefore
the function has always failed and caused the search for the compiler
name to run even with an absolute path.  Switch to using if(IS_ABSOLUTE)
instead and drop use of GetPrerequisites.
2015-07-31 09:50:31 -04:00
Brad King 8515f26a63 Merge topic 'FindOpenSSL-cleanup'
fbcbf7f2 FindOpenSSL: De-duplicate find_library path suffixes on Windows
4c10461a FindOpenSSL: Remove extra whitespace
2015-07-31 09:21:49 -04:00
Brad King 6e11703c6c Merge topic 'SunOS-link-CXX-normally'
60fe4b54 SunOS: Drop special case for linking C++ shared libraries with gcc (#15673)
2015-07-31 09:21:43 -04:00
Brad King 60fe4b540b SunOS: Drop special case for linking C++ shared libraries with gcc (#15673)
Since commit v2.4.0~4325 (...use gcc -shared, even for C++ libraries,
2003-03-13) we use the C compiler "gcc" to link C++ shared libraries
compiled with "g++".  At the time "g++" did not know how to link shared
libraries correctly.  This has long since been fixed so simply drop the
special case.
2015-07-30 13:59:29 -04:00
Justin Cook 22809b1665 Cray: Fix compiler version detection (#15664) 2015-07-30 11:57:10 -04:00
Thijs Wenker fbcbf7f29d FindOpenSSL: De-duplicate find_library path suffixes on Windows
Store the path suffixes in a variable and reference it in each
find_library call.
2015-07-30 10:33:12 -04:00
Thijs Wenker 4c10461a87 FindOpenSSL: Remove extra whitespace 2015-07-30 10:30:49 -04:00
Brad King afed519337 Merge topic 'osx-iframework'
e68f0cb3 OS X: Use -iframework with AppleClang only on version >= 4.2
2015-07-23 08:47:23 -04:00
Brad King 90b3b5e42c Merge topic 'FindBZip2-check-with-prototype'
23876eda FindBZip2: Check BZIP2_NEED_PREFIX with real prototype
2015-07-22 11:04:28 -04:00
Brad King 669922bde8 Merge branch 'osx-iframework' into release 2015-07-22 09:51:37 -04:00
Brad King e68f0cb3d4 OS X: Use -iframework with AppleClang only on version >= 4.2
Since commit v3.1.0-rc1~564^2 (OS X: Use -iframework for system
framework directories, 2014-05-05) we test the version of Clang to see
if it supports -iframework.  Fix the version test used for AppleClang
since it uses a different version scheme than upstream Clang.
2015-07-22 09:04:04 -04:00
Brad King 02e5eba17d Merge topic 'vs-compiler-feature-2015-update'
c2d590c9 Features: Update MSVC features for VS 2015 RTM
2015-07-22 08:31:40 -04:00
Ralf Habacker 23876eda9f FindBZip2: Check BZIP2_NEED_PREFIX with real prototype
Run our check for the '_' prefix using a bzip2 API function as declared
with a prototype in the real header file.  This is needed in case the
function is provided in a DLL import library where the symbol name may
not match without proper markup from the header.
2015-07-21 14:00:06 -04:00
Brad King c2d590c957 Features: Update MSVC features for VS 2015 RTM
VS 2015 RTM completed support for constexpr and attribute features.
Update our feature table and test accordingly.
2015-07-21 12:56:47 -04:00
Brad King 500ce3f113 Merge topic 'KDE4-NO_POLICY_SCOPE'
4572d8b3 KDE4: Find the Internal package with NO_POLICY_SCOPE.
2015-07-21 09:22:25 -04:00
Stephen Kelly 4572d8b34e KDE4: Find the Internal package with NO_POLICY_SCOPE.
If someone in KDE wants to port away from OLD policies, they might want to do
so one policy at a time.  This patch will allow them to use

  find_package(KDE4 NO_POLICY_SCOPE)

in callers to get around the CMP0011 warning, while still getting the policy
settings contained within.
2015-07-19 18:20:57 +02:00
Brad King 0fcbd704f8 CMakeExpandImportedTargets: Document as deprecated
The module is not needed anymore for try_compile or try_run.  It cannot
be used with CMP0022 NEW behavior due to generator expressions in
INTERFACE_LINK_LIBRARIES, so document it as deprecated.  Whatever
problems other than try_compile and try_run anyone tried to solve with
this module will have to be addressed another way.
2015-07-17 11:10:02 -04:00
Brad King 536b6c7519 Merge topic 'cpack-per-component-extra-control-file'
3e6b2ab6 CPack/DEB: component version of PACKAGE_CONTROL_EXTRA
506f6bc0 CPack/DEB: Remove duplicate string(TOUPPER) calls
32e9276a Tests/RunCMake/CPack/DEB: add verifyDebControl
47d1f118 Tests/RunCMake/CPack: found files should be preserved
2015-07-17 10:36:15 -04:00
Domen Vrankar 3e6b2ab683 CPack/DEB: component version of PACKAGE_CONTROL_EXTRA
Component version of CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
variable.
2015-07-15 10:00:03 -04:00
Domen Vrankar 506f6bc0d2 CPack/DEB: Remove duplicate string(TOUPPER) calls
We compute _local_component_name the first time we check for
CPACK_DEB_PACKAGE_COMPONENT so we can just re-use it later.
2015-07-15 10:00:00 -04:00
Brad King 77fa27a9f5 Merge topic 'makefile-target-messages'
f0cad193 Tests: Add test for TARGET_MESSAGES global property
1d398478 Makefile: Optionally disable target completion messages in build output
d560b46f CMakeGenericSystem: Recognize Watcom WMake generator as Makefile generator
2015-07-15 09:05:51 -04:00
Stanimir Kabaivanov 606b29d427 Add EUROS RTOS platform description file
Add a basic platform module for EUROS RTOS (euros-embedded.com).

Co-Author: Gerhard Gappmeier <gerhard.gappmeier@ascolab.com>
2015-07-14 14:33:20 -04:00
Michael Ensslin 1d3984780d Makefile: Optionally disable target completion messages in build output
Add a TARGET_MESSAGES property to control whether Makefile targets print
the "Built target " completion messages.  Default to ON to preserve
existing behavior.
2015-07-14 13:57:58 -04:00
Brad King d560b46f52 CMakeGenericSystem: Recognize Watcom WMake generator as Makefile generator 2015-07-14 13:57:58 -04:00
Brad King ead29a4e3d Merge topic 'refactor-rule-var-includes'
c736de7b Factor an <INCLUDES> placeholder out of <FLAGS> in rule variables
6f94b03c Place <DEFINES> before <FLAGS> consistently across compilers
2015-07-14 10:34:28 -04:00
Brad King 1b05417e3c Merge topic 'FindXercesC-versioned-library-2'
38ddabb1 FindXercesC: Also search for xerces-c_2 (#15648)
2015-07-14 10:34:26 -04:00
Brad King c736de7b28 Factor an <INCLUDES> placeholder out of <FLAGS> in rule variables
Teach the Makefile and Ninja generators to substitute for an <INCLUDES>
placeholder instead of putting -I in <FLAGS>.  Update our values for

  CMAKE_<LANG>_COMPILE_OBJECT,
  CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and
  CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE

to place <INCLUDES> just before <FLAGS>.
2015-07-13 10:49:46 -04:00
Brad King 6f94b03c97 Place <DEFINES> before <FLAGS> consistently across compilers
Update our values for

  CMAKE_<LANG>_COMPILE_OBJECT,
  CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and
  CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE

to place <DEFINES> before <FLAGS> consistently across supported
compilers.  We already do this for most compilers, so update the rest
for consistency.
2015-07-13 10:49:46 -04:00
Brad King 93bd154075 Merge topic 'FindMPI-Intel-5'
cfd23d3f FindMPI: Extend Intel-MPI 5+ workaround for recent GCCs
2015-07-13 09:17:44 -04:00
Brad King 13f5f066ff Merge branch 'FindMPI-Intel-5' into release 2015-07-13 08:51:00 -04:00
Roger Leigh 38ddabb194 FindXercesC: Also search for xerces-c_2 (#15648)
This is the previous stable release name used on Windows.
2015-07-13 12:00:33 +01:00
Sean Brennan cfd23d3f1f FindMPI: Extend Intel-MPI 5+ workaround for recent GCCs
Extend the workaround added by commit v3.2.0-rc1~278^2 (FindMPI:
Workaround Intel MPI 5.0.1 exit code problem, 2014-12-04) with an
additional/alternate keyword to recognize the case with recent GCCs.
2015-07-10 08:55:39 -04:00
Brad King ef39edc303 Merge topic 'FindIce-imported-targets'
889b22e2 Help: Add notes for topic 'FindIce-imported-targets'
cd4d2e9c FindIce: document imported targets
748f1eae FindIce: create imported targets for components
2015-07-10 08:51:12 -04:00
Brad King 2ffa8ae29c Merge topic 'compiler-feature-AppleClang-std-flags'
228643af AppleClang: Use modern C++14 standard flags for Apple Clang 6.1
2015-07-10 08:51:09 -04:00
Brad King 6f6664f578 Merge topic 'FindXercesC-versioned-library'
d3d4d627 FindXercesC: Find versioned library on Windows
2015-07-09 09:17:25 -04:00
Brad King 3723fe94e6 Merge topic 'CheckCompilerFlag-do-not-use-FLAGS'
a639689c Check*CompilerFlag: Revert to previous method used to pass flags (#15641)
2015-07-09 09:17:19 -04:00
Brad King 228643af6d AppleClang: Use modern C++14 standard flags for Apple Clang 6.1
The Apple Clang 6.1 compiler that comes with Xcode 6.3 is aware of the
modern -std=c++14 and -std=gnu++14 flags, so use them instead of the
"1y" flags.

Suggested-by: darkapostle@rule506.net
2015-07-09 09:11:57 -04:00
Roger Leigh cd4d2e9c79 FindIce: document imported targets 2015-07-09 11:33:56 +01:00
Daniel Pfeifer 748f1eaee3 FindIce: create imported targets for components 2015-07-09 11:32:36 +01:00
Roger Leigh d3d4d6275a FindXercesC: Find versioned library on Windows 2015-07-08 18:08:20 +00:00
Brad King e7c33efa15 Merge branch 'CheckCompilerFlag-do-not-use-FLAGS' into release 2015-07-08 09:59:42 -04:00
Brad King a639689c16 Check*CompilerFlag: Revert to previous method used to pass flags (#15641)
Since commit v3.3.0-rc1~397^2 (Check*CompilerFlag: Refactor method used
to pass flags, 2015-02-24) these check modules pass the flags to the
compiler front-end during linking as well as during compilation.  This
breaks checks for flags like '-x c++' that are meant only for the
compilation step.  Revert the change and add a test covering a
compiler-only flag.
2015-07-08 09:55:16 -04:00
Brad King 8c1460653e Merge topic 'add-apple-swift-language'
bf112531 Add rudimentary support for the Apple Swift language with Xcode
2015-07-08 09:19:10 -04:00
Brad King ad91d0edd5 Merge topic 'auto_export_dll_symbols'
8f86407c Windows: Optionally generate DLL module definition files automatically
069aa93b bindexplib: Add support for "/bigobj" format objects
61bbbdcf bindexplib: Fix treatment of some symbols
de70c922 bindexplib: Teach DumpFile to return errors
8ea69dfe bindexplib: Build source as part of CMakeLib
2963cb2a bindexplib: Wrap long lines
4ff09893 bindexplib: Drop code that CMake does not need
7de8276c bindexplib: Add copyright/license notice block
65086ad7 bindexplib: Import original implementation from CERN
2015-07-08 09:19:07 -04:00
Brad King 2a249d734b Merge topic 'ExternalProject-USES_TERMINAL'
e4947639 ExternalProject: Added new USES_TERMINAL options
2015-07-07 09:53:48 -04:00
Brad King d8a3208222 Merge topic 'osx-pythondotorg-libs'
02fd0356 FindPythonLibs: Find the python.org libraries (#14809)
2015-07-07 09:53:40 -04:00
Brad King bf11253163 Add rudimentary support for the Apple Swift language with Xcode
Allow the `Swift` language to be enabled with the Xcode generator for
Xcode >= 6.1.  Reject it on other generators and with older Xcode
versions.  Since Apple is the only vendor implementing the language
right now, the compiler id can be just `Apple`.
2015-07-06 16:15:49 -04:00
James Johnston e494763997 ExternalProject: Added new USES_TERMINAL options
Added new USES_TERMINAL option to the ExternalProject_Add_Step
function.  This option passes USES_TERMINAL to the underlying
add_custom_command call so that the Ninja console pool is used.
Also, corresponding new USES_TERMINAL_<step> options were added
to the ExternalProject_Add function.

Justification: if using Ninja with a CMake superbuild, it's often
desirable to limit the superbuild to ONE sub-Ninja process at a
time to avoid oversubscribing the CPU.  Using the console pool also
makes it easy to monitor the progress of the sub-Ninja process.

Independent USES_TERMINAL_<step> arguments are passed to
ExternalProject_Add instead of one USES_TERMINAL argument that
controls everything.  Users may wish to run some steps in parallel
but not others (e.g. parallelize configure but not build).
2015-07-06 14:51:40 -04:00
Matt McCormick 02fd035689 FindPythonLibs: Find the python.org libraries (#14809)
Address the test case

  cmake_minimum_required(VERSION 2.8)
  set(Python_ADDITIONAL_VERSIONS 3.4 3.5 3.6)
  find_package(PythonLibs 3 REQUIRED)

with a Python 3.4.x .pkg installed from python.org on OSX.

Temporarily set CMAKE_FIND_FRAMEWORK to LAST to avoid finding the
system Python.h prematurely.

Add directories inside the frameworks to the search list for the library
as is done for the header.
2015-07-06 11:14:34 -04:00
Bill Hoffman 8f86407cfd Windows: Optionally generate DLL module definition files automatically
Create target property WINDOWS_EXPORT_ALL_SYMBOLS to automatically
generate a module definition file from MS-compatible .obj files and give
it to the linker in order to export all symbols from the .dll part of a
SHARED library.
2015-07-06 11:11:02 -04:00
Brad King 6dd08e5fe0 Merge branch 'FindMatlab-doc-section-headers' into release 2015-07-06 10:42:31 -04:00
Brad King e5d37f23f1 Merge topic 'xlc-no-qalias-flag'
a33fb493 XL: Drop -qalias=noansi from default C flags
2015-07-06 10:07:58 -04:00
Brad King d59ab78585 Merge topic 'ctest-test-load'
f62d301b ctest: Optionally avoid starting tests that may exceed a given CPU load
07c550ca cmCTestMultiProcessHandler: Refactor RUN_SERIAL implementation
8bf5a80b cmSystemTools: Add StringToULong helper
dffc307c Tests: Teach RunCMake infrastructure to optionally timeout
2015-07-02 10:00:51 -04:00
Brad King a33fb493de XL: Drop -qalias=noansi from default C flags
This was added without explanation by commit v2.8.2~1138 (Add initial XL
C compiler flags for safer builds, 2009-09-30).  It is not consistent
with our default C++ flags for XL and disables several optimizations, so
drop it from our default flags for C.

Suggested-by: Todd Gamblin <tgamblin@llnl.gov>
2015-07-02 09:20:14 -04:00
Betsy McPhail f62d301b92 ctest: Optionally avoid starting tests that may exceed a given CPU load
Add a TestLoad setting to CTest that can be set via a new --test-load
command-line option, CTEST_TEST_LOAD variable, or TEST_LOAD option to
the ctest_test command.  Teach cmCTestMultiProcessHandler to measure
the CPU load and avoid starting tests that may take more than the
spare load currently available.  The expression

 <current_load> + <test_processors> <= <max-load>

must be true to start a new test.

Co-Author: Zack Galbreath <zack.galbreath@kitware.com>
2015-06-30 10:21:37 -04:00
Brad King 99d160385e CMakeDetermineCompilerId: Use per-language regex to match Xcode compiler tool
Move the Ld invocation match expression from CMakeDetermineCompilerId
into CMakeDetermine{C,CXX,Fortran}Compiler so that it can be specified
on a per-language basis.
2015-06-30 10:14:08 -04:00
Brad King bbfebcbc13 Merge topic 'compiler-id-simplify-ide-src'
8306108f CMakeDetermineCompilerId: Simplify src reference in IDE projects
2015-06-29 10:24:14 -04:00
Brad King 1cb8d95509 Merge topic 'vs-librarian-machine-flag-default'
806609c7 VS: Add /machine: flag to Librarian tool (#11240)
2015-06-29 10:24:13 -04:00
Brad King 7e79931e44 Merge topic 'FindMatlab-doc-section-headers'
6524ed5e FindMatlab: Fix documentation section header underline style
2015-06-29 10:24:11 -04:00
Tamas Kenez 6524ed5e94 FindMatlab: Fix documentation section header underline style
Replace caret-headers with double-quote-headers and replace dash-headers
with caret-headers.  This makes the headers match their level of nesting
according to our documentation style guide in cmake-developers(7).
2015-06-29 08:55:49 -04:00
Brad King 806609c702 VS: Add /machine: flag to Librarian tool (#11240)
If a Windows resource (.rc) source file is included in a STATIC library,
the VS "link" tool will process the compiled ".res" file and needs to know
the target architecture.  Without it, we may get a LNK4068 warning and
possibly a LNK1112 error.  Add /machine: to the default static library
flags to give the link tool the information it needs.
2015-06-26 10:07:08 -04:00
Brad King 8306108fd6 CMakeDetermineCompilerId: Simplify src reference in IDE projects
When constructing the "id_src" value for substitution into VS or Xcode
compiler id projects, the input "src" variable already contains the file
name with no path so we do not need get_filename_component.  We know
this because CMAKE_DETERMINE_COMPILER_ID_WRITE already references
"${src}" with this assumption.
2015-06-25 15:16:53 -04:00
Brad King 2fd05f411b Merge topic 'doc-CheckIncludeFile-distinction'
81d58b0d Help: Revise CheckIncludeFile* documentation
2015-06-25 10:39:27 -04:00
Brad King ac90623345 Merge branch 'doc-CheckIncludeFile-distinction' into release 2015-06-25 09:43:06 -04:00
Brad King 81d58b0de6 Help: Revise CheckIncludeFile* documentation
Improve formatting.  Link from each module to the other two.  Explain
the command signatures in more detail.
2015-06-25 09:41:02 -04:00
Roger Leigh 69c5f134a6 FindIce: Find all Ice executables 2015-06-23 09:35:19 +00:00
Roger Leigh 9579be1043 FindIce: Update for Ice version 3.6.0 2015-06-23 08:57:59 +00:00
Brad King 41cd8547c4 Merge topic 'GNUInstallDirs-special-prefixes'
8bcec4d2 Help: Add notes for topic 'GNUInstallDirs-special-prefixes'
c8bd37ec GNUInstallDirs: Add special cases for certain prefixes
5f30f175 GNUInstallDirs: Add test cases
2015-06-19 08:51:45 -04:00
Brad King a53f1af79f Merge topic 'ConcurrentFortran-compiler-id'
54676a0e Help: Add notes for topic 'ConcurrentFortran-compiler-id'
7cd539b1 Add support for Concurrent Fortran 77 Compiler
0d204c1c CMakeDetermineCompilerId: Try matching compiler output to detect id
5f0dad75 CMakeDetermineCompilerId: Refactor id build/check loop logic
c65a060e CMakeDetermineCompilerId: Optionally try some flags before no flags
2015-06-19 08:51:43 -04:00
James Johnston 078b60f05c Embarcadero: Run at most one linker invocation at a time (#15620)
At least some versions (e.g. C++ Builder 5) of the bcc32 linker are known to
write temporary files with a constant name to the current directory (e.g.
"turboc.$ln").  (This can be verified by using Process Monitor to watch the
file writes that bcc32 / ilink32 / implib make).  This causes problems with
some generators that keep a constant current directory and run concurrent
linkers.

For example, the Ninja generator, by default, always has the current directory
set to the top of the build tree - resulting in conflicts between the linkers
that are simultaneously trying to write to "turboc.$ln".  Symptoms include
direct errors regarding the "turboc.$ln" file, or later build steps failing due
to corrupted output from previous links that happened to link "successfully."

This is not a problem for the Borland Makefiles generator which does not
run jobs in parallel.  For the Ninja generator, work around this problem
by using a link job pool of size 1.
2015-06-18 16:29:43 -04:00
Brad King 7cd539b163 Add support for Concurrent Fortran 77 Compiler
The Concurrent Fortran compiler (ccur.com) is available on Linux and can
be used much like the GNU Fortran compiler.  Currently it has no
preprocessor symbols to identify it so we need to detect it by matching
compiler output.

Suggested-by: Anthony Ette <Anthony.R.Ette@controlsdata.com>
2015-06-18 11:36:12 -04:00
Brad King 0d204c1c1d CMakeDetermineCompilerId: Try matching compiler output to detect id
Some compilers can only be distinguished by their compilation output
rather than preprocessor symbols or special flags.  Add infrastructure
to determine the compiler id by matching output.
2015-06-18 11:28:36 -04:00
Brad King 5f0dad75a9 CMakeDetermineCompilerId: Refactor id build/check loop logic
Callers of CMAKE_DETERMINE_COMPILER_ID initialize the
CMAKE_${lang}_COMPILER_ID to unset so we can check it at the end of each
loop iteration instead of the beginning.  This approach allows us to
break out of the loop as soon as we succeed.  It will also allow checks
to be added in more places within the loop later.
2015-06-18 11:27:00 -04:00
Brad King c65a060e1b CMakeDetermineCompilerId: Optionally try some flags before no flags
Teach CMAKE_DETERMINE_COMPILER_ID to optionally try detecting the
compiler id using some given flags before trying to detect it with no
special flags.  This will be useful for Fortran detection to distinguish
some compilers that use the preprocessors of others but have no macro of
their own by getting verbose output.
2015-06-18 10:59:35 -04:00
Brad King e2e6cb7348 Merge topic 'linux-GNU-Fortran-no-rdynamic'
f43defae GNU: Drop -rdynamic flag from Fortran
2015-06-18 09:05:20 -04:00
Brad King ab00ff8d7a Merge topic 'GNUInstallDirs-doc-format'
1199ebf1 GNUInstallDirs: Improve documentation formatting
2015-06-18 09:05:13 -04:00
Alex Turbov c8bd37ec68 GNUInstallDirs: Add special cases for certain prefixes
Teach the module to handle SYSCONFDIR and LOCALSTATEDIR properly if
CMAKE_INSTALL_PREFIX is set to `/` or `/usr` -- i.e. as expected by GNU
Coding Standard (i.e. set SYSCONFDIR to `/etc` and `LOCALSTATEDIR` to
`/var`).  Also if CMAKE_INSTALL_PREFIX is set to /opt/pkg, `SYSCONFDIR`
must be set to `/etc/opt/pkg` and `LOCALSTATEDIR` to `/var/opt/pkg`
according to FHS.
2015-06-18 08:59:34 -04:00
Brad King f43defaec4 GNU: Drop -rdynamic flag from Fortran
The GNU Fortran compiler does not document support for this flag as the
GNU C and C++ compilers do.
2015-06-16 13:58:41 -04:00
Brad King 1199ebf1c5 GNUInstallDirs: Improve documentation formatting
Also consolidate the description of each variable.
2015-06-16 10:33:48 -04:00
Bill Hoffman b405f01daa FindCUDA: Resolve a host compiler symlink only if it is Apple cc -> clang
Otherwise using a "cc -> ccache" or similar symlink as the compiler
causes FindCUDA to select ccache as the host compiler.  Update the logic
added by commit v3.1.0-rc1~354^2 (FindCUDA: Fix OSX Clang & no C
language enabled, 2014-06-12) to apply only in the specific case it is
needed.
2015-06-15 09:41:10 -04:00
Eon Jeong 12e534c2b8 FindBISON: Add DEFINES_FILE option to pass --defines=FILE 2015-06-09 10:26:01 -04:00
Eon Jeong eb859263ae FindBISON: Use CMAKE_PARSE_ARGUMENTS to parse arguments 2015-06-09 10:21:52 -04:00
Eon Jeong 29985ad894 FindBISON: Use BISON_TARGET macro argument names internally
The macro argument names are much clearer than ${ARGV#} references.
2015-06-09 10:21:51 -04:00
Brad King 801b799f9d FindBISON: Improve documentation formatting 2015-06-09 10:21:42 -04:00
Brad King a53d920290 Merge topic 'revert-mingw-no-find_library-dll'
f5dbf00d Windows-GNU: Restore find_library treatment of '.dll' as linkable (#15409)
2015-06-09 09:18:44 -04:00
Brad King 5a5a81e550 Merge topic 'FindwxWidgets-versioned-executable'
2c969743 FindwxWidgets: Fix find_program call for versioned names
2015-06-09 09:18:40 -04:00
Brad King 7ac02e0bc5 Merge branch 'revert-mingw-no-find_library-dll' into release 2015-06-08 14:18:04 -04:00
Brad King 092133b1ba Merge topic 'ExternalProject_init_selected_submodules'
77ee6db5 Help: Add notes for topic 'ExternalProject_init_selected_submodules'
124243c0 ExternalProject: Add unit tests for GIT_SUBMODULES argument
14e2c3ad ExternalProject: Initialize only selected git submodules (#15590)
2015-06-08 10:34:49 -04:00
Brad King f5dbf00da6 Windows-GNU: Restore find_library treatment of '.dll' as linkable (#15409)
Revert commit v3.3.0-rc1~435^2 (Windows-GNU: Do not tell find_library to
treat '.dll' as linkable, 2015-02-18).  MinGW tools support linking to
'.dll' files directly and many non-CMake build systems still do not
provide a separate '.dll.a' file.
2015-06-08 10:16:18 -04:00
Brad King a20ca0c603 Merge branch 'FindwxWidgets-versioned-executable' into release 2015-06-08 09:19:39 -04:00
Brad King 2c96974315 FindwxWidgets: Fix find_program call for versioned names
In commit v3.3.0-rc1~132^2 (FindwxWidgets: Search for wx-config-3.0 in
addition to wx-config, 2015-04-29) we added a second (versioned) name to
the find_program call.  Specifying multiple names requires use of the
NAMES option.  Add it now.  While at it, also add versioned names for
2.9 and 2.8.
2015-06-08 09:13:29 -04:00
Brad King 39fc3ed7e0 CPackDeb: Check dpkg-shlibdeps --ignore-missing-info flag
Check for this flag explicitly in the --help output before using it.  It
turns out there are some versions of the tool that support --version but
not --ignore-missing-info.
2015-06-03 09:23:02 -04:00
Brad King 54a95f5fc6 CPackDeb: Check dpkg-shlibdeps version more robustly
Use if(MATCHES) to verify that a match exists before using the match
group variable.
2015-06-03 09:22:27 -04:00
Silvio Traversaro 14e2c3ad18 ExternalProject: Initialize only selected git submodules (#15590)
Honor the GIT_SUBMODULES option added by commit v3.0.0-rc1~92^2
(ExternalProject: Add option GIT_SUBMODULES, 2014-01-09) during the
'git submodule init' step to avoid initalizing all modules since we
are only going to update the specified subset anyway.  This will
be useful for project repositories that have many submodules
(e.g. https://github.com/boostorg/boost).

Reviewed-by: Daniele E. Domenichelli <daniele.domenichelli@iit.it>
2015-06-02 14:31:26 -04:00
Brad King 3bcd2f538f Merge topic 'FindPostgreSQL-updates'
d4fd30d8 FindPostgreSQL: Search some more common packaging locations
8bd95059 FindPostgreSQL: Add help text for PostgreSQL_LIBRARY cache entry
a68e9b7c FindPostgreSQL: Document PostgreSQL_LIBRARY_DIRS result variable
cc3aee04 FindPostgreSQL: Search for versions 9.2, 9.3, and 9.4
6a2851a1 FindPostgreSQL: Remove extra whitespace after command open parens
b7ca6f90 FindPostgreSQL: Remove unused lines
2015-06-02 09:03:54 -04:00
Brad King e14e1f273a Merge topic 'FindBoost-per-config-libraries'
b3df1e9f FindBoost: Fix Boost_LIBRARY_DIR_{RELEASE,DEBUG} cache entry configuration
2015-06-02 09:03:52 -04:00
Tamar Kranenburg d4fd30d8d8 FindPostgreSQL: Search some more common packaging locations
Use PATH_SUFFIXES to search more common packaging locations.

On Windows, we can use suffixes to search in the standard Program Files
locations without hard-coding the C:/ path.

On Ubuntu/Debian, starting with PostgreSQL 9.3 the header file pg_type.h
is moved to a separate package (from libpq-dev to postgresql-server-dev)
and consequently the file pg_type.h is moved to a new location:

  /usr/include/postgresql/<version>/server/catalog/pg_type.h

While at it, use separate PATH_SUFFIXES variables for library, type and
include (this is merely an optimization).
2015-06-01 11:01:00 -04:00
Tamar Kranenburg 8bd9505976 FindPostgreSQL: Add help text for PostgreSQL_LIBRARY cache entry
The PostgreSQL_LIBRARY_DIR_MESSAGE variable was set with the
needed text but never referenced.
2015-06-01 10:50:27 -04:00
Tamar Kranenburg a68e9b7cae FindPostgreSQL: Document PostgreSQL_LIBRARY_DIRS result variable 2015-06-01 10:47:59 -04:00
Tamar Kranenburg cc3aee048c FindPostgreSQL: Search for versions 9.2, 9.3, and 9.4 2015-06-01 10:47:02 -04:00
Tamar Kranenburg 6a2851a144 FindPostgreSQL: Remove extra whitespace after command open parens 2015-06-01 10:46:12 -04:00
Tamar Kranenburg b7ca6f9037 FindPostgreSQL: Remove unused lines 2015-06-01 10:44:25 -04:00
Brad King b3df1e9f70 FindBoost: Fix Boost_LIBRARY_DIR_{RELEASE,DEBUG} cache entry configuration
These cache entries introduced by commit 892b854f (FindBoost: Search for
debug and release libraries separately, 2015-01-26) should be marked as
advanced just as Boost_LIBRARY_DIR was.  Also their _LAST values should
be tracked so changes can be detected reliably.  Both of these are
handled by code looking in _Boost_VARS_LIB for a list of relevant
variables.  Fix construction of this list that was broken by the above
commit.

Reported-by: Sylvain Joubert <joubert.sy@gmail.com>
2015-06-01 10:10:08 -04:00
Brad King 836c4e9314 Merge topic 'FindPkgConfig_fix_extra_path'
d4c6531a FindPkgConfig: Fix extra paths for CMAKE_{FRAMEWORK,APPBUNDLE}_PATH vars
2015-06-01 09:37:34 -04:00
Raffi Enficiaud 8444809c47 FindMatlab: fix reconfiguration of Matlab_ROOT_DIR 2015-06-01 09:24:06 -04:00
Raffi Enficiaud 5752e55805 FindMatlab: fix header visibility of the generated mex files 2015-06-01 09:24:06 -04:00
Raffi Enficiaud 221a02635e FindMatlab: Drop incorrect usage option from test helper script
There is no 'working_directory' option.
2015-06-01 09:23:54 -04:00
Daniele E. Domenichelli d4c6531a94 FindPkgConfig: Fix extra paths for CMAKE_{FRAMEWORK,APPBUNDLE}_PATH vars
The CMAKE_FRAMEWORK_PATH and CMAKE_APPBUNDLE_PATH cache variables are
supposed to be used to generate the extra paths passed to pkg-config,
but instead the CMAKE_PREFIX_PATH variable is used.

This bug was introduced by the refactor in commit v3.1.0-rc1~747^2~1.
2015-05-29 19:22:57 +02:00
Brad King bd2ef44b55 Intel: Disable Fortran optimizations for Debug config on Windows (#15583)
The "/Od" flag is used for C and C++ languages in this configuration so
we should use it for Fortran too.

Suggested-by: Oleg V. Zhylin <ovz@yahoo.com>
2015-05-26 10:25:31 -04:00
Brad King 0de47b05f7 ExternalData: Add option to disable use of symlinks
Add an ExternalData_NO_SYMLINKS to enable use of copies instead of
symlinks to populate the real data files behind a DATA{} reference.
This will be useful on UNIX-like systems when the underlying filesystem
does not actually support symbolic links.

Suggested-by: Matt McCormick <matt.mccormick@kitware.com>
2015-05-22 09:21:47 -04:00
Brad King 3541fc73a1 Merge topic 'ExternalProject_FixLog'
a0d620de ExternalProject: Fix log when the first arg of commands is "COMMAND" (#15567)
2015-05-21 09:03:57 -04:00
Brad King 41d833e1e9 Merge topic 'cleanup-module-policies'
b3795df2 FortranCInterface: Do not use cmake_policy(VERSION)
a4596f20 CheckTypeSize: Do not use cmake_policy(VERSION)
2015-05-21 09:03:38 -04:00
Brad King a696974298 Merge topic 'CheckTypeSyze-CMP0054'
6784f0a6 CheckTypeSize: Avoid if() auto-dereferene in quoted arguments (#15571)
2015-05-21 09:03:37 -04:00
Daniele E. Domenichelli a0d620de82 ExternalProject: Fix log when the first arg of commands is "COMMAND" (#15567) 2015-05-20 15:43:15 +02:00
Brad King b3795df2f4 FortranCInterface: Do not use cmake_policy(VERSION)
Do not force a specific policy version in the module because it prevents
projects from setting newer policies to NEW.  In particular, projects
may want to set CMP0056 to NEW to affect any try_compile calls in this
module.

Use of this was added in commit v2.8.2~714 (FortranCInterface: Use CMake
2.8.0 behavior, 2009-11-17) in order to set CMP0007 to NEW.  Simply set
this policy explicitly instead.
2015-05-19 13:00:38 -04:00
Brad King a4596f2048 CheckTypeSize: Do not use cmake_policy(VERSION)
Do not force a specific policy version in the module because it prevents
projects from setting newer policies to NEW.  In particular, projects
may want to set CMP0056 to NEW to affect any try_compile calls in this
module.

Use of this was added in commit v2.8.2~539 (New CheckTypeSize for OS X
Universal Binaries, 2009-12-17) and updated in commit v3.1.0-rc1~511^2~1
(Do not change minimum required version in modules, 2014-05-07).  The
history does not clearly explain why a specific policy version was
introduced.  If specific policies need to be NEW then we can add
explicit settings for them.
2015-05-19 12:56:07 -04:00
Rolf Eike Beer 6784f0a6eb CheckTypeSize: Avoid if() auto-dereferene in quoted arguments (#15571)
Exposed by a CMP0054 warning.  Set CMP0054 to NEW since no code in this
module depends on the old behavior.
2015-05-19 12:47:24 -04:00
Brad King 00ccfff2bc Merge topic 'cpack-ifw-updates'
342d15cb Update packaging of CMake for QtIFW 2.0
9a0ba4d2 CPackIFW: Add QtIFW 2.0 support
2015-05-18 09:56:17 -04:00
Raffi Enficiaud efab80501e CPack/DEB: reworked documentation 2015-05-15 23:07:49 +02:00
Brad King 1911cb2173 Merge topic 'FindSquish-sh-exit'
12b85b17 FindSquish: Avoid bash-specific behavior in test script (#15568)
2015-05-15 11:22:26 -04:00
Konstantin Podsvirov 9a0ba4d24a CPackIFW: Add QtIFW 2.0 support
Add variables:

- CPACK_IFW_FRAMEWORK_VERSION
- CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS
- CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH
- CPACK_IFW_PACKAGE_CONTROL_SCRIPT
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME
- CPACK_IFW_PACKAGE_START_MENU_DIRECTORY
- CPACK_IFW_VERBOSE
2015-05-15 11:02:49 -04:00
Brad King a86ddbe56e Merge topic 'FindHDF5-version-support'
56858178 FindHDF5: Add version support
4bd122ad FindHDF5: Check for a few H5pubconf*.h name variants
2015-05-14 10:27:42 -04:00
Felix Geyer 12b85b1791 FindSquish: Avoid bash-specific behavior in test script (#15568)
Fix Squish4RunTestCase.sh to be POSIX compliant by exiting with 255
explicitly instead of depending on bash to translate -1 to 255.  This
script is used by the SQUISH_V3_ADD_TEST and SQUISH_V4_ADD_TEST macros
provided by FindSquish.
2015-05-14 08:53:33 -04:00
Axel Huebl 5685817874 FindHDF5: Add version support
Detect the HDF5 version and set HDF5_VERSION just as we
detect HDF5_IS_PARALLEL from the header already.
2015-05-13 10:00:55 -04:00
Brad King 4bd122ad9c FindHDF5: Check for a few H5pubconf*.h name variants
Some distros package H5pubconf.h as "H5pubconf-32.h" or "H5pubconf-64.h"
depending on the architecture.  Look for all of these names.
2015-05-13 09:59:43 -04:00
Felix Geyer 7953867ba4 FindJava: Fix OpenJDK 8 version detection (#15565)
The openjdk-8 (8u45-b14-2) package on Debian unstable has extra
text after the version number components.  Match this and add it
to the reported version string.
2015-05-12 13:46:12 -04:00
Brad King 70d48e1287 Merge topic 'cpack-deb-component-dependencies'
1237d5fa Help: Add notes for topic 'cpack-deb-component-dependencies'
e3f522f6 CPack/DEB per component dependencies
2015-05-12 09:12:54 -04:00
Brad King a5bab6e1a4 Merge topic 'cpack-not-running-tests'
7c103be8 CPack: Enable DEB and RPM tests more reliably
2015-05-12 09:12:52 -04:00
Brad King ffd5d09225 Merge topic 'find_package-no-cmake-gui-paths'
1506f9ca find_package: Drop search in recent cmake-gui locations
8d484463 FindFLTK: Drop search in recent cmake-gui locations
2015-05-12 09:12:50 -04:00
Brad King 55fe56444f Merge topic 'ExternalProject-improve-missing-source-error'
dcb18836 ExternalProject: Improve error when SOURCE_DIR is missing (#15560)
2015-05-12 09:12:43 -04:00
Brad King cca3bbde98 Merge topic 'ninja-gcc-windows'
cf8ce7a3 RC: Do not override MinGW Makefiles generator preference
ca658a45 Ninja: Use forward slashes for linking with any GCC on Windows (#15439)
2015-05-12 09:12:41 -04:00
Domen Vrankar 7c103be8de CPack: Enable DEB and RPM tests more reliably
CPack DEB and RPM generators were not used for some tests because
CPACK_BINARY_DEB and CPACK_BINARY_RPM variable were not set.  Fix this,
simplify generator selection in CTEST_RUN_CPackComponentsForAll, and fix
bugs that were detected after tests were run.
2015-05-12 08:56:34 -04:00
Brad King cf8ce7a39e RC: Do not override MinGW Makefiles generator preference
Update logic added in commit 957c2aac (RC: Simplify selection of
resource compiler based on C/C++ toolchain, 2015-05-07) to avoid
overriding CMAKE_GENERATOR_RC.  The MinGW and MSYS Makefiles
generators use it to select a windres next to the compiler even
if it is not in the PATH.
2015-05-11 09:00:25 -04:00
Raffi Enficiaud e3f522f6e4 CPack/DEB per component dependencies
Dependencies may now be set per component
2015-05-08 23:36:26 +02:00
Brad King 8d48446372 FindFLTK: Drop search in recent cmake-gui locations
This is not done by any other find modules.
2015-05-08 11:26:56 -04:00
Brad King 715b3edf7d Merge topic 'WCDH-CMP0054-safety'
65e6b115 WCDH: Fix condition when variables named "FILE" or "PREFIX" are defined
2015-05-08 09:41:22 -04:00
Brad King e38a2b5953 Merge topic 'ninja-gcc-windows'
20560e8d Ninja: Do not use newlines in response files with Windows GNU tools (#15439)
b3de0dfe Ninja: Use forward slashes for any GCC on Windows (#15439)
378c2a0e Ninja: Refactor detection of MinGW tools on Windows
957c2aac RC: Simplify selection of resource compiler based on C/C++ toolchain
2015-05-08 09:41:20 -04:00
Brad King dcb188363d ExternalProject: Improve error when SOURCE_DIR is missing (#15560)
Mention the SOURCE_DIR that we checked and found empty or missing
so that the user can see the full path to what we expected to find.
2015-05-08 09:20:43 -04:00
Brad King 8102417695 Merge topic 'cpack-rpm-debug-log-fix'
1a2a73a5 CPack/RPM fix output in debug log
2015-05-07 14:25:40 -04:00
Brad King 6b9e2f7100 Merge topic 'cpack-deb-component-auto-discovery'
4588a169 CPack/DEB component dependency auto-discovery
2015-05-07 14:25:31 -04:00
Raffi Enficiaud 4588a1697f CPack/DEB component dependency auto-discovery
Dependency auto-discovery can now be set per component
2015-05-07 14:21:57 -04:00
Brad King 957c2aac7f RC: Simplify selection of resource compiler based on C/C++ toolchain
Revert the refactoring by commit v2.8.11~105^2~1 (Ninja: use MinGW
generator code in EnableLanguage, 2013-03-09) and move the MinGW-
specific logic back to the "MinGW Makefiles" generator.  Instead teach
the platform information modules for GNU and MSVC on Windows to set the
preferred RC compiler just before enabling the RC language.  This way
we choose the RC compiler based on the C/C++ toolchain that is actually
enabled.
2015-05-07 11:43:02 -04:00
Brad King 65e6b1152f WCDH: Fix condition when variables named "FILE" or "PREFIX" are defined
Reported-by: Kevin Godby <godbyk@gmail.com>
2015-05-07 09:00:45 -04:00
Brad King b492a17611 Merge topic 'hp-gnu-asm'
f4734270 HP-UX: Add GNU compiler information for ASM language
2015-05-05 09:35:28 -04:00
Brad King 2d02986b7c Merge topic 'InstallRequiredSystemLibraries-vs2015'
9b2778d4 InstallRequiredSystemLibraries: Update for VS 2015 (#15552)
2015-05-05 09:35:25 -04:00
Thomas Orozco 1a2a73a518 CPack/RPM fix output in debug log
output RPMBUILDOUT when intended
2015-05-05 07:47:10 +02:00
Brad King 9b2778d412 InstallRequiredSystemLibraries: Update for VS 2015 (#15552)
The part of the MS C Runtime library that applications need to
distribute has been renamed from "msvcr*.dll" to "vcruntime*.dll"
starting with VS 2015.  See the Visual C++ Team Blog:

 Introducing the Universal CRT
 http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx
2015-05-04 12:36:12 -04:00
Brad King 0f927b440a FindGTest: Fix parsing of test macro calls with spaces (#15553)
Tolerate spaces before the open paren and after the test name before the
comma.
2015-05-04 11:28:50 -04:00
Brad King f47342701c HP-UX: Add GNU compiler information for ASM language
Suggested-by: Gerhard Grimm <gerhard.grimm@detec.com>
2015-05-04 11:06:16 -04:00
Brad King 088d27c38b Merge topic 'FindwxWidgets-versioned-executable'
1b04561e FindwxWidgets: Search for wx-config-3.0 in addition to wx-config (#15540)
2015-04-30 10:32:13 -04:00
Brad King 1c3158558c Merge topic 'cpack-deb-component-description'
2f0afffa CPackDEB component description
2015-04-30 10:32:06 -04:00
Brad King b39929ab42 Merge topic 'revert-CMP0057'
32a2f414 Revert "add_custom_command: Diagnose MAIN_DEPENDENCY limitation."
2015-04-30 10:32:01 -04:00
Nils Gladitz 32a2f41402 Revert "add_custom_command: Diagnose MAIN_DEPENDENCY limitation."
This reverts commit 242c3966 (add_custom_command: Diagnose
MAIN_DEPENDENCY limitation, 2015-03-09) and the follow up commit
b372a99a (UseSWIG: Do not use MAIN_DEPENDENCY on custom commands,
2015-03-26).

I misdiagnosed the underlying issue that prompted creation of policy CMP0057.
The actual issue surfaces when a single custom command's MAIN_DEPENDENCY
is listed in more than one target; this issue will have to be addressed
independently.
2015-04-30 10:20:20 -04:00
Felix Geyer 4e70fa5cbf CPack: Fix typo in CPACK_INSTALL_CMAKE_PROJECTS docs (#15543) 2015-04-29 15:21:07 -04:00
Orion Poplawski 1b04561edb FindwxWidgets: Search for wx-config-3.0 in addition to wx-config (#15540)
The Fedora package installs 'wx-config' as 'wx-config-3.0' so look
for the latter name too.
2015-04-29 12:51:07 -04:00
Raffi Enficiaud 2f0afffabd CPackDEB component description
Support for setting different description
for each component.
2015-04-29 18:05:36 +02:00
Brad King 70d54b03fd Merge topic 'InstallRequiredSystemLibraries-fix-mbcs'
ff183986 InstallRequiredSystemLibraries: Fix MBCS MFC detection (#15531)
2015-04-28 13:55:52 -04:00
Brad King 7244e8452f ctest: Consolidate documentation of CTEST_USE_LAUNCHERS (#15533)
The documentation of this variable in the CTest module is outdated
and has been superseded by the ctest(1) manual.  In particular, the
latter mentions that it works with the Ninja generator as well as
makefile generators.  Remove the documentation from the CTest module
and replace it with a link to the main variable documentation (which
already references the ctest(1) manual).
2015-04-28 13:32:23 -04:00
Brad King f693c136f9 Modules/CTest: Improve documentation formatting
Use inline reStructuredText markup and add cross-references.
2015-04-28 13:32:23 -04:00
Brad King 5cbedd6b85 Modules/CTest: Use bracket comment for documentation block 2015-04-28 13:32:23 -04:00
Bjoern Thiel ff183986df InstallRequiredSystemLibraries: Fix MBCS MFC detection (#15531)
Fix the logic added by commit v3.0.0-rc5~9^2
(InstallRequiredSystemLibraries: MBCS MFC is optional on VS 12,
2014-05-06).  Do not test content of MSVC${v}_MFC_DIR until after the
variable is set.
2015-04-27 10:09:38 -04:00
Brad King 9fd1f5494f Merge topic 'allow-empty-CMAKE_TOOLCHAIN_FILE'
22926dd6 Allow CMAKE_TOOLCHAIN_FILE to be an empty string
2015-04-23 09:04:41 -04:00
Brad King 46098b0676 Merge topic 'check-compiler-flag-clang'
680ebebc Check*CompilerFlag: Add another pattern for Clang (#15526)
2015-04-23 09:04:39 -04:00
Andrey Pokrovskiy 22926dd651 Allow CMAKE_TOOLCHAIN_FILE to be an empty string
Do not try to include() an empty string in the generated CMakeSystem
module.
2015-04-22 16:06:44 -04:00
Dan Kegel 680ebebc1a Check*CompilerFlag: Add another pattern for Clang (#15526)
Match 'optimization flag ... not supported' messages.
2015-04-22 10:59:57 -04:00
Brad King e1c6df392b ExternalProject: Allow dependencies on INTERFACE libraries
Respect INTERFACE library property whitelist.  Check that a target has
type "UTILITY" before querying other properties.
2015-04-22 08:48:52 -04:00
Brad King c0502faa4b ExternalProject: Fix error message typo 2015-04-21 11:32:13 -04:00
Andrey Pokrovskiy 0273ef1469 ExternalProject: Allow generator expressions with LOG_* options (#15287)
Use file(GENERATE) to write the logging wrapper scripts to evaluate
generator expressions.  Use a per-config script names in case the
content varies by configuration.
2015-04-21 10:51:08 -04:00
Andrey Pokrovskiy 7bd8cfb813 ExternalProject: Allow generator expressions in initial cache options
Use file(GENERATE) to write the initial cache file so that we can
evaluate generator expressions.  Use a per-config initial cache file
name in case the content varies by configuration.
2015-04-21 10:50:29 -04:00
Brad King 0d852d4c65 Merge topic 'cpack-deb-component-vars-prepare'
c8375e15 CPackDeb: Refactor package variable lookup by generator
2015-04-21 09:39:51 -04:00
Domen Vrankar c8375e15eb CPackDeb: Refactor package variable lookup by generator
Preparation for per component variables.
Patch makes sure we know which variables
will be set for per component generator
and also prevents accidental overflows
of variable values between components.
2015-04-21 08:47:18 -04:00
Brad King 2a28f085a5 Merge topic 'FindCUDA.cmake/Fix-MakeDirDuringSeparableCompilation'
0ed22502 FindCUDA: Create output dir while compiling intermediate link file (#15016)
2015-04-21 08:45:03 -04:00
Brad King 50eefbb7e3 Merge topic 'cpack-rpm-refactored-file-listing'
cd953bf7 Help: Add notes for topic 'cpack-rpm-refactored-file-listing'
76080c32 CPackRPM content listing refactor
152e9b32 CPackRPM package content list code move
2015-04-21 08:44:57 -04:00
James Bigler 0ed22502a6 FindCUDA: Create output dir while compiling intermediate link file (#15016)
During compilation of the intermediate link file, the output directory
may not be present in Visual Studio builds.  This fix makes sure the
output directory exists before generating the output file.

Suggested-by: Irwin Zaid
2015-04-20 14:44:17 -04:00
Brad King 5e0e65c189 Merge topic 'add-GreenHills-MULTI-generator'
66b641f4 Help: Add notes for topic 'add-GreenHills-MULTI-generator'
48004d9d Add a 'Green Hills MULTI' generator on Windows
051d8be1 cmLocalGenerator: Constify some cmTarget and cmGeneratorTarget arguments
2015-04-20 14:02:52 -04:00
Geoff Viola 48004d9dbe Add a 'Green Hills MULTI' generator on Windows
Green Hills MULTI is an IDE for embedded real-time systems.  The IDE's
product page can be found here:

 http://www.ghs.com/products/MULTI_IDE.html

It supports cross compiling on ARM, Intel x86, and other architectures
with various operating systems.  The IDE exists on Linux and Windows
host systems, but CMake will currently only generate the project files
on Windows host systems.
2015-04-20 13:55:40 -04:00
Domen Vrankar 76080c32e1 CPackRPM content listing refactor
Refactoring of content list that removes
use of find and sed to make listing algorithm
more clear and remove external dependencies.
Patch also limits man pages handling to
locations listed in brp-compress rpm script
by default - fixes bug report #14660.
2015-04-19 18:22:18 +02:00
Domen Vrankar 152e9b3250 CPackRPM package content list code move
Move rpm package content list code to
a separate function.
2015-04-19 17:01:20 +02:00
Brad King f4e5a0e6aa Merge topic 'FPHSA-updates'
84f06d0c FPHSA: Document REQUIRED_VARS recommendation (#15352)
a3ad275c FPHSA: Revise and format documentation
d1a6d15b FPHSA: Always populate the ExactCase_FOUND variable (#15412).
2015-04-17 10:50:10 -04:00
Brad King 84f06d0c84 FPHSA: Document REQUIRED_VARS recommendation (#15352)
State explicitly that the variables specified are user-facing.
2015-04-17 10:46:25 -04:00
Brad King a3ad275ce0 FPHSA: Revise and format documentation
Use better reStructuredText markup and add cross-references.
2015-04-17 10:46:24 -04:00
Stephen Kelly d1a6d15bcd FPHSA: Always populate the ExactCase_FOUND variable (#15412).
The UPPERCASE name was inconsistent with config-packages, the
find_dependency macro, and even FPHSA itself, which expects
components to be specified with names matching ExactCase.

The FOUND_VAR was only permitted to have two possible values, and
now both are set for compatibility.  Document it as obsolete, and
adjust the code for the same.  Users of the variable should just
remove it.
2015-04-17 10:46:24 -04:00
Tuukka Pasanen dd7e31bc15 UseSWIG: Fix module name detection with relative source file (#15508)
When SWIG_GET_EXTRA_OUTPUT_FILES checks to see if a source file exists
for use in reading the module name, it must pass an absolute path to
the if(EXISTS) command.  Teach SWIG_ADD_SOURCE_TO_MODULE to give it
the absolute path it already knows.
2015-04-15 11:39:44 -04:00
Nils Gladitz fd04d87323 CTestCoverageCollectGCOV: Write tar files intended for CDash in gnutar format
PHP's PharData can not currently (PHP 5.6.4) extract paxr tar archives
with long filenames.
2015-04-10 08:32:31 -04:00
James Bigler 1b0c77a33d FindCUDA: Add specific cuda_language_flag instead of using nvcc.
I was previously appending to nvcc_flags inside the file loop.  This
caused the flag to be appended multiple times which freaks out nvcc.
Now the flag is specifically handled per file.
2015-04-09 11:41:36 -04:00
James Bigler 8313de2d5a FindCUDA: Allow setting CUDA_SOURCE_PROPERTY_FORMAT for non-.cu files.
A previously undocumented feature allowed overriding the format
specified to CUDA_WRAP_SRCS with a source file property called
CUDA_SOURCE_PROPERTY_FORMAT.  I added documentation for this feature as
well as added the ability to let nvcc compile any file regardless of
type if this property was found.

In addition, I also fixed a couple of bugs with the calls to
_cuda_get_important_host_flags that weren't garding the arguments with
"" to prevent empty values from causing errors.
2015-04-09 11:41:36 -04:00
Brad King 48040c19d5 Merge topic 'FindCUDA.cmake/C++11Flags'
99abebde FindCUDA: Handle c++11 host flag
2015-04-09 11:32:39 -04:00
James Bigler 99abebdea0 FindCUDA: Handle c++11 host flag
If the host flags contain a c++11 flag (at least for gcc), then we can't
automatically propagate to nvcc it using -Xcompiler.  This is because
nvcc can't use any C++ only flags.  Instead we find this flag and add it
to nvcc's flags (it has a special flag for dealing with c++11 code) and
remove it from the host flags.

Co-Author: Guillermo Marcus <gmarcus@nvidia.com>
2015-04-08 16:25:47 -04:00
Brad King f3be6c1b9b Merge topic 'FindMatlab_add_recent_versions'
7e311773 FindMatlab: Look for R2014b and R2015a
2015-04-08 09:42:17 -04:00
Daniele E. Domenichelli 7e311773b5 FindMatlab: Look for R2014b and R2015a 2015-04-07 11:42:02 +02:00
Brad King ecb1d5b47a Features: VS 2013 Update 3 supports initializer lists (#15494)
VS 2013 originally claimed to support initializer lists but a bug was
found in which it generated bad code silently.  For this reason we
previously considered support to not be present.  However, Update 3 adds
a hard error on cases that previously generated bad code, so it is now
safe to use initializer lists with VS 2013 Update 3 or greater.  At
worst a compiler error will be issued in the cases that do not work, but
that is no different from any other compiler-specific workaround a
project code may need.
2015-04-06 10:06:26 -04:00
Brad King dfbde6fa99 Merge topic 'gcov-module-coverage-exclude'
9a544f2d CTestCoverageCollectGCOV: Support CTEST_CUSTOM_COVERAGE_EXCLUDE
2015-04-06 08:58:21 -04:00
Nils Gladitz 9a544f2d98 CTestCoverageCollectGCOV: Support CTEST_CUSTOM_COVERAGE_EXCLUDE 2015-04-04 12:25:15 +02:00
James Bigler 7fea2b77df FindCUDA: Use the static CUDA runtime library if available (#15482)
Beginning in CUDA 5.5 a static version of the cuda runtime library
became available.  Since nvcc defaults to using this library over the
shared version, FindCUDA will also default to using this version.  There
are many advantages to using the static version (most importantly to
avoid conflicts with multiple versions when building a CUDA based
library).  Offer a CUDA_USE_STATIC_CUDA_RUNTIME option to control
this behavior.
2015-04-03 10:15:17 -04:00
Brad King ad09756fed Merge topic 'cpack-rpm-basic-symlink-handling'
68e13e98 Help: Add notes for topic 'cpack-rpm-basic-symlink-handling'
681f3a2f CPackRPM: Add basic symlink support (#15209)
2015-03-31 14:11:20 -04:00
Domen Vrankar 681f3a2f01 CPackRPM: Add basic symlink support (#15209)
RPM packages can contain symbolic links to relative paths - including
support for multiple relocation paths through generation of post install
relocation scripts.  Add basic support with limitations described in
documentation.
2015-03-31 14:04:13 -04:00
Felix Schwitzer b372a99a13 UseSWIG: Do not use MAIN_DEPENDENCY on custom commands (#15480)
Add the dependency on the main swig input source file as a normal
DEPENDS option.  We cannot use MAIN_DEPENDENCY because if there are
multiple target languages then multiple custom commands would want to
use the same MAIN_DEPENDENCY, but at most one custom command may specify
a given source file as its MAIN_DEPENDENCY.  Exposed by a CMP0057
warning.
2015-03-30 09:35:43 -04:00