@@ -20,6 +20,13 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
20
20
endif ()
21
21
endif ()
22
22
23
+ # Handle threading library for different platforms
24
+ if (WIN32 )
25
+ set (THREADING_LIB "" )
26
+ else ()
27
+ set (THREADING_LIB "-pthread" )
28
+ endif ()
29
+
23
30
message ("CMAKE_CXX_COMPILER_VERSION: " ${CMAKE_CXX_COMPILER_VERSION} )
24
31
25
32
option (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)
128
135
add_executable (return_type_resolver src/return_type_resolver.cpp )
129
136
130
137
add_executable (RAII src/RAII.cpp )
131
- target_link_libraries (RAII -pthread )
138
+ target_link_libraries (RAII ${THREADING_LIB} )
132
139
133
140
add_executable (SFINAE src/SFINAE.cpp )
134
141
@@ -142,36 +149,36 @@ add_executable(stack_unwinding src/stack_unwinding.cpp)
142
149
143
150
# ############################ Multithreading #############################
144
151
add_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} )
146
153
147
154
add_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} )
149
156
150
157
add_executable (sleeping_threads src/multithreading/sleeping_threads.cpp )
151
- target_link_libraries (sleeping_threads -pthread )
158
+ target_link_libraries (sleeping_threads ${THREADING_LIB} )
152
159
153
160
add_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} )
155
162
156
163
add_executable (mutex src/multithreading/mutex.cpp )
157
- target_link_libraries (mutex -pthread )
164
+ target_link_libraries (mutex ${THREADING_LIB} )
158
165
159
166
# add_executable(condition_variable src/multithreading/condition_variable.cpp)
160
167
# target_link_libraries(condition_variable -pthread)
161
168
add_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} )
163
170
164
171
add_executable (dead_lock src/multithreading/dead_lock.cpp )
165
- target_link_libraries (dead_lock -pthread )
172
+ target_link_libraries (dead_lock ${THREADING_LIB} )
166
173
167
174
add_executable (thread_safe src/multithreading/thread_safe.cpp )
168
- target_link_libraries (thread_safe -pthread )
175
+ target_link_libraries (thread_safe ${THREADING_LIB} )
169
176
170
177
add_executable (packaged_task src/multithreading/packaged_task.cpp )
171
- target_link_libraries (packaged_task -pthread )
178
+ target_link_libraries (packaged_task ${THREADING_LIB} )
172
179
173
180
add_executable (race_condition src/multithreading/race_condition.cpp )
174
- target_link_libraries (race_condition -pthread )
181
+ target_link_libraries (race_condition ${THREADING_LIB} )
175
182
176
183
add_executable (unique_lock src/multithreading/unique_lock.cpp )
177
184
target_link_libraries (unique_lock -pthread )
0 commit comments