Added example project and Ant file for the Makefile generator project.
This commit is contained in:
parent
ce03d84430
commit
7a66aedfff
6
etc/example/.gitignore
vendored
Normal file
6
etc/example/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
/.classpath
|
||||
/.project
|
||||
/.settings
|
||||
/bin
|
||||
/build
|
||||
/dist
|
29
etc/example/build.xml
Normal file
29
etc/example/build.xml
Normal file
@ -0,0 +1,29 @@
|
||||
<project name="com.muldersoft.l5j.example" default="dist" basedir=".">
|
||||
<description>Launch5j example code</description>
|
||||
|
||||
<property name="src" location="src"/>
|
||||
<property name="build" location="build"/>
|
||||
<property name="dist" location="dist"/>
|
||||
|
||||
<target name="init">
|
||||
<mkdir dir="${dist}"/>
|
||||
<mkdir dir="${build}"/>
|
||||
</target>
|
||||
|
||||
<target name="compile" depends="init" description="compile the source">
|
||||
<javac srcdir="${src}" destdir="${build}" source="1.8" target="1.8" debuglevel="lines,vars,source" includeantruntime="false"/>
|
||||
</target>
|
||||
|
||||
<target name="dist" depends="clean,compile" description="generate the distribution">
|
||||
<jar destfile="${dist}/example.jar" basedir="${build}">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="com.muldersoft.l5j.example.Main"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="clean" description="clean up">
|
||||
<delete dir="${build}"/>
|
||||
<delete dir="${dist}"/>
|
||||
</target>
|
||||
</project>
|
64
etc/example/src/com/muldersoft/l5j/example/Main.java
Normal file
64
etc/example/src/com/muldersoft/l5j/example/Main.java
Normal file
@ -0,0 +1,64 @@
|
||||
/************************************************************/
|
||||
/* Launch5j, by LoRd_MuldeR <MuldeR2@GMX.de> */
|
||||
/* Java JAR wrapper for creating Windows native executables */
|
||||
/* https://github.com/lordmulder/ */
|
||||
/* */
|
||||
/* The sample code in this file has been released under the */
|
||||
/* CC0 1.0 Universal license. */
|
||||
/* https://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
/************************************************************/
|
||||
|
||||
package com.muldersoft.l5j.example;
|
||||
|
||||
import java.net.URLDecoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
public class Main {
|
||||
public static void main(final String[] args) {
|
||||
initCommandlineArgs(args);
|
||||
final String message = String.format(
|
||||
"Hello world!\nRunning on Java %s\n\nCommand-line args:\n%s",
|
||||
System.getProperty("java.version", "(unknown)"),
|
||||
dumpCommandLine(args));
|
||||
JOptionPane.showMessageDialog(null, message, "Launch5j", JOptionPane.INFORMATION_MESSAGE);
|
||||
}
|
||||
|
||||
private static void initCommandlineArgs(final String[] argv) {
|
||||
if (System.getProperty("l5j.pid") == null) {
|
||||
return; /*nothing to do*/
|
||||
}
|
||||
final String enc = StandardCharsets.UTF_8.name();
|
||||
for (int i = 0; i < argv.length; ++i) {
|
||||
try {
|
||||
argv[i] = URLDecoder.decode(argv[i], enc);
|
||||
} catch (Exception e) { }
|
||||
}
|
||||
}
|
||||
|
||||
private static String dumpCommandLine(final String[] argv) {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
final Pattern pattern = Pattern.compile(Pattern.quote("\""));
|
||||
int argc = 0;
|
||||
for (final String str : argv) {
|
||||
sb.append(String.format(
|
||||
needQuotes(str) ? "argv[%d] = \"%s\"\n" : "argv[%d] = %s\n",
|
||||
argc++, pattern.matcher(str).replaceAll("\\\\\"")));
|
||||
}
|
||||
return (sb.length() > 0) ? sb.toString() : "(none)";
|
||||
}
|
||||
|
||||
private static boolean needQuotes(final String arg) {
|
||||
if((arg == null) || arg.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
for (int i = 0; i < arg.length(); ++i) {
|
||||
if (Character.isSpaceChar(arg.charAt(i))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
6
etc/makefile-generator/.gitignore
vendored
Normal file
6
etc/makefile-generator/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
/.classpath
|
||||
/.project
|
||||
/.settings
|
||||
/bin
|
||||
/build
|
||||
/dist
|
31
etc/makefile-generator/build.xml
Normal file
31
etc/makefile-generator/build.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<project name="com.muldersoft.l5j.makefile.generator" default="dist" basedir=".">
|
||||
<description>Launch5j example code</description>
|
||||
|
||||
<property name="src" location="src"/>
|
||||
<property name="res" location="res"/>
|
||||
<property name="build" location="build"/>
|
||||
<property name="dist" location="dist"/>
|
||||
|
||||
<target name="init">
|
||||
<mkdir dir="${dist}"/>
|
||||
<mkdir dir="${build}"/>
|
||||
</target>
|
||||
|
||||
<target name="compile" depends="init" description="compile the source">
|
||||
<javac srcdir="${src}" destdir="${build}" source="1.8" target="1.8" debuglevel="lines,vars,source" includeantruntime="false"/>
|
||||
</target>
|
||||
|
||||
<target name="dist" depends="clean,compile" description="generate the distribution">
|
||||
<jar destfile="${dist}/generator.jar" basedir="${build}">
|
||||
<fileset dir="${res}" includes="/.assets/**/*"/>
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="com.muldersoft.l5j.makefile.Generator"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="clean" description="clean up">
|
||||
<delete dir="${build}"/>
|
||||
<delete dir="${dist}"/>
|
||||
</target>
|
||||
</project>
|
@ -11,6 +11,8 @@
|
||||
/* https://sourceforge.net/p/launch4j/ */
|
||||
/************************************************************/
|
||||
|
||||
package com.muldersoft.l5j.makefile;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -24,7 +26,7 @@ import java.util.regex.Pattern;
|
||||
/*
|
||||
* Helper program to generate the Makefile rules for Launch5j
|
||||
*/
|
||||
public class MakefileGenerator {
|
||||
public class Generator {
|
||||
|
||||
private final static String EMPTY = "";
|
||||
private final static Pattern RTRIM = Pattern.compile("\\s+$");
|
||||
@ -57,7 +59,7 @@ public class MakefileGenerator {
|
||||
}
|
||||
|
||||
private static void outputTemplate(final PrintStream out, final String name) throws IOException {
|
||||
try(final InputStream in = MakefileGenerator.class.getResourceAsStream(String.format("/templates/%s.mak", name))) {
|
||||
try(final InputStream in = Generator.class.getResourceAsStream(String.format("/.assets/templates/%s.mak", name))) {
|
||||
if(in == null) {
|
||||
throw new IOException("Failed to open '" + name + "' template file!");
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="lib" path="res"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
2
etc/utils/MakefileGenerator/.gitignore
vendored
2
etc/utils/MakefileGenerator/.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
/.settings
|
||||
/bin
|
@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>MakefileGenerator</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
Loading…
Reference in New Issue
Block a user