2017-08-04 13:24:58 -07:00
|
|
|
project('desksanity', 'c',
|
|
|
|
version : '1.1.99',
|
|
|
|
license : 'BSD 2 clause',
|
|
|
|
default_options: [ 'c_std=gnu99', 'warning_level=2' ],
|
|
|
|
meson_version : '>= 0.40.0')
|
|
|
|
|
|
|
|
add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c')
|
|
|
|
dir_prefix = get_option('prefix')
|
|
|
|
dir_bin = join_paths(dir_prefix, get_option('bindir'))
|
|
|
|
dir_sysconf = get_option('sysconfdir')
|
|
|
|
dir_data = join_paths(dir_prefix, get_option('datadir'))
|
|
|
|
dir_include = join_paths(dir_prefix, get_option('includedir'))
|
|
|
|
dir_include_e = join_paths(dir_include, meson.project_name())
|
|
|
|
dir_lib = join_paths(dir_prefix, get_option('libdir'))
|
|
|
|
|
|
|
|
|
|
|
|
pkgconfig = import('pkgconfig')
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
|
|
|
|
# disable for release builds
|
|
|
|
dev_cflags = []
|
|
|
|
dev_cflags_try = [
|
|
|
|
'-Wall',
|
|
|
|
'-W',
|
|
|
|
'-Wpointer-arith',
|
|
|
|
'-Wshadow',
|
|
|
|
'-Wno-missing-field-initializers',
|
|
|
|
'-Wfloat-equal',
|
|
|
|
'-Wuninitialized',
|
|
|
|
'-Wundef',
|
|
|
|
'-Wcast-align',
|
|
|
|
'-Wformat=2',
|
|
|
|
'-Wno-format-y2k',
|
|
|
|
]
|
|
|
|
|
|
|
|
foreach cf: dev_cflags_try
|
|
|
|
if cc.has_argument(cf) == true
|
|
|
|
dev_cflags += cf
|
|
|
|
endif
|
|
|
|
endforeach
|
|
|
|
add_global_arguments(dev_cflags, language: 'c')
|
|
|
|
|
|
|
|
release = 'ver-0.22'
|
|
|
|
host_os = host_machine.system()
|
|
|
|
if host_os == 'linux'
|
|
|
|
if cc.has_header_symbol('features.h', '__UCLIBC__')
|
|
|
|
host_os = 'linux-uclibc'
|
|
|
|
elif cc.has_header_symbol('features.h', '__dietlibc__')
|
|
|
|
host_os = 'linux-dietlibc'
|
|
|
|
else
|
|
|
|
host_os = 'linux-gnu'
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
module_arch = '@0@-@1@-@2@'.format(host_os, host_machine.cpu_family(), release)
|
|
|
|
|
|
|
|
config_h = configuration_data()
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('_GNU_SOURCE', '1')
|
|
|
|
config_h.set('_ALL_SOURCE', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('_POSIX_PTHREAD_SEMANTICS', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('_TANDEM_SOURCE', '1')
|
|
|
|
config_h.set('__EXTENSIONS__', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set_quoted('MODULE_ARCH', module_arch)
|
|
|
|
config_h.set_quoted('PACKAGE', meson.project_name())
|
|
|
|
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
|
|
|
|
config_h.set_quoted('VERSION', meson.project_version())
|
|
|
|
config_h.set_quoted('PACKAGE_NAME', meson.project_name())
|
|
|
|
config_h.set_quoted('BINDIR', dir_bin)
|
|
|
|
config_h.set_quoted('DATADIR', dir_data)
|
2017-08-04 13:24:58 -07:00
|
|
|
|
|
|
|
if cc.has_function('setenv') == true
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_SETENV', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
endif
|
|
|
|
if cc.has_function('unsetenv') == true
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_UNSETENV', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
endif
|
|
|
|
if cc.has_function('clearenv') == true
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_CLEARENV', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
endif
|
|
|
|
if cc.has_header('features.h') == true
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_FEATURES_H', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
endif
|
|
|
|
if cc.has_header('sys/ptrace.h') == true
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_SYS_PTRACE_H', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
endif
|
|
|
|
if cc.has_header('arpa/inet.h') == true
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_ARPA_INET_H', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
endif
|
|
|
|
if cc.has_header('netinet/in.h') == true
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_NETINET_IN_H', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
endif
|
|
|
|
if cc.has_header('execinfo.h') == true
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_EXECINFO_H', '1')
|
2017-08-04 13:24:58 -07:00
|
|
|
elif cc.has_function('backtrace_symbols_fd', dependencies: 'execinfo') == false
|
|
|
|
execinfo_dep = dependency('execinfo', required: false)
|
|
|
|
endif
|
|
|
|
|
|
|
|
if cc.has_header('fnmatch.h') == false
|
|
|
|
error('fnmatch.h not found')
|
|
|
|
endif
|
|
|
|
|
|
|
|
if cc.has_function('fnmatch') == false
|
|
|
|
dep_fnmatch = dependency('fnmatch', required: true)
|
|
|
|
endif
|
|
|
|
|
|
|
|
add_global_arguments('-DPACKAGE_BIN_DIR="@0@"'.format(dir_bin), language: 'c')
|
|
|
|
add_global_arguments('-DPACKAGE_LIB_DIR="@0@"'.format(dir_lib), language: 'c')
|
|
|
|
add_global_arguments('-DPACKAGE_DATA_DIR="@0@"'.format(join_paths(dir_data, meson.project_name())), language: 'c')
|
|
|
|
add_global_arguments('-DPACKAGE_SYSCONF_DIR="@0@"'.format(dir_sysconf), language: 'c')
|
|
|
|
|
|
|
|
dep_efl_wl = dependency('efl-wl', required: false)
|
|
|
|
dep_e = dependency('enlightenment')
|
|
|
|
|
|
|
|
dir_module_e = join_paths([dep_e.get_pkgconfig_variable('modules'), 'desksanity'])
|
|
|
|
edje_cc = find_program('edje_cc')
|
|
|
|
|
|
|
|
install_data(['e-module-desksanity.edj', 'module.desktop'],
|
|
|
|
install_dir: dir_module_e)
|
|
|
|
|
|
|
|
build_files = [
|
|
|
|
'src/e_mod_main.h',
|
|
|
|
'src/e_mod_main.c',
|
|
|
|
'src/ds_config.c',
|
|
|
|
'src/maximize.c',
|
|
|
|
'src/moveresize.c',
|
|
|
|
'src/pip.c',
|
|
|
|
'src/zoom.c',
|
|
|
|
'src/magnify.c',
|
|
|
|
'src/desksanity.c'
|
|
|
|
]
|
|
|
|
|
|
|
|
if dep_efl_wl.found() == true
|
|
|
|
build_files += 'src/runner.c'
|
2017-08-04 13:24:58 -07:00
|
|
|
config_h.set('HAVE_RUNNER', '1')
|
|
|
|
|
|
|
|
wayland_scanner = find_program('wayland-scanner')
|
|
|
|
gen_scanner_client = generator(wayland_scanner,
|
|
|
|
output: '@BASENAME@-client-protocol.h',
|
|
|
|
arguments: ['client-header', '@INPUT@', '@OUTPUT@'])
|
|
|
|
gen_scanner_impl = generator(wayland_scanner,
|
|
|
|
output: '@BASENAME@-protocol.c',
|
|
|
|
arguments: ['code', '@INPUT@', '@OUTPUT@'])
|
|
|
|
protos = [ 'e-gadget.xml']
|
|
|
|
|
|
|
|
foreach proto: protos
|
|
|
|
build_files += gen_scanner_client.process(proto)
|
|
|
|
build_files += gen_scanner_impl.process(proto)
|
|
|
|
endforeach
|
2017-08-04 13:24:58 -07:00
|
|
|
endif
|
|
|
|
|
2017-08-04 13:24:58 -07:00
|
|
|
|
|
|
|
configure_file(output : 'config.h',
|
|
|
|
install : false,
|
|
|
|
configuration: config_h)
|
|
|
|
|
2017-08-04 13:24:58 -07:00
|
|
|
shared_module('desksanity', build_files,
|
|
|
|
include_directories: include_directories(['src']),
|
|
|
|
name_prefix: '',
|
|
|
|
dependencies: [dep_e, dep_efl_wl],
|
|
|
|
install_dir: join_paths([dir_module_e, module_arch]),
|
|
|
|
install: true)
|
|
|
|
|
|
|
|
meson.add_install_script('meson_modules.sh', join_paths([dir_module_e, module_arch, 'desksanity.so']))
|