Skip to content

Commit

Permalink
生成so库
Browse files Browse the repository at this point in the history
  • Loading branch information
core-lib committed Jul 17, 2019
1 parent 41ecb47 commit 11cb622
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 11 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>io.xjar</groupId>
<artifactId>xjar</artifactId>
<version>v3.0.0-demo</version>
<version>v3.0.0-demo-build-1</version>

<name>xjar</name>

Expand Down
32 changes: 31 additions & 1 deletion src/main/java/io/xjar/compiler/XLinuxCompiler.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.xjar.compiler;

import java.io.File;
import java.util.List;

/**
Expand All @@ -9,9 +10,38 @@
* 2019/7/16 10:47
*/
public class XLinuxCompiler extends XPlatformCompiler {
protected String gccPath = "g++";
protected String jdkRoot = new File(System.getProperty("java.home")).getParent();

@Override
protected String convert(List<String> src, String lib) {
return null;
StringBuilder command = new StringBuilder();
command.append("\"").append(gccPath).append("\"");
command.append(" ").append("-fPIC");
command.append(" ").append("-shared");
command.append(" ").append("-o");
command.append(" ").append("\"").append(lib).append("\"");
for (String path : src) {
command.append(" ").append("\"").append(path).append("\"");
}
command.append(" ").append("-I \"").append(jdkRoot).append(File.separator).append("include").append("\"");
command.append(" ").append("-I \"").append(jdkRoot).append(File.separator).append("include").append(File.separator).append("linux").append("\"");
return command.toString();
}

public String getGccPath() {
return gccPath;
}

public void setGccPath(String gccPath) {
this.gccPath = gccPath;
}

public String getJdkRoot() {
return jdkRoot;
}

public void setJdkRoot(String jdkRoot) {
this.jdkRoot = jdkRoot;
}
}
32 changes: 31 additions & 1 deletion src/main/java/io/xjar/compiler/XMacCompiler.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.xjar.compiler;

import java.io.File;
import java.util.List;

/**
Expand All @@ -9,9 +10,38 @@
* 2019/7/16 10:48
*/
public class XMacCompiler extends XPlatformCompiler {
protected String gccPath = "g++";
protected String jdkRoot = new File(System.getProperty("java.home")).getParent();

@Override
protected String convert(List<String> src, String lib) {
return null;
StringBuilder command = new StringBuilder();
command.append("\"").append(gccPath).append("\"");
command.append(" ").append("-fPIC");
command.append(" ").append("-shared");
command.append(" ").append("-o");
command.append(" ").append("\"").append(lib).append("\"");
for (String path : src) {
command.append(" ").append("\"").append(path).append("\"");
}
command.append(" ").append("-I \"").append(jdkRoot).append(File.separator).append("include").append("\"");
command.append(" ").append("-I \"").append(jdkRoot).append(File.separator).append("include").append(File.separator).append("darwin").append("\"");
return command.toString();
}

public String getGccPath() {
return gccPath;
}

public void setGccPath(String gccPath) {
this.gccPath = gccPath;
}

public String getJdkRoot() {
return jdkRoot;
}

public void setJdkRoot(String jdkRoot) {
this.jdkRoot = jdkRoot;
}
}
16 changes: 16 additions & 0 deletions src/main/java/io/xjar/compiler/XWindowsCompiler.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,20 @@ protected String convert(List<String> src, String lib) {
command.append(" ").append("-I \"").append(jdkRoot).append(File.separator).append("include").append(File.separator).append("win32").append("\"");
return command.toString();
}

public String getGccPath() {
return gccPath;
}

public void setGccPath(String gccPath) {
this.gccPath = gccPath;
}

public String getJdkRoot() {
return jdkRoot;
}

public void setJdkRoot(String jdkRoot) {
this.jdkRoot = jdkRoot;
}
}
8 changes: 0 additions & 8 deletions src/main/resources/io/xjar/jni/XJni.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,6 @@

JNIEXPORT jobject JNICALL Java_io_xjar_XJni_call(JNIEnv* env, jobject thiz)
{
const jbyte bytes[] = {<%
for (k in xKey.decryptKey) {
print(k);
if (!kLP.last) {
print(', ');
}
}
%>};
const char* algorithm = "${xKey.algorithm}";
jint keysize = ${xKey.keysize};
jint ivsize = ${xKey.ivsize};
Expand Down

0 comments on commit 11cb622

Please sign in to comment.