<?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>
<artifactId>gmssl</artifactId>
<groupId>org.openeuler</groupId>
<version>2.0.4</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>sdfprovider</artifactId>
<version>2.0.4</version>
<name>sdfprovider</name>
<properties>
<native.compiler.startOptions>
-g
-fPIC
-fsigned-char
-fno-aggressive-loop-optimizations
-Wno-unused-parameter
-fno-gnu-unique
-fstack-protector-all
-I ${env.JAVA_HOME}/include/linux/
-I ${env.JAVA_HOME}/include/
-I ${basedir}/src/main/native
-I ${project.build.directory}/include
</native.compiler.startOptions>
<native.link.startOptions>-shared</native.link.startOptions>
<native.link.library>-lcrypto_card_sdk</native.link.library>
<compiler.executable.x86_64>${SDF_EXECUTABLE_X86_64}</compiler.executable.x86_64>
<compiler.executable.aarch64>${SDF_EXECUTABLE_AARCH64}</compiler.executable.aarch64>
<compiler.library_path.x86_64>${SDF_LIBRARY_PATH_X86_64}</compiler.library_path.x86_64>
<compiler.library_path.aarch64>${SDF_LIBRARY_PATH_AARCH64}</compiler.library_path.aarch64>
</properties>
<dependencies>
<dependency>
<groupId>org.openeuler</groupId>
<artifactId>commons</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openeuler</groupId>
<artifactId>jca</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openeuler</groupId>
<artifactId>jsse</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
// compile
export LIBRARY_PATH=/home/user/workspace/GM0018-20240204/SDK/Linux/aarch64
// run
export LD_LIBRARY_PATH=/home/user/workspace/GM0018-20240204/SDK/Linux/aarch64
-->
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-h</arg>
<arg>${project.build.directory}/include</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native-maven-plugin</artifactId>
<executions>
<execution>
<id>compile_linux_x86_64</id>
<phase>process-classes</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<compilerExecutable>${compiler.executable.x86_64}</compilerExecutable>
<compilerStartOptions>
<compilerStartOption>${native.compiler.startOptions}</compilerStartOption>
</compilerStartOptions>
<sources>
<source>
<directory>${basedir}/src/main/native</directory>
<includes>
<include>sdf_util.c</include>
<include>sdf_exception.c</include>
<include>sdf_log.c</include>
<include>sdf_sdk.c</include>
<include>sdf_random.c</include>
<include>sdf_digest.c</include>
<include>sdf_hmac.c</include>
<include>sdf_keygenerator.c</include>
<include>sdf_internal.c</include>
<include>sdf_pbkdf2.c</include>
<include>sdf_cipher_symmetric.c</include>
<include>sdf_keypairgenerator_sm2.c</include>
<include>sdf_signature_sm2.c</include>
<include>sdf_cipher_sm2.c</include>
<include>sdf_keyagreement_sm2.c</include>
<include>sdf_keyagreement_ecc.c</include>
<include>sdf_prf.c</include>
<include>sdf_keypairgenerator_sm9.c</include>
<include>sdf_cipher_sm9.c</include>
<include>sdf_signature_sm9.c</include>
</includes>
</source>
</sources>
<compilerOutputDirectory>
${project.build.directory}/objs/linux_x86_64
</compilerOutputDirectory>
</configuration>
</execution>
<execution>
<id>link_linux_x86_64</id>
<phase>process-classes</phase>
<goals>
<goal>link</goal>
</goals>
<configuration>
<linkerExecutable>${compiler.executable.x86_64}</linkerExecutable>
<linkerStartOptions>
<linkerStartOptions>${native.link.startOptions}</linkerStartOptions>
</linkerStartOptions>
<linkerEndOptions>
<linkerEndOption>-L${compiler.library_path.x86_64}</linkerEndOption>
<linkerEndOption>${native.link.library}</linkerEndOption>
</linkerEndOptions>
<linkerFinalName>libsdfcrypto_linux_x86_64</linkerFinalName>
<linkerFinalNameExt>so</linkerFinalNameExt>
<linkerOutputDirectory>${project.build.directory}</linkerOutputDirectory>
<attach>false</attach>
</configuration>
</execution>
<execution>
<id>compile_linux_aarch64</id>
<phase>process-classes</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<compilerExecutable>${compiler.executable.aarch64}</compilerExecutable>
<compilerStartOptions>
<compilerStartOption>${native.compiler.startOptions}</compilerStartOption>
</compilerStartOptions>
<sources>
<source>
<directory>${basedir}/src/main/native</directory>
<includes>
<include>sdf_util.c</include>
<include>sdf_exception.c</include>
<include>sdf_log.c</include>
<include>sdf_sdk.c</include>
<include>sdf_random.c</include>
<include>sdf_digest.c</include>
<include>sdf_hmac.c</include>
<include>sdf_keygenerator.c</include>
<include>sdf_internal.c</include>
<include>sdf_pbkdf2.c</include>
<include>sdf_cipher_symmetric.c</include>
<include>sdf_keypairgenerator_sm2.c</include>
<include>sdf_signature_sm2.c</include>
<include>sdf_cipher_sm2.c</include>
<include>sdf_keyagreement_sm2.c</include>
<include>sdf_keyagreement_ecc.c</include>
<include>sdf_prf.c</include>
<include>sdf_keypairgenerator_sm9.c</include>
<include>sdf_cipher_sm9.c</include>
<include>sdf_signature_sm9.c</include>
</includes>
</source>
</sources>
<compilerOutputDirectory>
${project.build.directory}/objs/linux_aarch64
</compilerOutputDirectory>
</configuration>
</execution>
<execution>
<id>link_linux_aarch64</id>
<phase>process-classes</phase>
<goals>
<goal>link</goal>
</goals>
<configuration>
<linkerExecutable>${compiler.executable.aarch64}</linkerExecutable>
<linkerStartOptions>
<linkerStartOptions>${native.link.startOptions}</linkerStartOptions>
</linkerStartOptions>
<linkerEndOptions>
<linkerEndOption>-L${compiler.library_path.aarch64}</linkerEndOption>
<linkerEndOption>${native.link.library}</linkerEndOption>
</linkerEndOptions>
<linkerFinalName>libsdfcrypto_linux_aarch64</linkerFinalName>
<linkerFinalNameExt>so</linkerFinalNameExt>
<linkerOutputDirectory>${project.build.directory}</linkerOutputDirectory>
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/META-INF/native</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<includes>
<include>*.so</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>prepare-environment</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<failOnError>true</failOnError>
<target>
<exec executable="sh" dir="${project.basedir}" failonerror="true">
<arg value="${project.basedir}/build/pre-env.sh"/>
</exec>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>target/antrun/env.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>jdk9-plus</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<jdk.module.options>
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED
--add-exports=java.base/jdk.internal.access=ALL-UNNAMED
--add-exports=java.base/sun.security.util=ALL-UNNAMED
--add-exports=java.base/sun.security.x509=ALL-UNNAMED
--add-exports=java.base/sun.security.action=ALL-UNNAMED
--add-exports=java.base/sun.security.provider=ALL-UNNAMED
--add-exports=java.base/sun.security.provider.certpath=ALL-UNNAMED
--add-exports=java.base/sun.net.util=ALL-UNNAMED
--add-opens=java.base/sun.security.util=ALL-UNNAMED
--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED
--add-exports=java.base/sun.security.internal.spec=ALL-UNNAMED
--add-opens=java.base/sun.security.ssl=ALL-UNNAMED
--add-opens=java.base/javax.crypto=ALL-UNNAMED
--add-opens=java.base/sun.security.x509=ALL-UNNAMED
--add-opens=java.base/sun.security.pkcs12=ALL-UNNAMED
--add-exports=java.base/sun.security.jca=ALL-UNNAMED
--add-exports=jdk.crypto.cryptoki/sun.security.pkcs11.wrapper=ALL-UNNAMED
--add-exports=java.base/sun.security.rsa=ALL-UNNAMED
</jdk.module.options>
</properties>
</profile>
</profiles>
</project>