aboutsummaryrefslogblamecommitdiffstats
path: root/src/lib/evas/meson.build
blob: 1b306c363e7d9f5eb22608a73e9d3d84f95cf1f0 (plain) (tree)



























                                                                        

                              

                                      
                                                                                          

                                                                                              







                                                                                              
                                                                                          
                                                                                                     

                                                                                                     









                                                              
                             

                                      
                                                                                          

                                                                                              

                                                                                              










                                                              
                             

                                      
                                                                                          
                                                                                              

                                                                                              


























                                                                

                  























                                                                                                                                            




                                                  
                                                                                      
























                                     

                                     

                                   
      
                               
       




                                                                      
                                                       

 



                                                                        
                          



                                           
                                   




                                                         


                                                                      
                       











                                                                   


                                               
# 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', get_option('dictionaries-hyphen-dir'))
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'
  if get_option('opengl') == 'es-egl'
    config_h.set('GL_GLES', '1')
    gl_deps += dependency('glesv2')
    gl_deps += dependency('egl')
  else
    gl_deps += dependency('gl')
  endif
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: native_arch_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']