ADD_DEFINITION sets the definitions for a compiler without target
binding. This means once it is used all subsequent targets and
subdirectories have these definitions
ADD_DEFINITIONS(-DHAVE_CONFIG_H -DEXCLUDE ALL_PINGUINS)

COMPILE_DEFINITIONS is a property which is used frequently with
SET_TARGET_PROPERTIES. Here the definitions are set for the target only.
SET_TARGET_PROPERTIES(_targetname PROPERTIES
        COMPILE_DEFINITIONS "HAVE_CONFIG_H;EXCLUDE_ALL_PINGUINS")
No -D, parameters are separated by ";"

ADD_DEFINITIONS- and SET_TARGET_PROPERTIES can be mixed, depending what
you want.

Here is an nice typical example:
SET(_definitions G_LOG_DOMAIN=\"Gtk\"
                 GTK_LIBDIR=\"${DGTK_LIBDIR}\"
                 GTK_DATADIR=\"${GTK_DATADIR}\"
                 GTK_DATA_PREFIX=\"/${GTK_DATA_PREFIX}\"
                 GTK_SYSCONFDIR=\"${_sysConfDir}\"
                 GTK_VERSION=\"${PACKAGE_VERSION}\"
                 GTK_BINARY_VERSION=\"${GTK_BINARY_VERSION}\"
                 GTK_PRINT_BACKENDS=\"${GTK_PRINT_BACKENDS}\"
                 GTK_COMPILATION
                 GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED
                 GTK_PRINT_BACKEND_ENABLE_UNSUPPORTED)

SET_TARGET_PROPERTIES(${_gtkTarget} PROPERTIES
                COMPILE_DEFINITIONS "${_definitions}")

CMAKE_REQUIRED_DEFINITIONS is a variable which belongs to the CheckC
command-family, which is important for CTest (Not sure!). See the
documentation there.

Greetings
Micha



Am Donnerstag, den 17.02.2011, 15:30 -0200 schrieb Felipe Ferreri
Tonello:
> Hello guys,
> 
> What's the difference to use add_definitions(...), CMAKE_REQUIRED_DEFINITIONS 
> and COMPILE_DEFINITIONS ??
> 
> I've read the documentation but I need some examples and simple discription 
> how to use it.
This is a contradiction in itself.

> GTK_PRINT_PREVIEW_COMMAND=
> - Felipe
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to