Skip to content
This repository has been archived by the owner on Nov 14, 2023. It is now read-only.

Commit

Permalink
Separate jemalloc and lwjgl
Browse files Browse the repository at this point in the history
This separates the org.lwjgl.lwjgl and org.lwjgl.jemalloc modules
that were joined back in the original OSGi release.

Affects #10
  • Loading branch information
io7m committed Dec 29, 2018
1 parent a39f646 commit ff62cc5
Show file tree
Hide file tree
Showing 3 changed files with 295 additions and 135 deletions.
294 changes: 294 additions & 0 deletions org.lwjgl.jemalloc/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,294 @@
<?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.lwjgl.osgi</groupId>
<artifactId>org.lwjgl.parent</artifactId>
<version>3.2.1.1</version>
</parent>

<packaging>bundle</packaging>
<artifactId>org.lwjgl.jemalloc</artifactId>
<name>org.lwjgl.jemalloc</name>
<description>LWJGL OSGi bundle (jemalloc bindings)</description>
<url>https://github.com/LWJGL/lwjgl3-osgi</url>

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.lwjgl.lwjgl</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-jemalloc</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-jemalloc</artifactId>
<scope>provided</scope>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-jemalloc</artifactId>
<classifier>natives-linux</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-jemalloc</artifactId>
<classifier>natives-macos</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-jemalloc</artifactId>
<classifier>natives-windows</classifier>
<scope>provided</scope>
</dependency>
</dependencies>

<build>
<plugins>

<!-- Unpack LWJGL dependencies/sources/natives -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<!-- Unpack natives -->
<execution>
<id>unpack-natives-jemalloc-linux</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<overWriteReleases>true</overWriteReleases>
<includeGroupIds>org.lwjgl</includeGroupIds>
<includeArtifactIds>lwjgl-jemalloc</includeArtifactIds>
<includeClassifiers>natives-linux</includeClassifiers>
<includeTypes>jar</includeTypes>
<includes>
**\/*.so,
**\/*.so.sha1
</includes>
<outputDirectory>${project.build.directory}/unpacked</outputDirectory>
<markersDirectory>${project.build.directory}/unpack-markers/linux/x86_64</markersDirectory>
</configuration>
</execution>
<execution>
<id>unpack-natives-jemalloc-windows-x86</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<overWriteReleases>true</overWriteReleases>
<includeGroupIds>org.lwjgl</includeGroupIds>
<includeArtifactIds>lwjgl-jemalloc</includeArtifactIds>
<includeClassifiers>natives-windows</includeClassifiers>
<includeTypes>jar</includeTypes>
<includes>
jemalloc32.dll,
jemalloc32.dll.sha1
</includes>
<outputDirectory>${project.build.directory}/unpacked</outputDirectory>
<markersDirectory>${project.build.directory}/unpack-markers/windows/x86</markersDirectory>
</configuration>
</execution>
<execution>
<id>unpack-natives-jemalloc-windows-x86_64</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<overWriteReleases>true</overWriteReleases>
<includeGroupIds>org.lwjgl</includeGroupIds>
<includeArtifactIds>lwjgl-jemalloc</includeArtifactIds>
<includeClassifiers>natives-windows</includeClassifiers>
<includeTypes>jar</includeTypes>
<includes>
jemalloc.dll,
jemalloc.dll.sha1
</includes>
<outputDirectory>${project.build.directory}/unpacked</outputDirectory>
<markersDirectory>${project.build.directory}/unpack-markers/windows/x86_64</markersDirectory>
</configuration>
</execution>
<execution>
<id>unpack-natives-jemalloc-macos-x86_64</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<overWriteReleases>true</overWriteReleases>
<includeGroupIds>org.lwjgl</includeGroupIds>
<includeArtifactIds>lwjgl-jemalloc</includeArtifactIds>
<includeClassifiers>natives-macos</includeClassifiers>
<includeTypes>jar</includeTypes>
<includes>
**\/*.dylib,
**\/*.dylib.sha1
</includes>
<outputDirectory>${project.build.directory}/unpacked</outputDirectory>
<markersDirectory>${project.build.directory}/unpack-markers/osx/x86_64</markersDirectory>
</configuration>
</execution>

<execution>
<id>unpack-sources</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<overWriteReleases>true</overWriteReleases>
<includeGroupIds>org.lwjgl</includeGroupIds>
<includeArtifactIds>lwjgl-jemalloc</includeArtifactIds>
<includeClassifiers>sources</includeClassifiers>
<includeTypes>jar</includeTypes>
<includes>**\/*</includes>
<outputDirectory>${project.build.directory}/unpacked-sources</outputDirectory>
<markersDirectory>${project.build.directory}/unpack-source-markers</markersDirectory>
</configuration>
</execution>

<execution>
<id>unpack-module-descriptor</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<overWriteReleases>true</overWriteReleases>
<artifactItems>
<artifactItem>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-jemalloc</artifactId>
</artifactItem>
</artifactItems>
<includes>**\/module-info.class</includes>
<outputDirectory>${project.build.directory}/unpacked-module</outputDirectory>
<markersDirectory>${project.build.directory}/unpacked-module-markers</markersDirectory>
</configuration>
</execution>
</executions>
</plugin>

<!-- Produce source jar -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-generated-sources</id>
<phase>prepare-package</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>${project.build.directory}/unpacked-sources</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>sources-jar</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
<phase>package</phase>
<configuration>
<attach>true</attach>
<classifier>sources</classifier>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</execution>
</executions>
</plugin>

<!-- Produce OSGi bundle -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<id>default-bundle</id>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>

<Import-Package>
<!-- Add explicit imports for LWJGL -->
org.lwjgl,
org.lwjgl.system,
org.lwjgl.system.*,
sun.misc
</Import-Package>

<Embed-Dependency>
artifactId=lwjgl-jemalloc;classifier=!sources;inline=!*.jar
</Embed-Dependency>

<Export-Package>
org.lwjgl.system.jemalloc
</Export-Package>

<Include-Resource>
${project.build.directory}/unpacked/,
${project.build.directory}/unpacked-module/
</Include-Resource>

<Bundle-NativeCode>
jemalloc32.dll;
osname=Win32; processor=x86,

jemalloc.dll;
osname=Win32; processor=x86-64,

libjemalloc.so;
osname=Linux; processor=x86-64,

libjemalloc.dylib;
osname=MacOSX; processor=x86-64
</Bundle-NativeCode>

<Specification-Title>Lightweight Java Game Library</Specification-Title>
<Specification-Version>${project.version}</Specification-Version>
<Specification-Vendor>lwjgl.org</Specification-Vendor>
<Implementation-Title>lwjgl</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Implementation-Vendor>lwjgl.org</Implementation-Vendor>
<Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>

<Require-Capability>
osgi.ee;filter:="(&amp;(osgi.ee=JavaSE)(version>=1.8))"
</Require-Capability>

<Sealed>true</Sealed>
</instructions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

</project>
Loading

0 comments on commit ff62cc5

Please sign in to comment.