Commit Graph

5087 Commits

Author SHA1 Message Date
Brad King f55528186a Merge topic 'FindOpenSSL-root-dir'
12d6eb63 FindOpenSSL: Honor OPENSSL_ROOT_DIR everywhere (#14735)
2014-02-06 11:10:25 -05:00
Ho Cheung 12d6eb639d FindOpenSSL: Honor OPENSSL_ROOT_DIR everywhere (#14735)
In commit v2.8.5~176^2~2 (FindOpenSSL: We should only use hints to find
OpenSSL, 2011-03-28) values for HINTS and PATHS of find_* calls were
computed everywhere but only used on Windows.  Use them everywhere.
2014-02-05 12:28:36 -05:00
Stephen Kelly 0f5dfd10ba Help: Specify that qtmain.lib is only used for WIN32 executables. 2014-02-05 16:05:16 +01:00
Brad King 43a78f5b29 Merge topic 'FeatureSummary-no-transitive'
a6971f65 FeatureSummary: Don't list transitive package dependencies
2014-02-05 09:34:23 -05:00
Brad King f748b59e20 Merge topic 'fix-Qt-autogen'
6053ce22 QtAutogen: Make uic work even when the source is in a subdir.
1fc9ecfa FindQt4: Make AUTOMOC work regardless which order Qt 4/5 is found.
2014-02-04 13:34:54 -05:00
Stephen Kelly a6971f6510 FeatureSummary: Don't list transitive package dependencies
Set a global property in the find_package implementation.  Track and
reset that property in the find_dependency macro.  Read the property
in FeatureSummary when determining whether to print output.

This means that packages which are found only as dependencies are not
listed by FeatureSummary, but if a project uses find_package elsewhere
directly, then it will be listed by FeatureSummary.

Suggested-by: Alex Merry

 http://thread.gmane.org/gmane.comp.kde.devel.frameworks/10640
2014-02-03 20:20:42 +01:00
Brad King 2e2552af65 Merge topic 'cmake-qt-manual'
4271a4ed Help: Add information about INTERFACE_AUTOUIC_OPTIONS.
7935f4de Help: Note that AUTOMOC consumes the defines and includes from targets.
2739a6f9 Help: Move Qt tool invocation information to a generic cmake-qt manual.
2014-02-03 11:11:14 -05:00
Brad King b90d63cbfc Merge topic 'FindCUDA-doc-format'
1f8eb5db FindCUDA: Fix literal block formatting
2014-02-03 11:11:07 -05:00
Brad King 14fe404956 Merge topic 'find-java-os-x-fixes'
dd72b19f Find{Java,JNI}: Use /usr/libexec/java_home on OS X
70560ee1 FindJNI: Overhaul finding JDK libraries and headers on OS X
fcd66a7f Find{Java,JNI}: Consider JAVA_HOME before ENV{JAVA_HOME}
4b3614b2 Find{Java,JNI}: Use ENV{JAVA_HOME} first when set
2014-02-03 11:11:05 -05:00
Brad King a7f5a6ee12 Merge topic 'project-version-variables'
41d2f2c4 write_basic_package_version_file: use PROJECT_VERSION
7e142c5a project: Manage VERSION variables
16d040c9 project: Add optional LANGUAGES keyword
00007dcc Help: Format project command and variable documentation
2014-02-03 11:10:58 -05:00
Stephen Kelly 2739a6f97e Help: Move Qt tool invocation information to a generic cmake-qt manual.
Add an introduction about the use of different package types, and the
ability to use Qt 4 and 5 versions together in a single buildsystem.

Add a section about automatic linking of the qtmain.lib library and
how to disable it.
2014-02-02 11:28:12 +01:00
Brad King 1f8eb5db1c FindCUDA: Fix literal block formatting
Fix locations of '::' manually to group literal blocks as desired.
2014-01-29 14:26:05 -05:00
Brad King dd72b19f86 Find{Java,JNI}: Use /usr/libexec/java_home on OS X
If no JAVA_HOME or ENV{JAVA_HOME} is set then try running this
tool to get the system default Java home.

Suggested-by: Larry Shaffer <larrys@dakotacarto.com>
2014-01-29 14:12:54 -05:00
Brad King 70560ee146 FindJNI: Overhaul finding JDK libraries and headers on OS X
Drop the hard-coded framework paths and "-framework JavaJM" on APPLE.

Save and restore the value of CMAKE_FIND_FRAMEWORK.  Use its value to
choose and order between a normal search for jvm&jawt and a framework
search for JavaVM.  When JAVA_HOME is set explicitly by the user then
force a normal search by setting CMAKE_FIND_FRAMEWORK to NEVER.  Once
the library is found, set CMAKE_FIND_FRAMEWORK to help find_path locate
the matching headers (framework v. normal).
2014-01-29 14:12:54 -05:00
Brad King fcd66a7f7b Find{Java,JNI}: Consider JAVA_HOME before ENV{JAVA_HOME}
Add a helper module CMakeFindJavaCommon shared between FindJava
and FindJNI to select a JAVA_HOME value.  Prefer a CMake variable
or cache entry first, then an environment variable.
2014-01-29 14:12:54 -05:00
Brad King 4b3614b25a Find{Java,JNI}: Use ENV{JAVA_HOME} first when set
Use list(APPEND) instead of set() to append to lists.
When ENV{JAVA_HOME} is set explicitly place values based
on it at the front their lists.
2014-01-29 14:02:29 -05:00
Stephen Kelly 1fc9ecfae6 FindQt4: Make AUTOMOC work regardless which order Qt 4/5 is found.
Commit 321e348e (QtAutogen: Use Qt 4 IMPORTED targets to find
executable locations., 2014-01-24) attempted to fix this problem,
but only solved it for a particular ordering of find_package for
Qt 4 and Qt 5.

Add a test to ensure that it works with both orderings.
2014-01-29 17:02:43 +01:00
Brad King bbc82d85e5 Merge topic 'fix-Qt-autogen'
f7ae1d8a QtAutogen: Short-circut some logic when moc is not available.
4b989d5f QtAutogen: Separate source file processing from AUTOMOC.
c48d877d QtAutogen: Make some methods appropriately file-static.
394e86df QtAutogen: Fix autouic target options in the presence of a config.
964d7f2a QtAutogen: Remove unused variables.
0d934efd QtAutogen: Remove read of SKIP_AUTOUIC target property.
321e348e QtAutogen: Use Qt 4 IMPORTED targets to find executable locations.
e96683b0 Qt4: Use IMPORTED executable names with custom commands.
e6182f5d Qt4: Create IMPORTED executable targets for all Qt executables.
2014-01-29 10:05:04 -05:00
Alex Neundorf 41d2f2c4cb write_basic_package_version_file: use PROJECT_VERSION
In the write_basic_package_version_file(), the VERSION argument
is now optional. If none is given, it falls back to ${PROJECT_VERSION}.

Alex
2014-01-29 09:45:18 -05:00
Stephen Kelly 4b989d5f15 QtAutogen: Separate source file processing from AUTOMOC.
This will allow using AUTOUIC without using AUTOMOC for example.
2014-01-28 21:04:40 +01:00
Stephen Kelly e96683b048 Qt4: Use IMPORTED executable names with custom commands.
Finding Qt 5 can overwrite the QT_MOC_EXECUTABLE variable with the
moc from Qt 5. Use the IMPORTED target with the explicit version in
the name to avoid that.
2014-01-28 21:04:10 +01:00
Stephen Kelly e6182f5d5d Qt4: Create IMPORTED executable targets for all Qt executables.
Qt 5 already has similar IMPORTED targets.  The versioned namespace will
allow de-conflicting the variable names between Qt 4 and Qt 5.
2014-01-28 21:04:10 +01:00
Gereon Kremer 819015ef3a ExternalProject: Add option GIT_SUBMODULES
This option allows to filter the submodules that are checked out.
Add a simple testcase for GIT_SUBMODULES option passing an empty list.
2014-01-28 12:51:27 -05:00
Brad King 20263b719f Merge topic 'robust-ep-download-verify'
a432b93b file DOWNLOAD: Display the curl result status when a hash mismatch occurs.
1cb9ef81 file DOWNLOAD: Test non-zero return status.
f73f0fb3 file DOWNLOAD: Add test for bad hash.
b5e2265f ExternalProject: Reattempt download when verification fails.
2014-01-27 13:03:33 -05:00
Brad King 1021ad80f9 Merge topic 'qcc-id'
e00db59d QNX: Introduce QCC compiler id for that QNX platform compiler.
d2dea79b CMakeDetermine*Compiler: Fix typo 'lile' => 'like'
2014-01-22 08:47:55 -05:00
Stephen Kelly e00db59d6c QNX: Introduce QCC compiler id for that QNX platform compiler.
Introduce policy CMP0047 to control resetting the id for
compatibility.

De-duplicate content in the QNX platform file by including the GNU
one. QNX is a form of GNU platform.

Do not clear CMAKE_SHARED_LIBRARY_${lang}_FLAGS variables.  They
are populated again later by the Compiler/GNU.cmake file anyway.

Modify the CMAKE_CXX_COMPILE_OBJECT variable only when the QCC
compiler id is in use, and the language is CXX.  Use the QNX
recommended flag for QCC instead of the gcc compatible -x flag.

Populate new module files to handle system includes and depfiles
when using the QCC compiler.

Remove code which unsets the system include and depfiles related
variables.  When a GNU driver is used instead of the QCC one, the
appropriate flags will be used.  These variables were previously
cleared for lowest-common-denominator compatibility with both
drivers.
2014-01-22 08:47:32 -05:00
Stephen Kelly d2dea79b36 CMakeDetermine*Compiler: Fix typo 'lile' => 'like' 2014-01-22 08:43:58 -05:00
Brad King ceecda1253 Merge topic 'osx-host-arch'
9d2a0900 OS X: Use 'uname -m' for processor (#14712)
2014-01-21 08:51:36 -05:00
Brad King 25d414625a Merge topic 'update-qt4-docs'
f81e67c6 Help: Update Qt4 documentation.
2014-01-20 10:59:19 -05:00
Brad King 9d2a0900ed OS X: Use 'uname -m' for processor (#14712)
In commit 2412d9bc (Use 'uname -m' for processor on Cygwin, 2010-09-21)
it was pointed out that POSIX requires 'uname -m' but not 'uname -p':

  http://www.opengroup.org/onlinepubs/9699919799/utilities/uname.html

On OS X x86_64, 'uname -p' returns i386 while 'uname -m' returns x86_64.
Since the latter is the POSIX-compliant option trust its value.
However, on OS X ppc, 'uname -m' returns 'Power Macintosh' so add a
special-case to convert that to 'powerpc'.
2014-01-20 10:55:19 -05:00
Matt McCormick b5e2265fc3 ExternalProject: Reattempt download when verification fails.
When downloading an URL with ExternalProject, reattempt the download three
times if the file hash verification fails.

The re-attempt is limited to non-local URL's.  The same download CMake script
is re-used after removing any file that resulted from the previous download
attempt.  Up to three re-attempts are performed.
2014-01-15 16:31:23 -05:00
Daniele E. Domenichelli 620939e4e6 GNUInstallDirs: Fix CMAKE_INSTALL_LIBDIR on Debian
When not installing in /usr (i.e. /usr/local) on Debian/Ubuntu, the
multiarch path is not in ldconfig path, and therefore libraries cannot
be found, unless the user manually modifies the files in
/etc/ld.so.conf.d, in order to include /usr/local/lib/<arch>.

This patch fixes this issue by using "lib/<arch>" only if the user is
installing the software in /usr, and uses "lib" in all the other cases.
2014-01-15 18:02:21 +01:00
Stephen Kelly f81e67c616 Help: Update Qt4 documentation.
Remove independent doc listing for Qt4ConfigurationSettings, Qt4Macros
and UseQt4. These are implementation details.

Recommend the use of IMPORTED targets.

Remove references to the UseQt4 file, which is obsolete in light of
the IMPORTED targets.

Add documentation for automatic tool invocation and options.

Remove reference to variables which should not be needed in modern
implementations.
2014-01-15 16:23:51 +01:00
Brad King 050c02849e Merge topic 'doc-Qt-macro-TARGET-arg'
4608a260 Document the TARGET options in Qt4 macros.
2014-01-15 10:12:00 -05:00
Stephen Kelly 4608a260d4 Document the TARGET options in Qt4 macros.
Feature introduced in commit 9ce60ff5 (Qt4Macros: Allow specifying
a TARGET in invokations of macros., 2013-02-26).
2014-01-14 14:55:05 +01:00
Stephen Kelly 2509c7678f Qt4: Use generator expression in COMPILE_DEFINITIONS (#14692)
Commit 5bb53f6b (cmTarget: Deprecate COMPILE_DEFINITIONS_ properties
with a policy., 2013-12-30) deprecated the config-specific
COMPILE_DEFINITIONS_* properties in favour of using generator
expressions.

Set the directory property in UseQt4.cmake to match the
INTERFACE_COMPILE_DEFINITIONS on the Qt4::QtCore and Qt5::Core
IMPORTED targets.  Setting QT_NO_DEBUG is sufficient because qglobal.h
sets the corresponding QT_DEBUG definition if required.
2014-01-13 15:53:00 +01:00
Brad King aacad3238f Merge topic 'find-java-os-x-fixes'
519084c FindJNI: Set JAVA_INCLUDE_PATH2 for darwin (#14508)
2014-01-10 09:19:46 -05:00
Brad King 58b34959e3 Merge topic 'CheckTypeSize_fix_multiple_invocation'
8252406 CheckTypeSize: Unset temporary variables when done (#14690)
2014-01-10 09:19:44 -05:00
Daniele E. Domenichelli 8252406cd6 CheckTypeSize: Unset temporary variables when done (#14690)
When the macro is invoked multiple times, the parsing variables were
not unset and therefore used for all the following calls.
2014-01-10 09:16:30 -05:00
Brad King 089ae7122b Merge topic 'FindBoost-ms-debug-runtime'
d729899 FindBoost: Add Boost_USE_DEBUG_RUNTIME option (#14686)
2014-01-09 13:54:21 -05:00
Joe Abbey 519084cd2e FindJNI: Set JAVA_INCLUDE_PATH2 for darwin (#14508) 2014-01-09 09:59:56 -05:00
Brad King 15562c11ef Merge topic 'policies'
73e9340 get_target_property: Error on non-existent target.
ab9f58f FindQt4: Ensure target exists before calling get_target_property.
37ebeb9 FindQt4: Fix use of get_target_property to use actual target name.
6aabb6a Genex: Use case-sensitive comparison for COMPILER_ID.
5bb53f6 cmTarget: Deprecate COMPILE_DEFINITIONS_ properties with a policy.
2014-01-09 09:37:20 -05:00
Brad King df55a930fa Merge topic 'qt4-find-root'
e8b8b37 FindQt4: Use NO_CMAKE_FIND_ROOT_PATH where search paths are already rooted.
2014-01-09 09:37:12 -05:00
Brad King e5783a6f51 Merge topic 'multiarch-multios'
f293d52 GNUInstallDirs: Use multiarch on Debian with FreeBSD and HURD kernels
2014-01-09 09:37:09 -05:00
Brad King d729899a26 FindBoost: Add Boost_USE_DEBUG_RUNTIME option (#14686)
Add an option to control use of the 'g' runtime debug library tag
on MSVC tools.  Default to ON to preserve existing behavior.
2014-01-08 11:32:17 -05:00
Stephen Kelly ab9f58f657 FindQt4: Ensure target exists before calling get_target_property.
This macro is called for all potential Qt targets, even those which were
not found.
2014-01-08 16:41:34 +01:00
Stephen Kelly 37ebeb9100 FindQt4: Fix use of get_target_property to use actual target name.
This was introduced in ba48e63f (Generate config-specific interface
link libraries propeties., 2013-02-09).
2014-01-08 16:41:34 +01:00
Brad King 1857660984 Merge topic 'wix-cmake-package-registry'
92c4d40 CPackWiX: added new CPACK_WIX_CMAKE_PACKAGE_REGISTRY variable
2014-01-08 09:58:45 -05:00
Clinton Stimpson e8b8b37ef6 FindQt4: Use NO_CMAKE_FIND_ROOT_PATH where search paths are already rooted.
Thanks to Thomas Petazzoni for part of this fix.
2014-01-08 06:07:24 -07:00
Nils Gladitz 92c4d4039e CPackWiX: added new CPACK_WIX_CMAKE_PACKAGE_REGISTRY variable
Allows automatic registration of installed packages with
the cmake package registry.
2014-01-08 01:28:24 +01:00
Stephen Kelly efc43cde8f Help: Fix some erroneous code block markers in Module docs.
There are many style errors in these files. This patch fixes only
the syntactical errors.

The script which ported these to rst tripped on some incorrectly
formatted blocks in the original input documentation.  Use a new
script to find problematic code (and then fix them manually):

  #!/usr/bin/env python

  import os

  rootDir = '.'

  def checkFile(fname):

    f = open(fname)
    lines = f.readlines()
    started = False
    counter = 0
    for l in lines:
      if "#" in l:
        started = True
      elif started:
        return
      lin = l.find("(")
      if lin != -1 and l.find(")", lin) == -1 and \
          not "(To distribute this file outside of CMake, substitute the full" in l:
        for lp in lines[counter+1:]:
          if lp == "# ::\n":
            print "\n\n######### " + fname + "\n\n"
            print ''.join(lines[max(counter-2, 0):counter+6])
            break
          elif lp == "#\n" :
            continue
          break
      counter += 1

  for dirName, subdirList, fileList in os.walk(rootDir):
      for fname in fileList:
          checkFile(os.path.join(dirName, fname))
2014-01-07 09:52:56 -05:00
Brad King b225dbbd02 Merge topic 'minor-cleanups'
a55c70d cmTarget: Remove support for <CONFIG>_LOCATION property.
c9f9b3c cmTarget: Test impliedByUse number-compatible properties.
fbe1fa7 cmTarget: Don't repeat property origin debug information.
01c545c cmTarget: Fix debug report for interface-set compatibility types.
c67e1a6 cmTarget: Fix reporting interface-set properties which are FALSE.
07b0f54 Qt Tests: Remove commented and unneeded line.
79db8ef cmTarget: Fix the property compatibility error message
43340a9 Help: Reformat Qt autogenerator documentation.
d98ea6c Help: Mark some code blocks as containing cmake code.
ea78935 GenerateExportHeader: Reformat docs.
272a20f cmTarget: Don't update IMPORTED target compilation properties
03d842a Run the add_compile_options command unit test.
cd3d0b6 get_property: Fix testing ALIASED_TARGET target property (#14670)
6a62228 install: Ensure that install(TARGETS) works with no DESTINATION
af3d3b8 export: Only generate and install configuration files if needed.
0de81bb Help: Workaround pygments reporting an error for genexes.
...
2014-01-06 11:15:34 -05:00
Brad King b8786da79f Merge topic 'fix-text-typos'
9e41eb6 Fix wording of "the the" typos throughout text
2014-01-06 10:36:03 -05:00
Stephen Kelly ea78935f62 GenerateExportHeader: Reformat docs. 2014-01-04 11:28:57 +01:00
Ruslan Baratov 9e41eb68ec Fix wording of "the the" typos throughout text 2014-01-03 11:35:32 -05:00
Brad King 6cff2afc8b Merge topic 'export-EXPORT-subcommand'
98b9f52 Help: Document export(EXPORT) in the cmake-packages manual.
a1d2bda Don't copy find_dependency in configure_package_config_file.
f4f6529 Help: cmake-packages: Add missing slash.
cbe7e8f export: Implement EXPORT subcommand (#9822)
2014-01-02 14:44:08 -05:00
Nils Gladitz 950d76ed48 CPackWiX: allow and convert UTF-8 sequences in RTF writer 2013-12-26 15:23:54 +01:00
Stephen Kelly a1d2bda23e Don't copy find_dependency in configure_package_config_file.
There is not really any need to. Downstreams can either rely on it
being provided by CMake, or copy and distribute it.

Change the documented include for the find_dependency macro.
2013-12-24 13:02:49 +01:00
Brad King 4372365177 Merge topic 'cmake-packages-manual'
3fe4ac8 Help: Add a CMake manual for Packages related docs.
20cafa2 Split the find_dependency macro into a separate file.
2013-12-20 15:01:26 -05:00
Brad King c57aca394e Merge topic 'add-platform-MirBSD'
af7489d Add MirBSD platform support (#14659)
2013-12-20 09:41:36 -05:00
Brad King 221c95da88 Merge topic 'doc-TestCXXAcceptsFlag-cleanup'
95c705a TestCXXAcceptsFlag: Update documentation (#14657)
2013-12-20 09:41:18 -05:00
Brad King c6072c7806 Merge topic 'find_backtrace'
9650c09 FindBacktrace: Search and report only when not already found
2013-12-20 09:41:10 -05:00
Dimitri John Ledkov f293d525a1 GNUInstallDirs: Use multiarch on Debian with FreeBSD and HURD kernels 2013-12-19 11:27:30 -05:00
Brad King af7489d5a6 Add MirBSD platform support (#14659)
Add a Modules/Platform/MirBSD.cmake module that just includes the
OpenBSD platform module.
2013-12-19 11:08:28 -05:00
Brad King 95c705a6a9 TestCXXAcceptsFlag: Update documentation (#14657)
Document this module as deprecated and link to CheckCXXCompilerFlag.
Fix cut-n-paste-o and format macro signature.
2013-12-19 10:41:40 -05:00
Vadim Zhukov 9650c09b95 FindBacktrace: Search and report only when not already found
Avoid saying "... detected in default set..." each time CMake is run.

Prompted by Rolf Eike Beer on cmake-developers@.
2013-12-19 10:22:04 -05:00
Brad King eb20fab736 Merge topic 'wix-fragment-injection'
8632233 CPackWiX: allow customization of generated WiX sources
2013-12-19 10:13:47 -05:00
Brad King aed192d2cd Merge topic 'Qt4-NO_DEBUG-define'
3e97bcb Use a config-specific moc parameters file, if needed.
b9f0d81 Define QT_NO_DEBUG for non-debug use of Qt 4.
2013-12-19 10:13:23 -05:00
Brad King cc054e94f8 Merge topic 'FindSubversion-TortoiseSVN'
62c276f FindSubversion: Use TortoiseSVN registry key to locate svn
2013-12-19 10:13:09 -05:00
Brad King 172f37be33 Merge topic 'FindFreetype-2.5'
9b08e3f FindFreetype: Remove duplicates in FREETYPE_INCLUDE_DIRS
bc49d82 FindFreetype: Detect version string with Freetype 2.5
7435ae7 FindFreetype: Find ftheader.h with Freetype 2.5
2013-12-19 10:12:25 -05:00
Brad King b891af9290 Merge topic 'xcode-5.1'
65ee85d CMakeDetermineCompilerId: Fix compiler line match for Xcode 5.1
2013-12-19 10:12:18 -05:00
Nils Gladitz 8632233a2f CPackWiX: allow customization of generated WiX sources
Added a new variable CPACK_WIX_PATCH_FILE that users can point at an
XML patch file. Fragments defined within the patch file will be inserted
at supported insertion points (currently Component, File and Directory).
2013-12-17 14:14:42 +01:00
Stephen Kelly 20cafa2e1f Split the find_dependency macro into a separate file.
This allows Config file authors to use it without having to use
CONFIGURE_PACKAGE_CONFIG_FILE.
2013-12-13 16:14:02 +01:00
Stephen Kelly 3e97bcb1ef Use a config-specific moc parameters file, if needed. 2013-12-12 18:22:17 +01:00
Daniele E. Domenichelli 62c276f03e FindSubversion: Use TortoiseSVN registry key to locate svn
If TortoiseSVN is not installed in the default path, the svn executable
installed by TortoiseSVN is not found.
Using the registry key should always find it.
2013-12-11 13:59:48 +01:00
Stephen Kelly b9f0d81c4b Define QT_NO_DEBUG for non-debug use of Qt 4. 2013-12-10 18:33:52 +01:00
Daniele E. Domenichelli 9b08e3f599 FindFreetype: Remove duplicates in FREETYPE_INCLUDE_DIRS
In Freetype 2.5 the paths for FREETYPE_INCLUDE_DIR_ft2build and
FREETYPE_INCLUDE_DIR_freetype2 are the same
2013-12-09 19:39:28 +01:00
Daniele E. Domenichelli bc49d820a2 FindFreetype: Detect version string with Freetype 2.5 2013-12-09 19:33:42 +01:00
Ted Kremenek 65ee85d0c5 CMakeDetermineCompilerId: Fix compiler line match for Xcode 5.1
Xcode 5.1 output no longer puts "./" in the path to the linker output
for the CompilerId test binary.  Update our regex to match the path
with or without the component.
2013-12-09 10:40:42 -05:00
Brad King 1c95ec6316 Merge topic 'qt4-qmake-exe'
05c518b FindQt4: Restore ability to handle a changed QT_QMAKE_EXECUTABLE properly.
2013-12-09 10:33:11 -05:00
Daniele E. Domenichelli 7435ae7c97 FindFreetype: Find ftheader.h with Freetype 2.5 2013-12-09 13:24:28 +01:00
Simon Sasburg 05c518b3de FindQt4: Restore ability to handle a changed QT_QMAKE_EXECUTABLE properly.
This fixes a regression in commit 21123416 where it was trying to better handle
a qmake from Qt5.
2013-12-06 08:07:38 -07:00
Brad King 5da1580ada Fortran: Improve pointer size detection in gfortran on MinGW
In commit ecd84147 (Fortran: Detect pointer size in gfortran on MinGW,
2011-11-29) we started testing for __SIZEOF_POINTER__ but not all GNU
Fortran compilers define this.  Check also for __SIZEOF_SIZE_T__ which
at least one version of gfortran defines without also defining
__SIZEOF_POINTER__.
2013-12-06 09:02:27 -05:00
Brad King 520ead7200 Merge topic 'cleanup-build-commands'
e420124 CMakeDetermineCompilerId: Use CMAKE_VS_(DEVENV|MSBUILD|MSDEV)_COMMAND
0c55729 VS: Add CMAKE_VS_(DEVENV|MSBUILD|MSDEV)_COMMAND variables
2013-12-05 09:24:59 -05:00
Brad King e4201248ce CMakeDetermineCompilerId: Use CMAKE_VS_(DEVENV|MSBUILD|MSDEV)_COMMAND
In the code path for launching the VS IDE tools, avoid using
CMAKE_MAKE_PROGRAM.  Instead use the variables CMAKE_VS_DEVENV_COMMAND,
CMAKE_VS_MSBUILD_COMMAND, and CMAKE_VS_MSDEV_COMMAND to lookup the
location of the build tool needed.  Choose the proper tool based on
availability and necessity for the language (e.g. Intel Fortran must
build with devenv.com and not MSBuild.exe).
2013-12-04 11:06:44 -05:00
Brad King 07528f78d7 Merge topic 'filter-showincludes-in-launcher'
e5e3f3d CTest: filter /showIncludes output from ninja compile launcher
2013-12-03 09:48:09 -05:00
Brad King 1af0c41278 Merge topic 'Haiku-CPU-count'
eef42a0 ProcessorCount: make it work on Haiku
2013-12-03 09:30:31 -05:00
Brad King 2e8ce4d516 Merge topic 'lang-flag-var-helpstrings'
5d2452d Fix CMAKE_(C|CXX|Fortran)_STANDARD_LIBRARIES helpstrings (#14622)
2b77b53 Make CMAKE_(C|CXX|Fortran)_<CONFIG> help strings more consistent (#14606)
424c6fc Fix CMAKE_(C|CXX|Fortran)_RELEASE helpstrings (#14606)
2013-12-03 09:30:27 -05:00
Brad King da47c9733b Merge topic 'osx-cross-compile-fixup'
3189ed3 OS X: Fix app bundle search path during cross compiling (#14603)
2013-12-03 09:30:18 -05:00
Nils Gladitz e5e3f3d4ff CTest: filter /showIncludes output from ninja compile launcher
Teach "ctest --launch" a new "--filter-prefix" option.  Set it using
the CMAKE_CL_SHOWINCLUDES_PREFIX value with the Ninja generator.
2013-12-03 09:25:53 -05:00
Brad King 5d2452d89a Fix CMAKE_(C|CXX|Fortran)_STANDARD_LIBRARIES helpstrings (#14622)
s/defalut/default/

Reported-by: Stephan Tolksdorf <st@quanttec.com>
2013-12-03 09:21:33 -05:00
Brad King ed1de30da0 Merge topic 'wix-components'
7b390f7 CPackWiX: add CPack component support
2013-12-02 12:07:24 -05:00
Brad King 55f2a3d627 Merge topic 'FindSWIG-3498'
5d3b0bb FindSWIG: allow to provide SWIG_DIR (#3498)
2013-12-02 12:07:17 -05:00
Brad King fa894c3003 Merge topic 'UseSWIG-octave'
f39671c UseSWIG: Handle octave extensions.
2013-12-02 12:07:03 -05:00
Brad King f3a10191e7 Merge topic 'UseSWIG-fix12184'
74f5545 UseSWIG: set .bundle ext on OSX and no prefix (#12184)
2013-12-02 12:06:57 -05:00
Brad King 406635fd6c Merge topic 'UseSWIG-fix13318'
a87c063 UseSWIG: Name python module according to swig flags (#13318)
2013-12-02 12:06:50 -05:00
Brad King 9c56366250 Merge topic 'KateProjectGenerator2'
b54c336 kate: add some documentation
9414217 kate: insert build targets
644e012 kate: add project generator for the Kate project plugin
2013-12-02 12:06:27 -05:00
Rolf Eike Beer eef42a0de6 ProcessorCount: make it work on Haiku 2013-12-02 17:51:47 +01:00
Brad King 2b77b53280 Make CMAKE_(C|CXX|Fortran)_<CONFIG> help strings more consistent (#14606)
Use consistent capitalization and write all words out in the cache entry
descriptions.
2013-12-02 10:41:12 -05:00
Brad King 424c6fcc76 Fix CMAKE_(C|CXX|Fortran)_RELEASE helpstrings (#14606)
Remove the platform-specific description from the cache entry help
strings for these variables.
2013-12-02 10:25:52 -05:00
Flynn Marquardt 3189ed34b8 OS X: Fix app bundle search path during cross compiling (#14603)
In "Modules/Platform/Darwin.cmake" the variable _apps_paths stays empty
if cross compiling.  Do not de-duplicate an empty list.
2013-12-02 09:32:40 -05:00
Julien Schueller 5d3b0bb501 FindSWIG: allow to provide SWIG_DIR (#3498) 2013-12-01 01:20:46 +01:00
Julien Schueller f39671c117 UseSWIG: Handle octave extensions. 2013-11-29 10:13:27 +01:00
Julien Schueller 74f5545d0a UseSWIG: set .bundle ext on OSX and no prefix (#12184) 2013-11-28 10:26:14 +01:00
Nils Gladitz 7b390f75e8 CPackWiX: add CPack component support
Creates a hierarchy of WiX features from CPack components and component groups.
Switch to the FeatureTree UI in case components have been defined.
Handles the component REQUIRE and HIDDEN options
and the component group EXPANDED option.
2013-11-26 22:15:57 +01:00
Julien Schueller a87c06328c UseSWIG: Name python module according to swig flags (#13318) 2013-11-26 09:46:39 -05:00
Brad King 8b585eed44 Merge topic 'cross-compiling-toolchain-variables'
89ba7b0 Update the Clang pattern to specify compiler options.
2013-11-26 09:38:55 -05:00
Brad King 784e6e7f15 Merge topic 'UseSWIG-fix14520'
20028d6 UseSWIG: Remove duplicate include dirs (#14520)
2013-11-26 09:36:46 -05:00
Brad King 0ccc535734 Merge topic 'UseSWIG-fix13814'
acc59e5 UseSWIG: Handle a dll name different than module name (#13814)
2013-11-26 09:36:22 -05:00
Brad King 170c50da38 Merge topic 'FindGTK2-quartz-backend'
0e9bf6a FindGTK2: Add support for Quartz backend on MAC
2013-11-26 09:35:13 -05:00
Stephen Kelly 89ba7b0046 Update the Clang pattern to specify compiler options.
In Clang 3.4, the preferred (and new) option pattern is --target=.

 http://thread.gmane.org/gmane.comp.compilers.clang.devel/29975
 http://llvm.org/viewvc/llvm-project?view=revision&revision=184408

Clang 3.4 is not yet released, but there is a release candidate, and
there is a dashboard test of Clang trunk.
2013-11-25 23:01:21 +01:00
Alex Neundorf 644e012863 kate: add project generator for the Kate project plugin
This patch adds an extra generator for KDE's kate text editor,
or better more specifically, the project plugin.

Alex
2013-11-25 10:48:33 -05:00
Brad King d6516dc693 Merge topic 'EclipseParallelMakeOnlyOnUnixHosts'
83751af Eclipse: add -j only on UNIX hosts
2013-11-25 08:38:07 -05:00
Brad King 788910941f Merge topic 'UseSWIG-fix13772'
276e373 UseSWIG: Fix .i relative source file location (#13173,#13772,#14459)
2013-11-25 08:37:59 -05:00
Brad King f1d5d88911 Merge topic 'FindSWIG-fix13771'
8c127c9 FindSWIG: Use CMAKE_CURRENT_LIST_DIR instead of CMAKE_ROOT (#13771)
2013-11-25 08:37:53 -05:00
Brad King adde0c6324 Merge topic 'FindSWIG-fix13449'
19b7a54 FindSWIG: Search for swig.swg only on host (#13449)
2013-11-25 08:37:47 -05:00
Brad King 7008754b0e Merge topic 'FindSWIG-fix13426'
6620dc7 FindSWIG: Mark SWIG_DIR & SWIG_VERSION as advanced (#13426)
2013-11-25 08:37:34 -05:00
Julien Schueller 20028d600f UseSWIG: Remove duplicate include dirs (#14520)
Shorten the swig command line.
2013-11-25 08:33:30 -05:00
Julien Schueller acc59e55e1 UseSWIG: Handle a dll name different than module name (#13814) 2013-11-25 08:32:13 -05:00
Julien Schueller 276e3735d8 UseSWIG: Fix .i relative source file location (#13173,#13772,#14459) 2013-11-25 08:29:37 -05:00
Daniele E. Domenichelli 0e9bf6a257 FindGTK2: Add support for Quartz backend on MAC
Fix issue #14593
2013-11-24 14:53:47 +01:00
Alex Neundorf 83751af219 Eclipse: add -j only on UNIX hosts
The previous version added -jN to the make invokation if UNIX
was set, but this was true also when cross compiling.
What we are actually interested in is CMAKE_HOST_UNIX, i.e.
whether the build host is UNIX.
Or we should check more exactly what CMAKE_MAKE_PROGRAM is.

Alex
2013-11-23 23:48:43 +01:00
Julien Schueller 8c127c9e33 FindSWIG: Use CMAKE_CURRENT_LIST_DIR instead of CMAKE_ROOT (#13771)
This is a simpler way to reference the location of UseSWIG.cmake.
2013-11-22 09:10:51 -05:00
Julien Schueller 19b7a54d35 FindSWIG: Search for swig.swg only on host (#13449)
Use NO_CMAKE_FIND_ROOT_PATH to ensure swig.swg can be found on the host
even when cross-compiling.
2013-11-22 09:09:43 -05:00
Julien Schueller 6620dc7691 FindSWIG: Mark SWIG_DIR & SWIG_VERSION as advanced (#13426) 2013-11-22 09:09:20 -05:00
Brad King 7246e635fe Merge topic 'FixIssue14029'
9619719 FindSDL: Add additional search paths on MSVC (#14029)
2013-11-22 08:41:43 -05:00
Brad King 3013a11826 Merge topic 'cross-compiling-toolchain-variables'
7521da2 Introduce CMAKE_STAGING_PREFIX variable.
2013-11-22 08:40:50 -05:00
Benjamin Eikel 9619719882 FindSDL: Add additional search paths on MSVC (#14029)
Add an architecture-specific library directory path suffix for each
component.  Use different search path for SDL_sound.  Project files in
VisualC directory suggest that a win32lib will hold the libraries.

Reported-by: Paul Hampson <Paul.Hampson@Pobox.com>
2013-11-21 15:30:36 -05:00
Brad King 91330e9505 Merge topic 'FindwxWidgets-3.0.0'
2cd5597 FindwxWidgets: Add support for wxWidgets 3.0.0 (#14587)
2013-11-21 09:39:07 -05:00
Brad King 26bed2ac57 Merge topic 'find_backtrace'
c6f339c Add FindBacktrace.cmake module.
2013-11-21 09:38:56 -05:00
Stephen Kelly 7521da2852 Introduce CMAKE_STAGING_PREFIX variable.
This variable can be useful in cross-compiling contexts where the
sysroot is read-only or where the sysroot should otherwise remain
pristine.

If the new CMAKE_STAGING_PREFIX variable is set, it is used instead
of CMAKE_INSTALL_PREFIX when generating the installation rules in
cmake_install.cmake.

This way, the CMAKE_INSTALL_PREFIX variable
always refers to the installation prefix on the target device, regardless
of whether host==target.

If any -rpath paths passed to the linker contain the CMAKE_STAGING_PREFIX,
the matching path fragments are replaced with the CMAKE_INSTALL_PREFIX.
Matching paths in the -rpath-link are not transformed.

The cross-prefix usr-move workaround is assumed not to require extension
regarding CMAKE_STAGING_PREFIX. The staging area is a single prefix, so
there is no scope for cross-prefix symlinks. The CMAKE_INSTALL_PREFIX
is still used to determine the workaround path, and that variable
remains the relevant one even if CMAKE_STAGING_PREFIX is used. If the
generated export files are deployed to the target, the workaround
will still be in place, and still be employed if required.
2013-11-21 11:48:03 +01:00
Arnaud Desmier 2cd559789b FindwxWidgets: Add support for wxWidgets 3.0.0 (#14587)
Add the "wxWidgets-3.0.0" path suffix and the "30" library names.
While at it, add the "wxWidgets-2.9.5" suffix too.
2013-11-20 10:51:55 -05:00
Brad King 6703508a31 Merge topic 'add-missing-parent-group'
2751b93 CPackComponent: handle the documented PARENT_GROUP parameter
2013-11-20 09:08:38 -05:00
Brad King 5f4e31ce3b Merge topic 'FindLATEX-ps2pdf'
0767474 FindLATEX: Find ps2pdf with MikTeX.
2013-11-20 09:07:31 -05:00
Nils Gladitz 2751b934a3 CPackComponent: handle the documented PARENT_GROUP parameter 2013-11-19 21:22:44 +01:00
Brad King 46ec48c93d Merge topic 'cross-compiling-toolchain-variables'
7cd65c9 Add CMAKE_SYSROOT variable to set --sysroot when cross compiling.
5096967 Allow toolchain files to specify an external toolchain.
76552d5 Add compiler target compile options.
f41ecd1 CMakeDetermineCompilerId: Look for internal file only on host
2013-11-19 12:41:57 -05:00
Stephen Kelly 7cd65c97fa Add CMAKE_SYSROOT variable to set --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-11-19 12:39:39 -05:00
Stephen Kelly 5096967ecd Allow toolchain files to specify an external toolchain.
Clang can compile code, but uses the gcc tools for other tasks such
as linking. The -gcc-toolchain option can be used for that, but
generalize so that other compilers can be treated the same.

If such a location is specified, use it as a hint for finding
the binutils executables.
2013-11-19 12:39:34 -05:00
Stephen Kelly 76552d595d 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.

When cross-compiling with clang, use the CMAKE_${lang}_COMPILER_TARGET
as the _CMAKE_TOOLCHAIN_PREFIX to find the appropriate binutils.

When cross-compiling with QNX qcc, use the CMAKE_${lang}_COMPILER_TARGET
to set the appropriate _CMAKE_TOOLCHAIN_PREFIX.
2013-11-19 12:38:53 -05:00
Stephen Kelly f41ecd1db4 CMakeDetermineCompilerId: Look for internal file only on host
The find_file this module uses to locate the compiler id source file
must always look on the host and never in CMAKE_FIND_ROOT_PATH, even
when a toolchain file has

 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Add NO_CMAKE_FIND_ROOT_PATH to the find_file call to avoid rerooting.
2013-11-19 12:36:27 -05:00
Brad King 1da77bf1ee Merge topic 'cleanup-build-commands'
4cce44b Help: Document the CMAKE_MAKE_PROGRAM variable in more detail
558c74d VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generators
5229f2d Tests: Do not use an explicit make program for VS generators
72dd738 Tests: Fix MFC test heuristic for empty CMAKE_TEST_MAKEPROGRAM
fd6076d Tests: Pass CMAKE_MAKE_PROGRAM instead of --build-makeprogram
68031ab Tests: Configure SubProject-Stage2 test more robustly
003d10c Tests: Simplify VSExcludeFromDefaultBuild configuration
e47d934 Tests: Simplify VSProjectInSubdir configuration
e965cb1 Tests: Simplify CTest.BuildCommand.ProjectInSubdir configuration
72bf255 Tests: Pass --build-options to every test
4d1d772 ctest: Teach --build-options to allow zero options
96966b5 ctest: Make the --build-makeprogram optional for --build-and-test
91a0211 Simplify some calls to cmGlobalGenerator::Build
123a060 Teach GenerateBuildCommand to find its own make program
5f5c92b VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdev
4ac75fd Prefer CMAKE_MAKE_PROGRAM over CMAKE_BUILD_TOOL (#14548)
...
2013-11-19 10:55:39 -05:00
Brad King 8564682136 Merge topic 'doc-ExternalProject-formatting'
01ecd24 ExternalProject: Format module documentation
2013-11-19 09:47:39 -05:00
Brad King 01ecd24fa6 ExternalProject: Format module documentation
Manually revise the .rst format of the documentation.  Use inline
literal quotes appropriately in paragraph text.  Move the :: literal
block openers to the end of the preceding paragraphs.  Convert the
command signature documentation and examples to cmake code-block
directives.
2013-11-19 09:27:08 -05:00
Brad King 558c74d0ab VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generators
Drop the "Modules/CMakeVS*FindMake.cmake" files.  Override the
cmGlobalGenerator::FindMakeProgram method for VS generators to use their
internal APIs to locate the build tool.  Set the CMAKE_MAKE_PROGRAM as a
normal variable for use by project code, but do not cache it.  This will
allow CMake and CTest to select the proper tool at build time.
2013-11-18 11:30:50 -05:00
Brad King 4ac75fdfe6 Prefer CMAKE_MAKE_PROGRAM over CMAKE_BUILD_TOOL (#14548)
Historically these were both added for the Makefile and Visual Studio
generators, respectively.  Later the VS generators started using the
CMAKE_MAKE_PROGRAM cache entry to find the IDE build tool, and the
CMAKE_BUILD_TOOL was simply set as an alias.

Fix the documentation to explain that CMAKE_MAKE_PROGRAM is the modern
variable and that CMAKE_BUILD_TOOL is the compatibility alias, not the
other way around.  Replace uses of CMAKE_BUILD_TOOL with
CMAKE_MAKE_PROGRAM in CMake-provided modules.  Nothing needs to lookup
CMAKE_BUILD_TOOL in the cache, so simply set it as a normal variable.
2013-11-18 08:26:23 -05:00
Nils Gladitz 7621ad6eae CPack: don't write internal variables to CPackConfig.cmake
The internal variables CPACK_ADDCOMP_COMPONENTS,
CPACK_ADDCOMP_STR and CPACK_ADDCOMP_UNAME were being needlessly
exported to CPackConfig.cmake.
Prefixing them with an underscore prevents this.

CPACK_ADDCOMP_STR was particularily problematic since it contains
unescaped quotes.
2013-11-17 11:02:41 +01:00
Brad King 5084cac09f Merge topic 'gp-ld_library_path'
e130b9e GetPrerequisites:  Preserve search path order from caller.
2013-11-14 11:28:34 -05:00
Brad King 3993300ad3 Merge topic 'openmp-cray'
ebf70b0 FindOpenMP: fix detecting compilers that do not need any special flag (#14567)
2013-11-14 11:28:24 -05:00
Brad King 42eaf34168 Merge topic 'configure_file-drop-IMMEDIATE'
15610bb Drop use of configure_file IMMEDIATE option
2013-11-14 11:28:07 -05:00
Clinton Stimpson e130b9ebaa GetPrerequisites: Preserve search path order from caller. 2013-11-14 11:26:23 -05:00
Rolf Eike Beer ebf70b037d FindOpenMP: fix detecting compilers that do not need any special flag (#14567) 2013-11-13 21:41:33 +01:00
Daniele E. Domenichelli 15610bb5b1 Drop use of configure_file IMMEDIATE option
Since commit 7d47c693 (Drop compatibility with CMake < 2.4, 2013-10-08)
we no longer need to use the configure_file IMMEDIATE option to support
compatibility modes less than 2.0.
2013-11-13 10:12:17 -05:00
Brad King 8eb20eeabe ExternalData: Allow local stores without any URL templates
Allow ExternalData_URL_TEMPLATES to be empty if a value for
ExternalData_OBJECT_STORES is provided.  Assume in this use case that
the object stores will already contain all needed objects.  Extend the
Module.ExternalData test to cover this case (all objects in stores).
Extend the RunCMake.ExternalData test to cover the non-failure message
case when stores are provided without URL templates.
2013-11-13 10:03:36 -05:00
Brad King 5473b327c6 Merge topic 'doc-ExternalData-network-path'
f3883f3 ExternalData: Show example network path URL template
ff6818b ExternalData: Format module documentation
2013-11-13 09:58:18 -05:00
Nils Gladitz 096591b96a CPackWiX: Add variables for custom tool extensions and flags 2013-11-12 14:10:01 -05:00
Brad King f3883f366d ExternalData: Show example network path URL template
In the ExternalData_URL_TEMPLATES example, add an entry showing how to
use the "file://" protocol with a network filesystem path.
2013-11-12 11:26:28 -05:00
Brad King ff6818bc0a ExternalData: Format module documentation
Manually revise the .rst format of the documentation.  Use inline
literal quotes appropriately in paragraph text.  Move the :: literal
block openers to the end of the preceding paragraphs.  Convert the
command signature documentation and examples to cmake code-block
directives.
2013-11-12 11:22:07 -05:00
Brad King 177f5e51d2 Merge topic 'osx-no-PackageMaker'
7947981 CPack: Disable OS X PackageMaker by default (#13662)
2013-11-05 11:42:10 -05:00
Brad King 46316a0569 Merge topic 'FindPHP4-no-cache-output'
a06debc FindPHP4: Drop extra content from reported PHP4_INCLUDE_PATH (#14540)
2013-11-05 08:16:57 -05:00
Brad King d94416725e Merge topic 'FindJNI-biarch'
cde56c1 FindJNI: Support biarch installations (#14541)
2013-11-05 08:16:51 -05:00
Brad King 7ccb8fafdb Merge topic 'ninja-deps-intel'
d439083 Ninja: add depfile support for Intel's compiler
2013-11-05 08:16:42 -05:00
Modestas Vainius cde56c1223 FindJNI: Support biarch installations (#14541)
On biarch architecture, CMAKE_SYSTEM_PROCESSOR might be a 64bit one
while the system 32bit one. Take this into consideration while looking
for Java library directory.

Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718290
2013-11-04 08:55:02 -05:00
Brad King a06debcde9 FindPHP4: Drop extra content from reported PHP4_INCLUDE_PATH (#14540)
The set() call for this variable left out the CACHE keyword.  It does
not need to be cached anyway, so drop the other CACHE set() signature
arguments.

Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=722475
Reported-by: Modestas Vainius <modax@debian.org>
Inspired-by: Mathieu Malaterre <malat@debian.org>
2013-11-04 08:51:46 -05:00
Brad King f3698f7c4a Merge topic 'cpack-drag-n-drop-rez'
53d6ebb cpack: For DragNDrop generator, add sysroot option when calling Rez.
193029c cpack: For DragNDrop generator, add sysroot option when calling Rez.
2013-11-04 07:53:25 -05:00
Peter Kümmel d439083287 Ninja: add depfile support for Intel's compiler 2013-11-04 13:29:19 +01:00
Brad King 922876b0c0 Merge branch 'vs12-parallel-cl-FS' into release 2013-11-02 13:41:42 -04:00
Brad King 7947981c2b CPack: Disable OS X PackageMaker by default (#13662)
As mentioned in commit 4693cf84 (Xcode: Detect new default locations of
Xcode 4.3 bits and pieces) PackageMaker was split out of Xcode 4.3 and
above into a separate Auxiliary tools package.  Since Xcode 5.0 or so,
Apple no longer distributes PackageMaker as part of the available
development tools so it can only be obtained from old packages.

Disable the CPACK_BINARY_PACKAGEMAKER option by default as is the case
for most other tool-dependent generators.
2013-11-01 15:41:16 -04:00
Brad King f53878b0d5 FindBoost: Clarify example static libs option (#13663)
State explicitly in the example that it will only find static libraries.
2013-11-01 11:24:06 -04:00
Brad King a42a66547b FindBoost: Refine .rst formatting
Move the '::' starting literal blocks to the end of the preceding
paragraph.  Convert the "Boost CMake" divider to a section header.
2013-11-01 11:24:06 -04:00
Brad King e065decd43 Merge topic 'add-CMAKE_FIND_NO_INSTALL_PREFIX'
fe057ab Allow disabling adding the install prefix to the prefix search path.
2013-11-01 09:40:19 -04:00
Clinton Stimpson 53d6ebb360 cpack: For DragNDrop generator, add sysroot option when calling Rez. 2013-11-01 05:31:07 -06:00
Clinton Stimpson 193029c4aa cpack: For DragNDrop generator, add sysroot option when calling Rez.
Also adding overwrite option (-ov) in case multiple temporary
dmg files are being created.

Fixes bug #14536.
2013-10-31 20:25:12 -06:00
Stephen Kelly fe057ab3cd Allow disabling adding the install prefix to the prefix search path.
In certain scenarios, it is preferable to keep a 'dirty' install prefix
than to clear it, and to expect that content will not be found there.
Add a CMAKE_FIND_NO_INSTALL_PREFIX variable that can be set to disable
searching the install prefix.
2013-10-31 16:40:24 +01:00
Brad King afe6adfaba Merge topic 'external-language-compiler-id'
e65c788 CMakeDetermineCompilerId: Load src from CMAKE_MODULE_PATH (#14481)
2013-10-29 09:45:40 -04:00
Brad King fcbe435c23 Merge topic 'Qt-auto-generators'
9c87d9c Add automatic rcc invocation for Qt.
84218e1 Add automatic uic invocation for Qt.
94a0ca6 Record which files are skipped by automoc.
18fb758 Run the main executable created in the autogen tests.
e485ba1 Rename the QtAutomoc tests to QtAutogen.
7ce65c3 Add extra checks for the AUTOMOC target property.
32771fc Update output messages for generic use.
f371ab5 Rename RunAutomoc to RunAutogen.
85b3d6e Extract an SetupAutoMocTarget method.
ca124a1 Rename the AutomocInfo.cmake file to be more generic.
a342c9f Move some makefile definitions up away from moc-specific code.
98632ef Add the AUTOGEN_TARGETS_FOLDER and obsolete AUTOMOC_TARGETS_FOLDER.
63378ba Rename some variables to reflect broader scope.
97f1aa3 Rename method to reflect generic use.
4abb111 Rename local variable to reflect generic use.
03878c9 Move variable set to where it is used.
...
2013-10-28 15:23:09 -04:00
Dragos Carp e65c788767 CMakeDetermineCompilerId: Load src from CMAKE_MODULE_PATH (#14481)
Support new languages using CMAKE_MODULE_PATH.
2013-10-28 08:54:40 -04:00
Brad King 16df2456a4 Merge topic 'enable-language-require-compiler'
3e04946 Require CMAKE_<LANG>_COMPILER to be found as a full path
6007f7c CMakeDetermineCompilerId: Always use compiler detected from IDE
332771c CMakeDetermine*Compiler: Remove temporary cache entry
2013-10-28 08:39:29 -04:00
Brad King e378bc6441 Merge topic 'ninja-use-deps'
eeb4aec Ninja: use deps = gcc/msvc feature
2013-10-28 08:38:40 -04:00
Brad King 3e04946f7b Require CMAKE_<LANG>_COMPILER to be found as a full path
All generators now support detection of the full path to the compiler, so
require it to be so.  This will allow CMake<LANG>Information.cmake and
other logic to assume the full path to the compiler tool is available.

The Makefile generators already rejected CMAKE_<LANG>_COMPILER values
that did not name an existing compiler.  Extend this error message to
all generators, make it occur as early as possible, and improve the
message with advice about how to set the compiler.  If the full path to
the compiler is not known, finish enabling languages with a fatal error
so configuration does not continue.

For now, allow the RC language compiler to not be a full path.  Later we
will need to detect the full path to "rc" under the VS IDE.

Add a RunCMake.CompilerNotFound test to cover failure cases.
Fix the RunCMake.CompilerChange test EmptyCompiler case to work
when configuration does not continue past enable_language.
2013-10-28 08:36:14 -04:00
Brad King 6007f7ca01 CMakeDetermineCompilerId: Always use compiler detected from IDE
When compiler id detection also provides a CMAKE_<LANG>_COMPILER
value, use it unconditionally.  It is known to be the compiler
that is actually in use by IDE builds in VS and Xcode.  Do not
let a stray cache entry try to say otherwise.
2013-10-28 08:36:14 -04:00
Brad King ef13fc4dfc Merge topic 'ctest-p4'
970c823 ctest_update: Add support for Perforce p4 client
2013-10-26 10:29:28 -04:00
Brad King fc15fe75c5 Merge topic 'clang-binutils'
b84f5c2 Find appropriate binutils when cross-compiling with clang
2013-10-26 10:29:12 -04:00
Brad King 86a15dbd28 Merge topic 'QNX-ninja-generator'
02cf77f QNX: Don't attempt to create depfiles
2013-10-26 10:29:06 -04:00
Brad King d36d5d8ffe Merge topic 'python-interp-remove-debug-messages'
49c4699 python: remove debug statements from FindPythonInterp.cmake.
2013-10-26 10:28:44 -04:00
Brad King 2e9e28424c Merge topic 'intel-no-i_dynamic'
f61bcbc Intel: Drop deprecated -i_dynamic flag from Fortran (#14507)
2013-10-26 10:28:38 -04:00
Brad King 5f789db847 Merge topic 'FindCUDA-arm-5.5'
ef02c9e added support for arm cross compilation with CUDA 5.5:
2013-10-26 10:28:22 -04:00
Brad King dfe23300c2 Merge topic 'qt4-svg-dep'
656716d qt4: Fix linking with QtSvg to not include QtXml.
2013-10-26 10:28:15 -04:00
Pedro Navarro 970c82348b ctest_update: Add support for Perforce p4 client
Teach the ctest_update implementation to use the p4 command-line
client to perform updates and extract the list of changes.

Add a CTest.UpdateP4 test like those that exist already for the other
version control tools.  Make the test available when p4 and the p4d
server are found.  During the test launch p4d in the background to
serve a repository from the test directory.  Then direct the client
toward this server for the duration of the test.
2013-10-26 10:24:15 -04:00
Stephen Kelly b84f5c2ef1 Find appropriate binutils when cross-compiling with clang
One way to use clang as a cross-compiler is to create
a symlink named <target>-clang, which is equivalent to
running

 clang -target <target>

Extract the toolchain prefix to find the binutils executables.
2013-10-25 07:01:38 +02:00
Stephen Kelly 02cf77f712 QNX: Don't attempt to create depfiles
The qcc driver can not handle the flags. This makes it possible to use
qcc with the Ninja generator.
2013-10-25 07:00:38 +02:00
Peter Kümmel eeb4aece1c Ninja: use deps = gcc/msvc feature
cmcldeps is now only used for .rc file processing
2013-10-24 19:48:18 +02:00
Brad King 332771c942 CMakeDetermine*Compiler: Remove temporary cache entry
When the user or toolchain file sets CMAKE_<LANG>_COMPILER to a name
without a path we use find_program with CMAKE_<LANG>_COMPILER_WITH_PATH
to search for the tool.  Remove the temporary cache entry afterward to
avoid exposing it to projects.  It is not set by other logic paths so no
one should be using it.
2013-10-24 11:34:07 -04:00
Clinton Stimpson 49c4699d30 python: remove debug statements from FindPythonInterp.cmake. 2013-10-24 08:16:50 -06:00
Brad King f61bcbce1a Intel: Drop deprecated -i_dynamic flag from Fortran (#14507)
The -i_dynamic flag is deprecated and not even listed in the manual for
Intel Composer XE 2013.

Reported-by: Izaak Beekman <zbeekman@gmail.com>
2013-10-24 09:29:43 -04:00
Matt McCormick 0767474070 FindLATEX: Find ps2pdf with MikTeX. 2013-10-24 12:06:31 +00:00
Stephen Kelly 9c87d9cc3e Add automatic rcc invocation for Qt.
This replaces the need to invoke qt4_add_resources by allowing
adding the source .qrc file directly to the target sources.
2013-10-24 12:30:41 +02:00
Stephen Kelly 84218e1870 Add automatic uic invocation for Qt.
The source files are already processed by cmQtAutomoc to look for
moc includes, so extend that to also look for ui_ includes and
find corresponding .ui files to process.

This replaces the need to invoke qt4_wrap_ui().

As the ui files are not likely to be part of the SOURCES of the
target, store the options associated with them separately in the
cmMakefile for querying during the autogen run.
2013-10-24 12:30:38 +02:00
Stephen Kelly 94a0ca604c Record which files are skipped by automoc.
They may not be skipped by autouic.
2013-10-24 11:50:58 +02:00
Stephen Kelly ca124a1515 Rename the AutomocInfo.cmake file to be more generic. 2013-10-24 11:50:57 +02:00
Vladislav Vinogradov ef02c9e449 added support for arm cross compilation with CUDA 5.5:
* added CUDA_TOOLKIT_TARGET_DIR CMake variable that used
  to locate headers and libraries for target platform

* added CUDA_TARGET_CPU_ARCH which is set to ARM for
  arm cross-compilation and is used to add
  --target-cpu-architecture NVCC flag
2013-10-24 10:04:21 +04:00
Clinton Stimpson 656716d794 qt4: Fix linking with QtSvg to not include QtXml.
Fixes issue #14505.
2013-10-23 07:04:02 -06:00
Brad King 7d47c69365 Drop compatibility with CMake < 2.4
Drop all behavior activated by setting CMAKE_BACKWARDS_COMPATIBILITY to
a value lower than 2.4, and generate an error when projects or the user
attempt to do so.  In the error suggest using a CMake 2.8.x release.

Teach cmake_minimum_required to warn about projects that do not require
at least CMake 2.4.  They are not supported by CMake >= 3.0.

Replace the documentation of CMAKE_BACKWARDS_COMPATIBILITY with a
reference to policy CMP0001.
2013-10-23 08:54:31 -04:00
Brad King e48faced66 Merge topic 'FindJava-msg'
c832299 FindJava: fix message output (#14502)
2013-10-23 08:20:22 -04:00
Brad King 7938e589e3 Merge topic 'vs-graceful-empty-compiler'
705ae00 Quote ${CMAKE_<LANG>_COMPILER} while enabling a language
18a2537 CMakeDetermineCompilerId: Do not test vendor without a compiler
2013-10-23 08:20:08 -04:00
Brad King a8cfc21843 Merge topic 'doc-cmake-developer'
e0ce6f0 cmRST: Cross-reference cmake-developer.7 manual and cmRST Doxygen
c1c239b Help: Add documentation format to cmake-developer.7 manual
a06a90f Help: Organize cmake-developer.7 manual Modules section
28f08ba Help: Fix module documentation markup in cmake-developer.7 manual
baaab06 Help: Move Modules/readme.txt content into cmake-developer.7 manual
80a311e Help: Add cmake-developer.7 manual
2013-10-23 08:20:01 -04:00
Rolf Eike Beer c832299e90 FindJava: fix message output (#14502) 2013-10-22 20:51:32 +02:00
Brad King 705ae00491 Quote ${CMAKE_<LANG>_COMPILER} while enabling a language
Even though this variable gets set to CMAKE_<LANG>_COMPILER-NOTFOUND when
the compiler is not found, CMake<LANG>Compiler.cmake gets removed by
cmGlobalGenerator::EnableLanguage so in try compiles the value is empty.
Quote references to the variable in

 Modules/CMake(C|CXX|Fortran)Information.cmake
 Modules/CMakeDetermineCompilerId.cmake

to avoid dropping arguments from commands that expect them.
2013-10-22 14:09:37 -04:00
Brad King 18a253732d CMakeDetermineCompilerId: Do not test vendor without a compiler
If no CMAKE_${lang}_COMPILER is available then do not try to run
it to determine the compiler vendor.
2013-10-22 13:59:56 -04:00
Brad King a06a90f457 Help: Organize cmake-developer.7 manual Modules section
Add "Module Documentation" and "Find Modules" subsections.  Add to
Modules/readme.txt a textual reference to the cmake-developer.7 manual
and, while at it, fix the wiki URL domain.
2013-10-22 10:10:15 -04:00
Kitware Robot baaab068f2 Help: Move Modules/readme.txt content into cmake-developer.7 manual
Move all content from Modules/readme.txt except for the link to the
module maintainers wiki page into "Help/manual/cmake-developer.7.rst".
This produces some invalid reStructuredText markup to be fixed in a
future commit.
2013-10-22 09:51:51 -04:00
Daniele E. Domenichelli 07a2342fbc CheckTypeSize: Add support for C++
Previously if headers required to check the size of a type can be
compiled with C++ compiler only, the check would fail because the C
compiler fails.  As a consequence, HAVE_${VARIABLE} would be set to
false, and ${VARIABLE} will be empty.

Teach CHECK_TYPE_SIZE to accept a new optional argument LANGUAGE
that allows one to explicitly set the compiler to use.  The new
signature is therefore:

   CHECK_TYPE_SIZE(TYPE VARIABLE [BUILTIN_TYPES_ONLY]
                                 [LANGUAGE <language>])
2013-10-21 16:39:04 +02:00
Brad King 8fa1ceb136 Merge topic 'vs12-parallel-cl-FS'
216afc8 MSVC: Add /FS flag for cl >= 18 to allow parallel compilation (#14492)
2013-10-21 09:02:09 -04:00
Brad King f040840f9b Merge topic 'vs-intel-compiler'
1b7117a VS 6: Do not try Intel Fortran .vfproj file with msdev
2013-10-20 07:37:38 -04:00
Brad King 1b7117a824 VS 6: Do not try Intel Fortran .vfproj file with msdev
Teach CMakeDetermineCompilerId to skip trying to build a .vfproj
file for Intel Fortran under Visual Studio 6.  The msdev command-line
build produces a popup error dialog that hangs the configuration.
2013-10-19 06:37:22 -04:00
Brad King 216afc8a81 MSVC: Add /FS flag for cl >= 18 to allow parallel compilation (#14492)
In generators such as Ninja that can run multiple "cl" processes that
refer to the same compiler .pdb file (/Fd) at the same time, MSVC from
Visual Studio 2013 complains:

 fatal error C1041: cannot open program database '.../vc120.pdb';
 if multiple CL.EXE write to the same .PDB file, please use /FS

According to "cl /?":

 /FS force to use MSPDBSRV.EXE

Add the flag to compilation lines for this compiler version just after the
/Fd option.
2013-10-18 10:28:28 -04:00
Brad King f6cc3b0744 Merge topic 'vs-intel-compiler'
d14898b Intel: Fix detection of MSVC version simulated by pre-11.0 Fortran
a85e17e Intel: When simulating MSVC, re-use Windows-MSVC (#14476)
af40e8c VS: Detect Intel Fortran compiler id and version
b8522a8 VS: Expose Intel Fortran .vfproj format version to CMake language
2d36c9a CMakeDetermineCompilerId: Fix Intel Fortran compiler id detection
a6fd17c VS: Fix CMAKE_<LANG>_COMPILER detection with Intel toolset (#14471)
2013-10-18 10:01:58 -04:00
Brad King d14898b6dc Intel: Fix detection of MSVC version simulated by pre-11.0 Fortran
The Intel Fortran 10 64-bit compiler incorrectly defines _MSC_VER to its
own version (1020) instead of the underlying MSVC tools version.  Since
we expect the compiler to be used only with VS >= 7 tools, assume MSVC
version 13.0 if _MSC_VER is not greater than 1300.
2013-10-18 09:55:59 -04:00
Brad King a85e17e660 Intel: When simulating MSVC, re-use Windows-MSVC (#14476)
Teach CMake(C|CXX|Fortran)CompilerId* to report the MSVC version
simulated by the Intel compiler, if any.  Refactor the Windows-Intel
platform information helper module to load Windows-MSVC instead of
duplicating the information.  Teach Windows-MSVC to understand when
it is loaded as the simulated Fortran compiler (its preprocessor is
simulated).
2013-10-18 09:55:59 -04:00
Brad King af40e8c312 VS: Detect Intel Fortran compiler id and version
Teach CMakeDetermineCompilerId to use a .vfproj project file to
build the Fortran compiler id source file under the Visual Studio
generators.
2013-10-18 09:55:59 -04:00
Brad King fa8fc51aec Merge topic 'wix-documentation-escapes'
42b4f6c CPackWiX: prevent attribute references in docs from being interpreted
2013-10-17 08:57:41 -04:00
Nils Gladitz 42b4f6cbcf CPackWiX: prevent attribute references in docs from being interpreted 2013-10-16 22:20:10 +02:00
Rolf Eike Beer 51305f52f0 Qt4: make pro files generated for translations easier to read
-use one line for each input file and include directory
-remove duplicate include directories
2013-10-16 20:08:33 +02:00
Vadim Zhukov c6f339ceb8 Add FindBacktrace.cmake module.
It designed to search for implementation of backtrace(3) routine.
Currently it is used in OpenBSD Ports for building Clementine
music player.

A lot of input from brad.king@ and neundorf@.
2013-10-16 10:53:01 -04:00
Brad King 2d36c9ab60 CMakeDetermineCompilerId: Fix Intel Fortran compiler id detection
The Intel Fortran compiler needs the /fpp option to enable C
preprocessing.  Without the option the compiler may warn and ignore
preprocessor lines instead of failing with an error.  Detect the
warning and treat it as failure so that we move on to try /fpp and
detect the correct id.  Without this it works only by luck because
Intel is the first compiler id in our detection source file.
2013-10-16 10:37:48 -04:00
Brad King a6fd17ce50 VS: Fix CMAKE_<LANG>_COMPILER detection with Intel toolset (#14471)
When the platform toolset is from Intel, look for "icl.exe" instead of
"cl.exe".
2013-10-16 10:37:48 -04:00
Brad King 7038a93a7e Modules/readme.txt: Update steps to add module documentation
Replace the old module documentation instructions with steps to add
reStructuredText documentation that will be built by Sphinx.
2013-10-16 09:22:39 -04:00
Kitware Robot a77e308693 CPack: Replace #<type> markup with reStructuredText equivalent
Drop #end and #module.  Convert #section to a subsection header.
Convert #variable to the cmake domain "variable" directive.
Convert #macro to the cmake domain "command" directive.
Perform minor formatting fixes in text near these changes.
2013-10-16 09:22:39 -04:00
Brad King 441f2808ec Help: Fix reStructuredText syntax in auto-generated documents 2013-10-15 14:12:49 -04:00
Brad King c717e2aa8b ExternalProject: Restore documentation indentation level
This module parses its own documentation to extract supported options.
Fix the indentation level to match that expected by the parser.
2013-10-15 14:12:48 -04:00
Kitware Robot f051814ed0 Convert builtin help to reStructuredText source files
Run the convert-help.bash script to convert documentation:

 ./convert-help.bash "/path/to/CMake-build/bin"

Then remove it.
2013-10-15 14:12:03 -04:00
Brad King 69fd12583c Merge topic 'wix-extra-sources'
2e6cadd CPackWiX: allow user supplied extra sources, objects and libraries
2013-10-15 09:33:22 -04:00
Brad King 21ccad58fd Merge topic 'FindCUDA-NPP-5.5'
5076218 FindCUDA: Fix NPP library search for CUDA 5.5
2013-10-15 09:32:56 -04:00
Nils Gladitz 2e6cadde13 CPackWiX: allow user supplied extra sources, objects and libraries 2013-10-13 13:16:54 +02:00
Vladislav Vinogradov 50762188e1 FindCUDA: Fix NPP library search for CUDA 5.5
In CUDA 5.5 NPP was divided onto 3 separate libraries: nppc, npps, nppi.
2013-10-11 08:41:45 -04:00
Brad King 2e13c36211 OS X: Encode -F framework search flag in per-language platform variable
Compilers for languages other than C and C++ on OS X may not understand
the -F framework search flag.  Create a new platform information
variable CMAKE_<LANG>_FRAMEWORK_SEARCH_FLAG to hold the flag, and set it
for C and CXX lanugages in the Platform/Darwin module.

Reported-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-10-10 08:33:25 -04:00
Brad King be9d289fce Merge topic 'deprecation-message'
f973737 GenerateExportHeader: Port to use message(DEPRECATION)
f69606d Qt4Macros: Port to use message(DEPRECATION)
509c142 message: Add a DEPRECATION mode
2013-10-09 10:24:16 -04:00
Brad King f33068f615 Merge topic 'blas-windows'
192a918 FindLAPACK: MKL clean up and fix for windows
46c7bca FindBLAS: Fixes for Windows MKL support
2013-10-09 10:23:57 -04:00
Brad King e5f17214a5 Merge topic 'FindGTK2-targets'
7efef02 FindGTK2: Add tests for components and targets in gtk and gtkmm modules
95fc47a FindGTK2: Make pangocairo and cairo optional dependencies
26f790f FindGTK2: Change extra includes -> optional
24e0272 FindGTK2: do not skip target creation if optional dependencies are not found
d5f130c FindGTK2: Refactor _GTK2_ADJUST_LIB_VARS into _GTK2_ADD_TARGET
fffbd72 FindGTK2: Do not add freetype includes if they are not found
b69720d FindGTK2: Add libraries to the GTK2_LIBRARIES variable only when found
425ec40 FindGTK2: Do not link libfreetype
e9f46df FindGTK2: Add config directories only if different from include ones
56a79e1 FindGTK2: Set INTERFACE_COMPILE_DEFINITIONS target property only if not empty
4b47586 FindGTK2: Add check to ensure that target exists
61242cc FindGTK2: Fix gmodule, glibmm, pangoft2, and pangoxft targets
4b876de FindGTK2: Link freetype libs to targets including freetype includes
67e761f FindGTK2: Small cleanup
682eea3 FindGTK2: Do not require the GTK_ prefix in all the internal functions
0bc3763 FindGTK2: Better handling of include directories
...
2013-10-09 10:23:31 -04:00
Brad King 1c1a904328 Merge topic 'FindSDL-path-suffixes'
c5c217c FindSDL: Add path suffixes for <prefix>/include/(SDL|SDL12|SDL11)
2013-10-09 10:23:23 -04:00
Brad King e81b6742f7 Merge topic 'haiku-updates'
54ef2be Haiku: Include files cleanup in cmCTest
38d5555 Haiku: Remove outdated preprocessor checks
1dc61f8 Haiku: Remove use of B_COMMON_DIRECTORY
7ebc1cb Haiku: Several fixes to platform module
2013-10-09 10:23:04 -04:00
Brad King 12a7e2b10c Merge topic 'apple-clang-id'
1763c31 Set policy CMP0025 to NEW while building CMake itself
aa53ee5 Add policy CMP0025 for Apple Clang compiler id compatibility
ab65862 Clang: Add separate "AppleClang" compiler id
2013-10-09 10:21:28 -04:00
Stephen Kelly f973737305 GenerateExportHeader: Port to use message(DEPRECATION) 2013-10-08 18:23:42 +02:00
Stephen Kelly f69606d335 Qt4Macros: Port to use message(DEPRECATION) 2013-10-08 18:23:42 +02:00
Leszek Swirski 192a9182f8 FindLAPACK: MKL clean up and fix for windows 2013-10-08 16:07:43 +01:00
Brad King 5a6c15155c Merge topic 'clang-cl-compiler'
3d8356d Clang: Support Windows variants for GNU and MSVC (#13035, #14458)
51ab85c CMakeDetermineCompilerId: Add notion of "simulated" id/version
be10826 CMakeDetermineCompilerId: Fix local var init
2013-10-08 10:58:56 -04:00
Brad King 5c57fdedb1 Merge topic 'FindGTK2-quiet'
1bbc766 FindGTK2: Search for modules quietly when needed
d9eb277 FindGTK2: Find freetype quietly
675a4d3 FindGTK2: Mark GTK_*_INCLUDE_DIR as advanced
2013-10-08 10:58:30 -04:00
Daniele E. Domenichelli 95fc47aa49 FindGTK2: Make pangocairo and cairo optional dependencies 2013-10-08 10:47:06 -04:00
Daniele E. Domenichelli 26f790f0b6 FindGTK2: Change extra includes -> optional
On some versions they are not required.
2013-10-08 10:46:27 -04:00
Daniele E. Domenichelli 24e0272b23 FindGTK2: do not skip target creation if optional dependencies are not found
On some older GTK2 version gio, giomm and cairomm are not available
2013-10-08 10:30:13 -04:00
Daniele E. Domenichelli d5f130cdf6 FindGTK2: Refactor _GTK2_ADJUST_LIB_VARS into _GTK2_ADD_TARGET
This function avoids creating the targets when the required
dependencies were not found.
Also fix some wrong dependency and some typo.

${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2} are
now required for gtkmm component
2013-10-08 10:30:13 -04:00
Daniele E. Domenichelli fffbd7252d FindGTK2: Do not add freetype includes if they are not found
On some older system they are not required
2013-10-08 10:30:13 -04:00
Daniele E. Domenichelli b69720d9ad FindGTK2: Add libraries to the GTK2_LIBRARIES variable only when found
Some libraries (e.g. gio) are not necessary, and often not available
with older GTK2 versions, therefore GTK_LIBRARIES should not contain
GTK2_XXX-NOT_FOUND for these libraries.
2013-10-08 10:30:12 -04:00
Daniele E. Domenichelli 425ec4080d FindGTK2: Do not link libfreetype
As discussed on the mailing list, freetype includes used in GTK2
headers libraries do not require to link the library explicitly (even
though it is already linked by GTK2 libraries.

Also remove _GTK2_ADD_TARGET_LIBRARIES no longer used and use
${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
variables instead of ${FREETYPE_INCLUDE_DIRS}
2013-10-08 10:30:12 -04:00
Daniele E. Domenichelli e9f46dfeb2 FindGTK2: Add config directories only if different from include ones 2013-10-08 10:30:12 -04:00
Daniele E. Domenichelli 56a79e1f8c FindGTK2: Set INTERFACE_COMPILE_DEFINITIONS target property only if not empty 2013-10-08 10:30:12 -04:00
Daniele E. Domenichelli 4b47586a08 FindGTK2: Add check to ensure that target exists 2013-10-08 10:30:12 -04:00
Daniele E. Domenichelli 61242ccc8f FindGTK2: Fix gmodule, glibmm, pangoft2, and pangoxft targets 2013-10-08 10:30:12 -04:00
Daniele E. Domenichelli 4b876de974 FindGTK2: Link freetype libs to targets including freetype includes 2013-10-08 10:30:11 -04:00
Brad King c5c217c6b5 FindSDL: Add path suffixes for <prefix>/include/(SDL|SDL12|SDL11)
Also add a comment explaining the purpose of the include/SDL* path
suffixes.  As explained in commit 7cb51739 (FindSDL: Restore
accidentally dropped search paths (#13651), 2012-11-05) the include/SDL*
path suffixes are for looking in the ENV{SDLDIR} location.

Inspired-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2013-10-08 10:09:17 -04:00
Leszek Swirski 46c7bcaf96 FindBLAS: Fixes for Windows MKL support 2013-10-08 15:00:12 +01:00
Adrien Destugues 7ebc1cb2ff Haiku: Several fixes to platform module
* Do not define BEOS anymore (this includes workarounds which we don't
  need most of the time in Haiku, so we prefer opt-in IF(HAIKU) in the
  cmake files instead).
* On the other hand, do define UNIX (we are trying to be compliant) and
  HAIKU (there is still a number of things we don't do like the
  average UNIX clone)
* Do not use UnixPaths, as our filesystem hierarchy isn't anything like
  what it expects.
* Do not use -nostart, which the compiler doesn't know about anymore.
  This used to be an Haiku extension to gcc, and is equivalent to
  -shared which is the default gcc option.
* While "dl" functions are provided in libroot, this is always
  implicitly linked so there is no need to tell cmake about it.
* Forcing position-independent code is not needed, so remove it.
* On the other hand, include appropriate linker options for executables
  and shared libraries.
* Support for the two available compilers in Haiku (gcc2 and gcc4) and
  pick the right headers and libraries according to the currently
  selected one.
* With the adoption of the package manager, the directory layout was
  changed. Tell cmake where to look for header files and libraries.
* As we don't define BEOS anymore, enable the workaround we still need
  for HAIKU as well. This is the lack of a libm (it is part of the
  implicitly linked in libroot)

Applied-by: Rolf Eike Beer <eike@sf-mail.de>
2013-10-08 09:54:46 -04:00
Brad King 4340507207 Merge topic 'CheckStructHasMember_CXX'
73d28d2 CheckStructHasMember: Add support for C++
2013-10-08 09:53:37 -04:00
Brad King b7a865c5fe Merge topic 'cxx-flags'
455bad1 Check*CompilerFlag: Add SunStudio 12 regex
6f3ebfe Check*CompilerFlag: make C and CXX modules share most error patterns (#14339)
2013-10-08 09:53:31 -04:00
Daniele E. Domenichelli 73d28d2177 CheckStructHasMember: Add support for C++
Previously if headers required to check if a struct has a member can be
compiled with C++ compiler only, the check would fail because the C
compiler fails.  As a consequence, the result variable would be set to
false, even if the struct has that particular member.

Teach CHECK_STRUCT_HAS_MEMBER to accept a new optional argument LANGUAGE
that allows one to explicitly set the compiler to use.  The new
signature is therefore:

  CHECK_STRUCT_HAS_MEMBER (<struct> <member> <header> <variable>
                           [LANGUAGE <language>])
2013-10-08 09:43:06 -04:00
William Orr 455bad19f6 Check*CompilerFlag: Add SunStudio 12 regex
Applied-by: Rolf Eike Beer <eike@sf-mail.de>
2013-10-08 09:23:01 -04:00
Daniele E. Domenichelli 67e761fabc FindGTK2: Small cleanup 2013-10-07 20:19:30 -04:00
Daniele E. Domenichelli 682eea3909 FindGTK2: Do not require the GTK_ prefix in all the internal functions
This saves from using string(REGEXP) to create targets
2013-10-07 20:19:29 -04:00
Daniele E. Domenichelli 0bc3763c9e FindGTK2: Better handling of include directories
Add a method _GTK2_ADD_TARGET_INCLUDE_DIRS to handle it.
2013-10-07 20:19:29 -04:00
Daniele E. Domenichelli 9905abd150 FindGTK2: Create targets for each library
Methods:
 * _GTK2_ADJUST_LIB_VARS
 * _GTK2_ADD_TARGET_DEPENDS_INTERNAL
 * _GTK2_ADD_TARGET_DEPENDS
are strongly inspired by FindQt4.cmake
2013-10-07 20:19:29 -04:00
Daniele E. Domenichelli 7af8ad89af FindGTK2: Search for glib-object.h instead of gobject/gobject.h
This is the topmost include file for GObject header files
2013-10-07 20:19:29 -04:00
Daniele E. Domenichelli fab6c2deb0 FindGTK2: Populate GTK2_DEFINITIONS before searching for libraries 2013-10-07 20:19:29 -04:00
Daniele E. Domenichelli 8d7b070410 FindGTK2: Export GTK2_XXX_FOUND to parent scope in _GTK2_FIND_LIBRARY
Also add a debug message to report if the library was found or not
2013-10-07 20:19:29 -04:00
Daniele E. Domenichelli 1bbc7662ea FindGTK2: Search for modules quietly when needed 2013-10-07 20:18:06 -04:00
Daniele E. Domenichelli d9eb277631 FindGTK2: Find freetype quietly 2013-10-07 20:18:06 -04:00
Daniele E. Domenichelli 675a4d3897 FindGTK2: Mark GTK_*_INCLUDE_DIR as advanced 2013-10-07 20:18:01 -04:00
Brad King ab65862417 Clang: Add separate "AppleClang" compiler id
Apple distributes their own Clang build with their own version numbers
that differ from upstream Clang.  Use the __apple_build_version__ symbol
to identify the Apple Clang compiler and report the Apple Build Version
as the fourth version component in CMAKE_<LANG>_COMPILER_VERSION.  Add
Compiler/AppleClang-<lang> and Platform/Darwin-AppleClang-<lang> modules
that simply include the upstream equivalents.

Fix comparisons of CMAKE_<LANG>_COMPILER_ID to Clang in CMake's own
source and tests to account for AppleClang.
2013-10-07 20:12:46 -04:00
Brad King fcfd409ad1 Merge topic 'UseJava-jar-manifest'
69aff17 UseJava: Add support for the jar 'm' (Manifest) option
2013-10-07 15:44:43 -04:00
Brad King c76b380181 Merge topic 'deprecation-macro-refactor'
cdf55d5 GEH: Make each element of the deprecation macros overridable.
80d5090 GEH: Use the macro for the deprecation attribute after definiting it.
2013-10-07 15:44:39 -04:00
Brad King da0f373885 Merge topic 'EclipseFixWarningMessage'
5f11b8d Eclipse: add version 4.3 for completeness
2b63734 Eclipse: print different message if CMAKE_ECLIPSE_VERSION is already set
1ff8c21 CMakeFindEclipse: use lowercase for macro calls
2013-10-07 15:44:14 -04:00
Brad King 44e5118ede Merge topic 'openssl-advanced'
864e2a3 FindOpenSSL: mark variables as advanced for MSVC (#14418)
2013-10-07 15:43:46 -04:00
Brad King 0b7a2034a3 Merge topic 'FixTypoInGraphvizDocs'
bbb0d6f CMakeGraphVizOptions.cmake: Fix typo in documentation
2013-10-07 15:43:15 -04:00
Brad King 7069680bad Merge topic 'FindwxWidgets-msvc-x64'
870f91e FindwxWidgets: Look in x64 directories for MSVC (#14393)
2013-10-07 15:42:59 -04:00
Brad King ea574d98ed Merge topic 'vs-compiler-id-tolerate-diagnostics'
8c891f8 VS: Tolerate diagnostic output while detecting cl (#14387)
2013-10-07 15:42:51 -04:00
Brad King e0c7ccb1b3 Merge topic 'deprecate-add_compiler_export_flags'
0f3a666 GenerateExportHeader: Deprecate add_compiler_export_flags function.
2013-10-07 15:42:41 -04:00
Brad King 1c49ecad36 Merge topic 'FindPython_versions'
afd4f7f FindPython*: simplify version selection
2013-10-07 15:42:35 -04:00
Brad King 73170c38d7 Merge topic 'FindLua'
89cfa20 Modules: add FindLua.cmake
2013-10-07 15:42:27 -04:00
Brad King d97fa4b4da Merge topic 'add-find_dependency-macro'
bb501a2 CMakePackageConfigHelpers: Add a find_dependency macro
2013-10-07 15:42:22 -04:00
Brad King 610234a5e8 Merge topic 'FortranCInterface-cross-compile'
d7a65a2 FortranCInterface: Fix cross-compiling Linux to MinGW (#14358)
2013-10-07 15:41:19 -04:00
Brad King 3d8356d486 Clang: Support Windows variants for GNU and MSVC (#13035, #14458)
Teach the compiler identification preprocessor tests to report when
Clang simulates MSVC, and what version.  If not MSVC, assume GNU.

Teach compiler information modules Clang-(C|CXX) to recognize when Clang
simulates MSVC and skip loading the GNU information.

Teach the Windows-MSVC platform information to recognize when it is
loaded as the simulated compiler and use that version information
instead of the real compiler's (different) version scheme.

Add platform modules Windows-Clang-(C|CXX) and support module
Windows-Clang to load either Windows-MSVC or Windows-GNU and wrap
the corresponding information macros.
2013-10-04 13:39:22 -04:00
Brad King 51ab85c398 CMakeDetermineCompilerId: Add notion of "simulated" id/version
Some compilers try to simulate other compilers as a drop-in replacement
supporting all the same command-line options and predefined preprocessor
macros.  In such cases it will be useful to have CMake load the compiler
information files for the simulated compiler instead of duplicating the
information.  Teach CMakeDetermineCompilerId to extract the simulated
compiler id and version when the compiler id detection provides it.
2013-10-04 13:25:06 -04:00
Brad King be10826bf1 CMakeDetermineCompilerId: Fix local var init
Add initialization of the ARCHITECTURE_ID local and fix the
initialization of the COMPILER_ID_TWICE local.
2013-10-04 10:33:16 -04:00
Brad King 1fce189e53 OS X: Search system SDKs for frameworks
In Modules/Platform/Darwin.cmake set CMAKE_SYSTEM_FRAMEWORK_PATH to
include framework directories from inside the system SDK corresponding
to CMAKE_OSX_SYSROOT.

Suggested-by: Sean McBride <sean@rogue-research.com>
2013-09-27 10:18:46 -04:00
Brad King 71c0eb9cd8 Merge topic 'wince-archfam'
0b15ffc MSVC: Fix WinCE arch family preprocessor symbol (#14436)
2013-09-26 08:51:36 -04:00
Patrick Gansterer 8bb3b3d344 VS: Use version-specific subsystem for WinCE compiler id (#14440)
The subsystem must be set to WINDWOSCE for some SDKs to link an
executable. Set it to 9 for VS2005 and to 8 for VS2008, since the
value differs between the different Visual Studio versions.
2013-09-25 08:29:03 -04:00
Patrick Gansterer 0b15ffc73b MSVC: Fix WinCE arch family preprocessor symbol (#14436)
In commit bd827f98 (Use COFF file header header for architecture
detection, 2013-08-05) the MSVC_<lang>_ARCHITECTURE_ID value computed by
CMakeDetermineCompilerId.cmake changed for WinCE architectures to be the
exact architecture read from the PE header.  Fix platform preprocessor
definitions in Modules/Platform/Windows-MSVC.cmake to correspond to the
architecture family (ARM or SHx) instead of the specific architecture.
2013-09-25 05:20:22 +02:00
Patrick Gansterer e63cf5f099 MSVC: Fix version test for linking corelibc on Windows CE (#14420)
In commit 8fcf0ab0 (Add support for new Windows CE compiler, 2013-08-04)
we made corelibc conditional on the MSVC version, but the version value
was incorrect.  Update it to use corelibc for VS 2008 and below.
2013-09-23 17:11:47 -04:00
Simon Levermann 69aff17d38 UseJava: Add support for the jar 'm' (Manifest) option 2013-09-23 14:54:33 +02:00
Stephen Kelly cdf55d5cb4 GEH: Make each element of the deprecation macros overridable.
This way, we can override only FOO_DEPRECATED to silence deprecation
for a library.
2013-09-23 08:04:16 +02:00
Stephen Kelly 80d5090a2c GEH: Use the macro for the deprecation attribute after definiting it.
This way, it is more-easily overridden.
2013-09-23 08:04:13 +02:00
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