diff --git a/CMakeLists.txt b/CMakeLists.txt
index c5760673c1fb31cc47cdf70b02a719d60a09d415..defa2d485021057cf23f747f8745a3bd73d88da9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,21 +17,6 @@ include(Definitions)
 FIND_PACKAGE(OTB REQUIRED PATHS /usr/lib/otb )
 INCLUDE(${OTB_USE_FILE})
 
-
-OPTION(OTB_USE_QT "Generate Qt wrappers for Applications" ON)
-IF(OTB_USE_QT)
-  FIND_PACKAGE(Qt4 REQUIRED)
-  SET(QT_USE_QTXML 1)
-  INCLUDE(${QT_USE_FILE})
-ENDIF(OTB_USE_QT)
-
-OPTION(OTB_USE_SWIG "Generate Qt wrappers for Applications" ON)
-
-FIND_PACKAGE(SWIG REQUIRED)
-INCLUDE(${SWIG_USE_FILE})
-FIND_PACKAGE(PythonLibs REQUIRED)
-FIND_PACKAGE(PythonInterp REQUIRED)
-
 SET(BUILD_SHARED_LIBS ${OTB_BUILD_SHARED_LIBS})
 
 ADD_SUBDIRECTORY(Code)
diff --git a/Code/Wrappers/CMakeLists.txt b/Code/Wrappers/CMakeLists.txt
index f3b5897812cf18d9929a9ff1767cda6cd791b734..55cdae1feb5980f26b58457ba22ffda8fe34005c 100644
--- a/Code/Wrappers/CMakeLists.txt
+++ b/Code/Wrappers/CMakeLists.txt
@@ -1,5 +1,19 @@
 INCLUDE_DIRECTORIES(../Core)
 
-ADD_SUBDIRECTORY(ApplicationLauncherQt)
-ADD_SUBDIRECTORY(QtWidget)
-ADD_SUBDIRECTORY(SWIG)
+# Generate Qt based GUI
+option ( WRAP_QT "Enable Qt wrappers" OFF )
+
+if ( WRAP_QT )
+  FIND_PACKAGE(Qt4 REQUIRED)
+  SET(QT_USE_QTXML 1)
+  INCLUDE(${QT_USE_FILE})
+
+  add_subdirectory(ApplicationLauncherQt)
+  add_subdirectory(QtWidget)
+endif( WRAP_QT )
+
+# Generate SWIG wrappers
+option ( WRAP_SWIG "Enable SWIG wrappers" OFF )
+if ( WRAP_SWIG )
+  add_subdirectory(SWIG)
+endif( WRAP_SWIG )
\ No newline at end of file
diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt
index a9c6f36f4ecc18069543c02c91f4f46892660fad..61018d712e1ba727d9e53ab988f5feb4870333ba 100644
--- a/Testing/CMakeLists.txt
+++ b/Testing/CMakeLists.txt
@@ -3,9 +3,22 @@ FILE(MAKE_DIRECTORY ${TEMP})
 
 add_subdirectory(Core)
 
-add_subdirectory(Python)
-add_subdirectory(Java)
-add_subdirectory(Ruby)
-add_subdirectory(Lua)
+if ( WRAP_PYTHON )
+  add_subdirectory(Python)
+endif ()
 
-add_subdirectory(QtWidget)
\ No newline at end of file
+if ( WRAP_JAVA )
+  add_subdirectory(Java)
+endif ()
+
+if ( WRAP_RUBY )
+  add_subdirectory(Ruby)
+endif ()
+
+if ( WRAP_LUA )
+  add_subdirectory(Lua)
+endif ()
+
+if ( WRAP_QT )
+  add_subdirectory(QtWidget)
+endif ()
diff --git a/Testing/Java/CMakeLists.txt b/Testing/Java/CMakeLists.txt
index e12721ad5fc2b6aae331d5be54f2e8e8928d7354..5bddf6844321948bc9c330630dd4ee51b2b2622f 100644
--- a/Testing/Java/CMakeLists.txt
+++ b/Testing/Java/CMakeLists.txt
@@ -8,7 +8,7 @@ set( CMAKE_JAVA_INCLUDE_PATH ${OTB-Wrapper_BINARY_DIR}/Code/Wrappers/SWIG/org.ot
 set( JAVA_COMMAND "${JAVACOMMAND}" -Djava.library.path=${OTB-Wrapper_BINARY_DIR}/Code/Wrappers/SWIG)
 
 add_jar( JavaSmoothingTest JavaSmoothingTest.java )
-add_dependencies( JavaSmoothingTest otbApplicationJava )
+add_dependencies( JavaSmoothingTest org_otb_Application_jar )
 add_test( NAME jaTvSmoothing
           COMMAND ${TEST_DRIVER} Execute
           ${JAVA_COMMAND} -cp ${CMAKE_JAVA_INCLUDE_PATH}:JavaSmoothingTest.jar SmoothingTest
diff --git a/Testing/QtWidget/CMakeLists.txt b/Testing/QtWidget/CMakeLists.txt
index 526b98e4095f00b0bcabb9ce5599d5109b8971ab..eb44c0a67b2e90aadffd8667f6495a0717b6761a 100644
--- a/Testing/QtWidget/CMakeLists.txt
+++ b/Testing/QtWidget/CMakeLists.txt
@@ -1,6 +1,8 @@
-SET(CXX_TEST_PATH ${EXECUTABLE_OUTPUT_PATH})
+FIND_PACKAGE(Qt4 REQUIRED)
+SET(QT_USE_QTXML 1)
+INCLUDE(${QT_USE_FILE})
 
-IF(OTB_USE_QT)
+SET(CXX_TEST_PATH ${EXECUTABLE_OUTPUT_PATH})
 
 SET(OTB_WRAPPER_QTWIDGET_TESTS ${CXX_TEST_PATH}/otbWrapperQtWidgetTests)
 
@@ -25,5 +27,3 @@ ADD_TEST(owTvQtWidgetParameterFactory ${OTB_WRAPPER_QTWIDGET_TESTS}
 
 ADD_TEST(owTvQtWidgetParameterGroup ${OTB_WRAPPER_QTWIDGET_TESTS}
         otbWrapperQtWidgetParameterGroup)
-
-ENDIF(OTB_USE_QT)