Extract crc32 code into a separate static lib
Following what's been suggested on IRC libera.chat #mesonbuild, this is so that the -march=generic+crc option only applies to the code it should apply to and not to the entire code base.
This commit is contained in:
parent
d71229fc07
commit
9566553856
5 changed files with 33 additions and 14 deletions
11
meson.build
11
meson.build
|
@ -40,16 +40,9 @@ elif os == 'gnu' and arch == 'aarch64'
|
|||
func_ptr_size = 8
|
||||
endif
|
||||
|
||||
compiler_opts = []
|
||||
global_compiler_opts = []
|
||||
if get_option('wrenpp_with_name_guessing')
|
||||
compiler_opts += ['-DWRENPP_WITH_NAME_GUESSING']
|
||||
endif
|
||||
if get_option('wrenpp_with_sse42')
|
||||
if arch == 'amd64'
|
||||
compiler_opts += ['-msse4.2']
|
||||
elif arch == 'aarch64'
|
||||
compiler_opts += ['-mcpu=generic+crc']
|
||||
endif
|
||||
global_compiler_opts += ['-DWRENPP_WITH_NAME_GUESSING']
|
||||
endif
|
||||
|
||||
conf.set('POINTER_SIZE', ptr_size)
|
||||
|
|
24
src/crc32/meson.build
Normal file
24
src/crc32/meson.build
Normal file
|
@ -0,0 +1,24 @@
|
|||
compiler_opts = []
|
||||
|
||||
if get_option('wrenpp_with_sse42')
|
||||
if arch == 'amd64'
|
||||
compiler_opts += ['-msse4.2']
|
||||
elif arch == 'aarch64'
|
||||
#gcc options here:
|
||||
#https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/AArch64-Options.html
|
||||
compiler_opts += ['-mcpu=generic+crc']
|
||||
endif
|
||||
endif
|
||||
|
||||
crc32 = static_library('crc32',
|
||||
'crc32.cpp',
|
||||
include_directories: [public_incl, src_incl],
|
||||
install: false,
|
||||
cpp_args: compiler_opts + global_compiler_opts,
|
||||
)
|
||||
|
||||
crc32_dep = declare_dependency(
|
||||
include_directories: public_incl,
|
||||
link_with: crc32,
|
||||
compile_args: global_compiler_opts,
|
||||
)
|
|
@ -1,3 +1,6 @@
|
|||
src_incl = include_directories('.')
|
||||
subdir('crc32')
|
||||
|
||||
project_config_file = configure_file(
|
||||
input: 'pvt_config.h.in',
|
||||
output: 'pvt_config.h',
|
||||
|
@ -16,17 +19,16 @@ wrenpp = library(meson.project_name(),
|
|||
'callback_manager.cpp',
|
||||
'class_manager.cpp',
|
||||
'wren_class_name_from_type.cpp',
|
||||
'crc32.cpp',
|
||||
'module_and_name.cpp',
|
||||
dependencies: [wren_dep],
|
||||
dependencies: [wren_dep, crc32_dep],
|
||||
include_directories: public_incl,
|
||||
install: (not meson.is_subproject() or get_option('default_library')=='shared'),
|
||||
c_args: compiler_opts,
|
||||
cpp_args: compiler_opts,
|
||||
c_args: global_compiler_opts,
|
||||
cpp_args: global_compiler_opts,
|
||||
)
|
||||
|
||||
wrenpp_dep = declare_dependency(
|
||||
link_with: wrenpp,
|
||||
include_directories: public_incl,
|
||||
compile_args: compiler_opts,
|
||||
compile_args: global_compiler_opts,
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue