From bd7b27eb18cdaf6255cfaa3d0bcadda4489f0158 Mon Sep 17 00:00:00 2001 From: cdemeyer-teachx Date: Sun, 31 Aug 2025 14:36:26 +0900 Subject: [PATCH] fix thread compilation issue for windows --- demos/CMakeLists.txt | 7 +++++-- demos/sudoku/CMakeLists.txt | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt index 9986095..96e8170 100644 --- a/demos/CMakeLists.txt +++ b/demos/CMakeLists.txt @@ -10,9 +10,12 @@ target_include_directories(sudoku_demo_renderer PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/.. ) -# Link pthread for std::thread +# Link threading library for std::thread (platform-specific) +set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) -target_link_libraries(sudoku_demo_renderer Threads::Threads) +if(Threads_FOUND) + target_link_libraries(sudoku_demo_renderer Threads::Threads) +endif() # Set C++17 standard set_target_properties(sudoku_demo_renderer PROPERTIES diff --git a/demos/sudoku/CMakeLists.txt b/demos/sudoku/CMakeLists.txt index e7a5241..ae2f7f2 100644 --- a/demos/sudoku/CMakeLists.txt +++ b/demos/sudoku/CMakeLists.txt @@ -35,6 +35,10 @@ else() message(WARNING "Google Benchmark not found. Benchmarks will not be built.") endif() +# Find threading library for platform-specific threading support +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads) + # Create the main executable add_executable(sudoku_demo main.cpp @@ -119,7 +123,10 @@ if(HAS_GTEST) test_sudoku.cpp ) - target_link_libraries(sudoku_tests GTest::gtest GTest::gtest_main nd-wfc pthread) + target_link_libraries(sudoku_tests GTest::gtest GTest::gtest_main nd-wfc) + if(Threads_FOUND) + target_link_libraries(sudoku_tests Threads::Threads) + endif() # Set test output directory set_target_properties(sudoku_tests PROPERTIES @@ -142,7 +149,10 @@ if(HAS_BENCHMARK) benchmark_sudoku.cpp ) - target_link_libraries(sudoku_benchmarks benchmark::benchmark nd-wfc pthread) + target_link_libraries(sudoku_benchmarks benchmark::benchmark nd-wfc) + if(Threads_FOUND) + target_link_libraries(sudoku_benchmarks Threads::Threads) + endif() # Set benchmark output directory set_target_properties(sudoku_benchmarks PROPERTIES