Commit Graph

5610 Commits

Author SHA1 Message Date
Rolf Eike Beer 46368eddfd FindThreads: move checking of the -pthread compiler flag into a macro
This allows a following commit to introduce a switch to prefer that check over
searching for the explicit library names without breaking backward
compatibility.
2014-10-06 21:30:09 +02:00
Brad King e0fef85c7a Merge topic 'FindThreads-macro'
94a061d3 FindThreads: use a macro for the repetitive thread library checks
2014-10-06 09:41:16 -04:00
Nils Gladitz c930046410 FindBoost: Avoid if() quoted auto-dereference
When testing CMAKE_CXX_COMPILER[_ID] values with if(MATCHES) or
if(STREQUAL), do not explicitly dereference or quote the variable.
We want if() to auto-dereference the variable and not its value.
2014-10-06 09:40:41 -04:00
Konstantin Podsvirov ed9684a22c CPackIFW: Added support for multiple repositories
Now user can add IFW specific repo with cpack_ifw_add_repository macro
2014-10-05 12:52:57 +04:00
Konstantin Podsvirov f9f748745c CPackIFW: Search algorithm update
Variables like CPACK_IFW_*_EXECUTABLE_FOUND now not needed
2014-10-04 22:55:43 +04:00
Rolf Eike Beer 94a061d372 FindThreads: use a macro for the repetitive thread library checks 2014-10-03 23:20:07 +02:00
Brad King 0dd07f1dfe Merge topic 'FPHSA-include'
3670c6a4 fix inclusion of FPHSA
2014-10-03 15:10:18 -04:00
Brad King 87eb1ed20b Merge topic 'FindThreads-dir'
cbd5db64 FindThreads: search test source relative to module
2014-10-03 15:10:16 -04:00
Brad King 8ec00743a6 Merge topic 'FindLua-exact'
c4a56b9c FindLua: fix wrong version list if EXACT is given
2014-10-03 15:10:14 -04:00
Ben Boeckel ca9cc25ce8 ctest: add support for additional sanitizer options
Sanitizers receive options through their environment variable; support
user-specified options here.
2014-10-03 13:45:07 -04:00
Rolf Eike Beer 3670c6a41c fix inclusion of FPHSA
Make sure these modules also include exactly the version shipped with CMake.
2014-10-02 23:44:39 +02:00
Timo Rothenpieler cbd5db6485 FindThreads: search test source relative to module
This is a simpler way to reference the location of FindThreads.cmake.
2014-10-02 22:13:44 +02:00
Rolf Eike Beer c4a56b9c1c FindLua: fix wrong version list if EXACT is given 2014-10-02 21:41:43 +02:00
Brad King 5b5e80e728 FindVTK: Drop this ancient compatibility module
The FindVTK module only existed to help find_package(VTK) calls work in
old projects written to use "USE_VTK_FILE" instead of "VTK_USE_FILE".
Drop it to allow find_package(VTK) calls to search for VTKConfig.cmake
directly.
2014-10-02 09:28:02 -04:00
Brad King fd6fa65726 FindITK: Drop this ancient compatibility module
The FindITK module only existed to help find_package(ITK) calls work in
old projects written to use "USE_ITK_FILE" instead of "ITK_USE_FILE".
Drop it to allow find_package(ITK) calls to search for ITKConfig.cmake
directly.
2014-10-02 09:28:02 -04:00
Brad King f640b2a41f Merge topic 'cleanup-CMP0054'
69fe5920 GenerateExportHeader: Avoid if() quoted auto-dereference
2014-09-30 11:29:09 -04:00
Brad King 40ae354ebb Merge topic 'GNUInstallDirs-typo'
33f03129 Fix typo in Modules/GNUInstallDirs.cmake (#15176)
2014-09-30 11:29:04 -04:00
Brad King 34d035e70e Merge topic 'vs-nsight-tegra-generator'
df84281d Help: Add notes for topic 'vs-nsight-tegra-generator'
69e198dc VS: Generate Nsight Tegra project revision number
5365c9ac VS: Map Nsight Tegra file types in .vcxproj files
178f56a5 VS: Fix Tegra-Android platform linking of libraries by name
7115702f Tests: Add test for VS Nsight Tegra generator support
a6289499 VS: Generate ANDROID_GUI executables as app packages
c12e4699 Add 'ANDROID_API' target property to set Android Target API
9a4df52a Add 'ANDROID_GUI' target property to mark Android applications
16569abf cmTarget: Track internally whether platform is Android
ef0fd4f0 VS: Teach vcxproj generation about the Tegra-Android platform
d09b60f5 VS: Detect compiler id of Nsight Tegra-Android toolchains
2f071466 VS: Teach VS >= 10 to recognize CMAKE_SYSTEM_NAME 'Android'
2014-09-30 08:46:27 -04:00
Brad King 178f56a579 VS: Fix Tegra-Android platform linking of libraries by name
Nsight Tegra Visual Studio Edition handles prefixing of library names
with '-l' automatically, so teach the generator not to do so.

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

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

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

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

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

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

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

Suggested-by: Nicolas Bock <nicolasbock@gmail.com>
2014-08-18 11:18:48 -04:00
Brad King 4ffec8f666 Check*: Add compatibility hack for old VXL code
The cleanup in commit 4f2fcce4 (Check*: Allow result variables to
contain regex special characters, 2014-07-31) broke old VXL code that
abuses the old "if(MATCHES)" implementation by using

  SET( ${VARIABLE} ${VARIABLE} )

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

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

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

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

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

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

The new signature is therefore:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

will produce the following output:

  2.8.12
  2.6

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

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

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

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

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

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

This supports use-cases like

 set(CMAKE_CXX_STANDARD 14)

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

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

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

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

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

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

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

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

If the named source tree path is expected to be a file but exists as a
directory, we still need to produce a FATAL_ERROR.
2014-04-17 09:45:09 -04:00
Brad King 51a8a37443 Merge topic 'FindGTest-typed-test'
1f3e95ba FindGTest: Teach GTEST_ADD_TESTS about TYPED_TEST
2014-04-17 09:11:08 -04:00
Brad King 41c76d5aeb Merge topic 'ar-no-replace'
1ec6485c Support duplicate object names in large archives (#14874)
2014-04-17 09:10:59 -04:00
Brad King ef10fc47ae Merge topic 'implicit-libNN-dirs'
cc57ff5c Drop /lib32 and /lib64 from link directories and RPATH (#14875)
2014-04-17 09:10:53 -04:00
Jack Morrison 1f3e95ba72 FindGTest: Teach GTEST_ADD_TESTS about TYPED_TEST 2014-04-16 14:01:52 -04:00
Brad King 1ec6485c6a Support duplicate object names in large archives (#14874)
Generalize the change from commit 39d0ade0 (Windows-GNU: Support
duplicate object names in large archives, 2014-04-14) to the default
archive rules.  These rules have used an incremental append approach
since commit v2.8.0~1856 (Build large archives incrementally,
2008-08-04).  Switch from "ar r" to "ar q" to be sure we always append
objects instead of replacing them.
2014-04-16 13:19:43 -04:00
Brad King ac00baa6a8 Merge branch 'implicit-libNN-dirs' into release 2014-04-16 13:19:03 -04:00
Brad King cc57ff5c49 Drop /lib32 and /lib64 from link directories and RPATH (#14875)
Extend CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES with these paths.  We
already have the equivalents under /usr.  Systems that have these
directories have their dynamic loaders configured already.  Do not allow
them to appear in the RPATH explicitly.
2014-04-16 11:40:48 -04:00
Stephen Kelly a36b957fc4 Features: Add cxx_template_template_parameters.
Extend the existing feature infrastructure as needed to support
both C++11 and C++98 features.
2014-04-16 15:16:23 +02:00
Brad King 8472ef243f Merge topic 'cxx11-features'
60c0d2dd Features: Add cxx_defaulted_move_initializers.
c4e67235 Features: Add cxx_long_long_type.
dcaafada Features: Add cxx_func_identifier.
251a1f02 Features: Add cxx_local_type_template_args.
53fe7773 Features: Add cxx_extended_friend_declarations.
16603f7c Features: Add cxx_enum_forward_declarations.
adf22f61 Features: Add cxx_default_function_template_args.
7b3e8a05 Features: Add cxx_right_angle_brackets.
9a49fd21 Features: Add cxx_decltype_incomplete_return_types.
1889045c Features: Add cxx_sizeof_member.
ab455eba Features: Add cxx_thread_local.
300ce248 Features: Add cxx_inline_namespaces.
f9d04a96 Features: Add cxx_variadic_macros.
3d76656f Features: Add cxx_uniform_initialization.
e74b216c Features: Add cxx_generalized_initializers.
ff80c3b4 Features: Add cxx_attributes.
...
2014-04-15 10:32:13 -04:00
Brad King b56a9ae7f1 Merge topic 'target_compile_features'
9eaf3755 Export: Populate INTERFACE_COMPILE_FEATURES property.
8ed59fc2 Add target_compile_features command.
4e6ca504 cmTargetPropCommandBase: Change the interface to return bool.
5412dede cmTarget: Transitively evaluate compiler features.
baff4434 cmTarget: Allow populating COMPILE_FEATURES using generator expressions.
f97bf437 Features: Add cxx_auto_type.
03355d6b cmTarget: Add COMPILE_FEATURES target property.
faeddf64 project: Add infrastructure for recording CXX compiler features
913394af cmTarget: Add CXX_STANDARD and CXX_EXTENSION target properties.
8238a6cd Add some COMPILE_OPTIONS for specifying C++ dialect.
892243fc Tests: Require CMake 3.0 for the SystemInformation test.
59b5fdd3 Don't load Clang-CXX from AppleClang-CXX.
2014-04-15 10:32:11 -04:00
Daniele E. Domenichelli ef9366b0bb FindGTK2: Add /usr/X11R6/ to include paths
Should fix builds on OpenBSD, see
http://open.cdash.org/viewTest.php?onlyfailed&buildid=3286713
2014-04-15 16:26:13 +02:00
Brad King 028aee1a07 Merge topic 'mingw-archive-no-replace'
39d0ade0 Windows-GNU: Support duplicate object names in large archives (#14874)
2014-04-15 10:22:36 -04:00
Brad King 18aaed77c0 Merge topic 'matches-cleanup'
f21ac16e Replace MATCHES test on numbers with EQUAL test
7eacbaed Replace MATCHES ".+" tests with NOT STREQUAL ""
3a71d34c Use CMAKE_SYSTEM_NAME instead of CMAKE_SYSTEM where sufficient
b0b4b460 Remove .* expressions from beginning and end of MATCHES regexs
5bd48ac5 Replace string(REGEX REPLACE) with string(REPLACE) where possible
2622bc3f Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)
2014-04-15 10:22:34 -04:00
Brad King 60d1882a67 Merge topic 'ninja-link-with-compile-flags'
97f2b7f5 Ninja: set correct LANGUAGE_COMPILE_FLAGS when linking
49fcffc6 Ninja: cmake formatting, make code more readable
b735c8cb MinGW: link like on Unix and use compile flags when linking
2014-04-15 10:22:32 -04:00
Brad King 4966c62f31 Merge topic 'CMakeDetermineVSServicePack-warn-deprecated'
73721c7c CMakeDetermineVSServicePack: Add deprecation diagnostic
2014-04-15 10:22:28 -04:00
Peter Kümmel b735c8cb43 MinGW: link like on Unix and use compile flags when linking 2014-04-15 10:17:06 -04:00
Brad King 39d0ade07e Windows-GNU: Support duplicate object names in large archives (#14874)
Since commit v2.6.0~388 (Added build rule variables
CMAKE_<LANG>_ARCHIVE_..., 2008-01-29) we use separate "ar cr ..." and
"ar r ..." steps to incrementally add a large list of object files to an
archive.  Since the "r" command replaces existing objects of the same
name in an archive, if multiple objects have the same file name and
appear in separate append steps then one overwrites the other.  Instead,
use "ar cq ..." and "ar q ..." to always append to the archive.

We already remove the archive before creating it so this will not cause
objects to be appended to existing archives on incremental rebuilds.
2014-04-14 14:35:19 -04:00
Rolf Eike Beer f21ac16edd Replace MATCHES test on numbers with EQUAL test
The MATCHES tests were actually wrong, as "a4b" and "42" would also cause a
match when it should not.
2014-04-14 18:17:49 +02:00
Rolf Eike Beer 7eacbaed4d Replace MATCHES ".+" tests with NOT STREQUAL "" 2014-04-14 18:17:23 +02:00
Rolf Eike Beer 3a71d34cf3 Use CMAKE_SYSTEM_NAME instead of CMAKE_SYSTEM where sufficient 2014-04-14 18:17:18 +02:00