diff --git a/CMakeLists.txt b/CMakeLists.txt
index 628a5086223ee51298a5733a1eea18cb252d101c..6fdc043989986b4508b9c9f33c9f926500dc2235 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,6 +55,7 @@ option(ENABLE_SWIG "Enable swig" ON)
 option(ENABLE_TAUCS "Enable Taucs linear algebra solver" ON)
 option(ENABLE_TETGEN "Enable Tetgen mesh generator" ON)
 option(ENABLE_TETGEN_NEW "Enable experimental version of Tetgen" OFF)
+option(ENABLE_NON_LINEAR_SOLVER "Enable use of non linear solver" OFF)
 
 set(GMSH_MAJOR_VERSION 2)
 set(GMSH_MINOR_VERSION 5)
@@ -278,6 +279,10 @@ add_subdirectory(Common)
 add_subdirectory(Numeric)
 add_subdirectory(Geo)
 
+if(ENABLE_NON_LINEAR_SOLVER)
+  add_subdirectory(NonLinearSolver)
+endif(ENABLE_NON_LINEAR_SOLVER)
+
 if(ENABLE_MESH)
   add_subdirectory(Mesh)
   set_config_option(HAVE_MESH "Mesh")