diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3d3332ebf53bd2867c0b060817fe55a5945015e5..dc23cf88a3cef331de92c1ca1dfa23bd964d86f6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -136,12 +136,10 @@ add_custom_command(
 # add generated files to include path
 include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
 
-# show generated files
-message(DEBUG "GRPC_GENERATED: ${GRPC_GENERATED}")
-
 ###############################################################################
 ### Set up main targets
-### * caosdb - The main library including the protobuf and grpc generated files.
+### * caosdb_grpc - protobuf- and grpc-generated sources
+### * caosdb - The main C++ library 
 ### * cxxcaosdbcli - A C++ test client.
 ### * ccaosdb - A C-Wrapper of the C++ caosdb library.
 ### * ccaosdbcli - A plain C test client.
@@ -165,13 +163,19 @@ message(DEBUG "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
 message(DEBUG "libcaosdb_SOURCE_DIR: ${libcaosdb_SOURCE_DIR}")
 message(DEBUG "libcaosdb_BINARY_DIR: ${libcaosdb_BINARY_DIR}")
 
+# libcaosdb_grpc
+# --------------
+add_library(caosdb_grpc STATIC ${GRPC_GENERATED})
+target_link_libraries(caosdb_grpc 
+	gRPC::grpc gRPC::grpc++ protobuf::libprotobuf
+)
 
 # libcaosdb
 # ---------
 add_library(caosdb SHARED
-     ${libcaosdb_INCL} ${libcaosdb_SRC} ${GRPC_GENERATED})
+     ${libcaosdb_INCL} ${libcaosdb_SRC})
 target_link_libraries(caosdb PUBLIC
-    gRPC::grpc gRPC::grpc++ protobuf::libprotobuf ${Boost_LIBRARIES}
+    caosdb_grpc gRPC::grpc gRPC::grpc++ protobuf::libprotobuf ${Boost_LIBRARIES}
 )
 set(LIBCAOSDB caosdb)
 
@@ -184,10 +188,9 @@ target_include_directories(caosdb PUBLIC
 
 # libccaosdb
 # ----------
-add_library(ccaosdb SHARED src/ccaosdb.cpp ${GRPC_GENERATED})
+add_library(ccaosdb SHARED src/ccaosdb.cpp)
 target_link_libraries(ccaosdb PUBLIC
-    caosdb
-    gRPC::grpc gRPC::grpc++ protobuf::libprotobuf ${Boost_LIBRARIES}
+    caosdb caosdb_grpc gRPC::grpc gRPC::grpc++ protobuf::libprotobuf ${Boost_LIBRARIES}
 )
 target_include_directories(ccaosdb PUBLIC
     $<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
@@ -195,6 +198,7 @@ target_include_directories(ccaosdb PUBLIC
     $<INSTALL_INTERFACE:include>
 )
 
+#set_target_properties(ccaosdb PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_BINARY_DIR}/caosdb.dir/${CMAKE_BUILD_TYPE}/exports.def")
 
 # ccaosdbcli
 # ----------
@@ -204,10 +208,9 @@ target_include_directories(ccaosdbcli PUBLIC
     $<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
     $<INSTALL_INTERFACE:include>
 )
-
 target_link_libraries(ccaosdbcli PRIVATE
+    caosdb_grpc ccaosdb
     gRPC::grpc protobuf::libprotobuf ${Boost_LIBRARIES}    
-    ccaosdb
 )
 
 # cxxcaosdbcli
@@ -219,7 +222,7 @@ target_include_directories(cxxcaosdbcli PUBLIC
     $<INSTALL_INTERFACE:include>
 )
 target_link_libraries(cxxcaosdbcli PRIVATE
-    caosdb gRPC::grpc++ protobuf::libprotobuf ${Boost_LIBRARIES}
+    caosdb caosdb_grpc  gRPC::grpc++ protobuf::libprotobuf ${Boost_LIBRARIES}
 )
 
 
@@ -346,10 +349,10 @@ endif()
 ### UNIT TEST
 #######################################################
 
-if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
+#if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
     enable_testing()
     add_subdirectory(test)
-endif()
+#endif()
 
 # ###############################################
 # ############ INSTALLATION #####################
@@ -361,7 +364,7 @@ set(libcaosdb_LIB_DEST "lib")
 set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local/")
 install(
     # targets to install
-    TARGETS ${LIBCAOSDB} ccaosdb
+    TARGETS ${LIBCAOSDB} ccaosdb caosdb_grpc
     # name of the CMake "export group" containing the targets we want to install
     EXPORT caosdbTargets
     # Dynamic, static library and include destination locations after running
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 34cd4ec502e0abfa8c2a9f722af87411c3b8abeb..8f0df5470c9446da20c4cacb54c99097f108b16a 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -61,11 +61,11 @@ list(LENGTH test_cases len_test_cases)
 math(EXPR len_test_cases "${len_test_cases} - 1")
 foreach (i RANGE "${len_test_cases}")
     list(GET test_cases ${i} test_case_name)
-    add_executable(${test_case_name} ${test_case_name}.cpp ${GRPC_GENERATED})
+    add_executable(${test_case_name} ${test_case_name}.cpp)    
     set(libcaosdb_TEST_SRC "${CMAKE_CURRENT_SOURCE_DIR}/${test_case_name}.cpp
         ${libcaosdb_TEST_SRC}")
     target_link_libraries(${test_case_name}
-        PRIVATE GTest::gtest_main caosdb ccaosdb gtest::gtest)
+        PRIVATE GTest::gtest_main caosdb ccaosdb gtest::gtest caosdb_grpc)
     target_include_directories(${test_case_name}
       PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/include ${CMAKE_CURRENT_BINARY_DIR})
     if(_LINTING)