blob: 8fa6aa71688b684a849b8e4eed779e5e474d5a5e [file] [log] [blame]
Junxiao Shi1c93cae2014-12-09 22:52:17 -07001# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
2
3from waflib.Configure import conf
4
5OVERRIDE = '''
6class Base
7{
8 virtual void
9 f(int a);
10};
11
12class Derived : public Base
13{
14 virtual void
15 f(int a) override;
16};
17'''
18
19@conf
20def check_override(self):
Alexander Afanasyevce812302015-04-14 14:06:29 -070021 self.check_cxx(msg='Checking for override specifier',
22 fragment=OVERRIDE,
23 define_name='HAVE_CXX_OVERRIDE',
24 features='cxx', mandatory=False)
25
Eric Newberrya98bf932015-09-21 00:58:47 -070026FINAL = '''
27class Base
28{
29 virtual void
30 f(int a);
31};
32
33class Derived : public Base
34{
35 virtual void
36 f(int a) final;
37};
38'''
39
40@conf
41def check_final(self):
42 self.check_cxx(msg='Checking for final specifier on method',
43 fragment=FINAL,
44 define_name='HAVE_CXX_FINAL',
45 features='cxx', mandatory=False)
46
47CLASS_FINAL = '''
48class A final
49{
50};
51'''
52
53@conf
54def check_class_final(self):
55 self.check_cxx(msg='Checking for final specifier on class',
56 fragment=CLASS_FINAL,
57 define_name='HAVE_CXX_CLASS_FINAL',
58 features='cxx', mandatory=False)
59
Junxiao Shi1c93cae2014-12-09 22:52:17 -070060def configure(conf):
61 conf.check_override()
Eric Newberrya98bf932015-09-21 00:58:47 -070062 conf.check_final()
63 conf.check_class_final()