forked from doitsujin/dxvk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
meson.build
116 lines (96 loc) · 3.51 KB
/
meson.build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
project('dxvk', ['c', 'cpp'], version : 'v1.6', meson_version : '>= 0.46')
cpu_family = target_machine.cpu_family()
add_project_arguments('-DNOMINMAX', language : 'cpp')
dxvk_compiler = meson.get_compiler('cpp')
dxvk_msvc=dxvk_compiler.get_id() == 'msvc'
# c++17 was added in 15.3, older version needs c++latest
if dxvk_compiler.get_id() == 'msvc' and dxvk_compiler.version().version_compare('<15.3')
dxvk_cpp_std='c++latest'
else
dxvk_cpp_std='c++17'
endif
if dxvk_compiler.get_id() == 'msvc'
add_project_arguments('/std:' + dxvk_cpp_std, language : 'cpp')
endif
dxvk_include_path = include_directories('./include')
if (cpu_family == 'x86_64')
dxvk_library_path = meson.source_root() + '/lib'
else
dxvk_library_path = meson.source_root() + '/lib32'
endif
code = '''#ifndef __WINE__
#error 1
#endif'''
dxvk_winelib = dxvk_compiler.compiles(code, name: 'winelib check')
dxvk_extradep = [ ]
if dxvk_winelib
if dxvk_compiler.has_argument('--no-gnu-unique')
add_project_arguments('--no-gnu-unique', language : ['cpp'])
endif
wrc = find_program('wrc')
lib_vulkan = declare_dependency(link_args: [ '-lwinevulkan' ])
lib_d3d9 = declare_dependency(link_args: [ '-ld3d9' ])
lib_d3d11 = declare_dependency(link_args: [ '-ld3d11' ])
lib_dxgi = declare_dependency(link_args: [ '-ldxgi' ])
lib_d3dcompiler_43 = declare_dependency(link_args: [ '-L'+dxvk_library_path, '-ld3dcompiler_43' ])
lib_d3dcompiler_47 = declare_dependency(link_args: [ '-ld3dcompiler' ])
dxvk_extradep += [ declare_dependency(link_args: [ '-ldl' ]) ]
exe_ext = '.exe.so'
dll_ext = '.dll'
res_ext = '.res'
def_spec_ext = '.spec'
else
if dxvk_compiler.get_id() == 'msvc'
wrc = find_program('rc')
else
wrc = cpu_family == 'x86_64' ? find_program('x86_64-w64-mingw32-windres') : find_program('i686-w64-mingw32-windres')
endif
if cpu_family == 'x86'
if dxvk_compiler.has_link_argument('-Wl,--add-stdcall-alias')
add_global_link_arguments('-Wl,--add-stdcall-alias', language: 'cpp')
endif
if dxvk_compiler.has_link_argument('-Wl,--enable-stdcall-fixup')
add_global_link_arguments('-Wl,--enable-stdcall-fixup', language: 'cpp')
endif
endif
lib_vulkan = dxvk_compiler.find_library('vulkan-1', dirs : dxvk_library_path)
lib_d3d9 = dxvk_compiler.find_library('d3d9')
lib_d3d11 = dxvk_compiler.find_library('d3d11')
lib_dxgi = dxvk_compiler.find_library('dxgi')
lib_d3dcompiler_43 = dxvk_compiler.find_library('d3dcompiler_43', dirs : dxvk_library_path)
if dxvk_compiler.get_id() == 'msvc'
lib_d3dcompiler_47 = dxvk_compiler.find_library('d3dcompiler')
else
lib_d3dcompiler_47 = dxvk_compiler.find_library('d3dcompiler_47')
endif
exe_ext = ''
dll_ext = ''
if dxvk_compiler.get_id() == 'msvc'
res_ext = '.res'
else
res_ext = '.o'
endif
def_spec_ext = '.def'
endif
glsl_compiler = find_program('glslangValidator')
glsl_generator = generator(glsl_compiler,
output : [ '@[email protected]' ],
arguments : [ '-V', '--vn', '@BASENAME@', '@INPUT@', '-o', '@OUTPUT@' ])
if dxvk_compiler.get_id() == 'msvc'
wrc_generator = generator(wrc,
output : [ '@BASENAME@' + res_ext ],
arguments : [ '/fo', '@OUTPUT@', '@INPUT@' ])
else
wrc_generator = generator(wrc,
output : [ '@BASENAME@' + res_ext ],
arguments : [ '-i', '@INPUT@', '-o', '@OUTPUT@' ])
endif
dxvk_version = vcs_tag(
command: ['git', 'describe', '--dirty=+'],
input: 'version.h.in',
output: 'version.h')
subdir('src')
enable_tests = get_option('enable_tests')
if enable_tests
subdir('tests')
endif