diff --git a/CMakeLists.txt b/CMakeLists.txt
index 182a94163811795c4786d46c88d17fd0467582dc..492fe28ef1824427466a0ac32323835754271a37 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -140,14 +140,7 @@ endif(USE_CXX OR INCLUDE_CUDA)
 
 set(SOURCES ${MEMPROC_HEADERS_CU} ${MEMPROC_SOURCES_CU} ${MEMPROC_HEADERS_CXX} ${MEMPROC_SOURCES_CXX} ${HEADERS_CU} ${SOURCES_CU} ${HEADERS_C} ${HEADERS_CXX} ${SOURCES_CXX} ${SOURCES_C} ${HEADERS_F} ${SOURCES_F})
 
-set(CMAKE_Fortran_FLAGS " -g -fbacktrace -ffpe-trap=zero,overflow,underflow -cpp ")
-
-if(USE_CXX OR INCLUDE_CUDA)
-    set(CMAKE_CXX_FLAGS  " -g -Wunused-variable ")
-    set(CMAKE_C_FLAGS " -g ")
-
-    set(CMAKE_CUDA_FLAGS " -g ")
-endif(USE_CXX OR INCLUDE_CUDA)
+set(CMAKE_Fortran_FLAGS " -cpp ")
 
 add_executable(sfx ${SOURCES})
 set_property(TARGET sfx PROPERTY LINKER_LANGUAGE Fortran)
@@ -158,6 +151,18 @@ if(USE_CONFIG_PARSER)
     target_link_libraries(sfx config_parser_F config_parser_CXX)
 endif(USE_CONFIG_PARSER)
 
+if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+    target_compile_options(sfx
+        PUBLIC $<$<COMPILE_LANGUAGE:C>: -g >)
+	target_compile_options(sfx
+        PUBLIC $<$<COMPILE_LANGUAGE:CXX>: -g >)
+    target_compile_options(sfx
+        PUBLIC $<$<COMPILE_LANGUAGE:CUDA>: -g >)
+    target_compile_options(sfx
+        PUBLIC $<$<COMPILE_LANGUAGE:Fortran>: -g -fbacktrace -ffpe-trap=zero,overflow,underflow >)
+endif()
+
+
 # copy data & configs on post build
 add_custom_command(
         TARGET sfx POST_BUILD