diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9332edf4..447304ca 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,12 +8,20 @@ on: paths-ignore: - "**/README.md" jobs: - test: - name: Test on ${{ matrix.os }} + native: + name: Build native on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-22.04, windows-2022, macos-15-intel, macos-14] + include: + - os: ubuntu-22.04 + targets: x86_64-linux-gnu,aarch64-linux-gnu + - os: windows-2022 + targets: x86_64-windows + - os: macos-15-intel + targets: x86_64-macos + - os: macos-14 + targets: aarch64-macos env: ORG_GRADLE_PROJECT_ossrhUsername: na ORG_GRADLE_PROJECT_ossrhPassword: na @@ -26,8 +34,12 @@ jobs: distribution: 'corretto' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4.2.1 - - name: Test with Gradle - run: ./gradlew test --stacktrace + - name: Build native libraries with Gradle + run: > + ./gradlew + buildNative + -PtreeSitterTargets=${{ matrix.targets }} + --stacktrace android-native: name: Build Android native library @@ -51,4 +63,4 @@ jobs: run: | "${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" "ndk;${ANDROID_NDK_VERSION}" - name: Build Android native library - run: ./gradlew :tree-sitter:buildNative -PtreeSitterTargets=aarch64-linux-android --stacktrace + run: ./gradlew buildNative -PtreeSitterTargets=aarch64-linux-android --stacktrace diff --git a/build.gradle b/build.gradle index d98769fe..be68ca28 100644 --- a/build.gradle +++ b/build.gradle @@ -103,19 +103,21 @@ subprojects { useJUnitPlatform() } - tasks.register('downloadSource', DownloadSourceTask) + if (project.hasProperty('libVersion')) { + tasks.register('downloadSource', DownloadSourceTask) - if (project.name != 'tree-sitter' && project.name != 'tree-sitter-demo' && project.name != 'tree-sitter-tests') { - tasks.named('test') { - dependsOn tasks.named('downloadSource') + tasks.register('buildNative', BuildNativeTask) { + zigExe = rootProject.downloadZig.zigExe + dependsOn downloadSource, rootProject.downloadZig + if (((String) rootProject.properties.get("treeSitterTargets")).contains("android")) { + dependsOn rootProject.downloadAndroidNdk + } } - } - tasks.register('buildNative', BuildNativeTask) { - zigExe = rootProject.downloadZig.zigExe - dependsOn downloadSource, rootProject.downloadZig - if (((String) rootProject.properties.get("treeSitterTargets")).contains("android")) { - dependsOn rootProject.downloadAndroidNdk + if (project.name != 'tree-sitter') { + tasks.named('test') { + dependsOn tasks.named('downloadSource') + } } } diff --git a/buildSrc/src/main/groovy/BuildNativeTask.groovy b/buildSrc/src/main/groovy/BuildNativeTask.groovy index 13fb943e..ea1e6b0c 100644 --- a/buildSrc/src/main/groovy/BuildNativeTask.groovy +++ b/buildSrc/src/main/groovy/BuildNativeTask.groovy @@ -181,10 +181,10 @@ class BuildNativeTask extends DefaultTask{ cmd.addAll(jniCFiles) cmd.addAll(parserCFiles) cmd.addAll(additionalCFiles) - project.exec{ + project.providers.exec { workingDir jniCDir commandLine(cmd) - } + }.result.get() } this.removeWindowsDebugFiles() } @@ -220,6 +220,12 @@ class BuildNativeTask extends DefaultTask{ } def sdkDir = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT") + if (!sdkDir) { + def defaultSdk = new File(System.getProperty("user.home"), "Library/Android/sdk") + if (defaultSdk.exists()) { + sdkDir = defaultSdk.absolutePath + } + } if (sdkDir) { def ndkRoot = new File(sdkDir, "ndk") def ndks = ndkRoot.listFiles()?.findAll { it.isDirectory() }?.sort { a, b -> b.name <=> a.name } @@ -237,7 +243,7 @@ class BuildNativeTask extends DefaultTask{ throw new GradleException("Android NDK not found. Set ANDROID_NDK_HOME, ANDROID_NDK_ROOT, ANDROID_HOME, or ANDROID_SDK_ROOT, or run the downloadAndroidNdk task.") } - private void removeWindowsDebugFiles(){ + void removeWindowsDebugFiles(){ def files = jniOutDir.asFileTree.matching { include("**/*.pdb") include("**/*.lib") diff --git a/buildSrc/src/main/groovy/DownloadAndroidNdkTask.groovy b/buildSrc/src/main/groovy/DownloadAndroidNdkTask.groovy index 6ffdcd43..4b71f6df 100644 --- a/buildSrc/src/main/groovy/DownloadAndroidNdkTask.groovy +++ b/buildSrc/src/main/groovy/DownloadAndroidNdkTask.groovy @@ -104,6 +104,12 @@ class DownloadAndroidNdkTask extends DefaultTask { } def sdkDir = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT") + if (!sdkDir) { + def defaultSdk = new File(System.getProperty("user.home"), "Library/Android/sdk") + if (defaultSdk.exists()) { + sdkDir = defaultSdk.absolutePath + } + } if (sdkDir) { def ndkRoot = new File(sdkDir, "ndk") def ndks = ndkRoot.listFiles()?.findAll { it.isDirectory() }?.sort { a, b -> b.name <=> a.name } diff --git a/buildSrc/src/main/groovy/DownloadZigTask.groovy b/buildSrc/src/main/groovy/DownloadZigTask.groovy index 98250bfc..51f789e7 100644 --- a/buildSrc/src/main/groovy/DownloadZigTask.groovy +++ b/buildSrc/src/main/groovy/DownloadZigTask.groovy @@ -165,7 +165,7 @@ class DownloadZigTask extends DefaultTask{ def mirrorUrls = mirrorUrls() downloadZigFromMirrors(mirrorUrls, zigZipFile.asFile, zigSignatureFile.asFile) miniSignExe.asFile.setExecutable(true, true) - def zipVerified = project.exec { + def zipVerified = project.providers.exec { ignoreExitValue = true workingDir zigDir.asFile commandLine miniSignExe, @@ -173,7 +173,7 @@ class DownloadZigTask extends DefaultTask{ zigZipFile, "-P", zigPubKey - } + }.result.get().exitValue == 0 if(!zipVerified) { throw new GradleException("$zigZipFile signature does not match!") } diff --git a/tree-sitter-css/src/main/resources/lib/aarch64-linux-android-tree-sitter-css.so b/tree-sitter-css/src/main/resources/lib/aarch64-linux-android-tree-sitter-css.so new file mode 100755 index 00000000..03c33035 Binary files /dev/null and b/tree-sitter-css/src/main/resources/lib/aarch64-linux-android-tree-sitter-css.so differ diff --git a/tree-sitter-css/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-css.so b/tree-sitter-css/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-css.so old mode 100644 new mode 100755 index f93d4ea0..c85ee184 Binary files a/tree-sitter-css/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-css.so and b/tree-sitter-css/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-css.so differ diff --git a/tree-sitter-css/src/main/resources/lib/aarch64-macos-tree-sitter-css.dylib b/tree-sitter-css/src/main/resources/lib/aarch64-macos-tree-sitter-css.dylib index 29c7fcf5..9edec352 100644 Binary files a/tree-sitter-css/src/main/resources/lib/aarch64-macos-tree-sitter-css.dylib and b/tree-sitter-css/src/main/resources/lib/aarch64-macos-tree-sitter-css.dylib differ diff --git a/tree-sitter-css/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-css.so b/tree-sitter-css/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-css.so old mode 100644 new mode 100755 index 9e685a4a..7d62bdf9 Binary files a/tree-sitter-css/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-css.so and b/tree-sitter-css/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-css.so differ diff --git a/tree-sitter-css/src/main/resources/lib/x86_64-macos-tree-sitter-css.dylib b/tree-sitter-css/src/main/resources/lib/x86_64-macos-tree-sitter-css.dylib index fb16fd0b..1ccc8117 100644 Binary files a/tree-sitter-css/src/main/resources/lib/x86_64-macos-tree-sitter-css.dylib and b/tree-sitter-css/src/main/resources/lib/x86_64-macos-tree-sitter-css.dylib differ diff --git a/tree-sitter-css/src/main/resources/lib/x86_64-windows-tree-sitter-css.dll b/tree-sitter-css/src/main/resources/lib/x86_64-windows-tree-sitter-css.dll old mode 100644 new mode 100755 index 92726c88..35cd3c0b Binary files a/tree-sitter-css/src/main/resources/lib/x86_64-windows-tree-sitter-css.dll and b/tree-sitter-css/src/main/resources/lib/x86_64-windows-tree-sitter-css.dll differ diff --git a/tree-sitter-go/src/main/resources/lib/aarch64-linux-android-tree-sitter-go.so b/tree-sitter-go/src/main/resources/lib/aarch64-linux-android-tree-sitter-go.so new file mode 100755 index 00000000..9e5adc03 Binary files /dev/null and b/tree-sitter-go/src/main/resources/lib/aarch64-linux-android-tree-sitter-go.so differ diff --git a/tree-sitter-go/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-go.so b/tree-sitter-go/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-go.so old mode 100644 new mode 100755 index 922e3b49..502f1fbd Binary files a/tree-sitter-go/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-go.so and b/tree-sitter-go/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-go.so differ diff --git a/tree-sitter-go/src/main/resources/lib/aarch64-macos-tree-sitter-go.dylib b/tree-sitter-go/src/main/resources/lib/aarch64-macos-tree-sitter-go.dylib index bc51c469..eff87ad6 100644 Binary files a/tree-sitter-go/src/main/resources/lib/aarch64-macos-tree-sitter-go.dylib and b/tree-sitter-go/src/main/resources/lib/aarch64-macos-tree-sitter-go.dylib differ diff --git a/tree-sitter-go/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-go.so b/tree-sitter-go/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-go.so old mode 100644 new mode 100755 index 938069c5..42e81e9e Binary files a/tree-sitter-go/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-go.so and b/tree-sitter-go/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-go.so differ diff --git a/tree-sitter-go/src/main/resources/lib/x86_64-macos-tree-sitter-go.dylib b/tree-sitter-go/src/main/resources/lib/x86_64-macos-tree-sitter-go.dylib index d8d9a264..bea217ab 100644 Binary files a/tree-sitter-go/src/main/resources/lib/x86_64-macos-tree-sitter-go.dylib and b/tree-sitter-go/src/main/resources/lib/x86_64-macos-tree-sitter-go.dylib differ diff --git a/tree-sitter-go/src/main/resources/lib/x86_64-windows-tree-sitter-go.dll b/tree-sitter-go/src/main/resources/lib/x86_64-windows-tree-sitter-go.dll old mode 100644 new mode 100755 index befdd7ff..f71d7b86 Binary files a/tree-sitter-go/src/main/resources/lib/x86_64-windows-tree-sitter-go.dll and b/tree-sitter-go/src/main/resources/lib/x86_64-windows-tree-sitter-go.dll differ diff --git a/tree-sitter-html/src/main/resources/lib/aarch64-linux-android-tree-sitter-html.so b/tree-sitter-html/src/main/resources/lib/aarch64-linux-android-tree-sitter-html.so new file mode 100755 index 00000000..dad908e0 Binary files /dev/null and b/tree-sitter-html/src/main/resources/lib/aarch64-linux-android-tree-sitter-html.so differ diff --git a/tree-sitter-html/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-html.so b/tree-sitter-html/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-html.so old mode 100644 new mode 100755 index 3e906a92..c93b7ded Binary files a/tree-sitter-html/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-html.so and b/tree-sitter-html/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-html.so differ diff --git a/tree-sitter-html/src/main/resources/lib/aarch64-macos-tree-sitter-html.dylib b/tree-sitter-html/src/main/resources/lib/aarch64-macos-tree-sitter-html.dylib index d9c4ef0a..c063f263 100644 Binary files a/tree-sitter-html/src/main/resources/lib/aarch64-macos-tree-sitter-html.dylib and b/tree-sitter-html/src/main/resources/lib/aarch64-macos-tree-sitter-html.dylib differ diff --git a/tree-sitter-html/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-html.so b/tree-sitter-html/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-html.so old mode 100644 new mode 100755 index fbc3f2af..c1187c1a Binary files a/tree-sitter-html/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-html.so and b/tree-sitter-html/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-html.so differ diff --git a/tree-sitter-html/src/main/resources/lib/x86_64-macos-tree-sitter-html.dylib b/tree-sitter-html/src/main/resources/lib/x86_64-macos-tree-sitter-html.dylib index 1679c7d5..928cbc1e 100644 Binary files a/tree-sitter-html/src/main/resources/lib/x86_64-macos-tree-sitter-html.dylib and b/tree-sitter-html/src/main/resources/lib/x86_64-macos-tree-sitter-html.dylib differ diff --git a/tree-sitter-html/src/main/resources/lib/x86_64-windows-tree-sitter-html.dll b/tree-sitter-html/src/main/resources/lib/x86_64-windows-tree-sitter-html.dll old mode 100644 new mode 100755 index 3f2af47b..c047dc57 Binary files a/tree-sitter-html/src/main/resources/lib/x86_64-windows-tree-sitter-html.dll and b/tree-sitter-html/src/main/resources/lib/x86_64-windows-tree-sitter-html.dll differ diff --git a/tree-sitter-java/src/main/resources/lib/aarch64-linux-android-tree-sitter-java.so b/tree-sitter-java/src/main/resources/lib/aarch64-linux-android-tree-sitter-java.so new file mode 100755 index 00000000..457a5a72 Binary files /dev/null and b/tree-sitter-java/src/main/resources/lib/aarch64-linux-android-tree-sitter-java.so differ diff --git a/tree-sitter-java/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-java.so b/tree-sitter-java/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-java.so old mode 100644 new mode 100755 index bcd9f839..d531c3c9 Binary files a/tree-sitter-java/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-java.so and b/tree-sitter-java/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-java.so differ diff --git a/tree-sitter-java/src/main/resources/lib/aarch64-macos-tree-sitter-java.dylib b/tree-sitter-java/src/main/resources/lib/aarch64-macos-tree-sitter-java.dylib index 900867a7..fdbb0eef 100644 Binary files a/tree-sitter-java/src/main/resources/lib/aarch64-macos-tree-sitter-java.dylib and b/tree-sitter-java/src/main/resources/lib/aarch64-macos-tree-sitter-java.dylib differ diff --git a/tree-sitter-java/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-java.so b/tree-sitter-java/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-java.so old mode 100644 new mode 100755 index 52552d3d..19886a7c Binary files a/tree-sitter-java/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-java.so and b/tree-sitter-java/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-java.so differ diff --git a/tree-sitter-java/src/main/resources/lib/x86_64-macos-tree-sitter-java.dylib b/tree-sitter-java/src/main/resources/lib/x86_64-macos-tree-sitter-java.dylib index 42840f33..6193e58e 100644 Binary files a/tree-sitter-java/src/main/resources/lib/x86_64-macos-tree-sitter-java.dylib and b/tree-sitter-java/src/main/resources/lib/x86_64-macos-tree-sitter-java.dylib differ diff --git a/tree-sitter-java/src/main/resources/lib/x86_64-windows-tree-sitter-java.dll b/tree-sitter-java/src/main/resources/lib/x86_64-windows-tree-sitter-java.dll old mode 100644 new mode 100755 index 8896cea3..21ba2f5d Binary files a/tree-sitter-java/src/main/resources/lib/x86_64-windows-tree-sitter-java.dll and b/tree-sitter-java/src/main/resources/lib/x86_64-windows-tree-sitter-java.dll differ diff --git a/tree-sitter-javascript/src/main/resources/lib/aarch64-linux-android-tree-sitter-javascript.so b/tree-sitter-javascript/src/main/resources/lib/aarch64-linux-android-tree-sitter-javascript.so new file mode 100755 index 00000000..2ed425db Binary files /dev/null and b/tree-sitter-javascript/src/main/resources/lib/aarch64-linux-android-tree-sitter-javascript.so differ diff --git a/tree-sitter-javascript/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-javascript.so b/tree-sitter-javascript/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-javascript.so old mode 100644 new mode 100755 index 09491e0f..1d1b56d2 Binary files a/tree-sitter-javascript/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-javascript.so and b/tree-sitter-javascript/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-javascript.so differ diff --git a/tree-sitter-javascript/src/main/resources/lib/aarch64-macos-tree-sitter-javascript.dylib b/tree-sitter-javascript/src/main/resources/lib/aarch64-macos-tree-sitter-javascript.dylib index 07759ca2..2945b898 100644 Binary files a/tree-sitter-javascript/src/main/resources/lib/aarch64-macos-tree-sitter-javascript.dylib and b/tree-sitter-javascript/src/main/resources/lib/aarch64-macos-tree-sitter-javascript.dylib differ diff --git a/tree-sitter-javascript/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-javascript.so b/tree-sitter-javascript/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-javascript.so old mode 100644 new mode 100755 index 9cd682d1..7adbfee9 Binary files a/tree-sitter-javascript/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-javascript.so and b/tree-sitter-javascript/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-javascript.so differ diff --git a/tree-sitter-javascript/src/main/resources/lib/x86_64-macos-tree-sitter-javascript.dylib b/tree-sitter-javascript/src/main/resources/lib/x86_64-macos-tree-sitter-javascript.dylib index 384c99cc..d0b7239e 100644 Binary files a/tree-sitter-javascript/src/main/resources/lib/x86_64-macos-tree-sitter-javascript.dylib and b/tree-sitter-javascript/src/main/resources/lib/x86_64-macos-tree-sitter-javascript.dylib differ diff --git a/tree-sitter-javascript/src/main/resources/lib/x86_64-windows-tree-sitter-javascript.dll b/tree-sitter-javascript/src/main/resources/lib/x86_64-windows-tree-sitter-javascript.dll old mode 100644 new mode 100755 index 5ae9d299..cbcef79f Binary files a/tree-sitter-javascript/src/main/resources/lib/x86_64-windows-tree-sitter-javascript.dll and b/tree-sitter-javascript/src/main/resources/lib/x86_64-windows-tree-sitter-javascript.dll differ diff --git a/tree-sitter-json/src/main/resources/lib/aarch64-linux-android-tree-sitter-json.so b/tree-sitter-json/src/main/resources/lib/aarch64-linux-android-tree-sitter-json.so new file mode 100755 index 00000000..fcd78253 Binary files /dev/null and b/tree-sitter-json/src/main/resources/lib/aarch64-linux-android-tree-sitter-json.so differ diff --git a/tree-sitter-json/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-json.so b/tree-sitter-json/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-json.so old mode 100644 new mode 100755 index 1fe84a3b..7408a770 Binary files a/tree-sitter-json/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-json.so and b/tree-sitter-json/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-json.so differ diff --git a/tree-sitter-json/src/main/resources/lib/aarch64-macos-tree-sitter-json.dylib b/tree-sitter-json/src/main/resources/lib/aarch64-macos-tree-sitter-json.dylib index 733a7795..70d9386d 100644 Binary files a/tree-sitter-json/src/main/resources/lib/aarch64-macos-tree-sitter-json.dylib and b/tree-sitter-json/src/main/resources/lib/aarch64-macos-tree-sitter-json.dylib differ diff --git a/tree-sitter-json/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-json.so b/tree-sitter-json/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-json.so old mode 100644 new mode 100755 index 91ecef59..d05ddcb7 Binary files a/tree-sitter-json/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-json.so and b/tree-sitter-json/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-json.so differ diff --git a/tree-sitter-json/src/main/resources/lib/x86_64-macos-tree-sitter-json.dylib b/tree-sitter-json/src/main/resources/lib/x86_64-macos-tree-sitter-json.dylib index 413c6e5d..33e57991 100644 Binary files a/tree-sitter-json/src/main/resources/lib/x86_64-macos-tree-sitter-json.dylib and b/tree-sitter-json/src/main/resources/lib/x86_64-macos-tree-sitter-json.dylib differ diff --git a/tree-sitter-json/src/main/resources/lib/x86_64-windows-tree-sitter-json.dll b/tree-sitter-json/src/main/resources/lib/x86_64-windows-tree-sitter-json.dll old mode 100644 new mode 100755 index 5dd8576a..681b537b Binary files a/tree-sitter-json/src/main/resources/lib/x86_64-windows-tree-sitter-json.dll and b/tree-sitter-json/src/main/resources/lib/x86_64-windows-tree-sitter-json.dll differ diff --git a/tree-sitter-ocaml/build.gradle b/tree-sitter-ocaml/build.gradle index 643035e4..20f17b3d 100644 --- a/tree-sitter-ocaml/build.gradle +++ b/tree-sitter-ocaml/build.gradle @@ -1,3 +1,11 @@ tasks.named('downloadSource') { url = "https://github.com/tree-sitter/tree-sitter-ocaml/archive/refs/tags/v${libVersion}.zip" -} \ No newline at end of file +} + +tasks.named("buildNative") { + def newSrcDir = srcDir.dir("grammars/ocaml/src") + additionalCFiles = newSrcDir.asFileTree.matching { + include("**/*.c") + } + additionalIncludeDirs = [newSrcDir] +} diff --git a/tree-sitter-python/src/main/resources/lib/aarch64-linux-android-tree-sitter-python.so b/tree-sitter-python/src/main/resources/lib/aarch64-linux-android-tree-sitter-python.so new file mode 100755 index 00000000..5cc8c119 Binary files /dev/null and b/tree-sitter-python/src/main/resources/lib/aarch64-linux-android-tree-sitter-python.so differ diff --git a/tree-sitter-python/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-python.so b/tree-sitter-python/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-python.so old mode 100644 new mode 100755 index 46e8b58e..6a176b94 Binary files a/tree-sitter-python/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-python.so and b/tree-sitter-python/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-python.so differ diff --git a/tree-sitter-python/src/main/resources/lib/aarch64-macos-tree-sitter-python.dylib b/tree-sitter-python/src/main/resources/lib/aarch64-macos-tree-sitter-python.dylib index e5219127..7f1e753a 100644 Binary files a/tree-sitter-python/src/main/resources/lib/aarch64-macos-tree-sitter-python.dylib and b/tree-sitter-python/src/main/resources/lib/aarch64-macos-tree-sitter-python.dylib differ diff --git a/tree-sitter-python/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-python.so b/tree-sitter-python/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-python.so old mode 100644 new mode 100755 index 59ecc48f..10000f05 Binary files a/tree-sitter-python/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-python.so and b/tree-sitter-python/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-python.so differ diff --git a/tree-sitter-python/src/main/resources/lib/x86_64-macos-tree-sitter-python.dylib b/tree-sitter-python/src/main/resources/lib/x86_64-macos-tree-sitter-python.dylib index e94040d8..c2a6f6ad 100644 Binary files a/tree-sitter-python/src/main/resources/lib/x86_64-macos-tree-sitter-python.dylib and b/tree-sitter-python/src/main/resources/lib/x86_64-macos-tree-sitter-python.dylib differ diff --git a/tree-sitter-python/src/main/resources/lib/x86_64-windows-tree-sitter-python.dll b/tree-sitter-python/src/main/resources/lib/x86_64-windows-tree-sitter-python.dll old mode 100644 new mode 100755 index 77e2f739..76d1100f Binary files a/tree-sitter-python/src/main/resources/lib/x86_64-windows-tree-sitter-python.dll and b/tree-sitter-python/src/main/resources/lib/x86_64-windows-tree-sitter-python.dll differ diff --git a/tree-sitter-typescript/src/main/resources/lib/aarch64-linux-android-tree-sitter-typescript.so b/tree-sitter-typescript/src/main/resources/lib/aarch64-linux-android-tree-sitter-typescript.so new file mode 100755 index 00000000..1017388c Binary files /dev/null and b/tree-sitter-typescript/src/main/resources/lib/aarch64-linux-android-tree-sitter-typescript.so differ diff --git a/tree-sitter-typescript/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-typescript.so b/tree-sitter-typescript/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-typescript.so old mode 100644 new mode 100755 index 9a9670f2..7bb99fb8 Binary files a/tree-sitter-typescript/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-typescript.so and b/tree-sitter-typescript/src/main/resources/lib/aarch64-linux-gnu-tree-sitter-typescript.so differ diff --git a/tree-sitter-typescript/src/main/resources/lib/aarch64-macos-tree-sitter-typescript.dylib b/tree-sitter-typescript/src/main/resources/lib/aarch64-macos-tree-sitter-typescript.dylib index a425c662..09917ffc 100644 Binary files a/tree-sitter-typescript/src/main/resources/lib/aarch64-macos-tree-sitter-typescript.dylib and b/tree-sitter-typescript/src/main/resources/lib/aarch64-macos-tree-sitter-typescript.dylib differ diff --git a/tree-sitter-typescript/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-typescript.so b/tree-sitter-typescript/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-typescript.so old mode 100644 new mode 100755 index 97f7ef8d..30363e83 Binary files a/tree-sitter-typescript/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-typescript.so and b/tree-sitter-typescript/src/main/resources/lib/x86_64-linux-gnu-tree-sitter-typescript.so differ diff --git a/tree-sitter-typescript/src/main/resources/lib/x86_64-macos-tree-sitter-typescript.dylib b/tree-sitter-typescript/src/main/resources/lib/x86_64-macos-tree-sitter-typescript.dylib index 96672b9b..b76fb1c2 100644 Binary files a/tree-sitter-typescript/src/main/resources/lib/x86_64-macos-tree-sitter-typescript.dylib and b/tree-sitter-typescript/src/main/resources/lib/x86_64-macos-tree-sitter-typescript.dylib differ diff --git a/tree-sitter-typescript/src/main/resources/lib/x86_64-windows-tree-sitter-typescript.dll b/tree-sitter-typescript/src/main/resources/lib/x86_64-windows-tree-sitter-typescript.dll old mode 100644 new mode 100755 index b6f542a4..a797ad87 Binary files a/tree-sitter-typescript/src/main/resources/lib/x86_64-windows-tree-sitter-typescript.dll and b/tree-sitter-typescript/src/main/resources/lib/x86_64-windows-tree-sitter-typescript.dll differ diff --git a/tree-sitter/src/main/c/org_treesitter_TSParser.c b/tree-sitter/src/main/c/org_treesitter_TSParser.c index 599922ab..a0eb0fc2 100644 --- a/tree-sitter/src/main/c/org_treesitter_TSParser.c +++ b/tree-sitter/src/main/c/org_treesitter_TSParser.c @@ -38,7 +38,7 @@ JavaVM* java_vm = NULL; jint JNI_OnLoad(JavaVM* vm, void* reserved) { java_vm = vm; - return JNI_VERSION_10; + return JNI_VERSION_1_6; } jfieldID ts_jni_get_field_id(JNIEnv *env, jclass clz, const char *field_name, const char*field_type){ @@ -2050,4 +2050,4 @@ JNIEXPORT jlong JNICALL Java_org_treesitter_TSParser_ts_1load_1lang const TSLanguage *ts_lang = lang_fn(); return (jlong) ts_lang; -} \ No newline at end of file +} diff --git a/tree-sitter/src/main/java/org/treesitter/utils/NativeUtils.java b/tree-sitter/src/main/java/org/treesitter/utils/NativeUtils.java index a48c676a..3c3efe6e 100644 --- a/tree-sitter/src/main/java/org/treesitter/utils/NativeUtils.java +++ b/tree-sitter/src/main/java/org/treesitter/utils/NativeUtils.java @@ -122,6 +122,15 @@ public synchronized static void loadLib(String libName) { if (loadedLibs.contains(libName)) { return; } + String vmName = System.getProperty("java.vm.name", "").toLowerCase(); + String runtimeName = System.getProperty("java.runtime.name", "").toLowerCase(); + boolean isAndroid = vmName.contains("dalvik") || runtimeName.contains("android"); + if (isAndroid) { + String[] parts = libName.split("/"); + System.loadLibrary(parts[parts.length - 1]); + loadedLibs.add(libName); + return; + } Path path = libFile(libName); System.load(path.toAbsolutePath().toString()); loadedLibs.add(libName); diff --git a/tree-sitter/src/main/resources/lib/aarch64-linux-android-tree-sitter.so b/tree-sitter/src/main/resources/lib/aarch64-linux-android-tree-sitter.so index addc1f74..c4d7a627 100755 Binary files a/tree-sitter/src/main/resources/lib/aarch64-linux-android-tree-sitter.so and b/tree-sitter/src/main/resources/lib/aarch64-linux-android-tree-sitter.so differ diff --git a/tree-sitter/src/main/resources/lib/aarch64-linux-gnu-tree-sitter.so b/tree-sitter/src/main/resources/lib/aarch64-linux-gnu-tree-sitter.so old mode 100644 new mode 100755 index 8817bdf6..4398be2e Binary files a/tree-sitter/src/main/resources/lib/aarch64-linux-gnu-tree-sitter.so and b/tree-sitter/src/main/resources/lib/aarch64-linux-gnu-tree-sitter.so differ diff --git a/tree-sitter/src/main/resources/lib/aarch64-macos-tree-sitter.dylib b/tree-sitter/src/main/resources/lib/aarch64-macos-tree-sitter.dylib index 09209226..0f2bde17 100644 Binary files a/tree-sitter/src/main/resources/lib/aarch64-macos-tree-sitter.dylib and b/tree-sitter/src/main/resources/lib/aarch64-macos-tree-sitter.dylib differ diff --git a/tree-sitter/src/main/resources/lib/x86_64-linux-gnu-tree-sitter.so b/tree-sitter/src/main/resources/lib/x86_64-linux-gnu-tree-sitter.so old mode 100644 new mode 100755 index bbc891f7..2252d704 Binary files a/tree-sitter/src/main/resources/lib/x86_64-linux-gnu-tree-sitter.so and b/tree-sitter/src/main/resources/lib/x86_64-linux-gnu-tree-sitter.so differ diff --git a/tree-sitter/src/main/resources/lib/x86_64-macos-tree-sitter.dylib b/tree-sitter/src/main/resources/lib/x86_64-macos-tree-sitter.dylib index 8b2118c8..695a3718 100644 Binary files a/tree-sitter/src/main/resources/lib/x86_64-macos-tree-sitter.dylib and b/tree-sitter/src/main/resources/lib/x86_64-macos-tree-sitter.dylib differ diff --git a/tree-sitter/src/main/resources/lib/x86_64-windows-tree-sitter.dll b/tree-sitter/src/main/resources/lib/x86_64-windows-tree-sitter.dll old mode 100644 new mode 100755 index 31a6cd77..5ac54ef1 Binary files a/tree-sitter/src/main/resources/lib/x86_64-windows-tree-sitter.dll and b/tree-sitter/src/main/resources/lib/x86_64-windows-tree-sitter.dll differ