meson: Pull in syn from crates.io
We don't have real crates.io support yet so this uses a hack where it pulls wraps from my personal github. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998>
This commit is contained in:

committed by
Marge Bot

parent
384f4448e1
commit
5a80c2e89a
@@ -1,6 +1,12 @@
|
||||
add_languages('rust', required: true)
|
||||
rust = import('unstable-rust')
|
||||
|
||||
dep_syn = dependency('syn',
|
||||
version : '>= 2.0.15',
|
||||
fallback : ['syn', 'dep_syn'],
|
||||
required : true,
|
||||
)
|
||||
|
||||
libnak_c_files = files(
|
||||
'nak.h',
|
||||
'nak_nir.c',
|
||||
|
55
subprojects/packagefiles/proc-macro2/meson.build
Normal file
55
subprojects/packagefiles/proc-macro2/meson.build
Normal file
@@ -0,0 +1,55 @@
|
||||
project(
|
||||
'proc-macro2',
|
||||
'rust',
|
||||
version : '1.0.56',
|
||||
license :'MIT OR Apache-2.0',
|
||||
)
|
||||
|
||||
rc = meson.get_compiler('rust')
|
||||
|
||||
if rc.version().version_compare('< 1.31')
|
||||
error('Minimum rustc supported version is 1.31')
|
||||
endif
|
||||
|
||||
rust_args = [
|
||||
'--cfg', 'feature="proc-macro"',
|
||||
'--cfg', 'feature="default"',
|
||||
'--cfg', 'use_proc_macro',
|
||||
'--cfg', 'wrap_proc_macro',
|
||||
]
|
||||
if rc.version().version_compare('< 1.32')
|
||||
rust_args += ['--cfg', 'no_libprocmacro_unwind_safe']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.39')
|
||||
rust_args += ['--cfg', 'no_bind_by_move_pattern_guard']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.44')
|
||||
rust_args += ['--cfg', 'no_lexerror_display']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.45')
|
||||
rust_args += ['--cfg', 'no_hygiene']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.47')
|
||||
rust_args += ['--cfg', 'no_ident_new_raw']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.54')
|
||||
rust_args += ['--cfg', 'no_literal_from_str']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.55')
|
||||
rust_args += ['--cfg', 'no_group_open_close']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.57')
|
||||
rust_args += ['--cfg', 'no_is_available']
|
||||
endif
|
||||
|
||||
u_ind = subproject('unicode-ident').get_variable('lib')
|
||||
|
||||
lib = static_library(
|
||||
'proc_macro2',
|
||||
'src/lib.rs',
|
||||
rust_args : rust_args,
|
||||
override_options : ['rust_std=2018', 'build.rust_std=2018'],
|
||||
link_with : u_ind,
|
||||
rust_abi : 'rust',
|
||||
native : true,
|
||||
)
|
32
subprojects/packagefiles/quote/meson.build
Normal file
32
subprojects/packagefiles/quote/meson.build
Normal file
@@ -0,0 +1,32 @@
|
||||
project(
|
||||
'quote',
|
||||
'rust',
|
||||
version : '1.0.25',
|
||||
license :'MIT OR Apache-2.0',
|
||||
)
|
||||
|
||||
rc = meson.get_compiler('rust')
|
||||
|
||||
if rc.version().version_compare('< 1.31')
|
||||
error('Minimum rustc supported version is 1.31')
|
||||
endif
|
||||
|
||||
rust_args = ['--cfg', 'feature="default"', '--cfg', 'feature="proc-macro"']
|
||||
if rc.version().version_compare('< 1.53')
|
||||
rust_args += ['--cfg', 'needs_invalid_span_workaround']
|
||||
endif
|
||||
|
||||
pm2 = subproject('proc-macro2').get_variable('lib')
|
||||
|
||||
# XXX: workround for meson bug: https://github.com/mesonbuild/meson/issues/11306
|
||||
rust_args += ['-L', 'dependency=subprojects/unicode-ident']
|
||||
|
||||
lib = static_library(
|
||||
'quote',
|
||||
'src/lib.rs',
|
||||
rust_args : rust_args,
|
||||
override_options : ['rust_std=2018', 'build.rust_std=2018'],
|
||||
link_with : pm2,
|
||||
rust_abi : 'rust',
|
||||
native : true,
|
||||
)
|
50
subprojects/packagefiles/syn/meson.build
Normal file
50
subprojects/packagefiles/syn/meson.build
Normal file
@@ -0,0 +1,50 @@
|
||||
project(
|
||||
'syn',
|
||||
'rust',
|
||||
version : '2.0.15',
|
||||
license :'MIT OR Apache-2.0',
|
||||
)
|
||||
|
||||
rc = meson.get_compiler('rust')
|
||||
|
||||
|
||||
rust_args = [
|
||||
'--cfg', 'feature="default"',
|
||||
'--cfg', 'feature="derive"',
|
||||
'--cfg', 'feature="parsing"',
|
||||
'--cfg', 'feature="printing"',
|
||||
'--cfg', 'feature="clone-impls"',
|
||||
'--cfg', 'feature="proc-macro"',
|
||||
'--cfg', 'feature="quote"',
|
||||
]
|
||||
if rc.version().version_compare('< 1.36')
|
||||
rust_args += ['--cfg', 'syn_omit_await_from_token_macro']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.39')
|
||||
rust_args += ['--cfg', 'syn_no_const_vec_new']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.40')
|
||||
rust_args += ['--cfg', 'syn_no_non_exhaustive']
|
||||
endif
|
||||
if rc.version().version_compare('< 1.56')
|
||||
rust_args += ['--cfg', 'syn_no_negative_literal_parse']
|
||||
endif
|
||||
|
||||
u_ind = subproject('unicode-ident').get_variable('lib')
|
||||
quote = subproject('quote').get_variable('lib')
|
||||
pm2 = subproject('proc-macro2').get_variable('lib')
|
||||
|
||||
|
||||
lib = static_library(
|
||||
'syn',
|
||||
'src/lib.rs',
|
||||
rust_args : rust_args,
|
||||
override_options : ['rust_std=2021', 'build.rust_std=2021'],
|
||||
link_with : [u_ind, quote, pm2],
|
||||
rust_abi : 'rust',
|
||||
native : true,
|
||||
)
|
||||
|
||||
dep_syn = declare_dependency(
|
||||
link_with : [lib, u_ind, quote, pm2],
|
||||
)
|
14
subprojects/packagefiles/unicode-ident/meson.build
Normal file
14
subprojects/packagefiles/unicode-ident/meson.build
Normal file
@@ -0,0 +1,14 @@
|
||||
project(
|
||||
'unicode-ident',
|
||||
'rust',
|
||||
version : '1.0.6',
|
||||
license : '(MIT or Apache-2.0) AND Unicode-DFS-2016)',
|
||||
)
|
||||
|
||||
lib = static_library(
|
||||
'unicode_ident',
|
||||
'src/lib.rs',
|
||||
override_options : ['rust_std=2018', 'build.rust_std=2018'],
|
||||
rust_abi : 'rust',
|
||||
native : true,
|
||||
)
|
6
subprojects/proc-macro2.wrap
Normal file
6
subprojects/proc-macro2.wrap
Normal file
@@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = proc-macro2-1.0.56
|
||||
source_url = https://crates.io/api/v1/crates/proc-macro2/1.0.56/download
|
||||
source_filename = proc-macro2-1.0.56.tar.gz
|
||||
source_hash = 2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435
|
||||
patch_directory = proc-macro2
|
6
subprojects/quote.wrap
Normal file
6
subprojects/quote.wrap
Normal file
@@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = quote-1.0.25
|
||||
source_url = https://crates.io/api/v1/crates/quote/1.0.25/download
|
||||
source_filename = quote-1.0.25.tar.gz
|
||||
source_hash = 5308e8208729c3e1504a6cfad0d5daacc4614c9a2e65d1ea312a34b5cb00fe84
|
||||
patch_directory = quote
|
6
subprojects/syn.wrap
Normal file
6
subprojects/syn.wrap
Normal file
@@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = syn-2.0.15
|
||||
source_url = https://crates.io/api/v1/crates/syn/2.0.15/download
|
||||
source_filename = syn-2.0.15.tar.gz
|
||||
source_hash = a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822
|
||||
patch_directory = syn
|
6
subprojects/unicode-ident.wrap
Normal file
6
subprojects/unicode-ident.wrap
Normal file
@@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = unicode-ident-1.0.6
|
||||
source_url = https://crates.io/api/v1/crates/unicode-ident/1.0.6/download
|
||||
source_filename = unicode-ident-1.0.6.tar.gz
|
||||
source_hash = 84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc
|
||||
patch_directory = unicode-ident
|
Reference in New Issue
Block a user