diff --git a/.gitignore b/.gitignore index 48e8b24..64da4e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /build/ /.deps/ -/.vscode/ \ No newline at end of file +/.vscode/ +/subprojects/* +!/subprojects/*.wrap \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..e6b198f --- /dev/null +++ b/meson.build @@ -0,0 +1,59 @@ +project('webfused', 'c', 'cpp', version: '0.3.0', license: 'LGPL-3.0+') + +openssl_dep = dependency('openssl', version: '>=1.1.1') +libconfig_dep = dependency('libconfig', version: '>=1.5') +pam_dep = declare_dependency(link_args: ['-lpam']) + +libwebsockets_dep = dependency('libwebsockets', version: '>=4.0.1') +jansson_dep = dependency('jansson', version: '>=2.11', fallback: ['jansson', 'jansson_dep']) +libfuse_dep = dependency('fuse3', version: '>=3.8.0', fallback: ['fuse3', 'libfuse_dep']) +gtest_dep = dependency('gtest', version: '>=1.10.0', fallback: ['gtest', 'gtest_dep']) +gmock_main_dep = dependency('gmock_main', version: '>=1.10.0', fallback: ['gtest', 'gmock_main_main_dep']) +webfuse_adapter_dep = dependency('webfuse_adapter', version: '>=0.3.0', fallback: ['webfuse', 'webfuse_adapter_dep']) + +inc_dir = include_directories('src') + +libuserdb = static_library('userdb', + 'src/userdb/userdb.c', + include_directories: inc_dir, + dependencies: [libconfig_dep, openssl_dep, jansson_dep]) + +libuserdb_dep = declare_dependency( + include_directories: inc_dir, + link_with: libuserdb, + dependencies: [libconfig_dep, openssl_dep, jansson_dep]) + +libwebfused = static_library('webfused', + 'src/webfused/daemon.c', + 'src/webfused/mountpoint_factory.c', + 'src/webfused/change_user.c', + 'src/webfused/config/config.c', + 'src/webfused/config/factory.c', + 'src/webfused/config/settings.c', + 'src/webfused/auth/authenticator.c', + 'src/webfused/auth/factory.c', + 'src/webfused/auth/file_authenticator.c', + 'src/webfused/auth/pam_authenticator.c', + 'src/webfused/log/log.c', + 'src/webfused/log/logger.c', + 'src/webfused/log/manager.c', + 'src/webfused/log/stderr_logger.c', + 'src/webfused/log/syslog_logger.c', + include_directories: inc_dir, + dependencies: [libuserdb_dep, webfuse_adapter_dep, pam_dep], + install: false) + +libwebfused_dep = declare_dependency( + include_directories: inc_dir, + link_with: libwebfused, + dependencies: [libuserdb_dep, webfuse_adapter_dep, pam_dep], + install: false) + +webfused = executable('webfused', + 'src/webfused/main.c', + include_directories: inc_dir, + dependencies: [libwebfused_dep], + install: true) + +install_data('etc/webfused.conf', install_dir: '/etc') + diff --git a/subprojects/fuse3.wrap b/subprojects/fuse3.wrap new file mode 100644 index 0000000..ccb34f5 --- /dev/null +++ b/subprojects/fuse3.wrap @@ -0,0 +1,7 @@ +[wrap-file] +directory = libfuse-fuse-3.8.0 + +source_url = https://github.com/libfuse/libfuse/archive/fuse-3.8.0.tar.gz +source_filename = fuse-3.8.0.tar.gz +source_hash = 1781225ba4d11d76eb105e02e54976939974547eb40bab4b4e91167854224024 + diff --git a/subprojects/gtest.wrap b/subprojects/gtest.wrap new file mode 100644 index 0000000..d52b0b3 --- /dev/null +++ b/subprojects/gtest.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = googletest-release-1.10.0 + +source_url = https://github.com/google/googletest/archive/release-1.10.0.zip +source_filename = gtest-1.10.0.zip +source_hash = 94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91 + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/gtest/1.10.0/1/get_zip +patch_filename = gtest-1.10.0-1-wrap.zip +patch_hash = 04ff14e8880e4e465f6260221e9dfd56fea6bc7cce4c4aff0dc528e4a2c8f514 \ 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 diff --git a/subprojects/webfuse.wrap b/subprojects/webfuse.wrap new file mode 100644 index 0000000..88346ef --- /dev/null +++ b/subprojects/webfuse.wrap @@ -0,0 +1,7 @@ +[wrap-file] +directory = webfuse-master + +source_url = https://github.com/falk-werner/webfuse/archive/master.tar.gz +source_filename = master.tar.gz +source_hash = 0a496dd9eab3e14585dc3513dca80e7df046cfe2bb8ddae120bf7d00a9f6b5ec +