<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>com.intuit.karate</groupId>
        <artifactId>karate-parent</artifactId>
        <version>1.4.0</version>
    </parent>
    <artifactId>karate-robot</artifactId>
    <packaging>jar</packaging>  
    
    <properties>        
        <javacpp.version>1.5.3</javacpp.version>
        <opencv.version>4.3.0</opencv.version>
        <tesseract.version>4.1.1</tesseract.version>
        <ffmpeg.version>4.2.2</ffmpeg.version>
    </properties>      

    <dependencies>                         
        <dependency>
            <groupId>com.intuit.karate</groupId>
            <artifactId>karate-core</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna-platform</artifactId>
            <version>5.5.0</version>
        </dependency>              
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv</artifactId>
            <version>${javacpp.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>flycapture</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>libdc1394</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>libfreenect</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>libfreenect2</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>librealsense</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>librealsense2</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>videoinput</artifactId>
                </exclusion> 
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>artoolkitplus</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bytedeco</groupId>
                    <artifactId>flandmark</artifactId>
                </exclusion>                                                                                                                                                        
            </exclusions>
        </dependency>                   
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>opencv-platform</artifactId>
            <version>${opencv.version}-${javacpp.version}</version>          
        </dependency>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>tesseract-platform</artifactId>
            <version>${tesseract.version}-${javacpp.version}</version>          
        </dependency>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>ffmpeg-platform</artifactId>
            <version>${ffmpeg.version}-${javacpp.version}</version>          
        </dependency>      
        <dependency>
            <groupId>com.intuit.karate</groupId>
            <artifactId>karate-junit5</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>                                         		
    </dependencies>

    <build>
        <testResources>
            <testResource>
                <directory>src/test/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </testResource>
        </testResources>       
    </build>
    
    <profiles>
        <profile>
            <id>fatjar</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-shade-plugin</artifactId>
                        <version>${maven.shade.version}</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>shade</goal>
                                </goals>
                                <configuration>
                                    <finalName>karate-robot-${project.version}</finalName>
                                    <artifactSet>
                                        <includes>
                                            <include>net.java.dev.jna:*</include>
                                            <include>org.bytedeco:*</include>
                                        </includes>
                                        <excludes>
                                            <exclude>*:*:jar:android-*:*</exclude>
                                            <exclude>*:*:jar:ios-*:*</exclude>
                                            <exclude>*:*:jar:linux-*:*</exclude>
                                            <exclude>*:*:jar:macosx-*:*</exclude>
                                            <!-- <exclude>*:*:jar:windows-x86:*</exclude> -->
                                            <!-- <exclude>*:*:jar:windows-x86_64:*</exclude> -->
                                        </excludes>                                        
                                    </artifactSet>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>                              
                </plugins>                 
            </build>
        </profile>
    </profiles>                           
    
</project>