Skip to content

Commit

Permalink
Fix Threads linking issue under Windows
Browse files Browse the repository at this point in the history
Only gcc needs the Threads library linked and it can't be correctly
linked under windows, so add a check that we're compiling with gcc.
  • Loading branch information
LeonMatthesKDAB committed Jan 17, 2024
1 parent eeda9ee commit 219eba4
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions tests/signal/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,17 @@ project(test-signal VERSION 0.1 LANGUAGES CXX)
add_executable(${PROJECT_NAME}
tst_signal.cpp
)

target_link_libraries(${PROJECT_NAME} KDAB::KDBindings)

# For some reason, CMake with gcc doesn't automatically include the pthread library
# when using std::thread. This is a workaround for that.
# IMHO, this is ridiculous, std::thread is part of the standard library, it should just work
# when I use C++, but it is what it is.
# See: https://cmake.cmake.narkive.com/wWDhK9RQ/undefined-reference-to-pthread-create
find_package (Threads)
target_link_libraries(${PROJECT_NAME} KDAB::KDBindings ${CMAKE_THREAD_LIBS_INIT})
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
find_package (Threads)
target_link_libraries(${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT})
endif()

add_test(${PROJECT_NAME} ${PROJECT_NAME})

0 comments on commit 219eba4

Please sign in to comment.