diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt
index 5cca920095ce3fcb6c74e737182a4590a58d50b9..24c36ffe8831289b79f03ddb8a39658ab8978cd2 100644
--- a/source/adios2/CMakeLists.txt
+++ b/source/adios2/CMakeLists.txt
@@ -55,7 +55,7 @@ target_include_directories(adios2
     $<BUILD_INTERFACE:${ADIOS2_BINARY_DIR}/source>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
-target_link_libraries(adios2 PRIVATE adios2sys pugixml)
+target_link_libraries(adios2 PRIVATE adios2sys_interface pugixml)
 target_link_libraries(adios2 PUBLIC ${CMAKE_THREAD_LIBS_INIT})
 
 if(UNIX)
diff --git a/source/dataman/CMakeLists.txt b/source/dataman/CMakeLists.txt
index 11e4823c7da126aee5a4d635182d0c2f161cc28d..6defa0d619677d1d3672dda13b8cd6897b497a6b 100644
--- a/source/dataman/CMakeLists.txt
+++ b/source/dataman/CMakeLists.txt
@@ -19,7 +19,7 @@ target_include_directories(dataman
   PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
 )
 target_link_libraries(dataman
-  PRIVATE adios2sys
+  PRIVATE adios2sys_interface
   PUBLIC NLohmannJson
 )
 set_target_properties(dataman PROPERTIES
diff --git a/thirdparty/KWSys/CMakeLists.txt b/thirdparty/KWSys/CMakeLists.txt
index 8c24389e10ca05c1859d7893a696184575b035ab..952fd5e0ca8ce201a9e7c17ee9e6365574e32f2e 100644
--- a/thirdparty/KWSys/CMakeLists.txt
+++ b/thirdparty/KWSys/CMakeLists.txt
@@ -2,10 +2,14 @@ set(KWSYS_NAMESPACE adios2sys)
 set(KWSYS_USE_DynamicLoader ON)
 set(KWSYS_USE_RegularExpression ON)
 set(KWSYS_USE_SystemTools ON)
-set(KWSYS_BUILD_SHARED ${BUILD_SHARED_LIBS})
+if(WIN32)
+  set(KWSYS_BUILD_SHARED OFF)
+else()
+  set(KWSYS_BUILD_SHARED ${BUILD_SHARED_LIBS})
+endif()
 set(KWSYS_SPLIT_OBJECTS_FROM_INTERFACE ON)
 set(KWSYS_INSTALL_EXPORT_NAME adios2Exports)
 set(KWSYS_INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR})
-set(KWSYS_DEFINE_SYMBOL adios2_EXPORTS)
 
 add_subdirectory(adios2sys)
+add_library(adios2sys_interface ALIAS adios2sys_private)