Commit Graph

4832 Commits

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