@@ -20,6 +20,13 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
2020 endif ()
2121endif ()
2222
23+ # Handle threading library for different platforms
24+ if (WIN32 )
25+ set (THREADING_LIB "" )
26+ else ()
27+ set (THREADING_LIB "-pthread" )
28+ endif ()
29+
2330message ("CMAKE_CXX_COMPILER_VERSION: " ${CMAKE_CXX_COMPILER_VERSION} )
2431
2532option (ENABLE_JSON "enable the json example with nlohmann library" ON )
@@ -128,7 +135,7 @@ add_executable(pimpl src/pimpl/main.cpp src/pimpl/studentpimpl.cpp)
128135add_executable (return_type_resolver src/return_type_resolver.cpp)
129136
130137add_executable (RAII src/RAII.cpp)
131- target_link_libraries (RAII -pthread )
138+ target_link_libraries (RAII ${THREADING_LIB} )
132139
133140add_executable (SFINAE src/SFINAE.cpp)
134141
@@ -142,36 +149,36 @@ add_executable(stack_unwinding src/stack_unwinding.cpp)
142149
143150# ############################ Multithreading #############################
144151add_executable (creating_and_terminating_threads src/multithreading/creating_and_terminating_threads.cpp)
145- target_link_libraries (creating_and_terminating_threads -pthread )
152+ target_link_libraries (creating_and_terminating_threads ${THREADING_LIB} )
146153
147154add_executable (differentiating_between_threads src/multithreading/differentiating_between_threads.cpp)
148- target_link_libraries (differentiating_between_threads -pthread )
155+ target_link_libraries (differentiating_between_threads ${THREADING_LIB} )
149156
150157add_executable (sleeping_threads src/multithreading/sleeping_threads.cpp)
151- target_link_libraries (sleeping_threads -pthread )
158+ target_link_libraries (sleeping_threads ${THREADING_LIB} )
152159
153160add_executable (join_detach_threads src/multithreading/join_detach_threads.cpp)
154- target_link_libraries (join_detach_threads -pthread )
161+ target_link_libraries (join_detach_threads ${THREADING_LIB} )
155162
156163add_executable (mutex src/multithreading/mutex.cpp)
157- target_link_libraries (mutex -pthread )
164+ target_link_libraries (mutex ${THREADING_LIB} )
158165
159166# add_executable(condition_variable src/multithreading/condition_variable.cpp)
160167# target_link_libraries(condition_variable -pthread)
161168add_executable (async_future_promise src/multithreading/async_future_promise.cpp)
162- target_link_libraries (async_future_promise -pthread )
169+ target_link_libraries (async_future_promise ${THREADING_LIB} )
163170
164171add_executable (dead_lock src/multithreading/dead_lock.cpp)
165- target_link_libraries (dead_lock -pthread )
172+ target_link_libraries (dead_lock ${THREADING_LIB} )
166173
167174add_executable (thread_safe src/multithreading/thread_safe.cpp)
168- target_link_libraries (thread_safe -pthread )
175+ target_link_libraries (thread_safe ${THREADING_LIB} )
169176
170177add_executable (packaged_task src/multithreading/packaged_task.cpp)
171- target_link_libraries (packaged_task -pthread )
178+ target_link_libraries (packaged_task ${THREADING_LIB} )
172179
173180add_executable (race_condition src/multithreading/race_condition.cpp)
174- target_link_libraries (race_condition -pthread )
181+ target_link_libraries (race_condition ${THREADING_LIB} )
175182
176183add_executable (unique_lock src/multithreading/unique_lock.cpp)
177184target_link_libraries (unique_lock -pthread)
0 commit comments