diff --git a/CMakeLists.txt b/CMakeLists.txt
index f6ef46469..6157b930f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -430,8 +430,12 @@ include_directories(BEFORE SYSTEM ${EIGEN3_INCLUDE_DIR})
 
 find_package(EXPAT REQUIRED)
 
-if (NOT TARGET EXPAT::EXPAT AND TARGET expat::expat)
-    add_library(EXPAT::EXPAT ALIAS expat::expat)
+add_library(libexpat INTERFACE)
+
+if (TARGET EXPAT::EXPAT )
+    target_link_libraries(libexpat INTERFACE EXPAT::EXPAT)
+elseif(TARGET expat::expat)
+    target_link_libraries(libexpat INTERFACE expat::expat)
 endif ()
 
 find_package(PNG REQUIRED)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1486452f6..844ef46f9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -82,7 +82,7 @@ if (SLIC3R_GUI)
     string(REGEX MATCH "wxexpat" WX_EXPAT_BUILTIN ${wxWidgets_LIBRARIES})
     if (EXPAT_FOUND AND NOT WX_EXPAT_BUILTIN)
         list(FILTER wxWidgets_LIBRARIES EXCLUDE REGEX expat)
-        list(APPEND wxWidgets_LIBRARIES EXPAT::EXPAT)
+        list(APPEND wxWidgets_LIBRARIES libexpat)
     endif ()
     
     # This is an issue in the new wxWidgets cmake build, doesn't deal with librt
diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
index 4daab5218..4bda3b440 100644
--- a/src/libslic3r/CMakeLists.txt
+++ b/src/libslic3r/CMakeLists.txt
@@ -384,7 +384,7 @@ target_link_libraries(libslic3r
     boost_libs
     clipper
     nowide
-    EXPAT::EXPAT
+    libexpat
     glu-libtess
     qhull
     semver