diff --git a/dependencies.py b/dependencies.py index 87c1ba1a8..165fd2f69 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 000000000..ca3eee5a7 --- /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 000000000..9d140b3cc --- /dev/null +++ b/test cases/common/102 threads/threadprog.cpp @@ -0,0 +1,14 @@ +#include +#include + +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; +}