diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3488680d698de0f9713e1bbbdb1a244ebd748c5d..ad983d0599758187c7b207bf6bee094acc0f26fd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -244,6 +244,14 @@ else()
 endif()
 mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_PGI )
 
+# Check for Fujitsu compiler
+if( CMAKE_CXX_COMPILER_ID MATCHES FujitsuClang )
+    option ( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG "Use FujitsuClang compiler" ON  )
+else()
+    option ( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG "Use FujitsuClang compiler" OFF  )
+endif()
+mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG )
+
 # Check for MPI wrapper
 get_filename_component( CXX_COMPILER_WITHOUT_PATH ${CMAKE_CXX_COMPILER} NAME )
 if( CXX_COMPILER_WITHOUT_PATH MATCHES "mpi" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "mpi" )
@@ -417,10 +425,11 @@ if( NOT WARNING_DEPRECATED)
 endif()
 
 
-if ( WALBERLA_CXX_COMPILER_IS_CLANG )
+if ( WALBERLA_CXX_COMPILER_IS_CLANG OR WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG )
     add_flag ( CMAKE_CXX_FLAGS "-Wall -Wconversion -Wshadow -Wno-c++11-extensions -Qunused-arguments" )
 endif ( )
 
+
 if( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG )
     if ( WALBERLA_STL_BOUNDS_CHECKS )
         add_definitions ( "-D_GLIBCXX_DEBUG" )
@@ -944,7 +953,11 @@ if ( WALBERLA_CXX_COMPILER_IS_MSVC )
     string(REPLACE "/Od" "/O2"   CMAKE_CXX_FLAGS_DEBUGOPTIMIZED ${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED})
     string(REPLACE "/Ob0" "/Ob2" CMAKE_CXX_FLAGS_DEBUGOPTIMIZED ${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED})
     string(REPLACE "/RTC1" ""    CMAKE_CXX_FLAGS_DEBUGOPTIMIZED ${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED})
-elseif( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG OR WALBERLA_CXX_COMPILER_IS_INTELLLVM )
+elseif(    WALBERLA_CXX_COMPILER_IS_GNU
+        OR WALBERLA_CXX_COMPILER_IS_INTEL
+        OR WALBERLA_CXX_COMPILER_IS_CLANG
+        OR WALBERLA_CXX_COMPILER_IS_INTELLLVM
+        OR WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG )
    set( CMAKE_C_FLAGS_DEBUGOPTIMIZED   "${CMAKE_C_FLAGS_DEBUGOPTIMIZED} -O3" )
    set( CMAKE_CXX_FLAGS_DEBUGOPTIMIZED "${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED} -O3" )
 endif()
@@ -1165,11 +1178,20 @@ if ( WALBERLA_BUILD_WITH_LIKWID_MARKERS )
     find_library( LIKWID_LIB likwid HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
     find_path( LIKWID_INCLUDE_DIR likwid.h HINTS $ENV{LIKWID_INCDIR} $ENV{LIKWID_ROOT}/include )
 
+    # For some reason, these turned out to be necessary when building with likwid on Fugaku
+    if ( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG )
+        find_library( LIKWIDLUA_LIB NAMES likwid-lua HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
+        find_library( LIKWIDHWLOC_LIB NAMES likwid-hwloc HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
+    endif()
+
     if ( LIKWID_LIB AND LIKWID_INCLUDE_DIR)
         set( LIKWID_FOUND 1)
         include_directories( ${LIKWID_INCLUDE_DIR})
         add_definitions ( "-DLIKWID_PERFMON" )
         list ( APPEND SERVICE_LIBS ${LIKWID_LIB} )
+        if( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG )
+            list ( APPEND SERVICE_LIBS ${LIKWIDLUA_LIB} ${LIKWIDHWLOC_LIB} )
+        endif()
     else()
         message(WARNING "likwid marker library not found. Set environment variable LIKWID_ROOT")
         set ( WALBERLA_BUILD_WITH_LIKWID_MARKERS OFF CACHE BOOL "Compile in markers for likwid-perfctr" FORCE )