<?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">
   <modelVersion>4.0.0</modelVersion>
   <parent>
      <groupId>org.taxilang</groupId>
      <artifactId>taxiql-codegen</artifactId>
      <version>1.71.0</version>
   </parent>

   <artifactId>taxiql-codegen-cli</artifactId>
   <name>${artifactId}</name>
   <properties>
      <picocli.version>4.7.6</picocli.version>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.taxilang</groupId>
         <artifactId>taxiql-codegen-core</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>info.picocli</groupId>
         <artifactId>picocli</artifactId>
         <version>${picocli.version}</version>
      </dependency>
   </dependencies>
   <build>
      <plugins>
         <plugin>
            <artifactId>kotlin-maven-plugin</artifactId>
            <groupId>org.jetbrains.kotlin</groupId>
            <version>${kotlin.version}</version>
            <executions>
               <execution>
                  <id>kapt</id>
                  <goals>
                     <goal>kapt</goal>
                  </goals>
                  <configuration>
                     <sourceDirs>
                        <sourceDir>src/main/kotlin</sourceDir>
                        <sourceDir>src/main/java</sourceDir>
                     </sourceDirs>
                     <annotationProcessorPaths>
                        <annotationProcessorPath>
                           <groupId>info.picocli</groupId>
                           <artifactId>picocli-codegen</artifactId>
                           <version>${picocli.version}</version>
                        </annotationProcessorPath>
                     </annotationProcessorPaths>
                  </configuration>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>
   <profiles>
      <profile>
         <id>native</id>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.graalvm.buildtools</groupId>
                  <artifactId>native-maven-plugin</artifactId>
                  <configuration>
                     <mainClass>lang.taxi.codegen.cli.TaxiCodegenCliAppKt</mainClass>
                     <buildArgs>
                        <buildArg>
                           -H:ConfigurationFileDirectories=${project.basedir}/target/graalvm-reachability-metadata/kotlin-reflect
                        </buildArg>
                        <buildArg>
                           -H:ReflectionConfigurationFiles=${project.basedir}/src/main/resources/META-INF/native-image/reflect-config.json
                        </buildArg>
                        <buildArg>
                           -H:ResourceConfigurationFiles=${project.basedir}/src/main/resources/META-INF/native-image/resource-config.json
                        </buildArg>
                        <buildArg>-H:+ReportExceptionStackTraces</buildArg>

                     </buildArgs>
                  </configuration>
                  <executions>
                     <execution>
                        <id>build-native</id>
                        <goals>
                           <goal>build</goal>
                        </goals>
                        <phase>package</phase>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>
</project>

