summaryrefslogtreecommitdiffstats
path: root/Help/prop_dir/COMPILE_DEFINITIONS.rst
diff options
context:
space:
mode:
authorKitware Robot <kwrobot@kitware.com>2013-10-15 15:17:36 (GMT)
committerBrad King <brad.king@kitware.com>2013-10-15 18:12:03 (GMT)
commitf051814ed0e63badbfd68049354f36259dbf4b49 (patch)
treef4e6f885f86c882d723a7dd53d2b702d0c7fdffb /Help/prop_dir/COMPILE_DEFINITIONS.rst
parente94958e99c4dec26c86ce8b76d744c04ba960675 (diff)
downloadCMake-f051814ed0e63badbfd68049354f36259dbf4b49.zip
CMake-f051814ed0e63badbfd68049354f36259dbf4b49.tar.gz
CMake-f051814ed0e63badbfd68049354f36259dbf4b49.tar.bz2
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.
Diffstat (limited to 'Help/prop_dir/COMPILE_DEFINITIONS.rst')
-rw-r--r--Help/prop_dir/COMPILE_DEFINITIONS.rst39
1 files changed, 39 insertions, 0 deletions
diff --git a/Help/prop_dir/COMPILE_DEFINITIONS.rst b/Help/prop_dir/COMPILE_DEFINITIONS.rst
new file mode 100644
index 0000000..bc5f754
--- /dev/null
+++ b/Help/prop_dir/COMPILE_DEFINITIONS.rst
@@ -0,0 +1,39 @@
+COMPILE_DEFINITIONS
+-------------------
+
+Preprocessor definitions for compiling a directory's sources.
+
+The COMPILE_DEFINITIONS property may be set to a semicolon-separated
+list of preprocessor definitions using the syntax VAR or VAR=value.
+Function-style definitions are not supported. CMake will
+automatically escape the value correctly for the native build system
+(note that CMake language syntax may require escapes to specify some
+values). This property may be set on a per-configuration basis using
+the name COMPILE_DEFINITIONS_<CONFIG> where <CONFIG> is an upper-case
+name (ex. "COMPILE_DEFINITIONS_DEBUG"). This property will be
+initialized in each directory by its value in the directory's parent.
+
+CMake will automatically drop some definitions that are not supported
+by the native build tool. The VS6 IDE does not support definition
+values with spaces (but NMake does).
+
+Disclaimer: Most native build tools have poor support for escaping
+certain values. CMake has work-arounds for many cases but some values
+may just not be possible to pass correctly. If a value does not seem
+to be escaped correctly, do not attempt to work-around the problem by
+adding escape sequences to the value. Your work-around may break in a
+future version of CMake that has improved escape support. Instead
+consider defining the macro in a (configured) header file. Then
+report the limitation. Known limitations include:
+
+::
+
+ # - broken almost everywhere
+ ; - broken in VS IDE 7.0 and Borland Makefiles
+ , - broken in VS IDE
+ % - broken in some cases in NMake
+ & | - broken in some cases on MinGW
+ ^ < > \" - broken in most Make tools on Windows
+
+CMake does not reject these values outright because they do work in
+some cases. Use with caution.