Commit Graph

4738 Commits

Author SHA1 Message Date
Brad King 0f05961f03 FindHDF5: Fix regression in per-configuration library selection
When FindHDF5 was first added in commit e6734068 (Add HDF5 find
module..., 2009-08-24) it contained a workaround for a bug in
SelectLibraryConfigurations that did not transform lists correctly.
That bug was fixed by commit 5797512c (SelectLibraryConfiguration:
generate correct output when input vars are lists, 2012-07-28).  Then
refactoring in commit 04d4dc33 (SelectLibraryConfigurations: Use
-NOTFOUND instead of copying the vars, 2013-07-08) changed undocumented
behavior on which the original workaround relied.  The result puts
entries like HDF5_hdf5_LIBRARY_DEBUG-NOTFOUND in HDF5_LIBRARIES.

Fix this by dropping the original workaround since the underlying issue
has been fixed anyway.  Use the HDF5_${LIB}_LIBRARY selected by the call
to select_library_configurations directly.
2013-09-19 13:35:01 -04:00
Alex Neundorf 5f11b8de28 Eclipse: add version 4.3 for completeness
This just adds the version number, there are no features
depending on this.

Alex
2013-09-19 00:58:25 +02:00
Alex Neundorf 2b63734b7f Eclipse: print different message if CMAKE_ECLIPSE_VERSION is already set
This fixes #14422.

Alex
2013-09-19 00:53:38 +02:00
Alex Neundorf 1ff8c21734 CMakeFindEclipse: use lowercase for macro calls
Alex
2013-09-19 00:14:13 +02:00
Brad King 40c76c1dc8 Merge topic 'FindPNG-compatibility'
6816044 FindPNG: Honor old PNG_LIBRARY if provided (#14398)
2013-09-17 08:15:32 -04:00
Rolf Eike Beer 864e2a3141 FindOpenSSL: mark variables as advanced for MSVC (#14418) 2013-09-17 08:10:08 +02:00
Brad King 68160448b9 FindPNG: Honor old PNG_LIBRARY if provided (#14398)
In commit 2a797539 (FindPNG: improve library detection, 2013-07-27) we
split the search for PNG into separate PNG_LIBRARY_DEBUG and
PNG_LIBRARY_RELEASE variables.  However, if a project or user sets the
old PNG_LIBRARY value we must honor it instead of searching.

While at it, mark PNG_LIBRARY_RELEASE and PNG_LIBRARY_DEBUG as advanced
and remove a stray debug message.
2013-09-13 11:54:31 -04:00
Brad King ef27fa6760 FindCUDA: Always list custom command outputs in their targets
CMake's intended interface for linking to explicit object files (marked
with EXTERNAL_OBJECT) is that only those listed as target sources should
be linked.  Drop FindCUDA's attempt to hide the .obj files from VS IDE
project files, which depends on VS-version-specific behavior of linking
custom command outputs that happen to be named "*.obj".  CMake puts
external object files in a dedicated source group anyway.
2013-09-13 10:08:43 -04:00
Alex Neundorf bbb0d6faa6 CMakeGraphVizOptions.cmake: Fix typo in documentation
Alex
2013-09-11 21:08:25 +02:00
Brad King 3cd753dfff MSVC: Drop /link from executable link lines with Ninja
In commit fb9f73de (MSVC: Invoke 'link' directly for executables,
2013-04-08) we forgot to remove the /link option handling added by
commit e31df039 (Ninja: move <OBJECTS> in front of the first linker
option, 2012-09-27) to the Platform/Windows-MSVC module.  Drop it now.
2013-09-11 14:34:33 -04:00
Marius Luca 870f91e389 FindwxWidgets: Look in x64 directories for MSVC (#14393)
When compiling the 64 bit version of wxWidgets using nmake the library
folders become vc_x64_lib and vc_x64_dll and can coexist with the win32
version.
2013-09-10 08:41:13 -04:00
Brad King 8c891f86cc VS: Tolerate diagnostic output while detecting cl (#14387)
When the VS IDE build output setting

  Tools -> Options -> Projects and Solutions ->
   Build and Run -> MSBuild project output verbosity

is set to "Diagnostic" the build output contains a " (TaskId:###)"
suffix on the CMAKE_<lang>_COMPILER= line used to extract the compiler
executable location.  Strip this suffix before checking that the
reported location exists.
2013-09-03 14:04:25 -04:00
Stephen Kelly 0f3a66673f GenerateExportHeader: Deprecate add_compiler_export_flags function.
This is made obsolete by the CXX_VISIBILITY_PRESET and
VISIBILITY_INLINES_HIDDEN target properties.
2013-09-02 10:57:55 +02:00
Rolf Eike Beer afd4f7f042 FindPython*: simplify version selection
CMake already provides the version components split into variables, no need to
split them again.
2013-08-31 17:46:44 +02:00
Rolf Eike Beer 89cfa20052 Modules: add FindLua.cmake
This is a version agnostic variant of FindLua50.cmake and FindLua51.cmake.
2013-08-31 17:44:36 +02:00
Stephen Kelly bb501a2a64 CMakePackageConfigHelpers: Add a find_dependency macro
This macro handles the EXACT, REQUIRED and QUIET options
and sets an appropriate NOT_FOUND_MESSAGE for the package
if a dependency is not found.
2013-08-30 13:03:10 +02:00
Brad King 23b88ecd85 Merge topic 'FindImageMagick-hdri'
5803b94 FindImageMagick: Find libraries named with HDRI support (#14348)
2013-08-27 09:03:47 -04:00
Brad King fd09fd78a9 Merge topic 'FindTCL-paths-for-8.6'
141ce01 FindTCL: Add BSD paths for Tcl/Tk 8.6
2013-08-27 09:03:42 -04:00
Brad King 889527aa9c Merge topic 'doc-check-flags'
293ecfe CheckC*CompilerFlag: add documentation what to expect from a positive result
2013-08-26 10:34:23 -04:00
Raphael Kubo da Costa 141ce01062 FindTCL: Add BSD paths for Tcl/Tk 8.6
Follow-up to commit 4a015f77 (OpenBSD: Add paths for Tcl/Tk 8.4/8.5,
2012-12-03): those paths added for OpenBSD also work on other BSDs, some
of which are already using version 8.6 of Tcl/Tk.
2013-08-26 09:12:00 -04:00
Michel Zou d7a65a2f2c FortranCInterface: Fix cross-compiling Linux to MinGW (#14358)
After building the test binary tell find_program to search for it with
the ${CMAKE_EXECUTABLE_SUFFIX} so that the .exe can be found.  Since
find_program is normally used to locate host tools while cross-compiling
it needs this hint to find the target binary.

Suggested-by: Denis Barbier <bouzim@gmail.com>
2013-08-14 19:31:31 -04:00
Brad King 335a1278eb OS X: Do not default to non-existent deployment target SDK
Since commit 95f78e08 (OS X: Search for SDK based on deployment target,
2013-08-02) we select the default OS X SDK path to match the deployment
target.  Fix this behavior in the case that the matching SDK does not
exist and fall back to the SDK for the current host OS X version.
2013-08-14 19:16:42 -04:00
Rolf Eike Beer 6f3ebfed98 Check*CompilerFlag: make C and CXX modules share most error patterns (#14339)
This simplifies maintenance as most patterns will be for both modules and may
be added at a central place.

While at it add error patterns for XL and BCC.
2013-08-13 23:27:10 +02:00
Rolf Eike Beer 293ecfeb79 CheckC*CompilerFlag: add documentation what to expect from a positive result 2013-08-13 21:17:42 +02:00
Eric Bélanger 5803b94a8b FindImageMagick: Find libraries named with HDRI support (#14348)
When ImageMagick is built with HDRI support, the library names get a
HDRI suffix.
2013-08-13 09:26:28 -04:00
Stephen Kelly b33c9844fa Revert "Add compiler target compile options."
This reverts commit 2d9ec1dadf.
2013-08-09 14:28:43 +02:00
Brad King 4408382f19 Merge topic 'wince800'
0416a0e VS11: Add support for Windows CE SDKs
8fcf0ab Add support for new Windows CE compiler
2013-08-08 13:55:07 -04:00
Patrick Gansterer 8fcf0ab020 Add support for new Windows CE compiler
The new compiler versions do not need corelibc.lib as a default
link library and a architecture detection workaround.
2013-08-07 08:26:26 -04:00
Brad King fc657ef4d3 Merge topic 'osx-no-command-line-tools'
03ab170 OS X: Enable command-line build without tools in PATH
2013-08-07 08:21:24 -04:00
Brad King 5b141a7b29 Merge topic 'peheader'
bd827f9 WIN: Use COFF file header header for architecture detection (#14083)
2013-08-06 16:55:15 -04:00
Brad King dba225db33 Merge topic 'vs-cleanup'
c90151b VS: Unify how the name of the generator is specified
3873d29 Fix detection of WinCE SDKs with 64bit verion of CMake
40a4302 VS12: Remove duplicated overload of UseFolderProperty()
b02f09d VS: Replace ArchitectureId with PlatformName
4b15dc8 VS: Set CMAKE_VS_PLATFORM_NAME for VS7 and VS71 too
60e568c VS10: Do not set the TargetMachine when detecting the compiler
dfbfe6f VS6: Hardcode id_machine_6 for compiler detection
2013-08-06 16:54:54 -04:00
Brad King 03ab170fe0 OS X: Enable command-line build without tools in PATH
Teach modules CMakeDetermineCompiler and CMakeUnixFindMake to ask Xcode
where to find the compiler or make tools, using 'xcrun --find', if none
is found in the PATH.  Teach module Platform/Darwin to add the path to
the SDK to CMAKE_SYSTEM_PREFIX_PATH so that find_* command look there.
Also add the SDK /usr/include directory to the implicit include list in
CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES to suppress explicit -I
options for it.
2013-08-06 09:00:18 -04:00
Patrick Gansterer bd827f98ef WIN: Use COFF file header header for architecture detection (#14083)
Read the machine field from the COFF file header to get the exact
target architecture for ARM and SHx on the Windows platform.
2013-08-05 20:04:44 +02:00
Brad King 1768014dfc Merge topic 'osx-find-sdk-for-deployment-target'
bf5a5bc bootstrap: Do not suppress CMAKE_OSX_SYSROOT if CFLAGS have -isysroot (#14324)
95f78e0 OS X: Search for SDK based on deployment target (#14324)
2013-08-05 09:54:04 -04:00
Patrick Gansterer b02f09d434 VS: Replace ArchitectureId with PlatformName
Since we do not need the information about the target architecture
we can use the PlatformName only to specify the this information.
This also removes setting of the MSVC_*_ARCHITECTURE_ID variable
which is not required, because this variable gets set by the
compiler detection code in CMAKE_DETERMINE_COMPILER_ID_CHECK().
2013-08-05 13:38:26 +02:00
Patrick Gansterer 4b15dc855d VS: Set CMAKE_VS_PLATFORM_NAME for VS7 and VS71 too
Move the code which sets CMAKE_VS_PLATFORM_NAME from
cmGlobalVisualStudio8Generator to cmGlobalVisualStudio7Generator.
2013-08-05 13:38:23 +02:00
Patrick Gansterer 60e568cf79 VS10: Do not set the TargetMachine when detecting the compiler
The Microsoft linker is intelligent enough to detect the target
machine type depending on the input files. This allows us to
get the target architecture from the compiler instead of
maintaining the mapping to the platform name.
2013-08-05 13:38:21 +02:00
Patrick Gansterer dfbfe6f166 VS6: Hardcode id_machine_6 for compiler detection
id_machine6 is never set to an other value than x86. So it is
safe to remove the replacements with "x86" directly.
2013-08-05 13:38:19 +02:00
Brad King 95f78e08fe OS X: Search for SDK based on deployment target (#14324)
When available, use CMAKE_OSX_DEPLOYMENT_TARGET instead of the host OS X
version to select the default SDK.  This makes sense because one should
use the SDK matching the deployment target.

Suggested-by: John Ralls <jralls@ceridwen.us>
2013-08-02 14:05:00 -04:00
Daniele E. Domenichelli 73ba4e5030 FindGTK2: Detect pangoft2 and pangoxft libraries 2013-08-01 16:54:32 +02:00
Daniele E. Domenichelli 7ca5958820 FindGTK2: Detect gmodule library 2013-07-31 17:40:07 +02:00
Daniele E. Domenichelli 76c72b9f14 FindGTK2: gthread-2.0 folder does not exist
Partially revert commit 508e8ca024
2013-07-31 17:39:38 +02:00
Brad King e3b6ab92db Merge topic 'static_library_flags'
33e6e0b VS6: Add handling of CMAKE_*_LINKER_FLAGS_<CONFIG> variables
152dfda Add additonal tests for the linker flags
20ed496 Add documentation for the missing CMAKE_*_LINKER_FLAGS_* variables
54f7019 Add CMAKE_STATIC_LINKER_FLAGS to CMakeCommonLanguageInclude
2a43c30 Add support for CMAKE_STATIC_LINKER_FLAGS
14bbf83 Unify the way the flags of a static library are read
2013-07-31 08:49:01 -04:00
Brad King cdfeda60f6 Merge topic 'add-cmake_reset_check_state'
9349d69 Add cmake_reset_check_state() macro
2013-07-31 08:48:29 -04:00
Vadim Zhukov 9349d69abf Add cmake_reset_check_state() macro
It's acknowledged that check state should not generally nest,
so it should be cleared when used, for example, in Find* module.

Also, add optional RESET argument to cmake_push_check_state().
2013-07-31 08:43:22 -04:00
Patrick Gansterer 54f7019fd0 Add CMAKE_STATIC_LINKER_FLAGS to CMakeCommonLanguageInclude
Add support for CMAKE_STATIC_LINKER_FLAGS_* to
CMakeCommonLanguageInclude.cmake to set the defaults similar
to the other CMAKE_*_LINKER_FLAGS_*.
2013-07-31 08:41:07 -04:00
Brad King 7c3494e9ae Merge topic 'PrintHelperFunctions'
e32ff96 add macros cmake_print_properties() and cmake_print_variables()
2013-07-29 09:55:31 -04:00
Brad King 1b9aa69498 Merge topic 'FindPNG-dbg-rel'
2a79753 FindPNG: improve library detection (#14301)
2013-07-29 09:55:18 -04:00
Brad King 64bb8f4d19 Merge topic 'DocumentGraphvisOptions'
692ecf4 graphvizoptions: add copyright notice
ee32673 Add documentation for the --graphviz support
2013-07-29 09:55:08 -04:00
Brad King 3dace78c2c Merge topic 'minor-cleanups'
b8dc7fa Genex: Disallow LINKER_LANGUAGE only when used on a static library.
c8a10ba cmTarget: Fix iface libraries and languages for static libraries.
f94bdb3 cmTarget: Remove duplicates when printing traces of tll signatures
ff3d5fa Export: Fix typo of LINK_INTERFACE_LIBRARIES.
79a7a81 Docs: Document variables for default visibility values.
6f6391b Docs: Generalize and de-duplicate VISIBILITY_PREFIX docs.
d8cb47f Docs: Trim trailing whitespace in generated doc.
f10e648 Docs: Document existing target property debugging options.
4f4d69f Qt4Macros: Simplify some variable population.
a413a40 Qt4Macros: Remove undefined varible use.
b60a29e Qt4Macros: Remove unneeded generate CONDITION.
e454cba Docs: Document file(GENERATE) CONDITION as optional.
2013-07-29 09:54:34 -04:00
Brad King eaeadfe440 Merge topic 'FindGTK2Debug'
32cf738 FindGTK2: Remove GTK2_SKIP_MARK_AS_ADVANCED option
a874142 FindGTK2: Update local changelog
cd2d9c7 FindGTK2: Append _INCLUDE_DIR to var name in _GTK2_FIND_INCLUDE_DIR
732324f FindGTK2: Append _LIBRARY to var name in _GTK2_FIND_LIBRARY
03bd3d1 FindGTK2: Use GTK_XXX_LIBRARY_DEBUG libraries in debug mode
2013-07-29 09:54:21 -04:00
Daniele E. Domenichelli 32cf738c98 FindGTK2: Remove GTK2_SKIP_MARK_AS_ADVANCED option
Variables are now automatically marked as advanced by
SelectLibraryConfigurations
2013-07-29 09:40:58 -04:00
Daniele E. Domenichelli a874142987 FindGTK2: Update local changelog 2013-07-29 09:40:58 -04:00
Daniele E. Domenichelli cd2d9c739c FindGTK2: Append _INCLUDE_DIR to var name in _GTK2_FIND_INCLUDE_DIR
This is to keep _GTK2_FIND_INCLUDE_DIR and _GTK2_FIND_LIBRARY coherent
after previous commit
2013-07-29 09:40:58 -04:00
Daniele E. Domenichelli 732324f1c8 FindGTK2: Append _LIBRARY to var name in _GTK2_FIND_LIBRARY
This avoids to get the base name using a regexp, in order to use
SelectLibraryConfigurations
2013-07-29 09:40:57 -04:00
Daniele E. Domenichelli 03bd3d12c0 FindGTK2: Use GTK_XXX_LIBRARY_DEBUG libraries in debug mode
If the GTK_XXX_LIBRARY_DEBUG library is available, it is now used when
linking in debug mode XXX.
A new set of variables GTK_XXX_LIBRARY_RELEASE is added and the
original GTK_XXX_LIBRARY uses the optimized/debug syntax.
2013-07-29 09:40:57 -04:00
Rolf Eike Beer 2a7975398f FindPNG: improve library detection (#14301)
-add support for upcoming version 1.7
-improve version selection, use the major and minor of the requested version
 to generate the library suffix list
-support detection of release and debug libraries
2013-07-27 22:35:11 +02:00
Alex Neundorf e32ff9666c add macros cmake_print_properties() and cmake_print_variables()
This patch adds the file CMakePrintHelpers.cmake, which provides
the macros (functions) cmake_print_properties() and cmake_print_variables(),
which are useful e.g. for debugging and make inspecting target (or other)
properties easier.

Alex
2013-07-27 21:37:05 +02:00
Alex Neundorf 692ecf4b7c graphvizoptions: add copyright notice
Alex
2013-07-26 23:32:41 +02:00
Alex Neundorf ee32673c7d Add documentation for the --graphviz support
This patch adds Modules/CMakeGraphVizOptions.cmake, which is used
only for generating documentation for the --graphviz support.

Alex
2013-07-26 22:43:42 +02:00
Brad King 003154f62c Merge topic 'Qt4-INTERFACE_LINK_LIBRARIES'
0f267c0 FindQt4: Populate the INTERFACE_LINK_LIBRARIES of IMPORTED targets.
2013-07-26 09:00:56 -04:00
Brad King 30999f8da2 Merge topic 'doc-check-compiler-flag-override'
3e79d65 Check*CompilerFlag: Document use of CMAKE_REQUIRED_DEFINITIONS (#14309)
2013-07-26 09:00:51 -04:00
Stephen Kelly 4f4d69fcc2 Qt4Macros: Simplify some variable population. 2013-07-26 09:37:12 +02:00
Stephen Kelly a413a40873 Qt4Macros: Remove undefined varible use.
This may have been added in anticipation of processing COMPILE_OPTIONS,
but as moc does not accept them, there is no need for it.
2013-07-26 09:37:12 +02:00
Stephen Kelly b60a29eaa1 Qt4Macros: Remove unneeded generate CONDITION. 2013-07-26 09:24:22 +02:00
Brad King 86f2d83de3 Merge topic 'fix-FindQt4-available-modules'
d57c1c1 FindQt4: Re-add QAxServer to the QT_MODULES.
2013-07-25 08:37:01 -04:00
Brad King 3e79d656da Check*CompilerFlag: Document use of CMAKE_REQUIRED_DEFINITIONS (#14309)
Explain how CMAKE_REQUIRED_DEFINITIONS is set before calling the
check_*_source_compiles macros.
2013-07-25 08:25:15 -04:00
Stephen Kelly 0f267c012b FindQt4: Populate the INTERFACE_LINK_LIBRARIES of IMPORTED targets.
This makes the IMPORTED_LINK_INTERFACE_LIBRARIES_<CONFIG> properties
obsolete.
2013-07-25 13:55:42 +02:00
Stephen Kelly d57c1c1b9e FindQt4: Re-add QAxServer to the QT_MODULES.
This was removed instead of moved in commit b8af46cb (FindQt4: Don't
fail if certain Qt modules are unavailable.).
2013-07-24 17:59:13 +02:00
Brad King fdbf952684 Merge topic 'FindCuda_more_search_paths'
09f00a6 FindCUDA: Search for libraries in <prefix>/lib/<arch>/nvidida-current.
2013-07-24 11:02:37 -04:00
Brad King 49e8c65b92 Merge topic 'fix-FindQt4-available-modules'
969e7ee FindQt4: Don't use Qt component _FOUND vars before they're defined (#14286)
2013-07-24 11:02:29 -04:00
Stephen Kelly 969e7ee5df FindQt4: Don't use Qt component _FOUND vars before they're defined (#14286)
This fixes a regression introduced by commit b8af46cb (FindQt4: Don't
fail if certain Qt modules are unavailable., 2013-05-23)

The _FOUND variable is set by the _QT4_ADJUST_LIB_VARS macro, so
invoke that unconditionally, and guard only the set_property calls,
as described in the original bug report (#14165).
2013-07-24 10:46:00 -04:00
Brad King fd8746d038 Merge topic 'SelectLibraryConfigurations'
04d4dc3 SelectLibraryConfigurations: Use -NOTFOUND instead of copying the vars
07b44e7 SelectLibraryConfigurations: Do not cache the _LIBRARY variable
2013-07-22 09:48:39 -04:00
Brad King 29859c09af Merge topic 'cpack-wix'
bf23891 CPackWIX: Add support for custom WiX templates
155bb01 CMakeCPack: Provide an upgrade guid for WiX
bfa2e29 CPackWIX: Add option to specify the language(s) of the installer
6e51ea9 CPackWIX: Handle multiple shortcuts in the start menu
6d77e1a CPackWIX: Fix MSI package layout regression from parent
8c0e325 CPackWIX: Handle CPACK_PACKAGE_EXECUTABLES (#13967)
2013-07-22 09:48:32 -04:00
Daniele E. Domenichelli 04d4dc3374 SelectLibraryConfigurations: Use -NOTFOUND instead of copying the vars
If one of the libraries (_DEBUG or _RELEASE) is not set, the value is
set to the value of the other one.  FindQt4, from which the macro is
extracted, sets the values to XXX_LIBRARY_{DEBUG,RELEASE}-NOTFOUND
instead.  In both cases the XXX_LIBRARY is correct, but using NOTFOUND
makes it easier to understand which one is missing.

Update Tests/CMakeOnly/SelectLibraryConfigurations with the new logic.
2013-07-22 09:37:33 -04:00
Robert Maynard 09f00a6371 FindCUDA: Search for libraries in <prefix>/lib/<arch>/nvidida-current.
Ubuntu install the CUDA libraries into a location that is different
than the default location provided by the NVidia installer. So we
teach the FindCUDA package to also find the Ubuntu install location.
2013-07-22 09:16:11 -04:00
Adam J. Weigold bf23891942 CPackWIX: Add support for custom WiX templates
WiX provides a lot of functionality for installers that cannot be
supported (easily) in the default WIX.template.in file.

For most users, the default template should be fine.  However if users
want to produce merge modules, include custom actions, etc, this new
option allows for a hook into how the wxs is produced.
2013-07-19 14:50:43 -04:00
Richard Ulrich bfa2e299ae CPackWIX: Add option to specify the language(s) of the installer
Add option "CPACK_WIX_CULTURES".
2013-07-19 14:50:43 -04:00
Fredrik Axelsson 8c0e32550c CPackWIX: Handle CPACK_PACKAGE_EXECUTABLES (#13967)
Add start menu items including an uninstall shortcut.  Add variable
CPACK_WIX_PROGRAM_MENU_FOLDER to configure folder name.
2013-07-19 10:49:00 -04:00
Jason Spiro 9cdc5e6bc7 MinGW: Find mingw32-make included with Code::Blocks IDE (#14302)
If one installs MinGW using the Code::Blocks IDE installer it goes to a
path like "c:\Program Files\CodeBlocks\MinGW", not "c:\MinGW".  Use the
CodeBlocks registry entry to get the location.

Signed-off-by: Jason Spiro <jasonspiro4@gmail.com>
2013-07-19 07:56:37 -04:00
Brad King 4113f67187 Merge topic 'abi-check-tolerate-COPY_FILE-failure'
4dc4018 Teach compiler ABI check to tolerate try_compile COPY_FILE failure
2013-07-18 10:12:20 -04:00
Brad King 5b3ea27f97 Merge topic 'UseJava-copyright'
53431ea UseJava: Update notice of copyright by Kitware
2013-07-18 10:12:01 -04:00
Brad King 4dc4018553 Teach compiler ABI check to tolerate try_compile COPY_FILE failure
In CMakeDetermineCompilerABI we use try_compile with the COPY_FILE
option to get a copy of the compiled binary used to detect the ABI
information.  We already tolerate the case when compilation fails.
However, when compilation appears to succeed but does not produce the
expected executable the try_compile command immediately reports an error
because the COPY_FILE fails.

Tolerate COPY_FILE failure without stopping the overall configuration
process by using the try_compile COPY_FILE_ERROR option to capture the
error message.  Log the full error to CMakeError.log and simply report
failure to detect the ABI as if compilation had failed.

Teach the RunCMake.Configure test to cover this case and verify that the
messages show up as expected both in stdout and in CMakeError.log.
2013-07-17 15:40:44 -04:00
Brad King af884c490f Merge topic 'osx-fortran-dylib-versions'
1af8c8d OS X: Add Fortran library version flags (#14249)
2cc9f1f OS X: Add copyright notices to Darwin-*-Fortran.cmake
2013-07-17 08:47:24 -04:00
Brad King 4c7106b155 Merge topic 'UseJava-response-file'
177c051 UseJava: Pass sources to javac using response file (#13028)
2013-07-17 08:47:19 -04:00
Brad King 53431ea259 UseJava: Update notice of copyright by Kitware 2013-07-17 08:33:34 -04:00
Brad King 567440ce36 Merge topic 'FindPNG-1.6'
96fa4a2 FindPNG: Add versioned library names for 1.6 (#14289)
2013-07-16 13:59:27 -04:00
Brad King 9c119b829d Merge topic 'obsolete-qt4-macros'
cb7f32f Mark qt4_use_modules and qt4_automoc as obsolete.
2013-07-16 13:59:22 -04:00
Brad King 3573a94d72 Merge topic 'vs-no-indirect-output'
45d2966 VS: Avoid leaking child process output back to IDE (#14266)
2013-07-16 13:59:17 -04:00
Brad King 45d2966dcc VS: Avoid leaking child process output back to IDE (#14266)
The VS IDE sets the environment variable VS_UNICODE_OUTPUT when
executing build rules in order to tell MS tools to report output through
a back door instead of through stdout/stderr.  Unset this variable so
that CMake can capture or properly redirect all output from processes it
runs even when running inside a VS IDE build environment.

This generalizes the special cases fixed by commit 80d045b0 (When
GetPrerequisites.cmake runs dumpbin while running inside the VS IDE...,
2008-05-01) and commit 44aff73d (ExternalProject: Avoid bleed-through
output when logging, 2011-01-06), so drop special handling of
VS_UNICODE_OUTPUT in those instances.
2013-07-16 13:48:10 -04:00
Graham Markall 177c0516ce UseJava: Pass sources to javac using response file (#13028)
The command line string passed to javac can exceed the 8191-character
limit on Windows when there are a large number of files to compile.
To avoid this, the list of sources is written to a file which is then
passed to javac as an argfile.  Spaces in paths are dealt with by
enclosing each file in quotes, and separating files with a newline.
2013-07-16 13:29:00 -04:00
Graham Markall 1af8c8ddae OS X: Add Fortran library version flags (#14249)
The linker flags for setting the compatibility and current versions of
libraries on Darwin are set for the supported Fortran compilers.

Set CMAKE_Fortran_CREATE_SHARED_LIBRARY for the NAG Fortran compiler to
have no space after <SONAME_FLAG> so the NAG compiler can parse the
argument correctly.
2013-07-16 09:27:50 -04:00
Brad King 2cc9f1fd5c OS X: Add copyright notices to Darwin-*-Fortran.cmake 2013-07-16 09:25:06 -04:00
Brad King 96fa4a2e43 FindPNG: Add versioned library names for 1.6 (#14289)
While at it, refactor the versioned library name list generation to
reduce duplication.
2013-07-15 09:52:53 -04:00
Brad King 7fa77b3fb3 Merge topic 'revert-CMAKE_SYSROOT'
0416c94 Revert "Use --sysroot when cross compiling."
2013-07-15 09:33:56 -04:00
Brad King 0d41e9ea35 Merge topic 'doc-ExternalProject-COMMAND-keyword'
93c1165 ExternalProject: Document multiple COMMAND lines
2013-07-15 09:30:55 -04:00
Brad King 3b216d19f8 Merge topic 'CPack-fixGeneratedChangelogFormat'
976e51d CPackRPM make the changelog line conform to expected format
2013-07-15 09:30:45 -04:00
Stephen Kelly cb7f32f5b8 Mark qt4_use_modules and qt4_automoc as obsolete.
The QT_QMAKE_EXECUTABLE has to be passed through the cmake calls because
the executable may not be in the PATH.
2013-07-14 10:05:04 +02:00
Stephen Kelly 0416c94f64 Revert "Use --sysroot when cross compiling."
This reverts commit de4da665d3.

This feature is not yet ready for release. It needs to be
merged with the CMAKE_OSX_SYSROOT feature.
2013-07-12 15:44:38 +02:00
Daniele E. Domenichelli 07b44e7a1f SelectLibraryConfigurations: Do not cache the _LIBRARY variable
SelectLibraryConfigurations module currently cache and mark as advanced
the variable ${basename}_LIBRARY.
${basename}_LIBRARY_RELEASE and ${basename}_LIBRARY_DEBUG are usually
cached, because they often come from find_library().
${basename}_LIBRARY on the other hand is always of type
"optimized;${${basename}_LIBRARY_RELEASE};debug;${${basename}_LIBRARY_DEBUG}"
or just "${basename}_LIBRARY_RELEASE" or "${basename}_LIBRARY_DEBUG" if
only one version of the library is not found, if both have the same
value, or if configuration types are not supported.

Caching and marking as advanced just ${basename}_LIBRARY_RELEASE and
${basename}_LIBRARY_DEBUG is enough, just by modifying these two
variables, the user has enough control on finding the library, and
having 3 variables is redundant and confusing.
2013-07-10 15:06:01 +02:00
Brad King 93c1165705 ExternalProject: Document multiple COMMAND lines
We support multiple commands per external project step by using
the COMMAND keyword.  Document this behavior and show an example.
While at it, document that shell operators and current working
directory behavior is not defined.
2013-07-08 11:55:33 -04:00
Eric NOULARD 976e51d3a9 CPackRPM make the changelog line conform to expected format 2013-07-08 10:32:53 +02:00
Eric NOULARD 1703e069a9 CPackRPM protect '@' character in filename processed in the spec file. 2013-07-05 18:52:36 +02:00
Brad King 3173c93756 Merge topic 'Fortran-explicit-types'
7b5bc2c Fortran: Use explicit type in Fortran 90 check
2013-07-02 09:05:28 -04:00
Brad King 8b23045490 Merge topic 'FindGTK2vd2'
60e4555 FindGTK2: Add GTK2_DEFINITIONS variable
2013-07-02 09:05:05 -04:00
Brad King 31d55ee8ac Merge topic 'FindGTK2vs11'
eb16301 FindGTK2: Do not fail on MSVC11 if vc100 libraries are available
2013-07-02 09:04:12 -04:00
Brad King 7b5bc2c6f0 Fortran: Use explicit type in Fortran 90 check
In CMakeTestFortranCompiler we build a test program using a Fortran 90
construct to check whether the compiler supports the language.  Some
compilers have options to require explicit variable types.  Fix the test
program to use an explicit variable type so it passes under such a
configuration.

Suggested-by: Neil Carlson <neil.n.carlson@gmail.com>
2013-07-01 15:10:08 -04:00
Brad King 8a08ab051a Merge topic 'vs12-generator'
9a76d83 VS12: Find proper MSBuild for VSProjectInSubdir test
4e5cb39 Merge branch 'master' into vs12-generator
78fdbbc FindBoost: Add -vc120 mangling for VS 12
e99d7b1 VS12: Generate flag tables from MSBuild v120 tool files
77ac9b8 VS12: Add Visual Studio 12 generator (#14251)
2013-07-01 09:27:33 -04:00
Brad King 7c92d0dade Merge topic 'CMakeDetermineVSServicePack-vs11'
f449c68 CMakeDetermineVSServicePack: Add VS 11 update 3
2013-07-01 09:20:00 -04:00
Daniele E. Domenichelli 60e4555c89 FindGTK2: Add GTK2_DEFINITIONS variable
According to https://wiki.gnome.org/gtkmm/MSWindows on MSVC the /vd2
flag should be passed to the compiler in order to use gtkmm
2013-06-29 16:44:57 +02:00
Daniele E. Domenichelli eb1630112d FindGTK2: Do not fail on MSVC11 if vc100 libraries are available 2013-06-29 15:27:58 +02:00
Brad King 4e5cb398ae Merge branch 'master' into vs12-generator
Resolve conflicts in Tests/Preprocess/CMakeLists.txt by keeping
the side from 'master'.
2013-06-28 18:29:54 -04:00
Brad King 78fdbbcb41 FindBoost: Add -vc120 mangling for VS 12 2013-06-28 18:14:01 -04:00
Brad King 77ac9b8b9c VS12: Add Visual Studio 12 generator (#14251)
Copy cmGlobalVisualStudio11Generator to cmGlobalVisualStudio12Generator
and update version numbers accordingly.  Add the VS12 enumeration value.
Add module CMakeVS12FindMake to find MSBuild.  Look for MSBuild in its
now-dedicated Windows Registry entry.  Teach the platform module
Windows-MSVC to set MSVC12 and document the variable.  Teach module
InstallRequiredSystemLibraries to look for the VS 12 runtime libraries.

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

Inspired-by: Minmin Gong <minmin.gong@gmail.com>
2013-06-28 18:13:14 -04:00
Brad King f449c68be0 CMakeDetermineVSServicePack: Add VS 11 update 3 2013-06-28 09:43:10 -04:00
Brad King 0c9cc9a077 Embarcadero: Use response files only for includes, objects, and libs
Leave other flags directly in the Makefile command lines and outside
any special inline response file syntax.  Otherwise Borland does
not support flags with quotes in response files.
2013-06-27 12:57:31 -04:00
Brad King 63357bf969 Merge topic 'FindFreetype-gtkmm'
a34839d FindFreetype: Detect Freetype installed by GtkMM installer for win
2013-06-26 09:02:57 -04:00
Brad King 1c51798940 Merge topic 'COMPILER_TARGET'
2d9ec1d Add compiler target compile options.
2013-06-26 09:01:57 -04:00
Brad King b2d70c1a20 Merge topic 'set-sysroot'
de4da66 Use --sysroot when cross compiling.
2013-06-24 08:46:12 -04:00
Brad King a931970955 Merge topic 'CMakeDetermineVSServicePack-vs11'
2aa62e0 CMakeDetermineVSServicePack: Add VS 11 update 1 and 2 (#14239)
1746a35 CMakeDetermineVSServicePack: Improve documentation
2013-06-24 08:38:08 -04:00
Brad King eadb85ff6c Merge topic 'FindBoost-error-reason-static'
86cbd73 FindBoost: Clarify failure on missing 'static' libs (#14235)
2013-06-24 08:37:58 -04:00
Brad King 1c63a67e56 Merge topic 'FindX11-OSX-10.8'
488d968 FindX11: Search in /opt/X11 for OS X 10.8 (#14232)
2013-06-24 08:37:54 -04:00
Brad King 4a60a7afab Merge topic 'FindGTK2-tweaks'
508e8ca FindGTK2: Detect gthread library
8dca8ce FindGTK2: Move check for pangocairo in gtk module
2013-06-24 08:37:48 -04:00
Daniele E. Domenichelli a34839d2c9 FindFreetype: Detect Freetype installed by GtkMM installer for win 2013-06-21 17:43:20 +02:00
Brad King 2aa62e0b4b CMakeDetermineVSServicePack: Add VS 11 update 1 and 2 (#14239) 2013-06-21 08:51:13 -04:00
Brad King 1746a35df1 CMakeDetermineVSServicePack: Improve documentation
Refer users to the newer CMAKE_<LANG>_COMPILER_VERSION variables.
Use a more concise summary.  Format the documentation to look
better in the "cmake --help-module" output.
2013-06-21 08:48:58 -04:00
Brad King 86cbd7312a FindBoost: Clarify failure on missing 'static' libs (#14235)
When Boost_USE_STATIC_LIBS is ON we may complain that Boost libraries
cannot be found even when shared libraries are present.  Update the
error message to tell the user explicitly that we want static libraries.

Suggested-by: Laurence R. McGlashan <laurence.mcglashan@gmail.com>
2013-06-20 17:10:13 -04:00
Marius Schamschula 488d9682cc FindX11: Search in /opt/X11 for OS X 10.8 (#14232)
As of Mac OS X 10.8, X11 is no longer installed under /usr/X11, but
under /opt/X11.
2013-06-20 08:47:12 -04:00
Daniele E. Domenichelli 508e8ca024 FindGTK2: Detect gthread library 2013-06-19 23:58:47 +02:00
Daniele E. Domenichelli 8dca8cee8a FindGTK2: Move check for pangocairo in gtk module 2013-06-19 23:58:47 +02:00
Matthew Woehlke b41771dfeb UseJava.cmake: document add_jar compat shim
Document the logic that parses for backward compatibility the old
variables that were used to control add_jar prior to named argument
support. In particular, document that the reason this logic exists is
for backward compatibility, and that new features do not need to add to
it.
2013-06-17 12:26:24 -04:00
Brad King 2acbd419e2 Merge topic 'FixAsmSupport'
bc460ea asm support: adapt to changes in CMakeDetectCompiler in 2.8.10
2013-06-14 09:00:48 -04:00
Alex Neundorf bc460ea2fc asm support: adapt to changes in CMakeDetectCompiler in 2.8.10
This fixes #14210. In 2.8.10 CMakeDetermineCompiler.cmake was
modified (or added), and now the _INIT variable must not
be set to a list anymore, before it worked.

Alex
2013-06-14 08:54:34 -04:00
Stephen Kelly 2d9ec1dadf Add compiler target compile options.
For clang, this allows passing -target <triple> to the compiler, and
for qcc, -V<arch> using toolchain files containing something like

 set(triple arm-linux-gnueabihf)
 set(CMAKE_C_COMPILER "/usr/bin/clang")
 set(CMAKE_C_COMPILER_TARGET ${triple})
 set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
 set(CMAKE_CXX_COMPILER_TARGET ${triple})

or

 set(arch gcc_ntoarmv7le)
 set(CMAKE_C_COMPILER /opt/qnx650/host/linux/x86/usr/bin/qcc)
 set(CMAKE_C_COMPILER_TARGET ${arch})
 set(CMAKE_CXX_COMPILER /opt/qnx650/host/linux/x86/usr/bin/QCC)
 set(CMAKE_CXX_COMPILER_TARGET ${arch})

Both clang and qcc are inherently cross compiler( driver)s.
2013-06-11 14:41:16 +02:00
Stephen Kelly de4da665d3 Use --sysroot when cross compiling.
As CMAKE_ROOT_FIND_PATH can be a list, a new CMAKE_SYSROOT is
introduced, which is never a list.

The contents of this variable is passed to supporting compilers
as --sysroot. It is also accounted for when processing implicit
link directories reported by the compiler, and when generating
RPATH information.
2013-06-07 13:32:52 +02:00
Brad King ff8917fdd2 Merge topic 'VISIBILITY_PRESET-property'
cd1fa53 Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property.
0e9f4bc Introduce target property <LANG>_VISIBILITY_PRESET
2013-06-05 09:38:59 -04:00
Brad King b418327d1b Merge topic 'qt4-macros-TARGET-arg'
9ce60ff Qt4Macros: Allow specifying a TARGET in invokations of macros.
2013-06-04 09:02:37 -04:00
Brad King d114fc373c Merge topic 'useless-MATCHES'
cd4451d replace string(... MATCHES "^const$) with string(... STREQUAL "const")
2013-06-03 09:57:53 -04:00
Brad King 7be07970ff Merge topic 'FindImageMagick-v6-includes'
3de9bb4 FindImageMagick: Find v6 include dir (#14174)
2013-06-03 09:57:22 -04:00
Brad King 406d270c7b Merge topic 'SelectLibraryConfigurations-cached-library'
a2099a8 SelectLibraryConfigurations: Fix for cached <base>_LIBRARY
2013-06-03 09:57:08 -04:00
Brad King 6d4e79e2c3 Merge topic 'qt4-qt5-CMAKE_AUTOMOC'
fa55751 QtAutomoc: Get the Qt version through the target link interface
f776316 Use the qt5::moc imported target instead of a variable.
2013-06-03 09:57:01 -04:00
Brad King 3caf565d07 Merge topic 'rpath-on-mac'
dc1d025 OS X: Add test for rpaths on Mac.
8576b3f OS X: Add support for @rpath in export files.
00d71bd Xcode: Add rpath support in Xcode generator.
94e7fef OS X: Add RPATH support for Mac.
2013-06-03 09:56:44 -04:00
Brad King d444fea163 Merge topic 'xcode-shlib-versioning'
cbe3f20 Xcode: Add support for shared library versioning
2013-06-03 09:56:37 -04:00
Brad King 800e764e80 Merge topic 'fix-qt4_use_modules-QtAx'
ce0c480 Qt4Macros: Handle Qt ActiveX libraries in qt4_use_modules.
2013-06-03 09:56:26 -04:00
Brad King acf42ba325 Merge topic 'find-Qt4-granular-modules'
b8af46c FindQt4: Don't fail if certain Qt modules are unavailable.
2013-06-03 09:56:21 -04:00
Clinton Stimpson 94e7fef226 OS X: Add RPATH support for Mac.
RPATH support is activated on targets that have the MACOSX_RPATH
property turned on.
For install time, it is also useful to set INSTALL_RPATH to help
find dependent libraries with an @rpath in their install name.

Also adding detection of rpath conflicts when using frameworks.
2013-06-03 09:42:05 -04:00
Stephen Kelly ce0c4802c0 Qt4Macros: Handle Qt ActiveX libraries in qt4_use_modules.
These libraries have non-conventional variable names.
2013-06-03 09:40:31 -04:00
Stephen Kelly b8af46cb87 FindQt4: Don't fail if certain Qt modules are unavailable. 2013-06-03 09:39:56 -04:00
Stephen Kelly 9ce60ff509 Qt4Macros: Allow specifying a TARGET in invokations of macros.
That will allow things like this:

 find_package(Qt4)

 qt4_generate_moc(myfile.h moc_myfile.cpp TARGET foo) # Note, foo target doesn't
                                                      # exist until below.

 add_library(foo ...)

The qt4_generate_moc call would use the INCLUDE_DIRECTORIES from
the foo target using generator expressions. Currently it reads
the INCLUDE_DIRECTORIES directory property, meaning that include_directories()
is required.

Support for the TARGET is also added to qt4_wrap_cpp, but not qt4_automoc,
as that is deprecated in favor of the AUTOMOC target property.

The moc tool reports failure if the Q_INTERFACES macro is used with
an argument which has not appeared with Q_DECLARE_INTERFACE, so that is
the basis of the unit test.

The command line arguments are now always written to a file, which is
passed to moc as the @atfile. This was already the case on Windows, but
now it is used everywhere. The reason for that is that it is not currently
possible to expand the list of includes from a target directly in
a add_custom_command invokation (though that may become possible in the
future). There is not a big disadvantage to using the file anyway on
unix, so having one code path instead of two is also a motivation.
2013-06-03 10:07:02 +02:00
Rolf Eike Beer cd4451d1e7 replace string(... MATCHES "^const$) with string(... STREQUAL "const") 2013-06-02 22:18:19 +02:00
Stephen Kelly cd1fa537a0 Add a COMPILE_OPTION for a VISIBILITY_INLINES_HIDDEN target property.
This corresponds to the g++ and clang++
option -fvisibility-inlines-hidden on linux. On Windows with MinGW,
this corresponds to -fno-keep-inline-dllexport. That option is
not supported by clang currently.
2013-06-02 12:00:51 +02:00
Stephen Kelly 0e9f4bc00c Introduce target property <LANG>_VISIBILITY_PRESET
This is initialized by CMAKE_<LANG>_VISIBILITY_PRESET. The target
property is used as the operand to the -fvisibility= compile option
with GNU compilers and clang.
2013-06-02 12:00:51 +02:00
Brad King 1f73d65177 Merge topic 'FindBoost-normalize-slashes'
363825c FindBoost: Fix handling of \ in input paths (#14179)
2013-05-31 09:33:35 -04:00
Brad King 363825cd55 FindBoost: Fix handling of \ in input paths (#14179)
In commit 5b9149e0 (FindBoost: Overhaul caching and search repeat
behavior, 2012-09-24) we refactored the internal library search to use a
_Boost_FIND_LIBRARY macro to wrap around find_library calls.  However,
CMake macros re-process escape sequences when evaluating calls inside
the macro after substituting placeholders (a historical bug).  In order
to avoid escape sequences, convert backslashes to forward slashes before
passing arguments to the _Boost_FIND_LIBRARY macro.
2013-05-30 16:20:55 -04:00
Clinton Stimpson cbe3f2072b Xcode: Add support for shared library versioning
Add a post-build command to shared library targets to create the
versioning symbolic links.
2013-05-29 09:05:00 -04:00
Brad King 07942da96c Merge topic 'ExternalData-no-re-stage'
c35961b ExternalData: Do not re-stage staged object files
2013-05-28 10:42:33 -04:00
Brad King 93e9291da7 Merge topic 'fix-protobuf-threads'
8961c4b FindProtobuf: also find pthread
2013-05-28 10:42:29 -04:00
Brad King 9c1393217c Merge topic 'use-java-use-parse-arguments'
81b5fb5 UseJava.cmake: fully use cmake_parse_arguments in add_jar
2013-05-28 10:42:12 -04:00
Funda Wang 3de9bb48a5 FindImageMagick: Find v6 include dir (#14174)
The header files of ImageMagick are now located at
<prefix>/include/ImageMagick-6 instead of <prefix>/include/ImageMagick.
2013-05-28 09:43:29 -04:00
Bjoern Thiel a2099a8e8d SelectLibraryConfigurations: Fix for cached <base>_LIBRARY
The line

  set( ${basename}_LIBRARY )

removes the normal variable, but if the corresponding cached variable is
present then line

  list( APPEND ${basename}_LIBRARY optimized "${_libname}" )

uses that and fails.  Replace the original line with

  set( ${basename}_LIBRARY "" )

to set the normal variable to empty instead of unsetting it.
2013-05-28 09:26:34 -04:00
Stephen Kelly fa55751f83 QtAutomoc: Get the Qt version through the target link interface
In Qt 5.1, Qt5::Core has a INTERFACE_QT_MAJOR_VERSION property
of '5', and since CMake 2.8.11, Qt4::QtCore has an
INTERFACE_QT_MAJOR_VERSION of '4'. This was introduced in
commit 4aa10cd6 (FindQt4: Set the INTERFACE_QT_MAJOR_VERSION for
Qt4::QtCore, 2013-03-16), to produce an error if Qt 4 and Qt 5
are erroneously used by the same target. This can also be used
however to determine the Qt major version, and therefore the
particular moc executable to use during automoc steps. This means
that targets in a single buildsystem can use a selection of Qt 4
and Qt 5, and still take advantage of the CMAKE_AUTOMOC feature
without conflicting.
2013-05-28 01:19:37 +02:00
Stephen Kelly f776316721 Use the qt5::moc imported target instead of a variable.
The variable is provided in the Qt5 config files only for compatibility
with this automoc feature, so use the more-future-proof method instead.
2013-05-27 20:56:07 +02:00
Brad King c35961b010 ExternalData: Do not re-stage staged object files
The ExternalData_LINK_CONTENT option tells ExternalData to convert real
data files it finds into content links and to "stage" the original
content in a ".ExternalData_<algo>_<hash>" file.  However, after a data
object has been staged it is possible that a user-provided pattern in
the "REGEX:" option will later match the staged object file.  We must
not process staged object files even when a user pattern matches them.

Fix the implementation to not match a staged object file as a normal
data file for conversion.  Extend the RunCMake.ExternalData test to
cover this case.
2013-05-24 15:45:38 -04:00
Matthew Woehlke 8961c4b68b FindProtobuf: also find pthread
Modify FindProtobuf.cmake to find the pthread library on UNIX platforms,
and to add the same to PROTOBUF_LIBRARIES, as this is a link dependency
of libraries using the protobuf headers.
2013-05-24 15:44:10 -04:00
Brad King 6aba976427 Merge topic 'geh-cleanup-identifiers'
7e24997 GenerateExportHeader: Generate only C identifiers as defines
2013-05-24 09:20:20 -04:00
Stephen Kelly 7e24997fed GenerateExportHeader: Generate only C identifiers as defines
The variables in this module are used to configure a header file
with defines whose name depends on the name of the target.

As valid names of targets may be invalid for use as defines, convert
the names of the defines used to C identifiers first. This is already
done in C++ code for the DEFINE_SYMBOL property.

This is not as simple as ensuring that the BASE_NAME is a C identifier,
because most of the define names are configurable, and because use of
a BASE_NAME which is not a C identifier, such as 4square can become a
C identifier by specifying a prefix in the generate_export_header
macro.
2013-05-24 09:09:43 -04:00
Stephen Kelly 7ffef5024a GenerateExportHeader: Allow use of of this macro with MODULEs.
The significant issue with MODULEs is that on Windows, the exported
symbols must be dllexported and they are not imported.

In other export macro implementations this is done by defining an
export macro outside of any ifdef which depends on definitions set
on the command line. However, with cmake we already expect the
DEFINE_SYMBOL to be defined, so the regular EXPORT macro can be
used by such plugins.
2013-05-23 19:24:34 +02:00
Brad King ad2391b94f Merge topic 'implicit-link-sanitize-regex'
ffda082 Sanitize linker name to parse implicit link line (#14154)
2013-05-21 15:13:37 -04:00
Brad King 484112d045 Merge topic 'fix-build-without-qt4-with-qt5'
444e752 FindQt4: Fix QUIET failure with Qt 5 but not Qt 4
2013-05-21 15:13:21 -04:00
Stephen Kelly 444e752294 FindQt4: Fix QUIET failure with Qt 5 but not Qt 4
The call

 find_package(Qt4 QUIET)

should be non-FATAL in that case. This fixes #14142.
2013-05-21 14:52:26 -04:00
Brad King ffda082e65 Sanitize linker name to parse implicit link line (#14154)
Teach CMakeParseImplicitLinkInfo to convert the CMAKE_LINKER file name
to a regular expression that matches only the original name.  Escape
special characters like '+' so they are not treated as regex syntax.
Extend the ImplicitLinkInfoTest to test handling of a CMAKE_LINKER value
with many special characters.
2013-05-17 08:47:35 -04:00
Brad King 86cecd1c6b Merge topic 'cpack-reg-key-doc'
3fde03c Improve documentation for CPACK_PACKAGE_INSTALL_REGISTRY_KEY.
2013-05-16 14:38:43 -04:00
Brad King f122dd3d47 Merge topic 'vs-configurations'
42bb42d VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generators
2013-05-16 14:38:40 -04:00
Brad King f2a0671259 Merge topic 'UseJava-cross-compile'
778aacc Allow using Java in a cross-compilation toolchain
2013-05-16 14:38:16 -04:00
Brad King 19bd84b3cd Merge topic 'vs-compiler-id-arm'
e4c0465 VS: Detect MSVC compiler id on ARM toolchain
2013-05-16 14:38:12 -04:00
Brad King 0dc0e7d885 Merge topic 'doc-improvements'
7cc2805 Docs: Clarify wording "flag used" => "flag (to|will) be used"
2378a69 Docs: Clarify that CMAKE_*_(PREFIX|SUFFIX) affect filenames
56ca34d Docs: Update description of CMAKE_(BUILD_TYPE|CONFIGURATION_TYPES)
2bab472 VS10: add detailed comment about MIDL processing
e619111 Explain distribution of Win9x binary on all Windows versions.
5ca4336 FindwxWidgets: add DOC strings with usual style
f57800d Fix spelling and typos (product names)
bf019d7 Fix spelling and typos (non-binary)
ddac8d3 Fix spelling and typos (affecting binary data / module messages)
86832ce Fix spelling and typos (affecting users)
2013-05-16 14:38:07 -04:00
Brad King e855dd54df Merge topic 'ExternalProject-svn-auth-blank'
ecd11a2 ExternalProject: Allow blank SVN_USERNAME/SVN_PASSWORD (#14128)
2013-05-16 14:37:50 -04:00
Brad King 18a5c4f4c6 Merge topic 'implicit-linker-detection'
a2bc47d Recognize ld with toolchain prefix (#13960)
2013-05-16 14:37:46 -04:00
Brad King 831dd5abab Merge topic 'cpack-nsis-uninstall'
40566ef CPack/NSIS: Obtain path from which to uninstall from registry (#14124)
2013-05-16 14:37:43 -04:00
Brad King 823022dd2e Merge topic 'WindowsPaths-MinGW-cross-compile-only'
f9eee7f Windows: Search '/' prefix only when cross compiling (#10994)
2013-05-16 14:37:28 -04:00
Brad King e6f2a0d1c8 Merge topic 'check-compiler-flag-locale'
5272372 Check{C,CXX}CompilerFlag: Test using C locale (#14102)
2013-05-16 14:37:17 -04:00
Brad King 3256ecb7b9 Merge topic 'Cuda_WRAP_SRCS_duplicates'
32b582d FindCUDA: Remove duplicate entries from INCLUDE_DIRECTORIES.
2013-05-16 14:37:13 -04:00
Brad King e778522161 Merge topic 'cuda_compute_build_path'
cd2d248 FindCUDA: CUDA_COMPUTE_BUILD_PATH uses relative paths to binary dir.
2013-05-16 14:37:05 -04:00
Brad King d04e765d76 Merge topic 'OpenGL-require-includes'
5be3593 FindOpenGL: require headers to be found on non-Windows platforms (#13746)
b10a171 FindOpenGL: simplify OS selection code
2013-05-16 14:36:59 -04:00
Brad King d86d0e622a Merge topic 'xcode-explicitFileType'
5683146 Xcode: Use explicitFileType to mark source types (#14093)
2013-05-16 14:36:54 -04:00
Brad King 3a0014a1fe Merge topic 'AddIARToolchain2'
d118b8b Add IAR to the CMakeDetectC(XX)CompilerID.c(pp).in
d33f406 Add regexps for the IAR toolchain to the vendor list.
22fb73a Add support files for C, C++ and ASM for the IAR toolchain.
2013-05-16 14:36:44 -04:00
Brad King 0d217e64d0 Merge topic 'CrossCompilingFix13796'
efb19b6 CMakeSystem: include toolchain file after setting CMAKE_HOST_ (#13796)
2013-05-16 14:36:39 -04:00
Brad King 5c2084b74b Merge topic 'fix-comment-typos'
8e0da4c Fix some copyastos in the DetermineRCCompiler file.
2013-05-16 14:36:31 -04:00
Brad King 5386aaecd4 Merge topic 'FindOpenSSL-cross-compiling'
1b614e0 FindOpenSSL: Fix spelling of CMAKE_CROSSCOMPILING (#14075)
2013-05-16 14:36:23 -04:00
Brad King 1b4b64cd3c Merge topic 'vs-no-compiler-pdb-setting'
87c0d16 Ninja: Fix OBJECT_DIR placeholder path conversion
fb9f73d MSVC: Invoke 'link' directly for executables
42ba1b0 VS: Separate compiler and linker PDB files (#11899, #14062)
2013-05-16 14:36:11 -04:00
Brad King 7e7b7fe4b3 Merge topic 'CPackRPM-avoidOwningSystemDirs'
f055c99 CPackRPM add /usr/lib64 to the list of builtin to-be-excluded path
bac5772 CPackRPM add mechanism to remove path from generated list of file in RPM spec.
2013-05-16 14:36:00 -04:00
Brad King e392520309 Merge topic 'CPackRPM-componentizedUserSpecFile'
2ef908f Add support for componentized USER spec file
2013-05-16 14:35:55 -04:00
Clinton Stimpson 3fde03cd8c Improve documentation for CPACK_PACKAGE_INSTALL_REGISTRY_KEY.
Fixes issue 13787.
2013-05-13 22:22:45 -06:00
Brad King 42bb42d197 VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generators
Initialize the CMAKE_CONFIGURATION_TYPES cache entry early during
EnableLanguage like the Xcode generator does.  Avoid depending on
the MSVC compiler information module to do it.  Otherwise code like

  project(MyProj NONE)

sets CMAKE_CONFIGURATION_TYPES late (in GenerateConfigurations), and
to only "Debug" and "Release" instead of the standard set of 4.

Reported-by: Paul Smith <paul@mad-scientist.net>
2013-05-13 11:07:46 -04:00
Gregoire Lejeune 778aacc864 Allow using Java in a cross-compilation toolchain
Since Java is a portable language, if you want to use Java when
cross-compiling, UseJava uses the JVM installed on the host.  So in this
case, we must use set CMAKE_JAVA_INCLUDE_FLAG_SEP for the current host.
2013-05-08 11:45:34 -04:00
Alexander Mohr e4c046521f VS: Detect MSVC compiler id on ARM toolchain
This enables detection with the VS2012 CTP for windows Blue (8.1).
To build native ARM you need to have the WOA SDK (Windows on ARM).
2013-05-08 09:10:52 -04:00
Andreas Mohr 5ca4336ece FindwxWidgets: add DOC strings with usual style 2013-05-07 08:42:20 -04:00
Andreas Mohr f57800d6f5 Fix spelling and typos (product names)
API, Borland, MinGW, UNIX, Mac OS X.
2013-05-07 08:42:20 -04:00
Andreas Mohr bf019d765d Fix spelling and typos (non-binary) 2013-05-07 08:39:19 -04:00
Andreas Mohr ddac8d3d2d Fix spelling and typos (affecting binary data / module messages) 2013-05-07 08:39:19 -04:00
Matt McCormick ecd11a25cc ExternalProject: Allow blank SVN_USERNAME/SVN_PASSWORD (#14128)
With

  SVN_USERNAME ""
  SVN_PASSWORD ""

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

In the future, GNU.cmake should do a version check to see if -isystem is
supported.
2013-03-28 10:32:24 -04:00
Bill Hoffman 118f741c49 ExternalProject: Retry on a failed git clone
Git sometimes fails to clone repositories due to network outage or
server load.  Try 3 times before giving up.
2013-03-26 10:31:39 -04:00
Brad King 36f158159b Merge topic 'FindImageMagick-v6.8.0-8'
dbd895b FindImageMagick: Search versioned suffixes (#14012)
2013-03-19 15:20:34 -04:00
Brad King b04b8ddfd8 Merge topic 'Ruby-version-selection'
d7e05e4 FindRuby: improve version selection
2013-03-19 15:20:30 -04:00
Brad King cc1c533163 Merge topic 'fix-java-jar-depends'
adeafad UseJava.cmake: accept jar targets in add_jar
53a05b8 UseJava.cmake: fix passing jars to add_jar
45c8e4b UseJava.cmake: simplify path logic
2013-03-19 15:20:22 -04:00
Rex Dieter dbd895b897 FindImageMagick: Search versioned suffixes (#14012)
The parent commit added suffixes for -Q8 and -Q16 but there may also be
versioned suffixes -6.Q8 and -6.Q16.
2013-03-18 16:37:50 -04:00
Rolf Eike Beer d7e05e4144 FindRuby: improve version selection
This will stop e.g. looking for a ruby1.9 executable first if "1.8 EXACT" was
given.
2013-03-18 20:17:08 +01:00
Brad King 526cbafa4e Merge topic 'findqt4-withqt5'
252bfd3 FindQt4: If Qt5 is in CMAKE_PREFIX_PATH, be sure to find Qt4 includes.
2013-03-18 09:42:06 -04:00
Brad King 68e86af6f7 Merge topic 'fix-FPHSA-match'
78e6217 FPHSA: Fix FOUND_VAR check to work with if() auto-dereference
2013-03-18 09:41:59 -04:00
Brad King 758651f124 Merge topic 'set-QT_MAJOR_VERSION'
4aa10cd FindQt4: Set the INTERFACE_QT_MAJOR_VERSION for Qt4::QtCore
2013-03-18 09:41:50 -04:00
Brad King bb260f0927 Merge topic 'set-Qt4_FOUND'
28d14f9 FindQt4: Set the Qt4_FOUND variable if Qt4 is found
2013-03-18 09:41:41 -04:00
Brad King a402bc4d5a Merge topic 'TI_DSP_to_TI'
27e6f6e TI compiler: add automatic detection of prefix and suffixes
b301586 rename TI_DSP toolchain to TI, since it works also for the ARM compiler
12b25df Determine C/CXX/Fortran compiler: fix indentation
7baa55a Determine C/CXX/Fortran compiler: minor restructuring
2013-03-18 09:41:37 -04:00
Brad King 253d7b6fe4 Merge topic 'FindCUDA.cmake/SeparableCompilation'
b6e9b8f FindCUDA: Use the PRE_LINK mode only for MSVC >= 10
2013-03-18 09:41:28 -04:00
Stephen Kelly 78e6217f31 FPHSA: Fix FOUND_VAR check to work with if() auto-dereference
Otherwise, it seems to match on the content of the variable.
2013-03-18 09:35:07 -04:00
Stephen Kelly 4aa10cd6d6 FindQt4: Set the INTERFACE_QT_MAJOR_VERSION for Qt4::QtCore
With a similar commit in Qt 5, this will error at CMake time if
an attempt is made to use

 target_link_libraries(foo Qt4::QtCore Qt5::Core)
2013-03-18 09:31:33 -04:00
Stephen Kelly 28d14f9f13 FindQt4: Set the Qt4_FOUND variable if Qt4 is found
Provide the old QT4_FOUND for compatibility.
2013-03-18 09:30:47 -04:00
Clinton Stimpson 252bfd3379 FindQt4: If Qt5 is in CMAKE_PREFIX_PATH, be sure to find Qt4 includes. 2013-03-18 09:06:53 -04:00
Alex Neundorf 27e6f6ef39 TI compiler: add automatic detection of prefix and suffixes
The TI cross compilers are named e.g. cl6x or armcl, the accompanying
strip and ar have the same prefixes/suffixes.

Alex
2013-03-14 21:48:09 +01:00
Alex Neundorf b3015862e5 rename TI_DSP toolchain to TI, since it works also for the ARM compiler
Additionally, look for a special ar and strip

Alex
2013-03-14 21:47:59 +01:00
Alex Neundorf 12b25df882 Determine C/CXX/Fortran compiler: fix indentation
Alex
2013-03-14 21:47:49 +01:00
Alex Neundorf 7baa55ac0b Determine C/CXX/Fortran compiler: minor restructuring
No functional changes, only change the way the if()-condition works,
to make it easier to add more cases.

Alex
2013-03-14 21:47:38 +01:00
Brad King 192ef7101e Merge topic 'aix-pic'
5c8c1d6 XL: Use -qpic for position independent code (#14010)
2013-03-14 10:00:35 -04:00
James Bigler b6e9b8f127 FindCUDA: Use the PRE_LINK mode only for MSVC >= 10
Use normal custom command dependencies by default.  Use the PRE_LINK
approach only to work around what seems to be a bug in msbuild handling
of custom build rules that chain together.
2013-03-14 09:57:15 -04:00
Matthew Woehlke adeafad488 UseJava.cmake: accept jar targets in add_jar
Modify add_jar to also accepts jars by target name.
2013-03-13 17:34:50 -04:00
Matthew Woehlke 53a05b8f51 UseJava.cmake: fix passing jars to add_jar
Fix setting classpath when encountering a jar argument to add_jar to
actually set the variable that is used to specify the classpath to
javac, instead of just uselessly appending the jar to
CMAKE_JAVA_INCLUDE_PATH (which is never used again at the point where it
is modified). Also, list jars so specified as dependencies of compiling
the java sources for the jar target.
2013-03-13 17:30:16 -04:00
Matthew Woehlke 45c8e4b181 UseJava.cmake: simplify path logic
Move logic to determine relative path to .java file to after the file
extension check, so that it only executes when it is actually used.
2013-03-13 17:29:14 -04:00
Brad King 5c8c1d624d XL: Use -qpic for position independent code (#14010)
According to XL C/C++ V9.0 documentation the default for -qpic/-qnopic
is platform-dependent.  It won't hurt to add the option on platforms
where it is the default, so always add it when we want position
independent code.
2013-03-13 13:49:48 -04:00
Brad King 18029b1e77 Merge topic 'findqt4-withqt5'
161a793 FindQt4: Fix QT_QMAKE{_QMAKE => }_EXECUTABLE typo
2013-03-13 13:37:26 -04:00
Brad King 8128940ac1 Merge topic 'cleanup-early-include-CTest-failure'
d90f49b CTest: Fail early without PROJECT_BINARY_DIR (#14005)
2e1c2bd build_command: Fail early without CMAKE_MAKE_PROGRAM (#14005)
4e5cb37 Refactor RunCMake.build_command test to allow more cases
2013-03-13 13:34:36 -04:00
Brad King edf200a50b Merge topic 'ExternalData-escape-semicolons'
1823ab4 ExternalData: Preserve escaped semicolons during argument expansion
2013-03-13 13:34:06 -04:00
Brad King 161a793781 FindQt4: Fix QT_QMAKE{_QMAKE => }_EXECUTABLE typo
The parent commit accidentally referenced QT_QMAKE_QMAKE_EXECUTABLE
which does not exist.  Use QT_QMAKE_EXECUTABLE instead.

Reported-by: m.hergarden@euphoria-it.nl
2013-03-13 07:54:36 -04:00
Brad King d90f49b894 CTest: Fail early without PROJECT_BINARY_DIR (#14005)
Do not use PROJECT_BINARY_DIR before it is defined.  If it is not
defined when needed, fail with an error message suggesting that the
project() command be invoked first.
2013-03-12 18:20:44 -04:00
Brad King 1823ab4d76 ExternalData: Preserve escaped semicolons during argument expansion
The CMake language implicitly flattens lists so a ";" in a list element
must be escaped with a backslash.  List expansion removes backslashes
escaping semicolons to leave raw semicolons in the values.  Teach
ExternalData_Add_Test and ExternalData_Expand_Arguments to re-escape
semicolons found in list elements so the resulting argument lists work
as if constructed directly by the set() command.

For example:

  ExternalData_Add_Test(Data NAME test1 COMMAND ... "a\\;b")
  ExternalData_Expand_Arguments(Data args2 "c\\;d")
  add_test(NAME test2 COMMAND ... ${args2})

should be equivalent to

  set(args1 "a\\;b")
  add_test(NAME test1 COMMAND ... ${args1})
  set(args2 "c\\;d")
  add_test(NAME test2 COMMAND ... ${args2})

which is equivalent to

  add_test(NAME test1 COMMAND ... "a;b")
  add_test(NAME test2 COMMAND ... "c;d")

Note that it is not possible to make ExternalData_Add_Test act exactly
like add_test when quoted arguments contain semicolons because the CMake
language flattens lists when constructing function ARGN values.  This
re-escape approach at least allows test arguments to have semicolons.

While at it, teach ExternalData APIs to not transform "DATA{...;...}"
arguments because the contained semicolons are non-sensical.

Suggested-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
2013-03-12 16:33:19 -04:00
Brad King 153242601e Merge topic 'findqt4-withqt5'
2112341 FindQt4: Do not use qmake from Qt5
2013-03-12 13:47:08 -04:00
Brad King 28490ecccb Merge topic 'aix-shared-flags'
bce7a2a AIX: Do not use -brtl to create shared libraries (#13997)
2013-03-12 13:47:04 -04:00
Brad King e58117b2ba Merge topic 'Win-HOST_SYSTEM_PROCESSOR'
20681c9 fix Windows processor detection
2013-03-12 13:46:27 -04:00
Brad King 2a3011b536 Merge topic 'FindCUDA.cmake/AddCUDA_cupti_LIBRARY'
c939b49 FindCUDA: Added cupti library.
2013-03-12 13:46:21 -04:00
Brad King 142357ac76 Merge topic 'FindCUDA.cmake/SeparableCompilation'
6a19150 FindCUDA: Add support for separable compilation
2013-03-12 13:46:17 -04:00
Brad King f0e93ce0e5 Merge topic 'FindCUDA.cmake/DontLinkAgainstCUDADriver'
3497bc2 FindCUDA: Remove linkage against CUDA driver library (#13084)
2013-03-12 13:46:13 -04:00
Brad King ff6038057b Merge topic 'FindImageMagick-v6.8.0-8'
5fe9855 FindImageMagick: Search quantum depth suffixes (#13859)
2013-03-12 13:46:10 -04:00
Janne Rönkkö 21123416b4 FindQt4: Do not use qmake from Qt5
Wihtout this, if qmake binary is from Qt5 the FindQt4 fails even though
the Qt4 version of qmake would be installed as qmake-qt4.

On Archlinux this is the case.

Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
2013-03-12 13:43:13 -04:00
James Bigler c939b4948c FindCUDA: Added cupti library.
In addition to adding the cupti library, find_local_library_first has
been renamed to cuda_find_local_library_first with a backward
compatibility macro to find_local_library_first.  Also added
cuda_find_local_library_first_with_path_ext to handle different paths.
2013-03-12 13:38:40 -04:00
James Bigler 6a19150b54 FindCUDA: Add support for separable compilation
This adds a new variable, CUDA_SEPARABLE_COMPILATION, and two new
functions, CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and
CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS.

When CUDA_SEPARABLE_COMPILATION is specified then CUDA runtime objects
will be compiled with the separable compilation flag.  These object
files are collected in a target named variable that can be used in
CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and
CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS.
2013-03-12 13:38:09 -04:00
James Bigler 3497bc2cee FindCUDA: Remove linkage against CUDA driver library (#13084)
The CUDA runtime library (libcudart) doesn't depend on the driver API
library (libcuda) and shouldn't be used to link CUDA run time codes.
2013-03-12 13:37:44 -04:00
Brad King bce7a2a3a5 AIX: Do not use -brtl to create shared libraries (#13997)
The flag was added incorrectly by commit 9c3a6eb4 (Need -brtl when creating
shared libraries, 2003-05-16).  According to "man ld" the -G option implies
"-brtl -bnortllib ...", -brtl implies "-brtllib", and -brtllib should only be
used for executables, not shared libraries.  Therefore it is incorrect and
unnecessary to specify -brtl explicitly after -G.

Reported-by: Kevin Burge <kcburge@gmail.com>
2013-03-11 09:01:27 -04:00
Rolf Eike Beer 20681c9e05 fix Windows processor detection
Thanks to Martin Koller for this.
2013-03-06 18:04:53 +01:00
Brad King e162d88fbb Merge topic 'GetPrerequisites-objdump'
12fb50d GetPrerequisites: Add documentation for objdump
8eb2fe9 GetPrerequisites: Enable test for BundleUtilities on MinGW
33c94c8 GetPrerequisites: Add support for objdump
5260a86 GetPrerequisites: Move tool search paths up
2013-03-04 15:40:24 -05:00
Brad King caf3f07b83 Merge topic 'non-fatal-Qt4-missing-targets'
4d5230d Only add existing targets to the Qt4 target depends properties.
2013-03-04 15:40:03 -05:00
Brad King 07ee97cace Merge topic 'Win-HOST_SYSTEM_PROCESSOR'
add8d22 properly detect processor architecture on Windows
2013-03-04 15:39:50 -05:00
Michael Tänzer 12fb50da9f GetPrerequisites: Add documentation for objdump
Signed-off-by: Michael Tänzer <neo@nhng.de>
2013-03-01 16:59:49 +01:00
Slava Sysoltsev 5fe9855624 FindImageMagick: Search quantum depth suffixes (#13859)
From ImageMagick's 6.8.0-8 changelog:

  http://www.imagemagick.org/script/changelog.php
  ABI is incompatible if quantum depth change.
  Add abi indication to library name.

Search for library names with -Q16 and -Q8 suffixes.

Reported-by: Evangelos Foutras <evangelos@foutrelis.com>
2013-03-01 08:09:28 -05:00
Michael Tänzer 33c94c82ba GetPrerequisites: Add support for objdump
Make it usable on MinGW without Visual Studio installed.

Signed-off-by: Michael Tänzer <neo@nhng.de>
2013-02-28 09:49:32 -05:00
Michael Tänzer 5260a864f5 GetPrerequisites: Move tool search paths up
Make them usable in the gp_tool selection heuristic.

Signed-off-by: Michael Tänzer <neo@nhng.de>
2013-02-28 09:48:11 -05:00
Stephen Kelly 4d5230d1d8 Only add existing targets to the Qt4 target depends properties.
Qt can be configured in ways which disable certain modules. Make
sure we don't fail on that.
2013-02-26 22:03:04 +01:00
Brad King 9d4394148a Merge topic 'FPHSA_FOUND_VAR_OPTION'
f17711c FPHSA: Convert FOUND_VAR failure test to RunCMake
c1f5780 FPHSA: improve documentation
7bb1abe FPHSA: Add FOUND_VAR option to specify _FOUND variable name
2013-02-25 13:12:05 -05:00
Brad King b887bca6ee Merge topic 'try_compile-targets'
236133e Handle targets in the LINK_LIBRARIES of try_compile.
1c0597c Add a new Export generator for IMPORTED targets.
f2ab17d Keep track of all targets seen while evaluating a genex.
2013-02-25 13:12:02 -05:00
Brad King 20d0b37f4a Merge topic 'generate-export-header-warnings'
1e0891e Removed GenerateExportHeader warnings about old compilers
2013-02-25 13:11:29 -05:00
Brad King 3044443b40 Merge topic 'fix-GEH-docs'
0ebf332 Fix GenerateExportHeader documentation #13936
2013-02-25 13:11:19 -05:00
Rolf Eike Beer add8d22acc properly detect processor architecture on Windows
CMake is usually run as a 32 bit process even on 64 bit Windows, so the
PROCESSOR_ARCHITECTURE environment variable would always return x86. This post
gives a description on how to do it properly:

http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx
2013-02-25 16:14:36 +01:00
Stephen Kelly 236133e79e Handle targets in the LINK_LIBRARIES of try_compile.
Imported targets are re-exported so that they can be used by the
try_compile generated code with target_link_libraries.

This makes the use of the cmake_expand_imported_targets macro
obsolete. The macro is not able to expand the generator expressions
which may appear in the IMPORTED_LINK_INTERFACE_LIBRARIES content.
Instead it just sees them as 'not a target'.
2013-02-22 08:35:39 -05:00
Alex Neundorf c1f5780e2d FPHSA: improve documentation
Alex
2013-02-22 08:32:34 -05:00
Alex Neundorf 7bb1abe56a FPHSA: Add FOUND_VAR option to specify _FOUND variable name
In the new mode FPHSA now accepts a FOUND_VAR option, which can be set
either to ExactCase_FOUND or UPPERCASE_FOUND, no other values are
accepted.  Also add tests for that, including failure.

Alex
2013-02-22 08:31:00 -05:00
Marcus D. Hanwell 1e0891e28a Removed GenerateExportHeader warnings about old compilers
These warnings tend to flood the dashboard submissions, and it is doing
what it should (degrade gracefully with older compilers).
2013-02-20 11:48:12 -05:00
Stephen Kelly 0ebf332199 Fix GenerateExportHeader documentation #13936
There is no CMAKE_CURRENT_BUILD_DIR. CMAKE_CURRENT_BINARY_DIR is
the correct variable here.
2013-02-20 09:27:48 +01:00
Neil Carlson c26ac223df NAG: Use -PIC for Fortran position-independent code (#13932)
The Numerical Algorithms Group (NAG) Fortran compiler documents -PIC for
position-independent code.
2013-02-18 13:12:50 -05:00
Brad King e85f1c28d4 Merge topic 'rpath-use-implicit-link-dirs'
95a9c80 Merge topic 'LINK_LIBRARIES-property' into rpath-use-implicit-link-dirs
baa33ac AIX-GNU: Put implicit link directories in runtime libpath (#13909)
171b099 Avoid duplicate RPATH entries
2013-02-15 13:12:31 -05:00
Brad King ffdf57d9f5 Merge topic 'OpenMP-doc'
77fd5e5 FindOpenMP: improve documentation (#13895)
2013-02-15 13:12:21 -05:00
Brad King 3a393cb2da Merge topic 'Embarcadero-linker-flags'
188b0e9 Embarcadero: Fix default link stack/heap flags (#13912)
2013-02-15 13:11:54 -05:00
Brad King 0e2ed9b097 Merge topic 'linked-usage-cleanup'
fde949d Don't add target-specific interface includes and defines to Qt 4 targets.
79ae968 Revert "Add a way to exclude INTERFACE properties from exported targets."
71bf96e Revert "find_package: Reword <package>_NO_INTERFACES documentation"
3df36b5 Revert "Add the $<LINKED:...> generator expression."
e1f9080 Don't populate INTERFACE includes and defines properties in tll.
567c8d1 Revert "Don't allow utility or global targets in the LINKED expression."
a1c4905 Use the link information as a source of compile definitions and includes.
5c9f5e3 Don't use LINKED where not needed.
5b88504 Rename the IncludeDirectoriesEntry to be more generic.
b030323 Fix determination of when we're evaluating compile definitions.
2013-02-15 13:11:04 -05:00
Brad King 95a9c80cac Merge topic 'LINK_LIBRARIES-property' into rpath-use-implicit-link-dirs
Resolve a logical conflict in the signature of cmTarget::GetLinkClosure.
2013-02-14 10:18:31 -05:00
Brad King baa33acbda AIX-GNU: Put implicit link directories in runtime libpath (#13909)
The GNU compiler front-ends on AIX invoke the linker with flags of the
form "-L/path/to/gnu/runtime/lib" to tell ld where to find the language
runtime libraries.  They depend on the default libpath behavior
documented in "man ld" to add the -L paths also to the runtime libpath
so the dynamic loader can find the language runtime libraries.  This
differs from platforms whose linkers have distinct -rpath flags that
non-system compilers can use to tell the dynamic loader where to find
their language runtime libraries.

Since commit 96fd5909 (Implement linking with paths to library files,
2008-01-22) CMake always passes "-Wl,-blibpath:" followed by any
project-defined RPATH plus "/usr/lib:/lib" in order to explicitly set
the runtime libpath and avoid getting all the project -L paths in the
runtime libpath.  The explicit libpath prevents the GNU compiler runtime
library -L paths from being placed in the libpath and then the dynamic
loader fails to find the language runtime libraries.

CMake already detects the implicit link directories for each language
since commit 07ea19ad (Implicit link info for C, CXX, and Fortran,
2009-07-23).  Add the implicit link directories to the explicit runtime
libpath for GNU compilers on AIX to fix this use case.
2013-02-14 10:16:36 -05:00
Rolf Eike Beer 77fd5e51ab FindOpenMP: improve documentation (#13895) 2013-02-13 19:38:00 +01:00
Brad King 188b0e9e37 Embarcadero: Fix default link stack/heap flags (#13912)
Since commit c70beb4b (change the default borland stack size, 2003-05-05),
commit 1b572eb9 (remove -H flags, 2003-05-08), and commit 2d411398 (Stack size
in generated programs should be 10 meg, 2003-06-12) CMake adds link flags to
select a 10MB stack.  At the time this was for consistency with our behavior on
MS, but that was recently removed by commit 51af1da3 (Remove "/STACK:10000000"
from default linker flags, 2012-11-23).

Change our Embarcadero link flags to select the default stack and heap settings
according to the compiler documentation.  This is more reliable than leaving
the flags out completely as it has been reported that the linker does not
always use its documented defaults.

Suggested-by: Mathäus Mendel <contato@mathausmendel.com>
2013-02-13 13:35:25 -05:00
Stephen Kelly fde949d143 Don't add target-specific interface includes and defines to Qt 4 targets.
This is a partial revert of commit c8ee07d0 (FindQt4: Add INTERFACE
includes and defines to Qt4 targets, 2012-12-31).
2013-02-13 15:12:31 +01:00
Brad King f0c4d37ff3 Merge topic 'EclipseDetectClangIncludeDirs'
a396b6e Eclipse: also detect include dirs and macro for clang (#13823)
2013-02-12 14:42:18 -05:00
Brad King 17a6d3c36f Merge topic 'CPackRPM-fixSomeRPMSpecificVarHandling'
9be3da1 CPackRPM fix #13898 uses IF(DEFINED var) to avoid wrong var value logic
2013-02-12 14:42:06 -05:00
Brad King 813b519280 Merge topic 'minor-fixes'
ba48e63 Generate config-specific interface link libraries propeties.
deb51a7 Remove unused forward declarations.
9712362 Don't allow utility or global targets in the LINKED expression.
faa927e Make sure INTERFACE properties work with OBJECT libraries.
510fdcb Whitelist target types in target_{include_directories,compile_definitions}
4de7178 Ensure that the build interface includes have been added.
df74bc3 Only append build interface include dirs to particular targets.
d4e5c67 Don't keep track of content determined by target property values.
1fb545a Move a special case for PIC from the genex to the cmTarget code.
57175d5 Only use early evaluation termination for transitive properties.
4cf161a Fix determination of evaluating link libraries.
3a298c0 Fix generation of COMPILE_DEFINITIONS in DependInfo.cmake.
655e98b Ensure type specific compatible interface properties do not intersect.
46e2896 The COMPATIBLE_INTERFACE does not affect the target it is set on.
5f926a5 Test printing origin of include dirs from tll().
7c0ec75 De-duplicate validation of genex target names.
...
2013-02-11 13:59:48 -05:00
Alex Neundorf a396b6ece2 Eclipse: also detect include dirs and macro for clang (#13823)
Alex
2013-02-10 18:58:27 +01:00
Eric NOULARD 9be3da1c80 CPackRPM fix #13898 uses IF(DEFINED var) to avoid wrong var value logic 2013-02-09 13:42:05 +01:00
Stephen Kelly ba48e63f1e Generate config-specific interface link libraries propeties.
All other properties we generate are config-specific, so it makes
sense to do so here too.
2013-02-09 10:25:35 +01:00
Brad King 7dab997771 Merge topic 'generator-toolset'
56ca8d4 Tests: Add generator toolset support
f36c665 Tests: Consolidate ctest --build-and-test generator options
c0debb1 Merge branch 'master' into generator-toolset
daae0d2 ExternalProject: Propagate the generator toolset
e3841cf CTest: Add options to set generator toolset
f980a80 Xcode: Implement generator toolset selection (#9831, #13802)
650c647 VS: Implement generator toolset selection (#10722, #13774)
4fd5342 CMake: Add -T option to choose a generator toolset
118c32f Merge branch 'xcode-duplicate-flags-13354' into generator-toolset
cf8645e Tests: Run ctest custom commands with VERBATIM
5b2fba5 ExternalProject: Simplify CMake command line generation
2013-02-08 13:38:56 -05:00
Brad King 2cd362d191 Merge topic 'CMAKE_CL_64-CXX'
fe664b5 MSVC: Fix CMAKE_CL_64 in CXX-only projects (#13896)
2013-02-08 13:38:48 -05:00
Brad King 98cca40d9b Merge topic 'implicit-lib-canonical-path'
10e8b2d Normalize full paths in implicit link library list
2013-02-08 13:38:10 -05:00
Brad King fe664b5d1d MSVC: Fix CMAKE_CL_64 in CXX-only projects (#13896)
When CXX is enabled without C then MSVC_CXX_ARCHITECTURE_ID is set
instead but not MSVC_C_ARCHITECTURE_ID.  Test both.
2013-02-07 15:04:06 -05:00
Brad King c0debb1f89 Merge branch 'master' into generator-toolset
We need the latest Tests/CMakeLists.txt so we can refactor all tests.
2013-02-07 11:09:01 -05:00
Brad King daae0d2f5b ExternalProject: Propagate the generator toolset
When the CMAKE_GENERATOR option is given to ExternalProject_Add, look
also for option CMAKE_GENERATOR_TOOLSET to select the value of the cmake
"-T" command-line flag.  When no CMAKE_GENERATOR option is given
explicitly then use the current project's CMAKE_GENERATOR_TOOLSET (since
we already use its CMAKE_GENERATOR).
2013-02-07 11:08:33 -05:00
Brad King f980a80495 Xcode: Implement generator toolset selection (#9831, #13802)
Implement generator toolset selection (cmake -T) for Xcode > 2.0 by
adding the GCC_VERSION build setting to project files.
2013-02-07 11:07:48 -05:00
Brad King 10e8b2da37 Normalize full paths in implicit link library list
Teach CMakeParseImplicitLinkInfo to convert implicit link library full
paths to a canonical form.  This makes them more reproducible in case
different language compiler front-ends add the same library by different
paths e.g. ".../libA.a" and "...//libA.a".

Add a case to the CMake.ImplicitLinkInfo test to cover removal of extra
slashes from both library and directory paths.
2013-02-06 16:22:02 -05:00
Brad King 020525845a Merge topic 'add-ExternalData-module'
5484c60 Merge branch 'vs6-rule-files' into add-ExternalData-module
1fd8d01 ExternalData: Attach download rules to content links in IDEs
a6d3ffc Fix Module.ExternalData test on VS 6
aed590a Fix Module.ExternalData test on Cygwin
06e8ded Merge branch 'fix-atomic-rename-on-Windows' into add-ExternalData-module
e2e0d2e ExternalData: Collapse ../ components in DATA{} paths
ee2abfd ExternalData: Add support for SHA 1 and 2 hash algorithms
aa8b228 ExternalData: Generalize hash algo/ext handling
9e518a8 ExternalData: Allow DATA{} syntax to reference directories
175ed02 ExternalData: Allow ()-groups in series match regex
4befecc ExternalData: Add tests covering interfaces and errors
bcd2580 ExternalData: Improve series matching using an explicit syntax
c0cebcb ExternalData: Remove unused private interface
5275993 ExternalData: Cleanup stray TODO and typo in comments
7bb8344 ExternalData: Do not match directory names when resolving DATA{}
00d801f ExternalData: Remove compatibility with CMake < 2.8.5
...
2013-02-05 14:46:40 -05:00
Brad King 1fd8d017e6 ExternalData: Attach download rules to content links in IDEs
Each data file to be created in the build tree corresponds one-to-one with
a raw file or content link in the source tree.  Use the MAIN_DEPENDENCY of
add_custom_command to attach the build rule to the source tree file.  This
looks much nicer in the IDE project file browser and avoids ".rule" files.
2013-02-04 15:20:03 -05:00
Patrick Gansterer fd2a0d58c5 Set WINCE to 1 when building for WindowsCE
Introduce a new variable WINCE to make the WindowsCE
system more easy to use in if statements.
2013-02-01 23:26:03 +01:00
Brad King 118c32f8f2 Merge branch 'xcode-duplicate-flags-13354' into generator-toolset 2013-01-31 09:58:50 -05:00
Brad King 5b2fba5d40 ExternalProject: Simplify CMake command line generation
Append the source directory to the command line option in a separate
step instead of duplicating it with each possible generator.
2013-01-31 09:58:05 -05:00
Brad King e2e0d2e3c7 ExternalData: Collapse ../ components in DATA{} paths
Relative path components need to be normalized out even if they appear
in the middle of a caller-supplied string.
2013-01-30 14:55:12 -05:00
Brad King ee2abfdc89 ExternalData: Add support for SHA 1 and 2 hash algorithms
Update the Module.ExternalData and RunCMake.ExternalData tests to cover
some of them.
2013-01-30 10:05:07 -05:00
Brad King aa8b2288d3 ExternalData: Generalize hash algo/ext handling
Use private global variables _ExternalData_REGEX_(ALGO|EXT) to match the
possible hash algorithm names and extensions in regular expressions.
Use "file(<algo>)" instead of "cmake -E md5sum" to compute hashes
without a child process and to support more hash algorithms.
2013-01-30 10:05:07 -05:00
Brad King 9e518a8169 ExternalData: Allow DATA{} syntax to reference directories
Use a trailing slash to reference a directory.  Require that a list
of associated files be specified to select from within the directory.
One may simply use DATA{Dir/,REGEX:.*} to reference all files but
get a directory passed on the command line.
2013-01-30 10:05:07 -05:00
Brad King 175ed02207 ExternalData: Allow ()-groups in series match regex
Refactor use of the ExternalData_SERIES_MATCH value to avoid assuming
that it has no ()-groups that interfere with group indexing.

Extend the Module.ExternalData test to cover this case.
2013-01-30 10:05:07 -05:00
Brad King bcd25808ac ExternalData: Improve series matching using an explicit syntax
Automatic series recognition can generate false positives too easily
when the default series configuration is flexible enough to handle
common cases.  Avoid false positives by requiring an explicit syntax to
activate series recognition.  Choose the syntax DATA{<name>,:} to be
short, simple, and look like a vertical ellipsis.

This allows us to improve the default series match configuration.  Allow
series references to contain one of the numbered file names.  Allow '-'
as a separator in addition to '.' and '_'.  Document what the default
configuration matches.  Also provide more options to configure series
<name> parsing.
2013-01-29 15:23:00 -05:00
Brad King 7931d35193 Merge topic 'FindGTK2-lib-order'
399c3b8 FindGTK2: Fix GTK2_LIBRARIES order for static gtk libraries
2013-01-29 14:52:27 -05:00
Brad King c0cebcb19a ExternalData: Remove unused private interface
The 'store' action was part of an older design and is no longer needed.
Remove it.
2013-01-28 15:31:31 -05:00
Brad King 52759930bd ExternalData: Cleanup stray TODO and typo in comments
Remove an outdated TODO line left from earlier designs.
Also fix a typo.
2013-01-28 15:31:31 -05:00
Brad King 7bb8344d50 ExternalData: Do not match directory names when resolving DATA{}
Our content link and object download infrastructure supports only
blobs (files), not trees (directories).  Do not allow references
to end in a slash.
2013-01-28 15:31:02 -05:00
Rodolfo Schulz de Lima 399c3b8e54 FindGTK2: Fix GTK2_LIBRARIES order for static gtk libraries
Before this, when creating GTK2_LIBRARIES, FindGTK2 added the GTK
dependencies in wrong order into GTK2_LIBRARIES.  With dynamic libraries
this is not a major problem, but when linking to static gtk libraries,
the linker outputs a lot of undefined symbols.  Reorder the calls that
append libraries to GTK2_LIBRARIES to respect dependency order.
2013-01-28 08:48:36 -05:00
Alex Neundorf 4cad848369 configure_package_config_file(): extend documentation
Alex
2013-01-24 21:27:32 +01:00
Alex Neundorf 37c4bc1f86 configure_package_config_file(): fix indentation
This is a separate commit, so that the previous commit is smaller.

Alex
2013-01-24 21:18:47 +01:00
Alex Neundorf d4774140b7 configure_package_config_file: force absolute paths for usr-move
The configure_package_config()_file() macro will now use
absolute paths for the PATH_VARS if the Config.cmake file
will be installed into /lib(64) or /usr/lib(64), since due to
the usr-move filesystem changes Config.cmake files installed
there may be found via two paths (once per symlink via
/lib(64) and once via /usr/lib ), and in this case
relative paths break.

Alex
2013-01-24 21:15:58 +01:00
Brad King 00d801fbfe ExternalData: Remove compatibility with CMake < 2.8.5
Now that the module comes in a sufficiently new CMake it does not need
to support older versions.
2013-01-24 13:34:12 -05:00
Brad King ab26249db1 Add ExternalData module
Take files we previously distributed in ITK 4.3.1:

  CMake/ExternalData.cmake
  CMake/ExternalData_config.cmake.in

and add them for distribution in upstream CMake.  Update the copyright
notice block format to follow CMake conventions.
2013-01-24 13:32:17 -05:00
Brad King a37b0e3ebf Merge topic 'qt4-autolink-qtmain'
e3b5eb6 Automatically link to the qtmain library when linking to QtCore.
6c8d8af Add the $<TARGET_POLICY> expression
2013-01-23 15:11:24 -05:00
Stephen Kelly e3b5eb6b23 Automatically link to the qtmain library when linking to QtCore.
When using QAxServer, ensure that the qtmain library is excluded
by reporting an error at CMake time if it is not.
2013-01-23 14:15:41 -05:00
Brad King c0f1af926f ExternalProject: Allow DEPENDS on normal targets (#13849)
The ExternalProject_Add DEPENDS option adds two types of dependencies.
It adds a target-level build order dependency between the external
project target and the named targets.  It also adds a file-level
dependency on the "done" stamp file of the named external project
targets.  Targets not created by ExternalProject_Add have no such stamp
file and no _EP_STAMP_DIR property.  Prior to commit d14c0243 (Refactor
repeated code into function, 2012-04-26) we unconditionally accepted an
empty stamp dir and generated a dependency on a non-existent file.
After that commit we generate an error that no stamp dir is set.

Skip the file-level dependency when the named dependency is not an
external project target in order to allow this use case.  Teach the
ExternalProject test to cover the case.
2013-01-16 10:35:58 -05:00
Brad King feb9ffb681 Merge topic 'qt4-target-depends'
c8ee07d FindQt4: Add INTERFACE includes and defines to Qt4 targets
2013-01-10 10:22:40 -05:00
Brad King 42d9df9f4f Merge topic 'Haiku'
0380f36 FindOpenGL: add Haiku paths
8e9630c FindGLUT: BeOS does not have libXi and libXmu
50bfedf FindLua51: do not try to link libm on BeOS
3d2e6a0 check for Haiku only with __HAIKU__
7a1b961 Haiku no longer defines __BEOS__
ed96d9a bootstrap: use better defaults for Haiku
2013-01-10 10:22:14 -05:00
Stephen Kelly c8ee07d0ad FindQt4: Add INTERFACE includes and defines to Qt4 targets 2013-01-10 09:44:50 -05:00
Brad King bc414aebaf Merge topic 'qt4-version-openssl'
4b9ec00 FindQt4: set QT_VERSION_* variables sooner.
2013-01-08 14:32:22 -05:00
Rolf Eike Beer 0380f36cd8 FindOpenGL: add Haiku paths
Also check the HP-UX specific paths only when on HP-UX.
2013-01-08 00:39:53 +01:00
Rolf Eike Beer 8e9630c719 FindGLUT: BeOS does not have libXi and libXmu 2013-01-07 23:57:07 +01:00
Rolf Eike Beer 50bfedf391 FindLua51: do not try to link libm on BeOS
This includes Haiku, which currently is treated as BeOS. The ComplexOneConfig
test already knew about this.
2013-01-07 23:26:18 +01:00