diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3a9b6aca295679e1844b4b775acdb7b1b743dd72..4772539cc67aa6de88e34a30705f2ace8272efc1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -50,6 +50,7 @@ stages:
         -DWARNING_ERROR=ON
         -DWALBERLA_BUILD_WITH_METIS=$WALBERLA_BUILD_WITH_METIS
         -DWALBERLA_BUILD_WITH_PARMETIS=$WALBERLA_BUILD_WITH_PARMETIS
+        -DWALBERLA_BUILD_WITH_FFTW=$WALBERLA_BUILD_WITH_FFTW
         -DWALBERLA_ENABLE_GUI=$WALBERLA_ENABLE_GUI
         -DWALBERLA_BUILD_WITH_CODEGEN=$WALBERLA_BUILD_WITH_CODEGEN
         -DWALBERLA_STL_BOUNDS_CHECKS=$WALBERLA_STL_BOUNDS_CHECKS
@@ -72,6 +73,7 @@ stages:
       WALBERLA_DOUBLE_ACCURACY: "ON"
       WALBERLA_BUILD_WITH_METIS: "ON"
       WALBERLA_BUILD_WITH_PARMETIS: "ON"
+      WALBERLA_BUILD_WITH_FFTW: "ON"
       WALBERLA_ENABLE_GUI: "OFF"
    artifacts:
       when: always
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0516669b5a1d54d2d4cc7970107ad29b4671194b..319411433188b852e344d3819caa1f7a5d2094bb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,6 +69,7 @@ option ( WALBERLA_BUILD_DOC                 "Build Documentation"
 option ( WALBERLA_BUILD_WITH_MPI            "Build with MPI"                                  ON )
 option ( WALBERLA_BUILD_WITH_METIS          "Build with metis graph partitioner"             OFF )
 option ( WALBERLA_BUILD_WITH_PARMETIS       "Build with ParMetis graph partitioner"          OFF )
+option ( WALBERLA_BUILD_WITH_FFTW           "Build with FFTW Fourier Transform library"      OFF )
 
 option ( WALBERLA_BUILD_WITH_GPROF          "Enables gprof"                                      )
 option ( WALBERLA_BUILD_WITH_GCOV           "Enables gcov"                                       )
@@ -920,22 +921,24 @@ endif()
 ##
 ############################################################################################################################
 
-if( WALBERLA_BUILD_WITH_MPI )
-   find_package( PFFT )
-   find_package( FFTW3 )
-   set( FFT_REQUIRED_LIBRARIES pfft fftw3_mpi fftw3 )
-   if( PFFT_FOUND AND FFTW3_MPI_FOUND )
-      set( WALBERLA_BUILD_WITH_FFT TRUE CACHE INTERNAL "Build with FFT" )
-      include_directories( SYSTEM ${PFFT_INCLUDE_DIR} ${FFTW3_MPI_INCLUDE_DIR} )
-      list( APPEND SERVICE_LIBS ${PFFT_LIBRARIES} ${FFTW3_LIBRARIES} ${FFTW3_MPI_LIBRARIES} )
-   endif()
-else()
-   find_package( FFTW3 )
-   set( FFT_REQUIRED_LIBRARIES fftw3 )
-   if ( FFTW3_FOUND )
-      set( WALBERLA_BUILD_WITH_FFT TRUE CACHE INTERNAL "Build with FFT" )
-      include_directories( SYSTEM ${FFTW3_INCLUDE_DIR} )
-      list( APPEND SERVICE_LIBS ${FFTW3_LIBRARIES} )
+if ( WALBERLA_BUILD_WITH_FFTW )
+   if( WALBERLA_BUILD_WITH_MPI )
+      find_package( PFFT )
+      find_package( FFTW3 )
+      set( FFT_REQUIRED_LIBRARIES pfft fftw3_mpi fftw3 )
+      if( PFFT_FOUND AND FFTW3_MPI_FOUND )
+         set( WALBERLA_BUILD_WITH_FFT TRUE CACHE INTERNAL "Build with FFT" )
+         include_directories( SYSTEM ${PFFT_INCLUDE_DIR} ${FFTW3_MPI_INCLUDE_DIR} )
+         list( APPEND SERVICE_LIBS ${PFFT_LIBRARIES} ${FFTW3_LIBRARIES} ${FFTW3_MPI_LIBRARIES} )
+      endif()
+   else()
+      find_package( FFTW3 )
+      set( FFT_REQUIRED_LIBRARIES fftw3 )
+      if ( FFTW3_FOUND )
+         set( WALBERLA_BUILD_WITH_FFT TRUE CACHE INTERNAL "Build with FFT" )
+         include_directories( SYSTEM ${FFTW3_INCLUDE_DIR} )
+         list( APPEND SERVICE_LIBS ${FFTW3_LIBRARIES} )
+      endif()
    endif()
 endif()