Skip to content

Commit c0a126a

Browse files
committed
fix include file location of resources
1 parent ead5048 commit c0a126a

File tree

2 files changed

+37
-11
lines changed

2 files changed

+37
-11
lines changed

graalpython/com.oracle.graal.python.resources/src/com/oracle/graal/python/resources/PythonResource.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,16 @@ public final class PythonResource implements InternalResource {
7777
private static final Path BASE_PATH = Path.of("META-INF", "resources");
7878
private static final String LIBGRAALPY = "libgraalpy";
7979
private static final String LIBPYTHON = "libpython";
80+
private static final String INCLUDE = "include";
8081
private static final String LIBGRAALPY_FILES = LIBGRAALPY + ".files";
8182
private static final String LIBPYTHON_FILES = LIBPYTHON + ".files";
8283
private static final String INCLUDE_FILES = "include.files";
84+
private static final String NI_FILES = "ni.files";
8385
private static final String NATIVE_FILES = "native.files";
8486
private static final Path LIBGRAALPY_SHA256 = Path.of(LIBGRAALPY + ".sha256");
8587
private static final Path LIBPYTHON_SHA256 = Path.of(LIBPYTHON + ".sha256");
8688
private static final Path INCLUDE_SHA256 = Path.of("include.sha256");
89+
private static final Path NI_SHA256 = Path.of("ni.sha256");
8790
private static final Path NATIVE_SHA256 = Path.of("native.sha256");
8891

8992
@Override
@@ -93,20 +96,23 @@ public void unpackFiles(Env env, Path targetDirectory) throws IOException {
9396
if (os.equals(OS.WINDOWS)) {
9497
env.unpackResourceFiles(BASE_PATH.resolve(LIBPYTHON_FILES), targetDirectory.resolve("Lib"), BASE_PATH.resolve(LIBPYTHON));
9598
env.unpackResourceFiles(BASE_PATH.resolve(LIBGRAALPY_FILES), targetDirectory.resolve("lib-graalpython"), BASE_PATH.resolve(LIBGRAALPY));
99+
env.unpackResourceFiles(BASE_PATH.resolve(INCLUDE_FILES), targetDirectory.resolve("Include"), BASE_PATH.resolve(INCLUDE));
96100
} else {
97-
env.unpackResourceFiles(BASE_PATH.resolve(LIBPYTHON_FILES), targetDirectory.resolve("lib").resolve("python" + PYTHON_MAJOR + "." + PYTHON_MINOR), BASE_PATH.resolve(LIBPYTHON));
101+
String pythonMajMin = "python" + PYTHON_MAJOR + "." + PYTHON_MINOR;
102+
env.unpackResourceFiles(BASE_PATH.resolve(LIBPYTHON_FILES), targetDirectory.resolve("lib").resolve(pythonMajMin), BASE_PATH.resolve(LIBPYTHON));
98103
env.unpackResourceFiles(BASE_PATH.resolve(LIBGRAALPY_FILES), targetDirectory.resolve("lib").resolve("graalpy" + GRAALVM_MAJOR + "." + GRAALVM_MINOR), BASE_PATH.resolve(LIBGRAALPY));
104+
env.unpackResourceFiles(BASE_PATH.resolve(INCLUDE_FILES), targetDirectory.resolve("include").resolve(pythonMajMin), BASE_PATH.resolve(INCLUDE));
99105
}
100-
// include files are in the same place on all platforms
101-
env.unpackResourceFiles(BASE_PATH.resolve(INCLUDE_FILES), targetDirectory, BASE_PATH);
106+
// ni files are in the same place on all platforms
107+
env.unpackResourceFiles(BASE_PATH.resolve(NI_FILES), targetDirectory, BASE_PATH);
102108
// native files already have the correct structure
103109
env.unpackResourceFiles(BASE_PATH.resolve(osArch).resolve(NATIVE_FILES), targetDirectory, BASE_PATH.resolve(osArch));
104110
}
105111

106112
@Override
107113
public String versionHash(Env env) {
108114
StringBuilder sb = new StringBuilder();
109-
for (var s : List.of(LIBGRAALPY_SHA256, LIBPYTHON_SHA256, INCLUDE_SHA256, Path.of(env.getOS().toString()).resolve(env.getCPUArchitecture().toString()).resolve(NATIVE_SHA256))) {
115+
for (var s : List.of(LIBGRAALPY_SHA256, LIBPYTHON_SHA256, NI_SHA256, INCLUDE_SHA256, Path.of(env.getOS().toString()).resolve(env.getCPUArchitecture().toString()).resolve(NATIVE_SHA256))) {
110116
try {
111117
sb.append(env.readResourceLines(BASE_PATH.resolve(s)).get(0).substring(0, 8));
112118
} catch (IOException | IndexOutOfBoundsException | InvalidPathException e) {

mx.graalpython/suite.py

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -886,6 +886,7 @@
886886
"dependencies": [
887887
"com.oracle.graal.python.resources",
888888
"GRAALPYTHON_VERSIONS_RES",
889+
"GRAALPYTHON_NI_RESOURCES",
889890
"GRAALPYTHON_LIBPYTHON_RESOURCES",
890891
"GRAALPYTHON_LIBGRAALPY_RESOURCES",
891892
"GRAALPYTHON_INCLUDE_RESOURCES",
@@ -1059,7 +1060,23 @@
10591060
"maven": False,
10601061
},
10611062

1062-
# The Python and HPy headers. These go to "/include" on all platforms.
1063+
"GRAALPYTHON_NI_RESOURCES": {
1064+
"native": False,
1065+
"platformDependent": False,
1066+
"hashEntry": "META-INF/resources/ni.sha256",
1067+
"fileListEntry": "META-INF/resources/ni.files",
1068+
"type": "dir",
1069+
"description": "GraalVM Python native image resources",
1070+
"layout": {
1071+
"./META-INF/resources/": [
1072+
"file:mx.graalpython/native-image.properties",
1073+
],
1074+
},
1075+
"maven": False,
1076+
},
1077+
1078+
# The Python and HPy headers. These go to "/include" on windows and
1079+
# "/include/python<py_ver:major_minor>" on unix
10631080
"GRAALPYTHON_INCLUDE_RESOURCES": {
10641081
"native": False,
10651082
"platformDependent": False,
@@ -1073,9 +1090,6 @@
10731090
"com.oracle.graal.python.hpy.llvm",
10741091
],
10751092
"layout": {
1076-
"./META-INF/resources/": [
1077-
"file:mx.graalpython/native-image.properties",
1078-
],
10791093
"./META-INF/resources/include/": [
10801094
"file:graalpython/com.oracle.graal.python.cext/include/*",
10811095
"file:graalpython/com.oracle.graal.python.hpy.llvm/include/*",
@@ -1150,6 +1164,7 @@
11501164
"buildDependencies": [
11511165
"GRAALPYTHON_LIBPYTHON_RESOURCES",
11521166
"GRAALPYTHON_LIBGRAALPY_RESOURCES",
1167+
"GRAALPYTHON_NI_RESOURCES",
11531168
"GRAALPYTHON_INCLUDE_RESOURCES",
11541169
"GRAALPYTHON_NATIVE_RESOURCES",
11551170
],
@@ -1163,8 +1178,11 @@
11631178
"./lib-graalpython/": [
11641179
"dependency:GRAALPYTHON_LIBGRAALPY_RESOURCES/META-INF/resources/libgraalpy/*",
11651180
],
1181+
"./include/": [
1182+
"dependency:GRAALPYTHON_INCLUDE_RESOURCES/META-INF/resources/include/*",
1183+
],
11661184
"./": [
1167-
"dependency:GRAALPYTHON_INCLUDE_RESOURCES/META-INF/resources/*",
1185+
"dependency:GRAALPYTHON_NI_RESOURCES/META-INF/resources/*",
11681186
"dependency:GRAALPYTHON_NATIVE_RESOURCES/META-INF/resources/<os>/<arch>/*",
11691187
],
11701188
},
@@ -1179,8 +1197,11 @@
11791197
"./lib/graalpy<graal_ver:major_minor>/": [
11801198
"dependency:GRAALPYTHON_LIBGRAALPY_RESOURCES/META-INF/resources/libgraalpy/*",
11811199
],
1200+
"./include/python<py_ver:major_minor>/": [
1201+
"dependency:GRAALPYTHON_INCLUDE_RESOURCES/META-INF/resources/include/*",
1202+
],
11821203
"./": [
1183-
"dependency:GRAALPYTHON_INCLUDE_RESOURCES/META-INF/resources/*",
1204+
"dependency:GRAALPYTHON_NI_RESOURCES/META-INF/resources/*",
11841205
"dependency:GRAALPYTHON_NATIVE_RESOURCES/META-INF/resources/<os>/<arch>/*",
11851206
],
11861207
},
@@ -1193,7 +1214,6 @@
11931214
"GRAALPY_VIRTUALENV": {
11941215
"native": True, # so it produces a tar, not a jar file
11951216
"platformDependent": False,
1196-
"maven": False,
11971217
"description": "graalpy-virtualenv plugin sources usable to be installed into other interpreters",
11981218
"layout": {
11991219
"graalpy_virtualenv": "file:graalpy_virtualenv",

0 commit comments

Comments
 (0)