Skip to content

Commit 36ae0ba

Browse files
authored
Added libgdx ignore rules (#261)
1 parent 9831d93 commit 36ae0ba

File tree

1 file changed

+66
-45
lines changed

1 file changed

+66
-45
lines changed

cli/src/main/java/ca/weblite/jdeploy/services/RecommendedIgnoreRulesService.java

Lines changed: 66 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,75 @@ public List<String> generatePlatformIgnoreRules(Platform platform) {
6262

6363
// Add SQLite native library rules
6464
addSQLiteRules(rules, platform);
65-
66-
// Add general native library patterns
67-
addGeneralNativeRules(rules, platform);
65+
66+
// Add LibGDX specific rules
67+
addLibGdxRules(rules, platform);
6868

6969
return rules;
7070
}
71+
72+
private void addLibGdxRules(List<String> rules, Platform platform) {
73+
if (platform == Platform.DEFAULT || platform == Platform.WIN_ARM64) {
74+
// No special handling for default or Linux ARM64 (no official LWJGL support)
75+
return;
76+
}
77+
78+
rules.add("# LWJGL native libraries");
79+
80+
// Keep current platform's LWJGL libraries
81+
switch (platform) {
82+
case WIN_X64:
83+
rules.add("/linux");
84+
rules.add("/macos");
85+
rules.add("/windows/arm64");
86+
rules.add("/windows/x86");
87+
rules.add("/gdx.dll");
88+
rules.add("**libgdx*.so");
89+
rules.add("**libgdx*.dylib");
90+
break;
91+
case WIN_ARM64:
92+
// No Win Arm64 support in LWJGL as of now
93+
break;
94+
case MAC_X64:
95+
rules.add("/linux");
96+
rules.add("/windows");
97+
rules.add("/macos/arm64");
98+
rules.add("**gdx*.dll");
99+
rules.add("**libgdx*.so");
100+
rules.add("/libgdxarm64.dylib");
101+
break;
102+
case MAC_ARM64:
103+
rules.add("/linux");
104+
rules.add("/windows");
105+
rules.add("/macos/x64");
106+
rules.add("**gdx*.dll");
107+
rules.add("**libgdx*.so");
108+
rules.add("/libgdx64.dylib");
109+
break;
110+
case LINUX_X64:
111+
rules.add("/macos");
112+
rules.add("/windows");
113+
rules.add("/linux");
114+
rules.add("!/linux/x64");
115+
rules.add("**gdx*.dll");
116+
rules.add("**libgdx*.so");
117+
rules.add("/libgdx*.dylib");
118+
rules.add("!/libgdx64.so");
119+
break;
120+
case LINUX_ARM64:
121+
rules.add("/macos");
122+
rules.add("/windows");
123+
rules.add("/linux");
124+
rules.add("!/linux/arm64");
125+
rules.add("**gdx*.dll");
126+
rules.add("**libgdx*.so");
127+
rules.add("/libgdx*.dylib");
128+
rules.add("!/libgdxarm64.so");
129+
break;
130+
}
131+
132+
rules.add("");
133+
}
71134

72135
/**
73136
* Adds Skiko (Compose Multiplatform) specific rules for the platform.
@@ -142,48 +205,6 @@ private void addSQLiteRules(List<String> rules, Platform platform) {
142205
rules.add("");
143206
}
144207

145-
/**
146-
* Adds general native library rules for the platform.
147-
* These cover common naming patterns for native libraries.
148-
*/
149-
private void addGeneralNativeRules(List<String> rules, Platform platform) {
150-
rules.add("# General native library patterns");
151-
152-
String platformId = platform.getIdentifier();
153-
String osName = getOSName(platform);
154-
String archName = getArchName(platform);
155-
156-
// Keep patterns for current platform
157-
rules.add("!*" + platformId + "*");
158-
rules.add("!*" + osName.toLowerCase() + "*" + archName + "*");
159-
rules.add("!*" + osName.toLowerCase() + "*" + archName.replace("_", "") + "*");
160-
161-
// Ignore other common platform patterns
162-
for (Platform p : Platform.values()) {
163-
String otherPlatformId = p.getIdentifier();
164-
if (!platformId.equals(otherPlatformId)) {
165-
rules.add("*" + otherPlatformId + "*");
166-
}
167-
}
168-
169-
// Common alternative naming patterns
170-
if (!osName.equals("windows")) {
171-
rules.add("*windows*");
172-
rules.add("*.dll");
173-
}
174-
if (!osName.equals("macos")) {
175-
rules.add("*macos*");
176-
rules.add("*darwin*");
177-
rules.add("*.dylib");
178-
}
179-
if (!osName.equals("linux")) {
180-
rules.add("*linux*");
181-
rules.add("*.so");
182-
}
183-
184-
rules.add("");
185-
}
186-
187208
/**
188209
* Gets the display name for a platform.
189210
*/

0 commit comments

Comments
 (0)