aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dependencies.py11
-rw-r--r--test cases/common/102 threads/meson.build7
-rw-r--r--test cases/common/102 threads/threadprog.cpp14
3 files changed, 32 insertions, 0 deletions
diff --git a/dependencies.py b/dependencies.py
index 87c1ba1..165fd2f 100644
--- a/dependencies.py
+++ b/dependencies.py
@@ -1059,6 +1059,16 @@ class ExtraFrameworkDependency(Dependency):
def found(self):
return self.name is not None
+class ThreadDependency(Dependency):
+ def __init__(self, environment, kwargs):
+ super().__init__()
+ self.name = 'threads'
+ self.is_found = True
+ mlog.log('Dependency', mlog.bold(self.name), 'found:', mlog.green('YES'))
+
+ def need_threads(self):
+ return True
+
def get_dep_identifier(name, kwargs):
elements = [name]
modlist = kwargs.get('modules', [])
@@ -1108,4 +1118,5 @@ packages = {'boost': BoostDependency,
'wxwidgets' : WxDependency,
'sdl2' : SDL2Dependency,
'gl' : GLDependency,
+ 'threads' : ThreadDependency,
}
diff --git a/test cases/common/102 threads/meson.build b/test cases/common/102 threads/meson.build
new file mode 100644
index 0000000..ca3eee5
--- /dev/null
+++ b/test cases/common/102 threads/meson.build
@@ -0,0 +1,7 @@
+project('threads', 'cpp')
+
+test('threadtest',
+ executable('threadprog', 'threadprog.cpp',
+ dependencies : dependency('threads')
+ )
+)
diff --git a/test cases/common/102 threads/threadprog.cpp b/test cases/common/102 threads/threadprog.cpp
new file mode 100644
index 0000000..9d140b3
--- /dev/null
+++ b/test cases/common/102 threads/threadprog.cpp
@@ -0,0 +1,14 @@
+#include<thread>
+#include<cstdio>
+
+void main_func() {
+ printf("Printing from a thread.\n");
+}
+
+int main(int, char**) {
+ printf("Starting thread.\n");
+ std::thread th(main_func);
+ th.join();
+ printf("Stopped thread.\n");
+ return 0;
+}