2010-12-07 01:11:36 +03:00
|
|
|
/*============================================================================
|
|
|
|
CMake - Cross Platform Makefile Generator
|
|
|
|
Copyright 2000-2010 Kitware, Inc., Insight Software Consortium
|
|
|
|
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the License for more information.
|
|
|
|
============================================================================*/
|
|
|
|
#ifndef cmDocumentGeneratorExpressions_h
|
|
|
|
#define cmDocumentGeneratorExpressions_h
|
|
|
|
|
2012-09-12 06:23:31 +04:00
|
|
|
#define CM_DOCUMENT_ADD_TEST_GENERATOR_EXPRESSIONS \
|
2013-05-01 13:36:14 +04:00
|
|
|
"Generator expressions are evaluated during build system generation " \
|
2010-12-07 01:11:36 +03:00
|
|
|
"to produce information specific to each build configuration. " \
|
|
|
|
"Valid expressions are:\n" \
|
2012-08-13 17:49:53 +04:00
|
|
|
" $<0:...> = empty string (ignores \"...\")\n" \
|
|
|
|
" $<1:...> = content of \"...\"\n" \
|
2012-08-13 18:00:32 +04:00
|
|
|
" $<CONFIG:cfg> = '1' if config is \"cfg\", else '0'\n" \
|
2010-12-07 01:11:36 +03:00
|
|
|
" $<CONFIGURATION> = configuration name\n" \
|
2012-09-12 06:20:42 +04:00
|
|
|
" $<BOOL:...> = '1' if the '...' is true, else '0'\n" \
|
|
|
|
" $<STREQUAL:a,b> = '1' if a is STREQUAL b, else '0'\n" \
|
|
|
|
" $<ANGLE-R> = A literal '>'. Used to compare " \
|
|
|
|
"strings which contain a '>' for example.\n" \
|
|
|
|
" $<COMMA> = A literal ','. Used to compare " \
|
|
|
|
"strings which contain a ',' for example.\n" \
|
2013-03-12 10:52:01 +04:00
|
|
|
" $<SEMICOLON> = A literal ';'. Used to prevent " \
|
|
|
|
"list expansion on an argument with ';'.\n" \
|
2012-12-10 14:33:23 +04:00
|
|
|
" $<TARGET_NAME:...> = Marks ... as being the name of a " \
|
|
|
|
"target. This is required if exporting targets to multiple " \
|
|
|
|
"dependent export sets. The '...' must be a literal name of a " \
|
|
|
|
"target- it may not contain generator expressions.\n" \
|
2012-09-23 15:16:44 +04:00
|
|
|
" $<INSTALL_INTERFACE:...> = content of \"...\" when the property " \
|
|
|
|
"is exported using install(EXPORT), and empty otherwise.\n" \
|
|
|
|
" $<BUILD_INTERFACE:...> = content of \"...\" when the property " \
|
|
|
|
"is exported using export(), or when the target is used by another " \
|
|
|
|
"target in the same buildsystem. Expands to the empty string " \
|
|
|
|
"otherwise.\n" \
|
2010-12-07 01:11:36 +03:00
|
|
|
" $<TARGET_FILE:tgt> = main file (.exe, .so.1.2, .a)\n" \
|
|
|
|
" $<TARGET_LINKER_FILE:tgt> = file used to link (.a, .lib, .so)\n" \
|
|
|
|
" $<TARGET_SONAME_FILE:tgt> = file with soname (.so.3)\n" \
|
|
|
|
"where \"tgt\" is the name of a target. " \
|
|
|
|
"Target file expressions produce a full path, but _DIR and _NAME " \
|
|
|
|
"versions can produce the directory and file name components:\n" \
|
|
|
|
" $<TARGET_FILE_DIR:tgt>/$<TARGET_FILE_NAME:tgt>\n" \
|
|
|
|
" $<TARGET_LINKER_FILE_DIR:tgt>/$<TARGET_LINKER_FILE_NAME:tgt>\n" \
|
2012-08-13 17:49:53 +04:00
|
|
|
" $<TARGET_SONAME_FILE_DIR:tgt>/$<TARGET_SONAME_FILE_NAME:tgt>\n" \
|
2012-09-29 20:29:23 +04:00
|
|
|
"\n" \
|
2013-01-25 01:04:09 +04:00
|
|
|
" $<TARGET_PROPERTY:tgt,prop> = The value of the property prop " \
|
|
|
|
"on the target tgt.\n" \
|
|
|
|
"Note that tgt is not added as a dependency of the target this " \
|
|
|
|
"expression is evaluated on.\n" \
|
2013-01-16 19:42:39 +04:00
|
|
|
" $<TARGET_POLICY:pol> = '1' if the policy was NEW when " \
|
|
|
|
"the 'head' target was created, else '0'. If the policy was not " \
|
|
|
|
"set, the warning message for the policy will be emitted. This " \
|
|
|
|
"generator expression only works for a subset of policies.\n" \
|
2013-01-27 12:43:44 +04:00
|
|
|
" $<INSTALL_PREFIX> = Content of the install prefix when " \
|
|
|
|
"the target is exported via INSTALL(EXPORT) and empty otherwise.\n" \
|
2012-08-13 17:49:53 +04:00
|
|
|
"Boolean expressions:\n" \
|
|
|
|
" $<AND:?[,?]...> = '1' if all '?' are '1', else '0'\n" \
|
|
|
|
" $<OR:?[,?]...> = '0' if all '?' are '0', else '1'\n" \
|
|
|
|
" $<NOT:?> = '0' if '?' is '1', else '1'\n" \
|
|
|
|
"where '?' is always either '0' or '1'.\n" \
|
2012-09-29 20:29:23 +04:00
|
|
|
""
|
2012-09-12 06:23:31 +04:00
|
|
|
|
|
|
|
#define CM_DOCUMENT_COMMAND_GENERATOR_EXPRESSIONS \
|
|
|
|
CM_DOCUMENT_ADD_TEST_GENERATOR_EXPRESSIONS \
|
2012-09-29 20:29:23 +04:00
|
|
|
"Expressions with an implicit 'this' target:\n" \
|
2013-01-25 01:04:09 +04:00
|
|
|
" $<TARGET_PROPERTY:prop> = The value of the property prop on " \
|
2012-09-12 06:23:31 +04:00
|
|
|
"the target on which the generator expression is evaluated.\n" \
|
2012-08-13 17:49:53 +04:00
|
|
|
""
|
2010-12-07 01:11:36 +03:00
|
|
|
|
|
|
|
#endif
|