diff --git a/CMakeLists.txt b/CMakeLists.txt
index 66d3ef91dab94bf1dd9aa4a7f865e338f6c96c0b..e7e0a17c5cdbde969cffcfb5f4674088d74e3b56 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,6 +9,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake_modules/ /opt/rocm
 set (CMAKE_CXX_STANDARD 14)
 set (CMAKE_CUDA_STANDARD 14)
 
+set (ENV{BOOST_ROOT} ${BOOST_ROOT})
+set (Boost_NO_BOOST_CMAKE OFF)
 find_package(Boost 1.72.0 REQUIRED COMPONENTS unit_test_framework iostreams program_options OPTIONAL_COMPONENTS fiber context)
 find_package(OpenMP)
 
@@ -27,7 +29,6 @@ if (CUDA_ON_BACKEND STREQUAL "HIP" AND NOT HIP_FOUND)
         if (CUDA_ON_BACKEND="HIP")
                 set(CMAKE_CXX_EXTENSIONS OFF)
         endif()
-        set(DEFINE_CUDA_GPU "#define CUDA_GPU" PARENT_SCOPE)
         set(DEFINE_CUDA_GPU "#define CUDA_GPU")
 endif()
 
@@ -37,44 +38,26 @@ if (CUDA_ON_BACKEND STREQUAL "CUDA")
 	find_package(CUDA)
 	if (CUDA_VERSION_MAJOR EQUAL 9 AND CUDA_VERSION_MINOR EQUAL 2)
 		message("CUDA is compatible 9.2")
-		set(WARNING_SUPPRESSION_AND_OPTION_NVCC  -Xcudafe "--display_error_number --diag_suppress=611 --diag_suppress=2885 --diag_suppress=2886  --diag_suppress=2887  --diag_suppress=2888 --diag_suppress=186 --diag_suppress=111" --expt-extended-lambda PARENT_SCOPE)
-		set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT  "-Xcudafe \"--display_error_number --diag_suppress=611 --diag_suppress=2885 --diag_suppress=2886  --diag_suppress=2887  --diag_suppress=2888 --diag_suppress=186 --diag_suppress=111\" --expt-extended-lambda " PARENT_SCOPE)
 	elseif ( CUDA_VERSION_MAJOR EQUAL 10 AND CUDA_VERSION_MINOR EQUAL 1 )
         	message("CUDA is compatible 10.1")
-        	set(WARNING_SUPPRESSION_AND_OPTION_NVCC  -Xcudafe "--display_error_number --diag_suppress=2931 --diag_suppress=2930 --diag_suppress=2929 --diag_suppress=2928  --diag_suppress=2915 --diag_suppress=2912 --diag_suppress=2913 --diag_suppress=111 --diag_suppress=186 --diag_suppress=611 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE)
-		set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT "-Xcudafe \"--display_error_number --display_error_number --diag_suppress=2931 --diag_suppress=2930 --diag_suppress=2929 --diag_suppress=2928  --diag_suppress=2915 --diag_suppress=2912 --diag_suppress=2913 --diag_suppress=111 --diag_suppress=186 --diag_suppress=611 --diag_suppress=128 \" --expt-extended-lambda" PARENT_SCOPE)
 	elseif ( CUDA_VERSION_MAJOR EQUAL 10 AND CUDA_VERSION_MINOR EQUAL 2 )
 		message("CUDA is compatible 10.2")
-		set(WARNING_SUPPRESSION_AND_OPTION_NVCC  -Xcudafe "--display_error_number --diag_suppress=2976 --diag_suppress=2977 --diag_suppress=2978 --diag_suppress=2979 --diag_suppress=1835 --diag_suppress=611 --diag_suppress=186 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE)
-		set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT  "-Xcudafe \"--display_error_number --diag_suppress=2976 --diag_suppress=2977 --diag_suppress=2978 --diag_suppress=2979 --diag_suppress=1835 --diag_suppress=611 --diag_suppress=186 --diag_suppress=128\" --expt-extended-lambda" PARENT_SCOPE)
     	elseif ( CUDA_VERSION_MAJOR EQUAL 11 AND CUDA_VERSION_MINOR EQUAL 0 )
         	message("CUDA is compatible 11.0")
-        	set(WARNING_SUPPRESSION_AND_OPTION_NVCC  -Xcudafe "--display_error_number --diag_suppress=3056 --diag_suppress=3057 --diag_suppress=3058 --diag_suppress=3059 --diag_suppress=611  --diag_suppress=186 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE)
-        	set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT  "-Xcudafe \"--display_error_number --diag_suppress=3056 --diag_suppress=3057  --diag_suppress=3058 --diag_suppress=3059 --diag_suppress=611  --diag_suppress=186 --diag_suppress=128\" --expt-extended-lambda" PARENT_SCOPE)
 	elseif ( CUDA_VERSION_MAJOR EQUAL 11 AND CUDA_VERSION_MINOR EQUAL 1 )
         	message("CUDA is compatible 11.1")
-        	set(WARNING_SUPPRESSION_AND_OPTION_NVCC  -Xcudafe "--display_error_number --diag_suppress=3124 --diag_suppress=3126 --diag_suppress=3125 --diag_suppress=3123 --diag_suppress=611  --diag_suppress=186 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE)
-        	set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT  "-Xcudafe \"--display_error_number --diag_suppress=3124 --diag_suppress=3126  --diag_suppress=3125 --diag_suppress=3123 --diag_suppress=611  --diag_suppress=186 --diag_suppress=128\" --expt-extended-lambda" PARENT_SCOPE)
 	elseif ( CUDA_VERSION_MAJOR EQUAL 11 AND (CUDA_VERSION_MINOR EQUAL 2 OR CUDA_VERSION_MINOR EQUAL 3 OR CUDA_VERSION_MINOR EQUAL 4 ))
         	message("CUDA is compatible 11.2/3/4")
-        	set(WARNING_SUPPRESSION_AND_OPTION_NVCC  -Xcudafe "--display_error_number --diag_suppress=20014 --diag_suppress=20013 --diag_suppress=20012 --diag_suppress=20011 --diag_suppress=611 --diag_suppress=550  --diag_suppress=186 --diag_suppress=128" --expt-extended-lambda PARENT_SCOPE)
-        	set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT  "-Xcudafe \"--display_error_number --diag_suppress=20014 --diag_suppress=20013 --diag_suppress=20012 --diag_suppress=20011 --diag_suppress=611 --diag_suppress=550  --diag_suppress=186 --diag_suppress=128\" --expt-extended-lambda" PARENT_SCOPE)
 	else()
 		message(FATAL_ERROR "CUDA is incompatible, version 9.2 10.1 10.2 11.1 11.2 11.3 11.4 is only supported")
 	endif()
-	set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_CUDA" PARENT_SCOPE)
 	set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_CUDA")
-        set(DEFINE_CUDA_GPU "#define CUDA_GPU" PARENT_SCOPE)
         set(DEFINE_CUDA_GPU "#define CUDA_GPU")
 elseif (CUDA_ON_BACKEND STREQUAL "OpenMP")
-	set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_OPENMP" PARENT_SCOPE)
 	set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_OPENMP")
-        set(DEFINE_CUDA_GPU "#define CUDA_GPU" PARENT_SCOPE)
         set(DEFINE_CUDA_GPU "#define CUDA_GPU")
 elseif (CUDA_ON_BACKEND STREQUAL "SEQUENTIAL")
-	set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_SEQUENTIAL" PARENT_SCOPE)
 	set(DEFINE_CUDIFY_BACKEND "#define CUDIFY_USE_SEQUENTIAL")
-        set(DEFINE_CUDA_GPU "#define CUDA_GPU" PARENT_SCOPE)
         set(DEFINE_CUDA_GPU "#define CUDA_GPU")
 else()
 	find_package(alpaka)
@@ -83,43 +66,32 @@ endif()
 ###### CONFIG.h FILE ######
 
 if(HIP_FOUND)
-	set(DEFINE_HIP_GPU "#define HIP_GPU" PARENT_SCOPE)
-	set(DEFINE_CUDIFY_USE_HIP "#define CUDIFY_USE_HIP" PARENT_SCOPE)
         set(DEFINE_HIP_GPU "#define HIP_GPU")
         set(DEFINE_CUDIFY_USE_HIP "#define CUDIFY_USE_HIP")
 endif()
 
 
 if (Boost_FOUND)
-	set(DEFINE_HAVE_BOOST "#define HAVE_BOOST" PARENT_SCOPE)
-	set(DEFINE_HAVE_BOOST_IOSTREAMS "#define HAVE_BOOST_IOSTREAMS" PARENT_SCOPE)
-	set(DEFINE_HAVE_BOOST_PROGRAM_OPTIONS "#define HAVE_BOOST_PROGRAM_OPTIONS" PARENT_SCOPE)
-	set(DEFINE_HAVE_BOOST_UNIT_TEST_FRAMEWORK "#define HAVE_BOOST_UNIT_TEST_FRAMEWORK" PARENT_SCOPE)
         set(DEFINE_HAVE_BOOST "#define HAVE_BOOST")
         set(DEFINE_HAVE_BOOST_IOSTREAMS "#define HAVE_BOOST_IOSTREAMS")
         set(DEFINE_HAVE_BOOST_PROGRAM_OPTIONS "#define HAVE_BOOST_PROGRAM_OPTIONS")
         set(DEFINE_HAVE_BOOST_UNIT_TEST_FRAMEWORK "#define HAVE_BOOST_UNIT_TEST_FRAMEWORK")
 
 	if (Boost_CONTEXT_FOUND)
-		set(DEFINE_HAVE_BOOST_CONTEXT "#define HAVE_BOOST_CONTEXT" PARENT_SCOPE)
 		set(DEFINE_HAVE_BOOST_CONTEXT "#define HAVE_BOOST_CONTEXT")
 		set(OPTIONAL_BOOST_LIBS "-lboost_context")
 	endif()
 	if (Boost_FIBER_FOUND)
-		set(DEFINE_HAVE_BOOST_FIBER "#define HAVE_BOOST_FIBER" PARENT_SCOPE)
 		set(DEFINE_HAVE_BOOST_FIBER "#define HAVE_BOOST_FIBER")
 		string(CONCAT OPTIONAL_BOOST_LIBS ${OPTIONAL_BOOST_LIBS}  " -lboost_fiber")
 	endif()
-	set(OPTIONAL_BOOST_LIBS ${OPTIONAL_BOOST_LIBS} PARENT_SCOPE)
 endif()
 
 if (OPENMP_FOUND)
-	set(DEFINE_HAVE_OPENMP "#define HAVE_OPENMP" PARENT_SCOPE)
 	set(DEFINE_HAVE_OPENMP "#define HAVE_OPENMP")
 endif()
 
 if (ALPAKA_ROOT)
-	set(DEFINE_HAVE_ALPAKA "#define HAVE_ALPAKA" PARENT_SCOPE)
 	set(DEFINE_HAVE_ALPAKA "#define HAVE_ALPAKA")
 endif()
 
@@ -158,3 +130,23 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config/config_cmake.h.in ${CMAKE_
 
 add_subdirectory (src)
 
+get_directory_property(hasParent PARENT_DIRECTORY)
+if(hasParent)
+	set(DEFINE_CUDA_GPU ${DEFINE_CUDA_GPU} PARENT_SCOPE)
+	set(WARNING_SUPPRESSION_AND_OPTION_NVCC ${WARNING_SUPPRESSION_AND_OPTION_NVCC}  PARENT_SCOPE)
+	set(WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT ${WARNING_SUPPRESSION_AND_OPTION_NVCC_TEXT} PARENT_SCOPE)
+        set(DEFINE_HIP_GPU ${DEFINE_HIP_GPU} PARENT_SCOPE)
+        set(DEFINE_CUDIFY_USE_HIP ${DEFINE_CUDIFY_USE_HIP} PARENT_SCOPE)
+        set(DEFINE_HAVE_BOOST ${DEFINE_HAVE_BOOST} PARENT_SCOPE)
+        set(DEFINE_HAVE_BOOST_IOSTREAMS ${DEFINE_HAVE_BOOST_IOSTREAMS} PARENT_SCOPE)
+        set(DEFINE_HAVE_BOOST_PROGRAM_OPTIONS ${DEFINE_HAVE_BOOST_PROGRAM_OPTIONS} PARENT_SCOPE)
+        set(DEFINE_HAVE_BOOST_UNIT_TEST_FRAMEWORK ${DEFINE_HAVE_BOOST_UNIT_TEST_FRAMEWORK} PARENT_SCOPE)
+	set(DEFINE_HAVE_BOOST_CONTEXT ${DEFINE_HAVE_BOOST_CONTEXT} PARENT_SCOPE)
+	set(DEFINE_HAVE_BOOST_FIBER ${DEFINE_HAVE_BOOST_FIBER} PARENT_SCOPE)
+        set(DEFINE_CUDIFY_BACKEND ${DEFINE_CUDIFY_BACKEND} PARENT_SCOPE)
+        set(DEFINE_CUDA_GPU ${DEFINE_CUDA_GPU}  PARENT_SCOPE)
+	set(OPTIONAL_BOOST_LIBS ${OPTIONAL_BOOST_LIBS} PARENT_SCOPE)
+	set(DEFINE_HAVE_OPENMP ${DEFINE_HAVE_OPENMP} PARENT_SCOPE)
+	set(DEFINE_HAVE_ALPAKA ${DEFINE_HAVE_ALPAKA} PARENT_SCOPE)
+endif()
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 59cf7a5b45aa82973d3153562bffc597d15ae771..0b36892a08b0b949bf280056958111b610253a01 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -37,10 +37,11 @@ if ( CUDA_ON_BACKEND STREQUAL "HIP" AND HIP_FOUND )
 else()
 
 	add_executable(mem main.cpp memory/HeapMemory.cpp util/cudify/cudify_vars.cpp util/cudify/cudify_unit_test.cu memory/mem_conf.cpp  ${CUDA_SOURCES} ${CUDA_SOURCES_TEST})
-
+	set_property(TARGET mem PROPERTY CUDA_ARCHITECTURES OFF)
 	add_library(ofpmmemory STATIC memory/HeapMemory.cpp util/cudify/cudify_vars.cpp memory/PtrMemory.cpp memory/mem_conf.cpp  ${CUDA_SOURCES})
+	set_property(TARGET ofpmmemory PROPERTY CUDA_ARCHITECTURES OFF)
 	add_library(ofpmmemory_dl SHARED memory/HeapMemory.cpp util/cudify/cudify_vars.cpp memory/PtrMemory.cpp memory/mem_conf.cpp  ${CUDA_SOURCES})
-
+	set_property(TARGET ofpmmemory_dl PROPERTY CUDA_ARCHITECTURES OFF)
 endif()
 
 set_property(TARGET mem PROPERTY CUDA_ARCHITECTURES OFF)
@@ -53,9 +54,6 @@ if (HIP_FOUND)
         SET(CMAKE_SHARED_LINKER_FLAGS  "--amdgpu-target=${AMD_ARCH_COMPILE}")
 endif()
 
-if(OpenMP_CXX_FOUND)
-    target_compile_options(mem PUBLIC ${OpenMP_CXX_FLAGS})
-endif()
 
 if ( CMAKE_COMPILER_IS_GNUCC )
     target_compile_options(mem PRIVATE "-Wno-deprecated-declarations")