diff --git a/cmake/waLBerlaFunctions.cmake b/cmake/waLBerlaFunctions.cmake
index 0913ac63f851299d5e9f21b8e2dfc2d95bfaf818..320afbb1de3518c1ccb7a25f5cdb7be3a25dd71e 100644
--- a/cmake/waLBerlaFunctions.cmake
+++ b/cmake/waLBerlaFunctions.cmake
@@ -90,21 +90,25 @@ function ( waLBerla_add_module )
  	endforeach( ) 
 
     if ( hasSourceFiles )
-
-        handle_python_codegen(sourceFiles codeGenRequired ${sourceFiles})
+        set( generatedSourceFiles )
+        set( generatorSourceFiles )
+        handle_python_codegen(sourceFiles generatedSourceFiles generatorSourceFiles codeGenRequired ${sourceFiles})
         if( NOT WALBERLA_BUILD_WITH_CODEGEN AND codeGenRequired)
             message(STATUS "Skipping ${ARG_NAME} since pystencils code generation is not enabled")
             return()
         endif()
 
         if ( CUDA_FOUND )
-            cuda_add_library( ${moduleLibraryName} STATIC ${sourceFiles} ${otherFiles} )
+            cuda_add_library( ${moduleLibraryName} STATIC ${sourceFiles} ${generatedSourceFiles} ${generatorSourceFiles} ${otherFiles} )
         else()
-            add_library( ${moduleLibraryName} STATIC ${sourceFiles} ${otherFiles} )
+            add_library( ${moduleLibraryName} STATIC ${sourceFiles} ${generatedSourceFiles} ${generatorSourceFiles} ${otherFiles} )
         endif( CUDA_FOUND )
+        
+        set_source_files_properties( ${generatedSourceFiles} PROPERTIES GENERATED TRUE )
  	else( ) 
- 	   add_custom_target( ${moduleLibraryName} SOURCES ${sourceFiles} ${otherFiles} )  # dummy IDE target 
- 	endif( )
+ 	   add_custom_target( ${moduleLibraryName} SOURCES ${sourceFiles} ${generatedSourceFiles} ${otherFiles} )  # dummy IDE target 
+ 	endif( )  
+
     waLBerla_register_dependency ( ${moduleName} ${ARG_DEPENDS} )
 
     # This property is needed for visual studio to group modules together
@@ -204,17 +208,22 @@ function ( waLBerla_add_executable )
         endif ( )
     endif()
 
-    handle_python_codegen(sourceFiles codeGenRequired ${sourceFiles})
+    set( generatedSourceFiles )
+    set( generatorSourceFiles )
+    handle_python_codegen(sourceFiles generatedSourceFiles generatorSourceFiles codeGenRequired ${sourceFiles})
     if( NOT WALBERLA_BUILD_WITH_CODEGEN AND codeGenRequired)
         message(STATUS "Skipping ${ARG_NAME} since pystencils code generation is not enabled")
         return()
     endif()
+       
 
     if ( CUDA_FOUND )
-        cuda_add_executable( ${ARG_NAME} ${sourceFiles} )
+        cuda_add_executable( ${ARG_NAME} ${sourceFiles} ${generatedSourceFiles} ${generatorSourceFiles} )
     else()
-        add_executable( ${ARG_NAME} ${sourceFiles} )
+        add_executable( ${ARG_NAME} ${sourceFiles} ${generatedSourceFiles} ${generatorSourceFiles} )
     endif()
+    
+    set_source_files_properties( ${generatedSourceFiles} PROPERTIES GENERATED TRUE )
 
     target_link_modules  ( ${ARG_NAME} ${ARG_DEPENDS}  )
     target_link_libraries( ${ARG_NAME} ${SERVICE_LIBS} )
diff --git a/cmake/waLBerlaHelperFunctions.cmake b/cmake/waLBerlaHelperFunctions.cmake
index 02ef2aa007aace8de1aca86928cb819a21a905cf..f3fdc0fcd8ea10828ebb5d58f98ed7a52d2fd1b9 100644
--- a/cmake/waLBerlaHelperFunctions.cmake
+++ b/cmake/waLBerlaHelperFunctions.cmake
@@ -28,8 +28,10 @@ endfunction ( add_flag )
 # Additionally creates a custom build rule for the code generation
 #
 #######################################################################################################################
-function( handle_python_codegen sourceFilesOut codeGenRequiredOut )
+function( handle_python_codegen sourceFilesOut generatedSourceFilesOut generatorsOut codeGenRequiredOut )
     set(result )
+    set(generatedResult )
+    set(generatorsResult )
     set(codeGenRequired NO)
     foreach( sourceFile ${ARGN} )
         if( ${sourceFile} MATCHES ".*\\.gen\\.py$" )
@@ -41,20 +43,23 @@ function( handle_python_codegen sourceFilesOut codeGenRequiredOut )
                 string(REPLACE ".gen.py" ".h"  genHeaderFile ${sourceFileName})
                 string(REPLACE ".gen.py" ".cpp" genSourceFile ${sourceFileName})
             endif()
-            list(APPEND result ${CMAKE_CURRENT_BINARY_DIR}/${genSourceFile}
-                               ${CMAKE_CURRENT_BINARY_DIR}/${genHeaderFile})
+            list(APPEND generatedResult ${CMAKE_CURRENT_BINARY_DIR}/${genSourceFile}
+                                        ${CMAKE_CURRENT_BINARY_DIR}/${genHeaderFile})
             add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${genSourceFile}
                                       ${CMAKE_CURRENT_BINARY_DIR}/${genHeaderFile}
                                DEPENDS ${sourceFile}
                                COMMAND ${PYTHON_EXECUTABLE} ${sourceFile}
                                WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
             include_directories(${CMAKE_CURRENT_BINARY_DIR})
+            list(APPEND generatorsResult ${sourceFile} )
             set(codeGenRequired YES)
         else()
             list(APPEND result ${sourceFile})
         endif()
     endforeach()
     set( ${sourceFilesOut} ${result} PARENT_SCOPE )
+    set( ${generatedSourceFilesOut} ${generatedResult} PARENT_SCOPE )
+    set( ${generatorsOut} ${generatorsResult} PARENT_SCOPE )
     set( ${codeGenRequiredOut} ${codeGenRequired} PARENT_SCOPE )
 endfunction ( handle_python_codegen )
 #######################################################################################################################