Commit Graph

22339 Commits

Author SHA1 Message Date
Stephen Kelly 98632effeb Add the AUTOGEN_TARGETS_FOLDER and obsolete AUTOMOC_TARGETS_FOLDER. 2013-10-24 11:50:47 +02:00
Stephen Kelly 63378baa1c Rename some variables to reflect broader scope. 2013-10-24 09:14:13 +02:00
Stephen Kelly 97f1aa39da Rename method to reflect generic use. 2013-10-24 09:14:13 +02:00
Stephen Kelly 4abb111584 Rename local variable to reflect generic use. 2013-10-24 09:14:13 +02:00
Stephen Kelly 03878c9a22 Move variable set to where it is used. 2013-10-24 09:14:13 +02:00
Stephen Kelly be23dcfeb1 Rename the cmake_automoc command to cmake_autogen.
There is no need for a "cmake_automoc" backward compatibility command
because it is internal, undocumented, and only executed from a matching
version of cmake.
2013-10-24 09:14:13 +02:00
Stephen Kelly 52d5d4e915 Rename the cmQtAutoGenerator instances to reflect coming features. 2013-10-24 09:14:12 +02:00
Stephen Kelly 5c058c8f12 Rename the cmQtAutomoc class to cmQtAutoGenerators.
It will be extended to process .ui and .qrc files too.
2013-10-24 09:14:12 +02:00
Stephen Kelly ff6c401309 cmTarget: Add interface for compatible numeric properties
When using the boost MPL library, one can set a define to increase
the limit of how many variadic elements should be supported. The
default for BOOST_MPL_LIMIT_VECTOR_SIZE is 20:

 http://www.boost.org/doc/libs/1_36_0/libs/mpl/doc/refmanual/limit-vector-size.html

If the foo library requires that to be set to 30, and the independent
bar library requires it to be set to 40, consumers of both need to set
it to 40.

 add_library(foo INTERFACE)
 set_property(TARGET foo PROPERTY INTERFACE_boost_mpl_vector_size 30)
 set_property(TARGET foo PROPERTY COMPATIBLE_INTERFACE_NUMBER_MAX boost_mpl_vector_size)
 target_compile_definitions(foo INTERFACE BOOST_MPL_LIMIT_VECTOR_SIZE=$<TARGET_PROPERTY:boost_mpl_vector_size>)

 add_library(bar INTERFACE)
 set_property(TARGET bar PROPERTY INTERFACE_boost_mpl_vector_size 40)
 # Technically the next two lines are redundant, but as foo and bar are
 # independent, they both set these interfaces.
 set_property(TARGET bar PROPERTY COMPATIBLE_INTERFACE_NUMBER_MAX boost_mpl_vector_size)
 target_compile_definitions(bar INTERFACE BOOST_MPL_LIMIT_VECTOR_SIZE=$<TARGET_PROPERTY:boost_mpl_vector_size>)

 add_executable(user)
 target_link_libraries(user foo bar)

Because the TARGET_PROPERTY reads the boost_mpl_vector_size property
from the HEAD of the dependency graph (the user target), and because
that property appears in the COMPATIBLE_INTERFACE_NUMBER_MAX of
the dependencies of the user target, the maximum value for it is
chosen for the compile definition, ie, 40.

There are also use-cases for choosing the minimum value of a number.
In Qt, deprecated API can be disabled by version. Setting the
definition QT_DISABLE_DEPRECATED_BEFORE=0 disables no deprecated
API. Setting it to 0x501000 disables API which was deprecated before
Qt 5.1 etc.

If two dependencies require the use of API which was deprecated in
different Qt versions, then COMPATIBLE_INTERFACE_NUMBER_MIN can be
used to ensure that both can compile.
2013-10-24 08:42:05 +02:00
Stephen Kelly e4e20c1d19 cmTarget: Add enumeration for consistency to expect from properties.
The type of consistency to be expected will be extended to cover
numeric minimum and maximum.
2013-10-24 08:42:04 +02:00
Stephen Kelly 98777694b9 cmTarget: Assign consistent content back to the property being evaluated.
Currently, 'consistent' means the same or not set. Soon though,
it will be possible to choose a minimum number from an interface
for example.
2013-10-24 08:42:04 +02:00
Stephen Kelly 816b4a8a18 cmTarget: Make consistentProperty return consistent content.
Upcoming features will make use of that.
2013-10-24 08:42:04 +02:00
Stephen Kelly 030800a78a cmTarget: Add a template to create correct implied content.
Otherwise, in the string case, we would get a null pointer instead
of the implied empty string. That will become relevant when the
comparison result is used.
2013-10-24 08:42:04 +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
Kitware Robot a25c440f19 CMake Nightly Date Stamp 2013-10-24 00:01:08 -04:00
Stephen Kelly f3f49ff7a9 Docs: Fix typo
opitions -> options.
2013-10-23 23:41:00 +02:00
Brad King 2945814de2 cmRST: Teach cmake-module directive to scan bracket comments
When scanning CMake module files for .rst comments, recognize
bracket comments starting in ".rst:" too.  For example:

 #[[.rst:

Include the bracket comment content terminated by the closing bracket.
Exclude the line containing the bracket if it starts in "#".

Teach the CMakeLib.testRST test to cover multiple bracket lengths
and ending brackets on lines with and without "#".

Update the cmake-developer.7 manual to document the bracket-comment
syntax for .rst documentation.
2013-10-23 09:36:00 -04:00
Brad King 8bb2ee96cc cmake-developer.7: Improve flow of module documentation instructions
Use prose instead of enumerated steps and re-order the steps so that
the cmake-module directive is covered contiguously.
2013-10-23 09:36:00 -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 efcf318f8d Add \-continuation to CMake language quoted arguments
Teach the CMake language lexer to treat the \-LF pair terminating a
line ending in an odd number of backslashes inside a quoted argument
as a continuation.  Drop the pair from the returned quoted argument
token text.  This will allow long lines inside quoted argument
strings to be divided across multiple lines in the source file.
It will also allow quoted argument text to start on the line after
the opening quote.  For example, the code:

 set(x "\
 ...")

sets variable "x" to the value "..." with no opening newline.

Previously an odd number of backslashes at the end of a line inside
a quoted argument would put a \-LF pair (or a \-CR pair) literally
in the argument.  Then the command-argument evaluator would complain
that the \-escape sequence is invalid.  Therefore this syntax is
available to use without changing behavior of valid existing code.

Teach the RunCMake.Syntax test to cover cases of quoted arguments
with lines ending in \, \\, and \\\.  Odd counts are continuations.
2013-10-23 09:02:07 -04: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 c7c44fc7f4 CTestTest*: Update minimum required CMake to 2.4
We will soon deprecate support for compatibility with CMake < 2.4.
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 d67286ff9b Merge topic 'output-CMP0022-entries'
0b3b336 CMP0022: Output link interface mismatch for static library warning
2013-10-23 08:20:14 -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
Brad King 8855bf5395 Merge topic 'remove-old-commands-by-policy'
6c91944 Add policy CMP0036 to disallow build_name
3969bb2 Add policy CMP0035 to disallow variable_requires
178b9af Add policy CMP0034 to disallow utility_source
248d1dc Add policy CMP0033 to disallow export_library_dependencies
6865c8f Add policy CMP0032 to disallow output_required_files
aa76518 Add policy CMP0031 to disallow load_command
97268cf Add policy CMP0030 to disallow use_mangled_mesa
9f64fbf Add policy CMP0029 to disallow subdir_depends
882c0f0 Add infrastructure for policies that disallow commands
2013-10-23 08:19:57 -04:00
Brad King 078530b448 Merge topic 'cmarray-templates'
d169b1f Genex: Use cmArraySize for targetPolicyWhitelist
86d5d80 Genex: Remove use of TransitiveWhitelistCompare
73d7705 Add some templates for cleaner array iteration.
2013-10-23 08:19:52 -04:00
Brad King 6403a53f0e Merge topic 'CheckTypeSize_CXX'
e6cec64 CheckTypeSize: Add unit tests
07a2342 CheckTypeSize: Add support for C++
2013-10-23 08:19:46 -04:00
Stephen Kelly 0b3b3368fb CMP0022: Output link interface mismatch for static library warning
Other warnings for the same policy already have similar output since
commit 81d2793e (Add differing target property content to policy CMP0022
warning, 2013-09-11).
2013-10-23 08:18:02 -04:00
Stephen Kelly b0686fdeda Docs: Fix typo.
dependee -> depender.
2013-10-23 13:33:26 +02:00
Kitware Robot 20c0a6a0ad CMake Nightly Date Stamp 2013-10-23 00:01:08 -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 e0ce6f0a22 cmRST: Cross-reference cmake-developer.7 manual and cmRST Doxygen
The cmRST implementation and the list of capabilities documented in the
cmake-developer.7 manual must be kept in sync.  Add a note to each file
to reference the other.
2013-10-22 10:55:23 -04:00
Brad King c1c239bf75 Help: Add documentation format to cmake-developer.7 manual
Document how CMake uses reStructuredText to provide the help manuals.
Cover supported inline markup and directives, the CMake Domain in
Sphinx, and cross-reference syntax.
2013-10-22 10:55:23 -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 28f08ba25c Help: Fix module documentation markup in cmake-developer.7 manual
Convert the content moved from Modules/readme.txt to valid
reStructuredText markup.  Mainly, convert the lists of variables to
definition lists, wrap long lines in paragraph text, and add literal
block markup and indentation.
2013-10-22 10:09:26 -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
Brad King 80a311ed6a Help: Add cmake-developer.7 manual
Add the manual with just an introduction section.  Leave section headers
for Help and Modules to be filled in later.
2013-10-22 09:50:15 -04:00
Brad King 6c9194488a Add policy CMP0036 to disallow build_name 2013-10-22 09:09:53 -04:00
Brad King 3969bb23aa Add policy CMP0035 to disallow variable_requires 2013-10-22 09:09:52 -04:00
Brad King 178b9af186 Add policy CMP0034 to disallow utility_source 2013-10-22 09:09:52 -04:00
Brad King 248d1dc057 Add policy CMP0033 to disallow export_library_dependencies 2013-10-22 09:09:52 -04:00
Brad King 6865c8fe05 Add policy CMP0032 to disallow output_required_files 2013-10-22 09:09:52 -04:00
Brad King aa76518f8b Add policy CMP0031 to disallow load_command 2013-10-22 09:09:52 -04:00
Brad King 97268cf5b7 Add policy CMP0030 to disallow use_mangled_mesa 2013-10-22 09:09:51 -04:00
Brad King 9f64fbf5b5 Add policy CMP0029 to disallow subdir_depends 2013-10-22 09:09:51 -04:00
Brad King 882c0f0b69 Add infrastructure for policies that disallow commands
Add cmCommand::Disallowed helper to check the setting of a policy that
disallows the command.  Add a RunCMake.DisallowedCommands test
placeholder.  Add a Help/policy/DISALLOWED_COMMAND.txt file for
inclusion by each policy document to avoid duplication of the common
text.
2013-10-22 09:09:51 -04:00