Terminal emulator with all the bells and whistles
https://www.enlightenment.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
4.2 KiB
154 lines
4.2 KiB
project('terminology', 'c', |
|
version: '1.13.0', |
|
default_options: ['buildtype=plain', 'c_std=gnu99'], |
|
license: 'BSD') |
|
|
|
cc = meson.get_compiler('c') |
|
|
|
prefix = get_option('prefix') |
|
add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c') |
|
config_data = configuration_data() |
|
config_data.set('EFL_BETA_API_SUPPORT', 1) |
|
config_data.set('EFL_EO_API_SUPPORT', 1) |
|
config_data.set_quoted('PACKAGE_VERSION', meson.project_version()) |
|
config_data.set_quoted('PACKAGE', meson.project_name()) |
|
config_data.set_quoted('PACKAGE_BUGREPORT', |
|
'enlightenment-devel@lists.sourceforge.net') |
|
config_data.set_quoted('PACKAGE_NAME', meson.project_name()) |
|
config_data.set_quoted('PACKAGE_TARNAME', meson.project_name()) |
|
config_data.set_quoted('PACKAGE_URL', |
|
'https://www.enlightenment.org/about-terminology') |
|
config_data.set_quoted('PACKAGE_BIN_DIR', |
|
join_paths(prefix, get_option('bindir'))) |
|
config_data.set_quoted('PACKAGE_DATA_DIR', |
|
join_paths(prefix, get_option('datadir'), |
|
meson.project_name())) |
|
config_data.set_quoted('PACKAGE_LIB_DIR', |
|
join_paths(prefix, get_option('libdir'))) |
|
config_data.set_quoted('LOCALEDIR', join_paths(prefix, get_option('localedir'))) |
|
|
|
host_os = host_machine.system() |
|
|
|
if host_os == 'linux' |
|
config_data.set('_GNU_SOURCE', 1) |
|
config_data.set('__EXTENSIONS__', 1) |
|
config_data.set('_POSIX_PTHREAD_SEMANTICS', 1) |
|
config_data.set('_TANDEM_SOURCE', 1) |
|
config_data.set('_ALL_SOURCE', 1) |
|
config_data.set('_POSIX_SOURCE', 1) |
|
config_data.set('_POSIX_1_SOURCE', 1) |
|
endif |
|
|
|
efl_version = '1.26.0' |
|
m_dep = cc.find_library('m', required : false) |
|
efl_deps = ['edje', |
|
'elementary', |
|
'eina', |
|
'eet', |
|
'evas', |
|
'ecore', |
|
'ecore-evas', |
|
'ecore-file', |
|
'emotion', |
|
'ecore-input', |
|
'ecore-imf', |
|
'ecore-imf-evas', |
|
'ecore-ipc', |
|
'efreet', |
|
'ecore-con', |
|
'ethumb_client'] |
|
terminology_dependencies = [ m_dep ] |
|
edje_cc_path = '' |
|
eet_path = '' |
|
edj_targets = [] |
|
edj_files = [] |
|
|
|
if get_option('nls') == true |
|
subdir('po') |
|
# need both cause libintl may be included in glibc or not |
|
dep = dependency('intl', required: false) |
|
if dep.found() |
|
terminology_dependencies += dep |
|
else |
|
terminology_dependencies += cc.find_library('intl', required: false) |
|
endif |
|
endif |
|
|
|
foreach efl_dep: efl_deps |
|
dep = dependency(efl_dep, version: '>=' + efl_version) |
|
terminology_dependencies += [dep] |
|
if efl_dep == 'edje' |
|
edje_cc_path = dep.get_pkgconfig_variable('prefix') + '/bin/edje_cc' |
|
endif |
|
if efl_dep == 'eet' |
|
eet_path = dep.get_pkgconfig_variable('prefix') + '/bin/eet' |
|
endif |
|
endforeach |
|
|
|
if cc.has_function('mkstemps') |
|
config_data.set('HAVE_MKSTEMPS', 1) |
|
endif |
|
|
|
if cc.has_function('strchrnul') |
|
config_data.set('HAVE_STRCHRNUL', 1) |
|
endif |
|
|
|
sel_format_urilist_code = '''#include <Elementary.h> |
|
int main(void) { return ELM_SEL_FORMAT_URILIST; } |
|
''' |
|
|
|
found = 'Not found' |
|
|
|
if cc.links(sel_format_urilist_code, dependencies: terminology_dependencies) |
|
config_data.set('HAVE_ELM_SEL_FORMAT_URILIST', 1) |
|
found = 'Found' |
|
endif |
|
|
|
message('Checking for ELM_SEL_FORMAT_URILIST: ' + found) |
|
|
|
eet_bin = get_option('eet') |
|
if eet_bin == '' |
|
eet_bin = eet_path |
|
endif |
|
|
|
edje_cc = get_option('edje-cc') |
|
if edje_cc == '' |
|
edje_cc = edje_cc_path |
|
endif |
|
|
|
res = run_command(edje_cc, meson.current_source_dir() + '/data/test_offscale.edc') |
|
if res.returncode() == 0 |
|
message('edje_cc has support for offscale') |
|
edje_offscale='-DHAS_OFFSCALE=1' |
|
else |
|
message('edje_cc does not have support for offscale') |
|
edje_offscale='-DHAS_OFFSCALE=0' |
|
endif |
|
|
|
fuzzing = get_option('fuzzing') |
|
|
|
if fuzzing |
|
message('Fuzzing is enabled') |
|
else |
|
message('Fuzzing is disabled') |
|
endif |
|
|
|
tests = get_option('tests') |
|
if tests |
|
message('Tests are enabled') |
|
else |
|
message('Tests are disabled') |
|
endif |
|
|
|
message('edje_cc set to:' + edje_cc) |
|
|
|
sed = find_program('sed') |
|
|
|
configure_file(output: 'terminology_config.h', |
|
configuration: config_data) |
|
|
|
config_dir = include_directories('.') |
|
subdir('data') |
|
subdir('man') |
|
subdir('src/bin') |
|
|
|
|