<?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>

	<groupId>dev.onvoid.webrtc</groupId>
	<artifactId>webrtc-java-parent</artifactId>
	<version>0.14.0</version>
	<packaging>pom</packaging>

	<name>webrtc-java-parent</name>
	<description>
		Java native interface implementation based on the free, open WebRTC
		project. The goal of this project is to enable development of RTC
		applications for desktop platforms running Java.
	</description>
	<url>https://github.com/devopvoid/webrtc-java</url>

	<developers>
		<developer>
			<id>a.andres</id>
			<name>Alex Andres</name>
			<email>andres.alex@pm.me</email>
		</developer>
	</developers>

	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<issueManagement>
		<system>GitHub</system>
		<url>https://github.com/devopvoid/webrtc-java/issues</url>
	</issueManagement>

	<scm>
		<connection>scm:git:git://github.com/devopvoid/webrtc-java.git</connection>
		<developerConnection>scm:git:ssh://git@github.com/devopvoid/webrtc-java.git</developerConnection>
		<url>https://github.com/devopvoid/webrtc-java/tree/main</url>
		<tag>v0.14.0</tag>
	</scm>

	<properties>
		<timestamp>${maven.build.timestamp}</timestamp>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
	</properties>

	<modules>
		<module>webrtc-jni</module>
		<module>webrtc</module>
		<module>webrtc-examples</module>
	</modules>

	<build>
		<pluginManagement>
			<!-- Set versions of common plugins for reproducibility, ordered alphabetically. -->
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-antrun-plugin</artifactId>
					<version>3.1.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.11.0</version>
					<executions>
						<execution>
							<id>default-compile</id>
							<configuration>
								<release>9</release>
								<!-- No excludes: compile everything to ensure module-info contains the right entries -->
							</configuration>
						</execution>
						<execution>
							<id>base-compile</id>
							<goals>
								<goal>compile</goal>
							</goals>
							<configuration>
								<!-- Recompile everything for the target VM except the module-info.java -->
								<excludes>
									<exclude>module-info.java</exclude>
								</excludes>
							</configuration>
						</execution>
					</executions>
					<!-- Defaults for compiler and testCompile -->
					<configuration>
						<release>8</release><!-- compatibility expectations -->
						<!-- Only required when haven't configured the maven-toolchains-plugin -->
						<jdkToolchain>
							<version>9</version>
						</jdkToolchain>
						<showDeprecation>true</showDeprecation>
						<showWarnings>true</showWarnings>
						<fork>true</fork>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.sonatype.central</groupId>
					<artifactId>central-publishing-maven-plugin</artifactId>
					<version>0.7.0</version>
					<extensions>true</extensions>
					<configuration>
						<publishingServerId>central</publishingServerId>
						<excludeArtifacts>
							<artifact>webrtc-java-jni</artifact>
						</excludeArtifacts>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>3.1.4</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>1.6</version>
					<executions>
						<execution>
							<id>sign-artifacts</id>
							<phase>verify</phase>
							<goals>
								<goal>sign</goal>
							</goals>
							<configuration>
								<gpgArguments>
									<arg>--pinentry-mode</arg>
									<arg>loopback</arg>
								</gpgArguments>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>3.1.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>3.3.0</version>
					<configuration>
						<archive>
							<compress>true</compress>
							<manifestEntries>
								<Version>${project.version}</Version>
								<Build-Date>${maven.build.timestamp}</Build-Date>
							</manifestEntries>
						</archive>
						<skipIfEmpty>true</skipIfEmpty>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.1.1</version>
					<configuration>
						<doclint>none</doclint>
					</configuration>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<goals>
								<goal>jar</goal>
							</goals>
							<configuration>
								<failOnError>false</failOnError>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-project-info-reports-plugin</artifactId>
					<version>3.0.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>3.0.1</version>
					<configuration>
						<autoVersionSubmodules>true</autoVersionSubmodules>
						<releaseProfiles>release</releaseProfiles>
						<tagNameFormat>v@{project.version}</tagNameFormat>
						<scmDevelopmentCommitComment>Prepare for next development iteration</scmDevelopmentCommitComment>
						<scmReleaseCommitComment>Prepare release @{releaseLabel}</scmReleaseCommitComment>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.3.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.8.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.1.0</version>
					<executions>
						<execution>
							<id>attach-sources</id>
							<goals>
								<goal>jar-no-fork</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.2.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-report-plugin</artifactId>
					<version>3.2.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-failsafe-plugin</artifactId>
					<version>3.2.2</version>
				</plugin>
			</plugins>
		</pluginManagement>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>release</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>windows-x86_64</id>
			<activation>
				<os>
					<family>windows</family>
					<arch>amd64</arch>
				</os>
			</activation>
			<properties>
				<platform.classifier>windows-x86_64</platform.classifier>
				<platform.module>webrtc.windows.x86_64</platform.module>
			</properties>
		</profile>
		<profile>
			<id>linux-x86_64</id>
			<activation>
				<os>
					<family>linux</family>
					<arch>amd64</arch>
				</os>
			</activation>
			<properties>
				<platform.classifier>linux-x86_64</platform.classifier>
				<platform.module>webrtc.linux.x86_64</platform.module>
			</properties>
		</profile>
		<profile>
			<id>linux-aarch32</id>
			<activation>
				<os>
					<family>linux</family>
					<arch>aarch32</arch>
				</os>
			</activation>
			<properties>
				<platform.classifier>linux-aarch32</platform.classifier>
				<platform.module>webrtc.linux.aarch32</platform.module>
			</properties>
		</profile>
		<profile>
			<id>linux-aarch64</id>
			<activation>
				<os>
					<family>linux</family>
					<arch>aarch64</arch>
				</os>
			</activation>
			<properties>
				<platform.classifier>linux-aarch64</platform.classifier>
				<platform.module>webrtc.linux.aarch64</platform.module>
			</properties>
		</profile>
		<profile>
			<id>macos-x86_64</id>
			<activation>
				<os>
					<family>mac</family>
					<arch>x86_64</arch>
				</os>
			</activation>
			<properties>
				<platform.classifier>macos-x86_64</platform.classifier>
				<platform.module>webrtc.macos.x86_64</platform.module>
			</properties>
		</profile>
		<profile>
			<id>macos-aarch64</id>
			<activation>
				<os>
					<family>mac</family>
					<arch>aarch64</arch>
				</os>
			</activation>
			<properties>
				<platform.classifier>macos-aarch64</platform.classifier>
				<platform.module>webrtc.macos.aarch64</platform.module>
			</properties>
		</profile>
	</profiles>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
			</plugin>
		</plugins>
	</reporting>

	<dependencies>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.9.0</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>5.9.0</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>