2020-02-18 20:48:52 +00:00
|
|
|
# Build Instructions
|
|
|
|
|
|
|
|
To install dependencies, see below.
|
|
|
|
|
|
|
|
cd webfuse
|
|
|
|
mkdir .build
|
|
|
|
cd .build
|
|
|
|
cmake ..
|
|
|
|
make
|
|
|
|
|
|
|
|
## Build options
|
|
|
|
|
|
|
|
By default, unit tests are enabled. You can disable them using the following cmake options:
|
|
|
|
|
|
|
|
- **WITHOUT_TESTS**: disable tests
|
|
|
|
`cmake -DWITHOUT_TESTS=ON ..`
|
|
|
|
|
|
|
|
Since webfuse consists of two libraries, it is possible to disable one of them
|
|
|
|
in order to reduce build dependencies.
|
|
|
|
*Note that unit tests are only available, when both libraries are built.*
|
|
|
|
|
|
|
|
- **WITHOUT_ADAPTER**: omit adapter library
|
|
|
|
`cmake -DWITHOUT_ADAPTER=ON`
|
|
|
|
|
2020-05-25 17:55:09 +00:00
|
|
|
- **WIHTOUT_PROVIDER**: omit provider library
|
2020-02-18 20:48:52 +00:00
|
|
|
`cmake -DWITHOUT_PROVIDER=ON`
|
|
|
|
|
2020-05-23 16:45:34 +00:00
|
|
|
## Build using Meson (experimental)
|
|
|
|
|
|
|
|
_Note: Meson build support is experimental. Do not rely on it._
|
|
|
|
|
2020-05-25 17:55:09 +00:00
|
|
|
meson .build
|
|
|
|
cd .build
|
|
|
|
ninja build
|
|
|
|
|
|
|
|
### Meson Build options
|
|
|
|
|
|
|
|
Build options can be specified during meson setup or later via meson configure.
|
|
|
|
|
|
|
|
meson -D<option>=<value> .build
|
|
|
|
|
|
|
|
The following options are available:
|
|
|
|
|
|
|
|
- **without_tests**: _(boolean)_ diable tests
|
|
|
|
`meson -Dwithout_tests=true .build`
|
|
|
|
|
|
|
|
- **without_adapter**: _(boolean)_ omit adapter library
|
|
|
|
`meson -Dwithout_adapter=true .build`
|
|
|
|
|
|
|
|
- **without_provider**: _(boolean)_ omit provider library
|
|
|
|
`meson -Dwithout_provider=true .build`
|
2020-05-23 16:45:34 +00:00
|
|
|
|
2020-05-25 17:55:09 +00:00
|
|
|
_Note that unit tests are only available, when both libraries are built._
|
2020-05-23 16:45:34 +00:00
|
|
|
|
2020-02-18 20:48:52 +00:00
|
|
|
## Create API documentation
|
|
|
|
|
|
|
|
To create API documentation, you must install doxygen and dot first.
|
|
|
|
After that, run doxygen in the project root directory.
|
|
|
|
|
|
|
|
doxygen
|
|
|
|
|
|
|
|
After that, you will find the API documentation in the doc/api subdirectory.
|
|
|
|
|
|
|
|
## Dependencies
|
|
|
|
|
|
|
|
- [libfuse3](https://github.com/libfuse/libfuse/)
|
|
|
|
- [libwebsockets](https://libwebsockets.org/)
|
|
|
|
- [Jansson](https://jansson.readthedocs.io)
|
|
|
|
- [GoogleTest](https://github.com/google/googletest) *(optional)*
|
|
|
|
|
|
|
|
### Installation from source
|
|
|
|
|
|
|
|
#### libfuse
|
|
|
|
|
|
|
|
To install libfuse, meson is needed. Please refer to [meson quick guide](https://mesonbuild.com/Quick-guide.html) for setup instructions.
|
|
|
|
|
2020-03-20 16:03:33 +00:00
|
|
|
wget -O fuse-3.9.1.tar.gz https://github.com/libfuse/libfuse/archive/fuse-3.9.1.tar.gz
|
|
|
|
tar -xf fuse-3.9.1.tar.gz
|
|
|
|
cd libfuse-fuse-3.9.1
|
2020-02-18 20:48:52 +00:00
|
|
|
mkdir .build
|
|
|
|
cd .build
|
|
|
|
meson ..
|
|
|
|
ninja
|
|
|
|
sudo ninja install
|
|
|
|
|
|
|
|
#### libwebsockets
|
|
|
|
|
2020-05-24 06:31:59 +00:00
|
|
|
wget -O libwebsockets-4.0.10.tar.gz https://github.com/warmcat/libwebsockets/archive/v4.0.10.tar.gz
|
|
|
|
tar -xf libwebsockets-4.0.10.tar.gz
|
|
|
|
cd libwebsockets-4.0.10
|
2020-02-18 20:48:52 +00:00
|
|
|
mkdir .build
|
|
|
|
cd .build
|
|
|
|
cmake ..
|
|
|
|
make
|
|
|
|
sudo make install
|
|
|
|
|
|
|
|
#### Jansson
|
|
|
|
|
|
|
|
wget -O libjansson-2.12.tar.gz https://github.com/akheron/jansson/archive/v2.12.tar.gz
|
|
|
|
tar -xf libjansson-2.12.tar.gz
|
|
|
|
cd jansson-2.12
|
|
|
|
mkdir .build
|
|
|
|
cd .build
|
|
|
|
cmake ..
|
|
|
|
make
|
|
|
|
sudo make install
|
|
|
|
|
|
|
|
#### GoogleTest
|
|
|
|
|
|
|
|
Installation of GoogleTest is optional webfuse library, but required to compile tests.
|
|
|
|
|
|
|
|
wget -O gtest-1.10.0.tar.gz https://github.com/google/googletest/archive/release-1.10.0.tar.gz
|
|
|
|
tar -xf gtest-1.10.0.tar.gz
|
|
|
|
cd googletest-release-1.10.0
|
|
|
|
mkdir .build
|
|
|
|
cd .build
|
|
|
|
cmake ..
|
|
|
|
make
|
|
|
|
sudo make install
|