<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- 
###############################################################################
# Copyright (c) 2012, 2018 Red Hat, Inc and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     Krzysztof Daniel, Red Hat, Inc. - initial API and implementation
###############################################################################
-->
<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>
        <artifactId>eclipse.platform.swt.binaries</artifactId>
        <groupId>eclipse.platform.swt.binaries</groupId>
        <version>4.24.0-SNAPSHOT</version>
        <relativePath>../../</relativePath>
    </parent>

    <groupId>eclipse.platform.swt.binaries</groupId>
    <artifactId>binaries-parent</artifactId>
    <packaging>pom</packaging>

    <properties>
        <!-- 
            forceContextQualifier gets updated during build input process using
            ant script <SWT source repo>/bundles/org.eclipse.swt/buildInternal.xml 
        -->
        
        <forceContextQualifier>v20220324-2204</forceContextQualifier>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-packaging-plugin</artifactId>
                <version>${tycho.version}</version>
                <configuration>
                    <forceContextQualifier>${forceContextQualifier}</forceContextQualifier>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho.version}</version>
                <configuration>
                    <dependency-resolution>
                        <profileProperties>
                            <!-- set property so that the filter condition on the p2 dependencies from org.eclipse.swt to the fragments does not match -->
                            <org.eclipse.swt.buildtime>true</org.eclipse.swt.buildtime>
                        </profileProperties>
                    </dependency-resolution>
                    <environments>
                        <environment>
                            <os>${os}</os>
                            <ws>${ws}</ws>
                            <arch>${arch}</arch>
                        </environment>
                    </environments>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>normal</id>
                        <phase>initialize</phase>
                        <configuration>
                            <target>
                                <property name="copy.src.dir" value="src"/>
                                <ant antfile="build.xml" target="copy.${ws}.src"/>
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mozilla</groupId>
                        <artifactId>rhino-runtime</artifactId>
                        <version>1.7.14</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                        <version>1.10.12</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant-apache-bsf</artifactId>
                        <version>1.10.12</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>
