thorvg/src/meson.build
Fabian Blatz 29b612237d infra: added double-precison promotion warning
Note that, for our dev-convenient, this option
is only toggled on when the logging is off.

Co-Authored-By: Hermet Park <hermet@lottiefiles.com>
2025-02-12 19:12:06 +09:00

90 lines
2.6 KiB
Meson

compiler_flags = []
override_options = []
lib_type = get_option('default_library')
if lib_type == 'shared'
compiler_flags += ['-DTVG_EXPORT', '-DTVG_BUILD']
else
compiler_flags += ['-DTVG_STATIC']
endif
cc = meson.get_compiler('cpp')
if cc.get_id() == 'clang-cl'
if simd_type == 'avx'
compiler_flags += ['/clang:-mavx']
endif
if simd_type == 'neon-arm'
compiler_flags += ['/clang:-mfpu=neon']
endif
compiler_flags += ['/clang:-Wno-unknown-pragmas']
if logging == false
compiler_flags += ['/clang:-Wdouble-promotion']
endif
if get_option('b_sanitize') == 'none'
override_options += ['cpp_eh=none','cpp_rtti=false']
compiler_flags += ['/clang:-fno-math-errno', '/clang:-Woverloaded-virtual',
'/clang:-fno-stack-protector', '/clang:-fno-unwind-tables' ,
'/clang:-fno-asynchronous-unwind-tables']
endif
elif (cc.get_id() != 'msvc')
if simd_type == 'avx'
compiler_flags += ['-mavx']
endif
if simd_type == 'neon-arm'
compiler_flags += ['-mfpu=neon']
endif
compiler_flags += ['-Wno-unknown-pragmas']
if logging == false
compiler_flags += ['-Wdouble-promotion']
endif
if get_option('b_sanitize') == 'none'
compiler_flags += ['-fno-exceptions', '-fno-rtti', '-fno-stack-protector', '-fno-math-errno',
'-fno-unwind-tables', '-fno-asynchronous-unwind-tables', '-Woverloaded-virtual']
endif
endif
subdir('common')
subdir('renderer')
subdir('loaders')
subdir('savers')
thorvg_lib_dep = [common_dep, utils_dep, loader_dep, saver_dep]
if get_option('threads') and host_machine.system() != 'windows' and host_machine.system() != 'android'
thread_dep = meson.get_compiler('cpp').find_library('pthread')
thorvg_lib_dep += [thread_dep]
endif
subdir('bindings')
thorvg_lib = library(
'thorvg',
include_directories : headers,
version : meson.project_version(),
dependencies : thorvg_lib_dep,
install : true,
cpp_args : compiler_flags,
gnu_symbol_visibility : 'hidden',
override_options : override_options
)
thorvg_dep = declare_dependency(
include_directories: thorvg_inc,
link_with: thorvg_lib,
)
meson.override_dependency('thorvg', thorvg_dep)
pkg_mod = import('pkgconfig')
pkg_mod.generate(
libraries : thorvg_lib,
version : meson.project_version(),
name : 'libthorvg',
filebase : 'thorvg',
description : 'A Thor library for rendering vector graphics'
)