Commit Graph

6113 Commits

Author SHA1 Message Date
Ben Webb 96a8890c7d FindSWIG: Do not generate erroneous outputs with -noproxy
Generally for a module foo, SWIG generates (in Python mode)
an extension module _foo.so and a proxy Python module foo.py.
However, if -noproxy is specified, instead it builds only foo.so
(without the leading underscore). The custom command generated
by CMake correctly handles the removal of this underscore when
-noproxy is given; however, it still adds foo.py to the expected
outputs. This upsets build tools that expect foo.py to be generated
(for example, 'make' will run the SWIG command twice). Fix this
by removing foo.py from the set of extra generated files when
-noproxy is specified.
2015-09-09 10:01:06 -04:00
Brad King 2fbc41f38a Record compile features for GNU C on Windows (#15727)
Drop the 'UNIX' condition on GNU C compiler features.
2015-09-09 09:32:46 -04:00
Brad King 20b7e79d21 Merge topic 'FindOpenSSL-static-libs'
369a8cde FindOpenSSL: Optionally search only for static libraries
2015-09-08 10:24:34 -04:00
Gregor Jasny 9cdf6ef48d Swift: Add proper Swift compiler test
This catches for example the unavailability of Swift with
Xcode Beta6 and macosx10.10 SDK.
2015-09-06 18:19:18 +02:00
Rolf Eike Beer ea080e3eb3 write_basic_package_version_file: remove variable dereferences in templates
Fixes some minor whitespace issues in the if()s.
2015-09-04 20:44:24 +02:00
Gregor Jasny 4da60024ad Swift: Fix Compiler-Id detection for Swift 2 2015-09-03 20:30:45 +02:00
Thijs Wenker 369a8cde37 FindOpenSSL: Optionally search only for static libraries
Add an OPENSSL_USE_STATIC_LIBS option to enable it.  Adjust
CMAKE_FIND_LIBRARY_SUFFIXES to only look for .a and .lib files.  Also
adjust the search paths on Windows for installer locations of static
libraries.
2015-09-02 13:47:57 -04:00
Michael Scott 11097f5231 FindZLIB: Find debug and release variants separately
Provide each variant in ZLIB_LIBRARIES and ZLIB::ZLIB imported location
properties when one is found, while maintaining support for manually
setting the library via ZLIB_LIBRARY.
2015-09-02 11:35:43 -04:00
Paul Romano f7f73df1b3 FindHDF5: Add hdf5_hl to list of libraries to search for Fortran_HL
When the Fortran_HL component is specified, the hdf5_hl library is not included
in HDF5_LIBRARIES which causes a bunch of undefined references at link
time. This commit adds hdf5_hl to the list of libraries to search for when the
Fortran_HL component is specified.
2015-09-01 10:56:51 -04:00
Paul Romano 19e7db07e3 FindHDF5: Fix support for HL and Fortran_HL components
Define HDF5_{Fortran_,}HL_COMPILE_LINE so that HDF5_{Fortran_,}HL_INCLUDE_DIR
and HDF5_{Fortran_,}HL_LIBRARIES are found when the macro is invoked for HL and
Fortran_HL components.  (Use patch from debian cmake-data package.)
2015-09-01 10:56:40 -04:00
Brad King d01e3c31c9 Merge topic 'FindJNI-mips'
90a22c3a FindJNI: Add mips64(el) mipsn32(el) support (#15714)
2015-08-31 09:48:35 -04:00
Yunqiang Su 90a22c3ac5 FindJNI: Add mips64(el) mipsn32(el) support (#15714)
Submitted-by: Felix Geyer <fgeyer@debian.org>
2015-08-28 09:37:22 -04:00
Tony Kelman 3e2865b467 GenerateExportHeader: Use dllexport/dllimport on Cygwin
Cygwin sits on top of Windows and so can use explicit symbol
export and import markup too.

Co-Author: Yaakov Selkowitz <yselkowitz@cygwin.com>
2015-08-27 10:08:34 -04:00
Brad King f96b6af18a Merge topic 'FindJNI-suse-and-ibm'
290b0f94 FindJNI: Add support for SuSE platform and IBM Java SDK
2015-08-27 10:04:01 -04:00
Brad King ba6533e658 Merge topic 'apple-tbd-stubs'
67f60958 Darwin: Add support for tbd library stub files
2015-08-27 10:03:58 -04:00
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