--- ./CMakeLists.txt.origin	2025-02-10 16:06:26.668143031 -0600
+++ ./CMakeLists.txt	2025-02-10 16:07:02.298287306 -0600
@@ -36,7 +36,7 @@
 project(lightgbm LANGUAGES C CXX)
 
 if(BUILD_CPP_TEST)
-  set(CMAKE_CXX_STANDARD 14)
+  set(CMAKE_CXX_STANDARD 17)
 else()
   set(CMAKE_CXX_STANDARD 11)
 endif()
@@ -329,7 +329,7 @@
 if(UNIX OR MINGW OR CYGWIN)
   set(
     CMAKE_CXX_FLAGS
-    "${CMAKE_CXX_FLAGS} -pthread -Wextra -Wall -Wno-ignored-attributes -Wno-unknown-pragmas -Wno-return-type"
+    "${CMAKE_CXX_FLAGS} -std=c++17 -pthread -Wextra -Wall -Wno-ignored-attributes -Wno-unknown-pragmas -Wno-return-type"
   )
   if(MINGW)
     # ignore this warning: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95353
@@ -654,7 +654,7 @@
 
 #-- Google C++ tests
 if(BUILD_CPP_TEST)
-  find_package(GTest CONFIG)
+  find_package(GTest REQUIRED)
   if(NOT GTEST_FOUND)
     message(STATUS "Did not find Google Test in the system root. Fetching Google Test now...")
     include(FetchContent)
@@ -674,8 +674,10 @@
   if(MSVC)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive-")
   endif()
+  list(FILTER CPP_TEST_SOURCES EXCLUDE REGEX ".*test_arrow\\.cpp$" )
   add_executable(testlightgbm ${CPP_TEST_SOURCES})
   target_link_libraries(testlightgbm PRIVATE lightgbm_objs lightgbm_capi_objs GTest::GTest)
+  target_link_options(testlightgbm PRIVATE "-Wl,-bkeepfile:CMakeFiles/testlightgbm.dir/tests/cpp_tests/test_common.cpp.o")
 endif()
 
 if(BUILD_CLI)
