Commit Graph

4466 Commits

Author SHA1 Message Date
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