diff --git a/example/meson.build b/example/meson.build index fb1d3c1c82..5526a18c8a 100644 --- a/example/meson.build +++ b/example/meson.build @@ -1,4 +1,6 @@ +override_default = ['warning_level=2', 'werror=false'] + common_source = files('evasapp.cpp') common_source += files('lottieview.cpp') @@ -8,12 +10,13 @@ demo_sources += common_source executable('lottie2gif', 'lottie2gif.cpp', include_directories : inc, + override_options : override_default, link_with : rlottie_lib) executable('vectorTest', 'vectortest.cpp', include_directories : inc, - dependencies : [library_deps]) + dependencies : [rlottie_dep]) demo_dep = dependency('elementary', required : false) @@ -21,6 +24,7 @@ if (demo_dep.found()) executable('demo', demo_sources, include_directories : inc, + override_options : override_default, link_with : rlottie_lib, dependencies : demo_dep) @@ -30,6 +34,7 @@ if (demo_dep.found()) executable('lottieviewTest', lottieview_test_src, include_directories : inc, + override_options : override_default, link_with : rlottie_lib, dependencies : demo_dep) @@ -39,6 +44,7 @@ if (demo_dep.found()) executable('uxsampleTest', uxsample_test_src, include_directories : inc, + override_options : override_default, link_with : rlottie_lib, dependencies : demo_dep) @@ -48,6 +54,7 @@ if (demo_dep.found()) executable('lottieviewer', lottieviewer_sources, include_directories : inc, + override_options : override_default, link_with : rlottie_lib, dependencies : demo_dep) @@ -56,6 +63,7 @@ if (meson.get_compiler('cpp').has_header('elementary-1/efl_ui_animation_view.h') 'efl_animview.cpp', include_directories : inc, link_with : rlottie_lib, + override_options : override_default, dependencies : demo_dep) endif diff --git a/meson.build b/meson.build index 8850000102..223b7c553a 100644 --- a/meson.build +++ b/meson.build @@ -1,30 +1,11 @@ project('rlottie', 'cpp', - default_options : ['warning_level=2', 'werror=true', 'cpp_std=c++14', 'optimization=s'], + default_options : ['warning_level=3', 'werror=true', 'cpp_std=c++14', 'optimization=s'], version : '0.0.1', license : 'Apache') add_project_arguments('-DDEMO_DIR="@0@/example/resource/"'.format(meson.current_source_dir()), language : 'cpp') - -compiler_flags = ['-DLOT_BUILD'] -compiler_flags_try = ['-fno-exceptions', '-fno-rtti', - '-fno-unwind-tables' , '-fno-asynchronous-unwind-tables', - '-Woverloaded-virtual', '-Wno-unused-parameter'] - -cc = meson.get_compiler('cpp') -foreach cf: compiler_flags_try - if cc.has_argument(cf) == true - compiler_flags += cf - endif -endforeach - - -if (build_machine.system() == 'linux' and get_option('thread') == true) - compiler_flags += ['-pthread'] - add_project_link_arguments('-pthread', language: 'cpp') -endif - -add_project_arguments(compiler_flags, language: 'cpp') +add_project_arguments('-DLOT_BUILD', language: 'cpp') inc = [include_directories('inc')] config_dir = include_directories('.') @@ -71,11 +52,3 @@ if get_option('test') == true subdir('test') endif -pkg_mod = import('pkgconfig') - -pkg_mod.generate( libraries : rlottie_lib, - version : meson.project_version(), - name : 'librlottie', - filebase : 'rlottie', - description : 'A Library for rendering lottie files.' - ) diff --git a/src/lottie/meson.build b/src/lottie/meson.build index a6d1856ba7..7a4df79b87 100644 --- a/src/lottie/meson.build +++ b/src/lottie/meson.build @@ -1,12 +1,13 @@ -source_file = files('lottieparser.cpp') -source_file += files('lottieloader.cpp') -source_file += files('lottiemodel.cpp') -source_file += files('lottieproxymodel.cpp') -source_file += files('lottieanimation.cpp') -source_file += files('lottieitem.cpp') -source_file += files('lottiekeypath.cpp') - +source_file = [ + 'lottieparser.cpp', + 'lottieloader.cpp', + 'lottiemodel.cpp', + 'lottieproxymodel.cpp', + 'lottieanimation.cpp', + 'lottieitem.cpp', + 'lottiekeypath.cpp' +] lottie_dep = declare_dependency( include_directories : include_directories('.'), diff --git a/src/meson.build b/src/meson.build index f347b85bb2..4097d7332f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,15 +1,31 @@ +cc = meson.get_compiler('cpp') + +if (cc.get_id() != 'msvc') + compiler_flags = ['-fno-exceptions', '-fno-rtti', + '-fno-unwind-tables' , '-fno-asynchronous-unwind-tables', + '-Woverloaded-virtual', '-Wno-unused-parameter'] +endif + subdir('vector') subdir('lottie') subdir('binding') -library_deps = vector_dep -library_deps += lottie_dep -library_deps += binding_dep +rlottie_dep = [ vector_dep, lottie_dep, binding_dep, dependency('threads')] rlottie_lib = shared_library('rlottie', include_directories : inc, version : meson.project_version(), - dependencies : library_deps, + dependencies : rlottie_dep, install : true, + cpp_args : compiler_flags, gnu_symbol_visibility : 'hidden', ) + +pkg_mod = import('pkgconfig') + +pkg_mod.generate( libraries : rlottie_lib, + version : meson.project_version(), + name : 'librlottie', + filebase : 'rlottie', + description : 'A Library for rendering lottie files.' + ) diff --git a/src/vector/freetype/meson.build b/src/vector/freetype/meson.build index 8bbff5c329..7c1217feb5 100644 --- a/src/vector/freetype/meson.build +++ b/src/vector/freetype/meson.build @@ -1,10 +1,11 @@ -source_file = files('v_ft_math.cpp') -source_file += files('v_ft_raster.cpp') -source_file += files('v_ft_stroker.cpp') - +source_file = [ + 'v_ft_math.cpp', + 'v_ft_raster.cpp', + 'v_ft_stroker.cpp', + ] freetype_dep = declare_dependency( include_directories : include_directories('.'), sources : source_file - ) \ No newline at end of file + ) diff --git a/src/vector/meson.build b/src/vector/meson.build index cc7d87de1f..c0f0c256bc 100644 --- a/src/vector/meson.build +++ b/src/vector/meson.build @@ -3,38 +3,32 @@ subdir('freetype') subdir('pixman') subdir('stb') -vector_dep = [freetype_dep] -vector_dep += pixman_dep -vector_dep += stb_dep +source_file = [ + 'vdasher.cpp', + 'vbrush.cpp', + 'vbitmap.cpp', + 'vpainter.cpp', + 'vcompositionfunctions.cpp', + 'vdrawhelper.cpp', + 'vdrawhelper_sse2.cpp', + 'vdrawhelper_neon.cpp', + 'vdrawable.cpp', + 'vrect.cpp', + 'vrle.cpp', + 'vpath.cpp', + 'vpathmesure.cpp', + 'vmatrix.cpp', + 'velapsedtimer.cpp', + 'vdebug.cpp', + 'vinterpolator.cpp', + 'vbezier.cpp', + 'vraster.cpp', + 'vimageloader.cpp', +] - -source_file = files('vdasher.cpp') -source_file += files('vbrush.cpp') -source_file += files('vbitmap.cpp') -source_file += files('vpainter.cpp') -source_file += files('vcompositionfunctions.cpp') -source_file += files('vdrawhelper.cpp') -source_file += files('vdrawhelper_sse2.cpp') -source_file += files('vdrawhelper_neon.cpp') -source_file += files('vdrawable.cpp') - -source_file += files('vrect.cpp') -source_file += files('vrle.cpp') -source_file += files('vpath.cpp') -source_file += files('vpathmesure.cpp') -source_file += files('vmatrix.cpp') -source_file += files('velapsedtimer.cpp') -source_file += files('vdebug.cpp') -source_file += files('vinterpolator.cpp') -source_file += files('vbezier.cpp') -source_file += files('vraster.cpp') -source_file += files('vimageloader.cpp') - -inc_dir = [include_directories('.')] -inc_dir += config_dir - -vector_dep += declare_dependency( include_directories : inc_dir, - sources : source_file +vector_dep = declare_dependency( include_directories : include_directories('.'), + sources : source_file, + dependencies : [freetype_dep, pixman_dep, stb_dep], ) diff --git a/src/vector/pixman/meson.build b/src/vector/pixman/meson.build index 5d3b4e32ef..39ffefd650 100644 --- a/src/vector/pixman/meson.build +++ b/src/vector/pixman/meson.build @@ -1,8 +1,8 @@ -source_file = files('vregion.cpp') +source_file = ['vregion.cpp'] if host_machine.cpu_family() == 'arm' or host_machine.cpu_family() == 'aarch64' - source_file += files('pixman-arm-neon-asm.S') + source_file += 'pixman-arm-neon-asm.S' endif pixman_dep = declare_dependency( diff --git a/src/vector/stb/meson.build b/src/vector/stb/meson.build index 83067828a6..5e8f670631 100644 --- a/src/vector/stb/meson.build +++ b/src/vector/stb/meson.build @@ -1,22 +1,17 @@ source_file = ['stb_image.cpp'] -inc_dir = [include_directories('.')] -inc_dir += config_dir - if get_option('module') == true rlottie_image_loader_lib = shared_library('rlottie-image-loader', source_file, - include_directories : inc_dir, + include_directories : [include_directories('.'), config_dir], install : true, gnu_symbol_visibility : 'hidden', ) - # dl dependancy for dlopen, dlsym, dlclose symbol cc = meson.get_compiler('cpp') stb_dep = cc.find_library('dl', required : false) else - stb_dep = declare_dependency( - include_directories : inc_dir, + stb_dep = declare_dependency( include_directories : include_directories('.'), sources : source_file ) endif diff --git a/test/meson.build b/test/meson.build index 312e53e1d0..69fff15d74 100644 --- a/test/meson.build +++ b/test/meson.build @@ -1,25 +1,35 @@ -vector_test_sources = files('testsuite.cpp') -vector_test_sources += files('test_vpath.cpp') +override_default = ['warning_level=2', 'werror=false'] gtest_dep = dependency('gtest') +vector_test_sources = [ + 'testsuite.cpp', + 'test_vpath.cpp', + ] + vector_testsuite = executable('vectorTestSuite', vector_test_sources, include_directories : inc, - dependencies : [gtest_dep, library_deps]) + override_options : override_default, + dependencies : [gtest_dep, rlottie_dep], + ) test('Vector Testsuite', vector_testsuite) -animation_test_sources = files('testsuite.cpp') -animation_test_sources += files('test_lottieanimation.cpp') -animation_test_sources += files('test_lottieanimation_capi.cpp') +animation_test_sources = [ + 'testsuite.cpp', + 'test_lottieanimation.cpp', + 'test_lottieanimation_capi.cpp' + ] animation_testsuite = executable('animationTestSuite', animation_test_sources, include_directories : inc, + override_options : override_default, link_with : rlottie_lib, - dependencies : gtest_dep) + dependencies : gtest_dep, + ) test('Animation Testsuite', animation_testsuite) diff --git a/test/test_lottieanimation_capi.cpp b/test/test_lottieanimation_capi.cpp index ac058e011f..a0d24ef1c8 100644 --- a/test/test_lottieanimation_capi.cpp +++ b/test/test_lottieanimation_capi.cpp @@ -1,5 +1,5 @@ #include -#include "lottieanimation_capi.h" +#include "rlottie_capi.h" class AnimationCApiTest : public ::testing::Test { public: