jfuse-win
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>org.cryptomator</groupId> <artifactId>jfuse-win</artifactId> <version>0.7.3</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>org.cryptomator</groupId> <artifactId>jfuse-parent</artifactId> <version>0.7.3</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>jfuse-win</artifactId> <name>jFUSE Windows</name> <description>Java FUSE bindings for Windows x86_64 and arm64</description> <url>https://github.com/cryptomator/jfuse/tree/develop/jfuse-win</url> <properties> <win.ucrtHeaderPath>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt</win.ucrtHeaderPath> <!-- <jextract.path>C:\Users\Arbeit\Programs\jextract-22\bin\jextract.bat</jextract.path> defined in parent pom. to be installed via sdkman --> </properties> <dependencies> <dependency> <groupId>org.cryptomator</groupId> <artifactId>jfuse-api</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>@{surefire.jacoco.args} -javaagent:"${org.mockito:mockito-core:jar}" --enable-native-access=org.cryptomator.jfuse.win</argLine> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>jextract-win</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>check-preconditions</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireFilesExist> <files> <file>${win.ucrtHeaderPath}</file> </files> <message>Windows UCRT headers not found.</message> </requireFilesExist> </rules> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-clean-plugin</artifactId> <configuration> <filesets> <fileset> <directory>${project.build.sourceDirectory}/org/cryptomator/jfuse/win/extr</directory> <includes> <include>*.java</include> </includes> <followSymlinks>false</followSymlinks> </fileset> </filesets> </configuration> </plugin> <plugin> <groupId>io.github.coffeelibs</groupId> <artifactId>jextract-maven-plugin</artifactId> <version>0.4.0</version> <configuration> <executable>${jextract.path}</executable> <headerSearchPaths>${win.ucrtHeaderPath}</headerSearchPaths> <outputDirectory>${project.build.sourceDirectory}</outputDirectory> <targetPackage>org.cryptomator.jfuse.win.extr.fuse3</targetPackage> </configuration> <executions> <execution> <id>jextract-fuse</id> <goals> <goal>sources</goal> </goals> <configuration> <headerFile>${project.parent.basedir}/winfsp/inc/fuse3/fuse.h</headerFile> <headerClassName>fuse_h</headerClassName> <cPreprocessorMacros> <cPreprocessorMacro>WINFSP_DLL_INTERNAL</cPreprocessorMacro> <cPreprocessorMacro>FUSE_USE_VERSION=31</cPreprocessorMacro> <cPreprocessorMacro>CYGFUSE</cPreprocessorMacro> </cPreprocessorMacros> <includeFunctions> <includeFunction>fuse3_lib_help</includeFunction> <includeFunction>fuse3_new</includeFunction> <includeFunction>fuse3_mount</includeFunction> <includeFunction>fuse3_get_session</includeFunction> <includeFunction>fuse3_loop</includeFunction> <includeFunction>fuse3_loop_mt_31</includeFunction> <includeFunction>fuse3_exit</includeFunction> <includeFunction>fuse3_unmount</includeFunction> <includeFunction>fuse3_destroy</includeFunction> </includeFunctions> <includeTypedefs> <includeTypedef>fuse3_fill_dir_t</includeTypedef> </includeTypedefs> <includeStructs> <includeStruct>fuse3_operations</includeStruct> <includeStruct>fuse3_file_info</includeStruct> <includeStruct>fuse_stat</includeStruct> <includeStruct>fuse_statvfs</includeStruct> <includeStruct>fuse_timespec</includeStruct> <includeStruct>fuse3_config</includeStruct> <includeStruct>fuse3_conn_info</includeStruct> <includeStruct>fuse3_loop_config</includeStruct> </includeStructs> </configuration> </execution> <!-- winfsp does not support fuse_lowlevel.h. fuse_parse_cmdline is taken from fuse2.h --> <execution> <id>jextract-fuse-parse-cmdline</id> <goals> <goal>sources</goal> </goals> <configuration> <targetPackage>org.cryptomator.jfuse.win.extr.fuse2</targetPackage> <headerFile>${project.parent.basedir}/winfsp/inc/fuse/fuse_common.h</headerFile> <headerClassName>fuse2_h</headerClassName> <cPreprocessorMacros> <cPreprocessorMacro>CYGFUSE</cPreprocessorMacro> </cPreprocessorMacros> <includeFunctions> <includeFunction>fuse_parse_cmdline</includeFunction> </includeFunctions> <includeStructs> <includeStruct>fuse_args</includeStruct> </includeStructs> </configuration> </execution> <execution> <id>jextract-errno</id> <goals> <goal>sources</goal> </goals> <configuration> <targetPackage>org.cryptomator.jfuse.win.extr.errno</targetPackage> <headerFile>${win.ucrtHeaderPath}/errno.h</headerFile> <headerClassName>errno_h</headerClassName> <includeConstants> <includeConstant>ENOENT</includeConstant> <includeConstant>ENOSYS</includeConstant> <includeConstant>ENOMEM</includeConstant> <includeConstant>EACCES</includeConstant> <includeConstant>EIO</includeConstant> <includeConstant>EROFS</includeConstant> <includeConstant>EBADF</includeConstant> <includeConstant>EEXIST</includeConstant> <includeConstant>ENOTDIR</includeConstant> <includeConstant>EISDIR</includeConstant> <includeConstant>ENOTEMPTY</includeConstant> <includeConstant>ENOTSUP</includeConstant> <includeConstant>EINVAL</includeConstant> <includeConstant>ERANGE</includeConstant> <includeConstant>ENOLCK</includeConstant> <includeConstant>ENAMETOOLONG</includeConstant> <includeConstant>ENODATA</includeConstant> <includeConstant>E2BIG</includeConstant> </includeConstants> </configuration> </execution> <execution> <id>jextract-fcntl</id> <goals> <goal>sources</goal> </goals> <configuration> <targetPackage>org.cryptomator.jfuse.win.extr.fcntl</targetPackage> <headerFile>${win.ucrtHeaderPath}/fcntl.h</headerFile> <headerClassName>fcntl_h</headerClassName> <includeConstants> <includeConstant>O_RDONLY</includeConstant> <includeConstant>O_WRONLY</includeConstant> <includeConstant>O_RDWR</includeConstant> <includeConstant>O_APPEND</includeConstant> <includeConstant>O_CREAT</includeConstant> <includeConstant>O_TRUNC</includeConstant> <includeConstant>O_EXCL</includeConstant> </includeConstants> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>