diff --git a/dumux/CMakeLists.txt b/dumux/CMakeLists.txt
index 819d019ad5f37d819bd128854c2892abba2684c9..8b27a751738d8a46aa6be7c793cfafad433a5d6d 100644
--- a/dumux/CMakeLists.txt
+++ b/dumux/CMakeLists.txt
@@ -13,3 +13,8 @@ add_subdirectory(multidomain)
 add_subdirectory(nonlinear)
 add_subdirectory(parallel)
 add_subdirectory(porousmediumflow)
+
+# if Python bindings are enabled, include necessary sub directories.
+if(DUNE_ENABLE_PYTHONBINDINGS)
+  add_subdirectory(python)
+endif()
diff --git a/dumux/python/common/CMakeLists.txt b/dumux/python/common/CMakeLists.txt
index b507d026f0de86f33353c8db4b35cf2be47d89f2..19d092e5cc5cdd6502a833d3f00f9654cf6c82f2 100644
--- a/dumux/python/common/CMakeLists.txt
+++ b/dumux/python/common/CMakeLists.txt
@@ -1,3 +1,5 @@
 install(FILES
+boundarytypes.hh
+fvproblem.hh
 timeloop.hh
 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/python/common)
diff --git a/dumux/python/discretization/CMakeLists.txt b/dumux/python/discretization/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..efe5f30fb1b4cb2ddd6ba7a4dd6e3775ea611bc3
--- /dev/null
+++ b/dumux/python/discretization/CMakeLists.txt
@@ -0,0 +1,3 @@
+install(FILES
+gridgeometry.hh
+DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/python/discretization)