# README # # Evas build is a bit more complex. # the final shared library is build in src/lib/evas_goal/meson.build. # # The content of lib/evas is build as static_library as # are all the engines loaders and savers. # # All those stages are defining dependencies with theire source code # as 'source :', later everything is build as libevas.so. # # For now loaders and savers are ALWAYS build statically. # evas_deps = [eo, eet, eina, efl, emile, ector, ecore, buildsystem, intl] pub_eo_file_target = [] priv_eo_files = [] pub_evas_eo_files = [] pub_evas_eot_files = [] pub_legacy_eo_files = [ ] foreach eo_file : pub_legacy_eo_files pub_eo_file_target += custom_target('eolian_gen_' + eo_file, input : eo_file, output : [eo_file + '.h'], depfile : eo_file + '.d', install : true, install_dir : dir_package_include, command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, input : eo_file, output : [eo_file + '.legacy.h'], depfile : eo_file + '.legacy.d', install : true, install_dir : dir_package_include, command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), '-gld', '@INPUT@']) endforeach pub_eo_files = [ ] foreach eo_file : pub_eo_files pub_eo_file_target += custom_target('eolian_gen_' + eo_file, input : eo_file, output : [eo_file + '.h'], depfile : eo_file + '.d', install : true, install_dir : dir_package_include, command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) endforeach pub_eo_types_files = [ ] foreach eo_file : pub_eo_types_files pub_eo_file_target += custom_target('eolian_gen_' + eo_file, input : eo_file, output : [eo_file + '.h'], depfile : eo_file + '.d', install : true, install_dir : dir_package_include, command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-ghd', '@INPUT@']) endforeach eolian_include_directories += ['-I', meson.current_source_dir()] evas_header_src = [ 'Evas.h', 'Evas_Common.h', 'Evas_Eo.h', 'Evas_GL.h', 'Evas_Legacy.h', 'Evas_Loader.h', ] evas_include_directories = [ include_directories('.'), include_directories('common'), include_directories('common3d'), include_directories(join_paths('common3d', 'save_load')), include_directories('include'), include_directories('filters'), vg_common_inc_dir ] evas_src = [ 'main.c' ] evas_src_opt = [ ] evas_src += vg_common_src evas_deps += dependency('freetype2') if (get_option('fontconfig')) config_h.set('HAVE_FONTCONFIG', '1') evas_deps += dependency('fontconfig') endif if (get_option('fribidi')) config_h.set('HAVE_FRIBIDI', '1') evas_deps += dependency('fribidi') endif if (get_option('pixman')) pixman_support = ['HAVE_PIXMAN', 'PIXMAN_FONT', 'PIXMAN_RECT', 'PIXMAN_LINE', 'PIXMAN_POLY', 'PIXMAN_IMAGE', 'PIXMAN_IMAGE_SCALE_SAMPLE'] foreach support : pixman_support config_h.set(support, '1') endforeach evas_deps += dependency('pixman') endif if (get_option('hyphen')) config_h.set('HAVE_HYPHEN', '1') hyphen = dependency('hyphen', required : false) if hyphen.found() == false evas_deps += cc.find_library('hyphen') endif evas_deps += hyphen config_h.set_quoted('EVAS_DICTS_HYPHEN_DIR', '/usr/share/hyphen') endif subdir('include') subdir('common') subdir('canvas') subdir('gesture') subdir('filters') subdir('cache') subdir('common3d') subdir('file') subdir('vg') gl_deps = [] if get_option('harfbuzz') evas_deps += dependency('harfbuzz') config_h.set('HAVE_HARFBUZZ', '1') endif if get_option('wl') evas_deps += wayland_protocol endif if get_option('opengl') != 'none' gl_deps += dependency('gl') endif if get_option('opengl') == 'es-egl' config_h.set('GL_GLES', '1') gl_deps += dependency('egl') endif evas_pre = declare_dependency( include_directories: evas_include_directories + [vg_common_inc_dir], sources : pub_eo_file_target + priv_eo_file_target, dependencies: [eina, eo, ector, emile, evas_deps, m], ) evas_link = [ ] if cpu_sse3 == true or cpu_neon == true and cpu_neon_intrinsics == false evas_opt = static_library('evas_opt', sources: evas_src_opt, include_directories: [ include_directories('../../..') ] + evas_include_directories + [vg_common_inc_dir], c_args: evas_opt_c_args, dependencies: [eina, eo, ector, emile, evas_deps, m], ) evas_link += [ evas_opt ] endif evas_pre_lib_dep = declare_dependency( include_directories: evas_include_directories + [vg_common_inc_dir], sources : [evas_src, pub_eo_file_target], link_with: evas_link, dependencies: [evas_deps, m, draw, valgrind, libunibreak] ) install_data(pub_evas_eo_files + pub_evas_eot_files, install_dir: join_paths(eolian_include_dir, package_version_name) ) install_headers(evas_header_src, install_dir : dir_package_include, ) automatic_pkgfile = false pub_eo_files = [] package_eo_subdirs += ['canvas', 'gesture'] package_header_subdirs += ['canvas', 'gesture']