diff --git a/.gitignore b/.gitignore index 3aba301..08038c6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ /.deps/ /.settings/language.settings.xml /doc/api +/subprojects/* +!/subprojects/*.wrap \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..1b467e6 --- /dev/null +++ b/meson.build @@ -0,0 +1,75 @@ +project('webfuse', 'c', 'cpp', version: '0.3.0', license: 'LGPL-3.0+') + +libwebsockets_dep = dependency('libwebsockets', version: '>=4.0.1') +jansson_dep = dependency('jansson', version: '>=2.11', fallback: ['jansson', 'jansson_dep']) + +pkg_config = import('pkgconfig') + +inc_dir = include_directories('include') +private_inc_dir = include_directories('include', 'lib') + +webfuse_core = static_library('webfuse_core', + 'lib/webfuse/core/slist.c', + 'lib/webfuse/core/message.c', + 'lib/webfuse/core/message_queue.c', + 'lib/webfuse/core/status.c', + 'lib/webfuse/core/string.c', + 'lib/webfuse/core/base64.c', + 'lib/webfuse/core/lws_log.c', + 'lib/webfuse/core/json_util.c', + 'lib/webfuse/core/timer/manager.c', + 'lib/webfuse/core/timer/timepoint.c', + 'lib/webfuse/core/timer/timer.c', + 'lib/webfuse/core/jsonrpc/proxy.c', + 'lib/webfuse/core/jsonrpc/proxy_variadic.c', + 'lib/webfuse/core/jsonrpc/server.c', + 'lib/webfuse/core/jsonrpc/method.c', + 'lib/webfuse/core/jsonrpc/request.c', + 'lib/webfuse/core/jsonrpc/response.c', + 'lib/webfuse/core/jsonrpc/error.c', + c_args: ['-fvisibility=hidden'], + include_directories: private_inc_dir, + dependencies: [jansson_dep, libwebsockets_dep]) + +webfuse_core_dep = declare_dependency( + include_directories: inc_dir, + link_with: webfuse_core) + +webfuse_provider_static = static_library('webfuse_provider', + 'lib/webfuse/provider/api.c', + 'lib/webfuse/provider/impl/url.c', + 'lib/webfuse/provider/impl/client.c', + 'lib/webfuse/provider/impl/client_config.c', + 'lib/webfuse/provider/impl/client_protocol.c', + 'lib/webfuse/provider/impl/provider.c', + 'lib/webfuse/provider/impl/request.c', + 'lib/webfuse/provider/impl/dirbuffer.c', + 'lib/webfuse/provider/impl/credentials.c', + 'lib/webfuse/provider/impl/operation/lookup.c', + 'lib/webfuse/provider/impl/operation/getattr.c', + 'lib/webfuse/provider/impl/operation/readdir.c', + 'lib/webfuse/provider/impl/operation/open.c', + 'lib/webfuse/provider/impl/operation/close.c', + 'lib/webfuse/provider/impl/operation/read.c', + c_args: ['-fvisibility=hidden'], + include_directories: private_inc_dir, + dependencies: [webfuse_core_dep]) + +webfuse_provider_static_dep = declare_dependency( + include_directories: inc_dir, + link_with: webfuse_provider_static) + +webfuse_provider = shared_library('webfuse_provider', + 'lib/webfuse/provider/api.c', + version: meson.project_version(), + c_args: ['-fvisibility=hidden', '-DWFP_API=WFP_EXPORT'], + include_directories: private_inc_dir, + dependencies: [webfuse_provider_static_dep]) + +pkg_config.generate( + libraries: [webfuse_provider, jansson_dep, libwebsockets_dep], + subdirs: '.', + version: meson.project_version(), + name: 'libwebfuse_provider', + filebase: 'webfuse_provider', + description: 'Provider library for websockets filesystem') \ No newline at end of file diff --git a/subprojects/jansson.wrap b/subprojects/jansson.wrap new file mode 100644 index 0000000..6282afd --- /dev/null +++ b/subprojects/jansson.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = jansson-2.11 + +source_url = http://www.digip.org/jansson/releases/jansson-2.11.tar.bz2 +source_filename = jansson-2.11.tar.bz2 +source_hash = 783132e2fc970feefc2fa54199ef65ee020bd8e0e991a78ea44b8586353a0947 + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/jansson/2.11/3/get_zip +patch_filename = jansson-2.11-3-wrap.zip +patch_hash = 0bcac510994890048d42658c674e33dd7d88715fc1e3bf49d10012f57b0e0020 \ No newline at end of file