summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cmTarget: Add interface for compatible numeric propertiesStephen Kelly2013-10-2411-16/+339
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* cmTarget: Add enumeration for consistency to expect from properties.Stephen Kelly2013-10-241-18/+57
| | | | | The type of consistency to be expected will be extended to cover numeric minimum and maximum.
* cmTarget: Assign consistent content back to the property being evaluated.Stephen Kelly2013-10-241-3/+12
| | | | | | Currently, 'consistent' means the same or not set. Soon though, it will be possible to choose a minimum number from an interface for example.
* cmTarget: Make consistentProperty return consistent content.Stephen Kelly2013-10-241-6/+14
| | | | Upcoming features will make use of that.
* cmTarget: Add a template to create correct implied content.Stephen Kelly2013-10-241-0/+14
| | | | | | 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.
* Merge topic 'FindJava-msg'Brad King2013-10-231-1/+1
|\ | | | | | | | | c832299 FindJava: fix message output (#14502)
| * FindJava: fix message output (#14502)Rolf Eike Beer2013-10-221-1/+1
| |
* | Merge topic 'output-CMP0022-entries'Brad King2013-10-232-1/+35
|\ \ | | | | | | | | | | | | 0b3b336 CMP0022: Output link interface mismatch for static library warning
| * | CMP0022: Output link interface mismatch for static library warningStephen Kelly2013-10-232-1/+35
| | | | | | | | | | | | | | | | | | 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).
* | | Merge topic 'vs-graceful-empty-compiler'Brad King2013-10-234-7/+7
|\ \ \ | | | | | | | | | | | | | | | | | | | | 705ae00 Quote ${CMAKE_<LANG>_COMPILER} while enabling a language 18a2537 CMakeDetermineCompilerId: Do not test vendor without a compiler
| * | | Quote ${CMAKE_<LANG>_COMPILER} while enabling a languageBrad King2013-10-224-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | CMakeDetermineCompilerId: Do not test vendor without a compilerBrad King2013-10-221-1/+1
| | |/ | |/| | | | | | | | | | If no CMAKE_${lang}_COMPILER is available then do not try to run it to determine the compiler vendor.
* | | Merge topic 'doc-cmake-developer'Brad King2013-10-235-189/+512
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | cmRST: Cross-reference cmake-developer.7 manual and cmRST DoxygenBrad King2013-10-222-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Help: Add documentation format to cmake-developer.7 manualBrad King2013-10-221-0/+205
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Help: Organize cmake-developer.7 manual Modules sectionBrad King2013-10-222-51/+77
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Help: Fix module documentation markup in cmake-developer.7 manualKitware Robot2013-10-221-102/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Help: Move Modules/readme.txt content into cmake-developer.7 manualKitware Robot2013-10-222-188/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Help: Add cmake-developer.7 manualBrad King2013-10-223-0/+20
| | | | | | | | | | | | | | | | | | | | Add the manual with just an introduction section. Leave section headers for Help and Modules to be filled in later.
* | | | Merge topic 'remove-old-commands-by-policy'Brad King2013-10-23110-261/+480
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | Add policy CMP0036 to disallow build_nameBrad King2013-10-2217-35/+58
| | | | |
| * | | | Add policy CMP0035 to disallow variable_requiresBrad King2013-10-2217-29/+55
| | | | |
| * | | | Add policy CMP0034 to disallow utility_sourceBrad King2013-10-2217-36/+55
| | | | |
| * | | | Add policy CMP0033 to disallow export_library_dependenciesBrad King2013-10-2217-36/+61
| | | | |
| * | | | Add policy CMP0032 to disallow output_required_filesBrad King2013-10-2217-30/+58
| | | | |
| * | | | Add policy CMP0031 to disallow load_commandBrad King2013-10-2217-22/+56
| | | | |
| * | | | Add policy CMP0030 to disallow use_mangled_mesaBrad King2013-10-2217-38/+54
| | | | |
| * | | | Add policy CMP0029 to disallow subdir_dependsBrad King2013-10-2215-35/+43
| | | | |
| * | | | Add infrastructure for policies that disallow commandsBrad King2013-10-225-0/+40
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge topic 'cmarray-templates'Brad King2013-10-232-25/+38
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d169b1f Genex: Use cmArraySize for targetPolicyWhitelist 86d5d80 Genex: Remove use of TransitiveWhitelistCompare 73d7705 Add some templates for cleaner array iteration.
| * | | | Genex: Use cmArraySize for targetPolicyWhitelistStephen Kelly2013-10-221-4/+1
| | | | | | | | | | | | | | | | | | | | For better readability.
| * | | | Genex: Remove use of TransitiveWhitelistCompareStephen Kelly2013-10-221-21/+9
| | | | | | | | | | | | | | | | | | | | | | | | | Replace with generic solution based on cmArray* for better readability.
| * | | | Add some templates for cleaner array iteration.Stephen Kelly2013-10-221-0/+28
| | | | |
* | | | | Merge topic 'CheckTypeSize_CXX'Brad King2013-10-2319-7/+330
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e6cec64 CheckTypeSize: Add unit tests 07a2342 CheckTypeSize: Add support for C++
| * | | | | CheckTypeSize: Add unit testsDaniele E. Domenichelli2013-10-2118-1/+287
| | | | | |
| * | | | | CheckTypeSize: Add support for C++Daniele E. Domenichelli2013-10-211-6/+43
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>])
* | | | | CMake Nightly Date StampKitware Robot2013-10-231-1/+1
| |/ / / |/| | |
* | | | Merge topic 'rst-literal-blocks'Brad King2013-10-224-31/+107
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | 2d0287d cmRST: Process literal blocks after paragraphs ending in '::' 7b9ae40 cmRST: Do not process inline markup in code-block literals
| * | | cmRST: Process literal blocks after paragraphs ending in '::'Brad King2013-10-214-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach cmRST to recognize non-markup lines ending in '::' followed by a blank line as starting a literal block. Record the whole block as if it were a literal block directive and print it just like a code block. Extend the CMakeLib.testRST test to cover such cases.
| * | | cmRST: Do not process inline markup in code-block literalsBrad King2013-10-214-31/+48
| |/ / | | | | | | | | | | | | | | | | | | | | | Move the ProcessDirectiveParsedLiteral and ProcessDirectiveCodeBlock method internals into an OutputMarkupLines helper. Pass through it a new "inlineMarkup" parameter and teach OutputLine to understand it. When false, do not process inline markup. Extend the CMakeLib.testRST test to cover the two cases.
* | | Merge topic 'genex-conversion-warnings'Brad King2013-10-224-10/+10
|\ \ \ | | | | | | | | | | | | | | | | a80fe4b use size_t for GeneratorExpressionContent::ContentLength to fix some warnings
| * | | use size_t for GeneratorExpressionContent::ContentLength to fix some warningsRolf Eike Beer2013-10-214-10/+10
| |/ / | | | | | | | | | | | | | | | CMake/Source/cmGeneratorExpressionParser.cxx: In member function ‘void cmGeneratorExpressionParser::ParseGeneratorExpression(std::vector<cmGeneratorExpressionEvaluator*>&)’: CMake/Source/cmGeneratorExpressionParser.cxx:116:55: warning: conversion to ‘unsigned int’ from ‘long int’ may alter its value [-Wconversion] CMake/Source/cmGeneratorExpressionParser.cxx:240:39: warning: conversion to ‘int’ from ‘long int’ may alter its value [-Wconversion]
* | | Merge topic 'string-CONCAT-command'Brad King2013-10-2210-0/+63
|\ \ \ | | | | | | | | | | | | | | | | 4e184a2 string: Add CONCAT sub-command
| * | | string: Add CONCAT sub-commandBrad King2013-10-2110-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | Add a string(CONCAT) command to simply concatenate input arguments together. This will be useful for combining strings from different quoting syntaxes. Add a RunCMake.string test covering these cases.
* | | | Merge topic 'xcode-folder-types'Brad King2013-10-221-5/+16
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | e5ec8ad Xcode: Generate 'folder' source type for directories (#14498)
| * | | | Xcode: Generate 'folder' source type for directories (#14498)Michael Priestman2013-10-211-5/+16
| | |/ / | |/| | | | | | | | | | | | | | | | | | Teach the Xcode generator to set 'lastKnownFileType' to be 'folder' for file references that are directories. If you set 'explicitFileType' to 'sourcecode', then Xcode cannot browse the directory.
* | | | Merge topic 'doc-vs-keyword-properties'Brad King2013-10-222-2/+8
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | b9fe4b6 VS: Document VS_GLOBAL_KEYWORD and VS_KEYWORD relationship (#14493)
| * | | | VS: Document VS_GLOBAL_KEYWORD and VS_KEYWORD relationship (#14493)Brad King2013-10-212-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These two target properties serve the same purpose for different versions of Visual Studio. Document the versions covered by each property. Reported-by: mar.na@t-online.de
* | | | | Merge topic 'double-colon-is-imported'Brad King2013-10-2220-11/+124
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | f063c45 Consider targets with double colons to be IMPORTED or ALIAS targets.
| * | | | | Consider targets with double colons to be IMPORTED or ALIAS targets.Stephen Kelly2013-10-2120-11/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a policy to control the behavior. The AliasTargets unit test already tests that using a double-semicolon in the name is not an error. Change the ExportImport test to use a namespace with a double-semicolon too.