@@ -58,30 +58,29 @@ jobs:
5858 run : chmod +x gradlew
5959
6060 - name : Build natives
61- run : ./gradlew copyFlecsNative -PNATIVE_ARCH=${{ matrix.platform }}-${{ matrix.arch }}
61+ run : ./gradlew compileFlecsNative -PNATIVE_ARCH=${{ matrix.platform }}-${{ matrix.arch }}
6262 shell : bash
6363
6464 - name : Verify native library was built
6565 run : |
66- FILE_PATH="build/natives/${{ matrix.platform }}-${{ matrix.arch }}/${{ matrix.lib }}"
66+ FILE_PATH="build/resources/main/ natives/${{ matrix.platform }}-${{ matrix.arch }}/${{ matrix.lib }}"
6767 echo "Checking for native library at $FILE_PATH..."
68-
68+
6969 if [ ! -f "$FILE_PATH" ]; then
7070 echo "Error: Native library not found!"
7171 exit 1
7272 fi
73-
74- # Vérification de la taille (102400 octets = 100ko)
73+
7574 FILE_SIZE=$(wc -c < "$FILE_PATH")
7675 MIN_SIZE=102400
77-
76+
7877 echo "File size: $FILE_SIZE bytes"
79-
78+
8079 if [ "$FILE_SIZE" -lt "$MIN_SIZE" ]; then
8180 echo "Error: File size is too small ($FILE_SIZE bytes). Expected at least $MIN_SIZE bytes."
8281 exit 1
8382 fi
84-
83+
8584 echo "✓ File exists and size is valid."
8685 ls -la "$FILE_PATH"
8786 shell : bash
9089 uses : actions/upload-artifact@v4
9190 with :
9291 name : natives-${{ matrix.platform }}-${{ matrix.arch }}
93- path : build/natives/${{ matrix.platform }}-${{ matrix.arch }}/${{ matrix.lib }}
92+ path : build/resources/main/ natives/${{ matrix.platform }}-${{ matrix.arch }}/${{ matrix.lib }}
9493 retention-days : 1
9594
9695 publish :
@@ -120,31 +119,28 @@ jobs:
120119
121120 - name : Organize natives
122121 run : |
123- mkdir -p build/natives
124-
125- # Copy each artifact to the correct structure
122+ mkdir -p build/resources/main/natives
123+
126124 for artifact_dir in downloaded-natives/natives-*/; do
127- # Extract platform-arch from folder name (e.g. natives-linux-x64 -> linux-x64)
128125 platform_arch=$(basename "$artifact_dir" | sed 's/^natives-//')
129-
126+
130127 echo "Processing $platform_arch..."
131- mkdir -p "build/natives/$platform_arch"
132-
133- # Copy library file from artifact
134- cp "$artifact_dir"/* "build/natives/$platform_arch/" 2>/dev/null || {
128+ mkdir -p "build/resources/main/natives/$platform_arch"
129+
130+ cp "$artifact_dir"/* "build/resources/main/natives/$platform_arch/" 2>/dev/null || {
135131 echo "Warning: No files found in $artifact_dir"
136132 }
137133 done
138-
134+
139135 echo ""
140136 echo "Final native libraries structure:"
141- find build/natives -type f
137+ find build/resources/main/ natives -type f
142138
143139 - name : Grant execute permission for gradlew
144140 run : chmod +x gradlew
145141
146142 - name : Build final JAR with all natives
147- run : ./gradlew jar -x compileFlecsNative -x copyFlecsNative
143+ run : ./gradlew jar -x compileFlecsNative
148144
149145 - name : Verify JAR contents
150146 run : |
@@ -154,11 +150,10 @@ jobs:
154150 echo "All natives in JAR:"
155151 jar tf build/libs/flecs-java-$VERSION.jar | grep "natives/" | sort
156152 echo ""
157-
158- # Check each platform
159- jar tf build/libs/flecs-java-$VERSION.jar | grep "natives/linux-x64/libflecs.so" && echo "✓ Linux x64" || echo "✗ Linux x64 MISSING"
160- jar tf build/libs/flecs-java-$VERSION.jar | grep "natives/windows-x64/flecs.dll" && echo "✓ Windows x64" || echo "✗ Windows x64 MISSING"
161- jar tf build/libs/flecs-java-$VERSION.jar | grep "natives/macos-x64/libflecs.dylib" && echo "✓ macOS x64" || echo "✗ macOS x64 MISSING"
153+
154+ jar tf build/libs/flecs-java-$VERSION.jar | grep "natives/linux-x64/libflecs.so" && echo "✓ Linux x64" || echo "✗ Linux x64 MISSING"
155+ jar tf build/libs/flecs-java-$VERSION.jar | grep "natives/windows-x64/flecs.dll" && echo "✓ Windows x64" || echo "✗ Windows x64 MISSING"
156+ jar tf build/libs/flecs-java-$VERSION.jar | grep "natives/macos-x64/libflecs.dylib" && echo "✓ macOS x64" || echo "✗ macOS x64 MISSING"
162157 jar tf build/libs/flecs-java-$VERSION.jar | grep "natives/macos-aarch64/libflecs.dylib" && echo "✓ macOS ARM64" || echo "✗ macOS ARM64 MISSING"
163158
164159 - name : Publish to Maven Central
0 commit comments