prepare to release tvg format feature.
[platform/core/graphics/tizenvg.git] / meson.build
1 project('thorvg',
2         'cpp',
3         default_options : ['buildtype=debugoptimized', 'b_sanitize=none', 'werror=false', 'optimization=s', 'cpp_std=gnu++14'],
4         version : '0.4.99',
5         license : 'MIT')
6
7 config_h = configuration_data()
8
9 add_project_arguments('-DEXAMPLE_DIR="@0@/src/examples/images"'.format(meson.current_source_dir()),
10                       '-DTEST_DIR="@0@/test/images"'.format(meson.current_source_dir()),
11                       language : 'cpp')
12
13 config_h.set_quoted('THORVG_VERSION_STRING', meson.project_version())
14
15 if get_option('engines').contains('sw') == true
16     config_h.set10('THORVG_SW_RASTER_SUPPORT', true)
17 endif
18
19 if get_option('engines').contains('gl') == true
20     config_h.set10('THORVG_GL_RASTER_SUPPORT', true)
21 endif
22
23 if get_option('loaders').contains('svg') == true
24     config_h.set10('THORVG_SVG_LOADER_SUPPORT', true)
25 endif
26
27 if get_option('loaders').contains('tvg') == true
28     config_h.set10('THORVG_TVG_LOADER_SUPPORT', true)
29 endif
30
31 if get_option('loaders').contains('png') == true
32     config_h.set10('THORVG_PNG_LOADER_SUPPORT', true)
33 endif
34
35 if get_option('loaders').contains('jpg') == true
36     config_h.set10('THORVG_JPG_LOADER_SUPPORT', true)
37 endif
38
39 if get_option('savers').contains('tvg') == true
40     config_h.set10('THORVG_TVG_SAVER_SUPPORT', true)
41 endif
42
43 simd_type = 'none'
44
45 if get_option('vector') == true
46   if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64'
47     config_h.set10('THORVG_AVX_VECTOR_SUPPORT', true)
48     simd_type = 'avx'
49   elif host_machine.cpu_family() == 'arm'
50     config_h.set10('THORVG_NEON_VECTOR_SUPPORT', true)
51     simd_type = 'neon'
52   endif
53 endif
54
55 if get_option('bindings').contains('capi') == true
56     config_h.set10('THORVG_CAPI_BINDING_SUPPORT', true)
57 endif
58
59 if get_option('log') == true
60     config_h.set10('THORVG_LOG_ENABLED', true)
61 endif
62
63 configure_file(
64     output: 'config.h',
65     configuration: config_h
66 )
67
68 headers = [include_directories('inc'), include_directories('.')]
69
70 subdir('inc')
71 subdir('src')
72
73 if get_option('tests') == true
74    subdir('test')
75 endif
76
77 summary = '''
78
79 Summary:
80     ThorVG version:        @0@
81     Build Type:            @1@
82     Prefix:                @2@
83     SIMD Instruction:      @3@
84     Raster Engine (SW):    @4@
85     Raster Engine (GL):    @5@
86     Loader (TVG):          @6@
87     Loader (SVG):          @7@
88     Loader (PNG):          @8@
89     Loader (JPG):          @9@
90     Saver (TVG):           @10@
91     CAPI Binding:          @11@
92     Log Message:           @12@
93     Tests:                 @13@
94     Examples:              @14@
95     Tool (Svg2Tvg):        @15@
96     Tool (Svg2Png):        @16@
97
98 '''.format(
99         meson.project_version(),
100         get_option('buildtype'),
101         get_option('prefix'),
102         simd_type,
103         get_option('engines').contains('sw'),
104         get_option('engines').contains('gl'),
105         get_option('loaders').contains('tvg'),
106         get_option('loaders').contains('svg'),
107         get_option('loaders').contains('png'),
108         get_option('loaders').contains('jpg'),
109         get_option('savers').contains('tvg'),
110         get_option('bindings').contains('capi'),
111         get_option('log'),
112         get_option('tests'),
113         get_option('examples'),
114         get_option('tools').contains('svg2tvg'),
115         get_option('tools').contains('svg2png'),
116     )
117
118 message(summary)