diff --git a/src/xalanc/Utils/CMakeLists.txt b/src/xalanc/Utils/CMakeLists.txt
index 2d78685..72b611b 100644
--- a/src/xalanc/Utils/CMakeLists.txt
+++ b/src/xalanc/Utils/CMakeLists.txt
@@ -41,11 +41,15 @@ add_custom_target(locale ALL)
 set_target_properties(locale PROPERTIES FOLDER "Message Library")
 
 # workaround for case of missing xerces-c dll
+if(CMAKE_HOST_WIN32)
 if(EXISTS ${XercesC_INCLUDE_DIR}/../bin)
   set(MsgCreator_WD $<TARGET_FILE_DIR:XercesC::XercesC>/../bin)
 else()
   set(MsgCreator_WD "${XSL_NLS_GEN_DIR}")
 endif()
+else()
+  set(MsgCreator_WD "${PROJECT_BINARY_DIR}")
+endif()
 
 if(msgloader STREQUAL "inmemory")
   add_custom_command(
