@@ -7,7 +7,6 @@ project('libswift', 'cpp',
77 meson_version : ' >=0.55.0' )
88
99libswift_src = [
10- ' rz_libswift.cpp' ,
1110 ' src/libswift.cpp' ,
1211 ' src/Context.cpp' ,
1312 ' src/Demangler.cpp' ,
@@ -23,54 +22,76 @@ libswift_src = [
2322rizin = find_program (' rizin' , required : false )
2423cxx_cc = meson .get_compiler(' cpp' )
2524
26- rz_demangler_dep = dependency (' rz_demangler' )
27-
28- rizin_plugdir = get_option (' rizin_plugdir' )
29- if rizin_plugdir == ''
30- rizin_plugdir = rz_demangler_dep.get_variable (pkgconfig : ' plugindir' , cmake : ' rz_demangler_PLUGINDIR' )
31- endif
32-
33- warning_flags = []
25+ libswift_cpp_args = []
3426libswift_deps = []
3527libswift_incs = [' .' , ' src' ]
3628
37- libswift_deps += dependency (' rz_util' )
38- libswift_deps += rz_demangler_dep
39-
4029if cxx_cc.has_argument(' -Wno-maybe-uninitialized' )
41- add_project_arguments ( ' -Wno-maybe-uninitialized' , language : [ ' cpp ' ])
30+ libswift_cpp_args += ' -Wno-maybe-uninitialized'
4231elif cxx_cc.has_argument(' -Wno-uninitialized' )
43- add_project_arguments ( ' -Wno-uninitialized' , language : [ ' cpp ' ])
32+ libswift_cpp_args += ' -Wno-uninitialized'
4433endif
4534
4635if cxx_cc.has_argument(' -Wunused-parameter' )
47- add_project_arguments ( ' -Wunused-parameter' , language : [ ' cpp ' ])
36+ libswift_cpp_args += ' -Wunused-parameter'
4837endif
4938
5039if cxx_cc.has_argument(' -Wimplicit-fallthrough' )
51- add_project_arguments ( ' -Wimplicit-fallthrough' , language : [ ' cpp ' ])
40+ libswift_cpp_args += ' -Wimplicit-fallthrough'
5241endif
5342
5443if cxx_cc.has_argument(' -Wc++11-extensions' )
55- add_project_arguments ( ' -Wc++11-extensions' , language : [ ' cpp ' ])
44+ libswift_cpp_args += ' -Wc++11-extensions'
5645endif
5746
5847if cxx_cc.has_argument(' -Wc++11-extensions' )
59- add_project_arguments ( ' -Wc++11-extensions' , language : [ ' cpp ' ])
48+ libswift_cpp_args += ' -Wc++11-extensions'
6049endif
6150
6251if cxx_cc.has_argument(' -fvisibility=hidden' )
63- add_project_arguments ( ' -fvisibility=hidden' , language : [ ' cpp ' ])
52+ libswift_cpp_args += ' -fvisibility=hidden'
6453endif
6554
6655if cxx_cc.has_argument(' /EHsc' )
67- add_project_arguments ( ' /EHsc' , language : [ ' cpp ' ])
56+ libswift_cpp_args += ' /EHsc'
6857endif
6958
70- shared_library (' swift' , libswift_src,
71- dependencies : libswift_deps,
72- include_directories : include_directories (libswift_incs),
59+ if cxx_cc.has_argument(' -fvisibility=hidden' )
60+ libswift_cpp_args += ' -fvisibility=hidden'
61+ endif
62+
63+ libswift = static_library (' swift' , libswift_src,
64+ cpp_args : libswift_cpp_args,
65+ dependencies : [],
7366 implicit_include_directories : false ,
74- install : true ,
75- install_dir : rizin_plugdir
67+ install : false ,
68+ include_directories : include_directories (libswift_incs),
69+ )
70+
71+ libswift_dep = declare_dependency (
72+ link_with : libswift,
73+ dependencies : [],
74+ include_directories : include_directories (' .' ),
7675)
76+
77+ if get_option (' enable_plugin' )
78+ rz_demangler_dep = dependency (' rz_demangler' )
79+ libswift_deps = [
80+ rz_demangler_dep,
81+ dependency (' rz_util' ),
82+ libswift_dep
83+ ]
84+
85+ rizin_plugdir = get_option (' rizin_plugdir' )
86+ if rizin_plugdir == ''
87+ rizin_plugdir = rz_demangler_dep.get_variable (pkgconfig : ' plugindir' , cmake : ' rz_demangler_PLUGINDIR' )
88+ endif
89+
90+ shared_library (' swift' , ' rz_libswift.cpp' ,
91+ dependencies : libswift_deps,
92+ include_directories : include_directories (libswift_incs),
93+ implicit_include_directories : false ,
94+ install : true ,
95+ install_dir : rizin_plugdir
96+ )
97+ endif
0 commit comments