diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ab5ef5eefe86996331b2c03ec27e086147d567f..f9fcd87d0c69a5cd6fcaa25504a3c2fd6414e70e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -105,6 +105,9 @@ ENDIF(BUILD_PYTHON_INTERFACE)
 
 SEARCH_FOR_BOOST()
 
+# Variable containing all the cflags definition relative to optional dependencies
+SET(CFLAGS_DEPENDENCIES)
+
 # Path to boost headers
 INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
 
@@ -243,8 +246,8 @@ IF(URDFDOM_FOUND)
     parsers/urdf/utils.hpp
     )
 
-
   ADD_DEFINITIONS(-DWITH_URDFDOM)
+  LIST(APPEND CFLAGS_DEPENDENCIES "-DWITH_URDFDOM")
 ENDIF(URDFDOM_FOUND)
 
 LIST(APPEND ${PROJECT_NAME}_MULTIBODY_HEADERS
@@ -261,6 +264,9 @@ IF(HPP_FCL_FOUND)
   LIST(APPEND ${PROJECT_NAME}_SPATIAL_HEADERS
     spatial/fcl-pinocchio-conversions.hpp
     )
+
+  ADD_DEFINITIONS(-DWITH_HPP_FCL)
+  LIST(APPEND CFLAGS_DEPENDENCIES "-DWITH_HPP_FCL")
 ENDIF(HPP_FCL_FOUND)
 
 IF(LUA5_1_FOUND)
@@ -270,6 +276,7 @@ IF(LUA5_1_FOUND)
     )
 
   ADD_DEFINITIONS(-DWITH_LUA)
+  LIST(APPEND CFLAGS_DEPENDENCIES "-DWITH_LUA")
 ENDIF(LUA5_1_FOUND)
 
 
@@ -330,4 +337,8 @@ IF(URDFDOM_COLLISION_WITH_GROUP_NAME)
   PKG_CONFIG_APPEND_CFLAGS("-DURDFDOM_COLLISION_WITH_GROUP_NAME")
 ENDIF(URDFDOM_COLLISION_WITH_GROUP_NAME)
 
+FOREACH(cflags ${CFLAGS_DEPENDENCIES})
+  PKG_CONFIG_APPEND_CFLAGS(${cflags})
+ENDFOREACH(cflags ${CFLAGS_DEPENDENCIES})
+
 SETUP_PROJECT_FINALIZE()