forked from enlightenment/enventor
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.
150 lines
4.1 KiB
150 lines
4.1 KiB
project('enventor', 'c', |
|
version : '1.0.99', |
|
meson_version : '>= 0.53', |
|
default_options : [ |
|
'warning_level=2', |
|
'buildtype=debugoptimized', |
|
'c_std=c99' |
|
] |
|
) |
|
|
|
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')) |
|
|
|
# binaries |
|
|
|
cc = meson.get_compiler('c') |
|
|
|
enventor_cflags = [] |
|
enventor_cflags_try = [ |
|
'-Wshadow', |
|
'-Wstrict-prototypes', |
|
'-Werror=missing-prototypes', |
|
'-Werror=pointer-arith', |
|
'-Wno-missing-field-initializers'] |
|
|
|
foreach cf: enventor_cflags_try |
|
if cc.has_argument(cf) == true |
|
enventor_cflags += cf |
|
endif |
|
endforeach |
|
add_global_arguments(enventor_cflags, language: 'c') |
|
|
|
have_visibility_hidden = cc.has_argument('-fvisibility=hidden') |
|
if have_visibility_hidden |
|
add_global_arguments('-fvisibility=hidden', language: 'c') |
|
endif |
|
|
|
pkgconfig = import('pkgconfig') |
|
windows = import('windows') |
|
|
|
eet = find_program('eet', native: true) |
|
eet_exe = [ eet ] |
|
|
|
edje_cc = find_program('edje_cc', native: true) |
|
edje_cc_exe = [ edje_cc ] |
|
|
|
# libraries |
|
|
|
config_dir = [include_directories('.')] |
|
|
|
efl_req = '>= 1.18.0' |
|
enventor_deps = [ |
|
dependency('eina', version : efl_req), |
|
dependency('eo', version : efl_req), |
|
dependency('efl', version : efl_req), |
|
dependency('eet', version : efl_req), |
|
dependency('ecore', version : efl_req), |
|
dependency('ecore-file', version : efl_req), |
|
dependency('evas', version : efl_req), |
|
dependency('eio', version : efl_req), |
|
dependency('efreet', version : efl_req), |
|
dependency('edje', version : efl_req), |
|
dependency('elementary', version : efl_req) |
|
] |
|
|
|
requirement_enventor_pc = ' eina ' + efl_req + ' eo ' + efl_req + ' efl ' + efl_req + ' eet ' + efl_req + ' ecore ' + efl_req + ' ecore-file ' + efl_req + ' evas ' + efl_req + ' eio ' + efl_req + ' efreet ' + efl_req + ' edje ' + efl_req + ' elementary ' + efl_req |
|
|
|
enventor_cargs = [ |
|
'-D_POSIX_C_SOURCE=200809L', |
|
'-D_XOPEN_SOURCE=500' ] |
|
|
|
have_nls = false |
|
if get_option('nls') == true |
|
intl_dep = cc.find_library('intl', required: false) |
|
if intl_dep.found() == true and cc.has_header('libintl.h') == true |
|
enventor_deps += cc.find_library('intl', required: true) |
|
enventor_cargs += '-DENABLE_NLS' |
|
have_nls = true |
|
endif |
|
endif |
|
|
|
# configuration |
|
|
|
config_h = configuration_data() |
|
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('LOCALE_DIR', dir_locale) |
|
config_h.set('EFL_BETA_API_SUPPORT', '1') |
|
config_h.set('EFL_UI_FOCUS_OBJECT_PROTECTED', '1') |
|
config_h.set('ENVENTOR_BETA_API_SUPPORT', '1') |
|
|
|
subdir('src/lib') |
|
subdir('src/bin') |
|
subdir('data/autocomp') |
|
subdir('data/color') |
|
subdir('data/desktop') |
|
subdir('data/help') |
|
subdir('data/icon') |
|
subdir('data/images') |
|
subdir('data/reference') |
|
subdir('data/sounds') |
|
subdir('data/templates') |
|
subdir('data/themes/default') |
|
subdir('pc') |
|
subdir('po') |
|
|
|
install_data( |
|
sources : 'README', |
|
install_dir : join_paths(dir_pkgdata, 'docs') |
|
) |
|
|
|
# Use config_h after all subdirs have set values |
|
|
|
configure_file(output : 'config.h', configuration : config_h) |
|
|
|
# output |
|
|
|
summary({'OS': host_machine.system(), |
|
'NLS': have_nls ? 'yes' : 'no' |
|
}, 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, |
|
'localedir': dir_locale, |
|
}, section: 'Directories:') |
|
|
|
summary({'compilation': 'ninja', |
|
'installation': 'ninja install', |
|
}, section: 'Compilation')
|
|
|