162 lines
4.2 KiB
Meson
162 lines
4.2 KiB
Meson
project('express', 'c',
|
|
version : '0.0.2',
|
|
meson_version : '>= 0.53',
|
|
default_options : [
|
|
'warning_level=2',
|
|
'buildtype=debugoptimized'
|
|
]
|
|
)
|
|
|
|
v_array = meson.project_version().split('.')
|
|
v_maj = v_array[0]
|
|
v_min = v_array[1]
|
|
v_mic = v_array[2]
|
|
|
|
# install paths
|
|
|
|
dir_prefix = get_option('prefix')
|
|
dir_include = join_paths(dir_prefix, get_option('includedir'))
|
|
dir_pkginclude = join_paths(dir_include, meson.project_name())
|
|
dir_bin = join_paths(dir_prefix, get_option('bindir'))
|
|
dir_lib = join_paths(dir_prefix, get_option('libdir'))
|
|
dir_data = join_paths(dir_prefix, get_option('datadir'))
|
|
dir_pkgdata = join_paths(dir_data, meson.project_name())
|
|
dir_locale = join_paths(dir_prefix, get_option('localedir'))
|
|
|
|
# host
|
|
|
|
host_os = host_machine.system()
|
|
|
|
# binaries
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
express_cflags = []
|
|
express_cflags_try = [
|
|
'-fvisibility=hidden',
|
|
'-fdata-sections',
|
|
'-ffunction-sections',
|
|
'-fno-strict-aliasing',
|
|
'-Wshadow',
|
|
'-Wstrict-prototypes',
|
|
'-Werror=pointer-arith',
|
|
'-Wno-missing-field-initializers']
|
|
|
|
foreach cf: express_cflags_try
|
|
if cc.has_argument(cf) == true
|
|
express_cflags += cf
|
|
endif
|
|
endforeach
|
|
add_global_arguments(express_cflags, language: 'c')
|
|
|
|
express_lflags = []
|
|
if cc.has_link_argument('-Wl,--gc-sections')
|
|
express_lflags += '-Wl,--gc-sections'
|
|
endif
|
|
|
|
if cc.has_link_argument('-Wl,--as-needed')
|
|
express_lflags += '-Wl,--as-needed'
|
|
endif
|
|
|
|
if cc.has_link_argument('-Wl,--no-copy-dt-needed-entries')
|
|
express_lflags += '-Wl,--no-copy-dt-needed-entries'
|
|
endif
|
|
add_global_link_arguments(express_lflags, language: 'c')
|
|
|
|
pkgconfig = import('pkgconfig')
|
|
windows = import('windows')
|
|
|
|
edje_cc = find_program('edje_cc', native: true)
|
|
edje_cc_exe = [ edje_cc ]
|
|
|
|
# libraries
|
|
|
|
config_dir = [include_directories('.')]
|
|
|
|
efl_req = '>= 1.12.0'
|
|
express_lib_deps = [
|
|
dependency('eina', version : efl_req),
|
|
dependency('ecore', version : efl_req),
|
|
dependency('ecore-con', version : efl_req)
|
|
]
|
|
|
|
requirement_express_pc = ' eina ' + efl_req + ' ecore ' + efl_req + ' ecore-con ' + efl_req
|
|
|
|
if get_option('nls') == true
|
|
express_lib_deps += cc.find_library('intl', required: false)
|
|
endif
|
|
|
|
express_cargs = [ ]
|
|
|
|
# configuration
|
|
|
|
config_h = configuration_data()
|
|
config_h.set('EFL_BETA_API_SUPPORT', 1)
|
|
config_h.set('EFL_EO_API_SUPPORT', 1)
|
|
config_h.set_quoted('PACKAGE', meson.project_name())
|
|
config_h.set_quoted('PACKAGE_NAME', meson.project_name())
|
|
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
|
|
config_h.set_quoted('PACKAGE_BIN_DIR', dir_bin)
|
|
config_h.set_quoted('PACKAGE_LIB_DIR', dir_lib)
|
|
config_h.set_quoted('PACKAGE_DATA_DIR', dir_pkgdata)
|
|
config_h.set_quoted('PACKAGE_LOCALE_DIR', dir_locale)
|
|
|
|
if cc.has_function('mkstemps')
|
|
config_h.set('HAVE_MKSTEMPS', 1)
|
|
endif
|
|
|
|
subdir('data/desktop')
|
|
subdir('data/fonts')
|
|
subdir('data/images')
|
|
subdir('data/themes')
|
|
subdir('src/lib')
|
|
subdir('src/bin')
|
|
#if get_option('nls') == true
|
|
# subdir('po')
|
|
#endif
|
|
|
|
# Use config_h after all subdirs have set values
|
|
|
|
configure_file(output : 'express_config.h', configuration : config_h)
|
|
|
|
# pkg-config
|
|
|
|
pkgconf = configuration_data()
|
|
|
|
pkgconf.set('prefix', get_option('prefix'))
|
|
pkgconf.set('exec_prefix', '${prefix}')
|
|
pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
|
|
pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
|
|
pkgconf.set('pkgincludedir', '${prefix}/@0@'.format(get_option('includedir')) + '/express')
|
|
pkgconf.set('VMAJ', v_maj)
|
|
pkgconf.set('VERSION', meson.project_version())
|
|
pkgconf.set('requirements_libexpress_pc', requirement_express_pc)
|
|
pkgconf.set('requirements_libexpress_libs', requirement_express_libs)
|
|
|
|
pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
|
|
|
|
configure_file(
|
|
input : join_paths(meson.source_root(), 'libexpress.pc.in'),
|
|
output : 'libexpress.pc',
|
|
configuration : pkgconf,
|
|
install_dir : pkg_install_dir
|
|
)
|
|
|
|
# output
|
|
|
|
summary({'OS': host_os,
|
|
}, section: 'Configuration Options Summary:')
|
|
|
|
summary({'prefix': dir_prefix,
|
|
'bindir': dir_bin,
|
|
'libdir': dir_lib,
|
|
'incdir': dir_include,
|
|
'pkgincdir': dir_pkginclude,
|
|
'datadir': dir_data,
|
|
'pkgdatadir': dir_pkgdata,
|
|
}, section: 'Directories:')
|
|
|
|
summary({'compilation': 'ninja',
|
|
'installation': 'ninja install',
|
|
}, section: 'Compilation')
|