diff --git a/CMakeLists.txt b/CMakeLists.txt
index ca37b5f..c6989fa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -497,10 +497,17 @@
 if (PARQUET_BOOST_USE_SHARED)
   set(BOOST_LINK_LIBS
     boost_shared_regex)
+  if(MSVC)
+    set(BOOST_LINK_LIBS ${BOOST_LINK_LIBS}
+      boost_shared_system)
+  endif()
 else()
   set(BOOST_LINK_LIBS
-    boost_static_regex
-    boost_static_system)
+    boost_static_regex)
+  if(MSVC)
+    set(BOOST_LINK_LIBS ${BOOST_LINK_LIBS}
+      boost_static_system)
+  endif()
 endif()
 
 #############################################################
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
index 3662540..4de3089 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -68,26 +68,40 @@
 
     # force all boost libraries to dynamic link
     add_definitions(-DBOOST_ALL_DYN_LINK)
+    find_package(Boost COMPONENTS regex system REQUIRED)
+  else()
+    find_package(Boost COMPONENTS regex REQUIRED)
   endif()
 
-  find_package(Boost COMPONENTS regex system REQUIRED)
   if ("${UPPERCASE_BUILD_TYPE}" STREQUAL "DEBUG")
     set(BOOST_SHARED_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_DEBUG})
-    set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
+    if (MSVC)
+      set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
+    endif()
   else()
     set(BOOST_SHARED_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_RELEASE})
-    set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
+    if (MSVC)
+      set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
+    endif()
   endif()
 else()
   # Find static Boost libraries.
   set(Boost_USE_STATIC_LIBS ON)
-  find_package(Boost COMPONENTS regex system REQUIRED)
+  if (MSVC)
+    find_package(Boost COMPONENTS regex system REQUIRED)
+  else()
+    find_package(Boost COMPONENTS regex REQUIRED)
+  endif()
   if ("${UPPERCASE_BUILD_TYPE}" STREQUAL "DEBUG")
     set(BOOST_STATIC_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_DEBUG})
-    set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
+    if (MSVC)
+      set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
+    endif()
   else()
     set(BOOST_STATIC_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_RELEASE})
-    set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
+    if (MSVC)
+      set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
+    endif()
   endif()
 endif()
 
@@ -102,19 +116,18 @@
     set_target_properties(boost_shared_regex
                           PROPERTIES IMPORTED_LOCATION "${BOOST_SHARED_REGEX_LIBRARY}")
   endif()
-  add_library(boost_shared_system SHARED IMPORTED)
   if (MSVC)
+    add_library(boost_shared_system SHARED IMPORTED)
     set_target_properties(boost_shared_system
                           PROPERTIES IMPORTED_IMPLIB "${BOOST_SHARED_SYSTEM_LIBRARY}")
-  else()
-    set_target_properties(boost_shared_system
-                          PROPERTIES IMPORTED_LOCATION "${BOOST_SHARED_SYSTEM_LIBRARY}")
   endif()
 else()
   add_library(boost_static_regex STATIC IMPORTED)
   set_target_properties(boost_static_regex PROPERTIES IMPORTED_LOCATION ${BOOST_STATIC_REGEX_LIBRARY})
-  add_library(boost_static_system STATIC IMPORTED)
-  set_target_properties(boost_static_system PROPERTIES IMPORTED_LOCATION ${BOOST_STATIC_SYSTEM_LIBRARY})
+  if (MSVC)
+    add_library(boost_static_system STATIC IMPORTED)
+    set_target_properties(boost_static_system PROPERTIES IMPORTED_LOCATION ${BOOST_STATIC_SYSTEM_LIBRARY})
+  endif()
 endif()
 
 include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
