From 02ebad4f9f8af051c3a5f74c2a145e60312df9d1 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 20 May 2024 14:10:33 +0200 Subject: [PATCH 01/28] Update rust version --- .cargo/{config => config.toml} | 4 ++++ README.md | 6 ++++++ rust-toolchain.toml | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) rename .cargo/{config => config.toml} (89%) diff --git a/.cargo/config b/.cargo/config.toml similarity index 89% rename from .cargo/config rename to .cargo/config.toml index 280373d..386c2a3 100644 --- a/.cargo/config +++ b/.cargo/config.toml @@ -6,6 +6,8 @@ [target.x86_64-unknown-linux-gnu] rustflags = [ "-C", "link-arg=-lgcc_eh", + "-C", "link-arg=-undefined", + "-C", "link-arg=dynamic_lookup", ] [target.i686-linux-unknown-linux-gnu] @@ -16,6 +18,8 @@ rustflags = [ [target.aarch64-linux-unknown-linux-gnu] rustflags = [ "-C", "link-arg=-lgcc_eh", + "-C", "link-arg=-undefined", + "-C", "link-arg=dynamic_lookup", ] diff --git a/README.md b/README.md index b676684..9739507 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,12 @@ SELECT powersync_init(); # Building and running +Initialize submodules recursively + +``` +git submodule update --init --recursive +``` + ```sh # Build the shell cargo build -t powersync_sqlite diff --git a/rust-toolchain.toml b/rust-toolchain.toml index dc2d90b..e418b22 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly-2023-08-28" +channel = "nightly-2024-05-18" From 5425b19a39d904b39ca0b9b69a00ecf563874a55 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 20 May 2024 14:20:13 +0200 Subject: [PATCH 02/28] Update mobile builds --- .github/workflows/android.yml | 8 ++++---- .github/workflows/ios.yml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index c80f6b2..b1f1db7 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -13,8 +13,8 @@ jobs: - uses: actions/setup-java@v3 with: - distribution: 'temurin' - java-version: '17' + distribution: "temurin" + java-version: "17" - uses: nttld/setup-ndk@v1 with: @@ -25,8 +25,8 @@ jobs: - name: Setup run: | - rustup toolchain install nightly-2023-08-28-x86_64-unknown-linux-gnu - rustup component add rust-src --toolchain nightly-2023-08-28-x86_64-unknown-linux-gnu + rustup toolchain install nightly-2024-05-18-x86_64-unknown-linux-gnu + rustup component add rust-src --toolchain nightly-2024-05-18-unknown-linux-gnu rustup target add \ aarch64-linux-android \ armv7-linux-androideabi \ diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 6e91295..d3856f0 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -13,8 +13,8 @@ jobs: - name: Setup run: | - rustup toolchain install nightly-2023-08-28-x86_64-apple-darwin - rustup component add rust-src --toolchain nightly-2023-08-28-x86_64-apple-darwin + rustup toolchain install nightly-2024-05-18-x86_64-apple-darwin + rustup component add rust-src --toolchain nightly-2024-05-18-x86_64-apple-darwin rustup target add \ x86_64-apple-darwin \ aarch64-apple-darwin \ From 4b1d86056f42f471296831daf47c8cb628cd2a48 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 20 May 2024 14:24:48 +0200 Subject: [PATCH 03/28] Update ios rust toolchain --- .github/workflows/ios.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index d3856f0..b6deb5f 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -14,7 +14,7 @@ jobs: - name: Setup run: | rustup toolchain install nightly-2024-05-18-x86_64-apple-darwin - rustup component add rust-src --toolchain nightly-2024-05-18-x86_64-apple-darwin + rustup component add rust-src --toolchain nightly-2024-05-18-aarch64-apple-darwin rustup target add \ x86_64-apple-darwin \ aarch64-apple-darwin \ From 49526e4f8f8da5806e9f7d151ff689b1fa40a85b Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 20 May 2024 14:28:15 +0200 Subject: [PATCH 04/28] Fix ios toolchain version --- .github/workflows/ios.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index b6deb5f..bd9139c 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -13,7 +13,7 @@ jobs: - name: Setup run: | - rustup toolchain install nightly-2024-05-18-x86_64-apple-darwin + rustup toolchain install nightly-2024-05-18-aarch64-apple-darwin rustup component add rust-src --toolchain nightly-2024-05-18-aarch64-apple-darwin rustup target add \ x86_64-apple-darwin \ From 8b2c2715929159d05326f586311282e8f2d228b3 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 14:39:20 +0200 Subject: [PATCH 05/28] Test linux workflow --- .github/workflows/linux.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/linux.yml diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..2acb455 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,32 @@ +on: + push: + pull_request: +name: "linux" +jobs: + build: + name: Building Linux + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Install Rust Nightly + uses: dtolnay/rust-toolchain@stable + with: + toolchain: nightly-2024-05-18 + components: rust-src + targets: x86_64-unknown-linux-gnu + + - name: Setup + run: | + cargo build -p powersync_loadable --release --target x86_64-unknown-linux-gnu -Zbuild-std + mv "target/x86_64-unknown-linux-gnu/release/libisar.so" "libisar_linux_x64.so" + + - name: Upload binary + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: libisar_linux_x64.so + asset_name: libisar_linux_x64.so + tag: 0.1.6 From 8146b4e5bd462e4ffb225e62f99f57a6b323f429 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 14:54:02 +0200 Subject: [PATCH 06/28] Run linux without target --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 2acb455..c0d0b3b 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -20,7 +20,7 @@ jobs: - name: Setup run: | - cargo build -p powersync_loadable --release --target x86_64-unknown-linux-gnu -Zbuild-std + cargo build -p powersync_loadable --release mv "target/x86_64-unknown-linux-gnu/release/libisar.so" "libisar_linux_x64.so" - name: Upload binary From cb64167a2bf7ed5f978437c5a66971bb5cab5f10 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 15:00:53 +0200 Subject: [PATCH 07/28] Test without flags --- .cargo/config.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 386c2a3..280373d 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,8 +6,6 @@ [target.x86_64-unknown-linux-gnu] rustflags = [ "-C", "link-arg=-lgcc_eh", - "-C", "link-arg=-undefined", - "-C", "link-arg=dynamic_lookup", ] [target.i686-linux-unknown-linux-gnu] @@ -18,8 +16,6 @@ rustflags = [ [target.aarch64-linux-unknown-linux-gnu] rustflags = [ "-C", "link-arg=-lgcc_eh", - "-C", "link-arg=-undefined", - "-C", "link-arg=dynamic_lookup", ] From e1871e96b2b0488e491a612c4c7a9959fd240016 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 15:04:50 +0200 Subject: [PATCH 08/28] Fix linux file path --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index c0d0b3b..485c60e 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,7 +21,7 @@ jobs: - name: Setup run: | cargo build -p powersync_loadable --release - mv "target/x86_64-unknown-linux-gnu/release/libisar.so" "libisar_linux_x64.so" + mv "target/release/x86_64-unknown-linux-gnu/release/libisar.so" "libisar_linux_x64.so" - name: Upload binary uses: svenstaro/upload-release-action@v2 From 275b90b1a79828e9da3fcd532ae1b5a80148f235 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 15:06:56 +0200 Subject: [PATCH 09/28] Fix linux path --- .github/workflows/linux.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 485c60e..c004894 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,7 +21,8 @@ jobs: - name: Setup run: | cargo build -p powersync_loadable --release - mv "target/release/x86_64-unknown-linux-gnu/release/libisar.so" "libisar_linux_x64.so" + ls -lh target/release + mv "target/release/libisar.so" "libisar_linux_x64.so" - name: Upload binary uses: svenstaro/upload-release-action@v2 From 7fc8d392cbcaef38627e702d73f1d09ba61ba909 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 15:09:51 +0200 Subject: [PATCH 10/28] Fix linux command --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index c004894..820f144 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,7 +21,7 @@ jobs: - name: Setup run: | cargo build -p powersync_loadable --release - ls -lh target/release + ls -l target/release mv "target/release/libisar.so" "libisar_linux_x64.so" - name: Upload binary From c71920fe37699d21803ba9a2b39b47c8934ea75d Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 15:11:13 +0200 Subject: [PATCH 11/28] Fix file name --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 820f144..7c86c09 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -22,7 +22,7 @@ jobs: run: | cargo build -p powersync_loadable --release ls -l target/release - mv "target/release/libisar.so" "libisar_linux_x64.so" + mv "target/release/libpowersync.so" "libpowersync_x64.so" - name: Upload binary uses: svenstaro/upload-release-action@v2 From 5696da97fc0a91ba4148d13ed7a54bcbc535f5ec Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 15:11:42 +0200 Subject: [PATCH 12/28] Fix upload file name --- .github/workflows/linux.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 7c86c09..b0a9a88 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,13 +21,12 @@ jobs: - name: Setup run: | cargo build -p powersync_loadable --release - ls -l target/release mv "target/release/libpowersync.so" "libpowersync_x64.so" - name: Upload binary uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: libisar_linux_x64.so - asset_name: libisar_linux_x64.so + file: libpowersync_x64.so + asset_name: libpowersync_x64.so tag: 0.1.6 From f54fd50bed8decfaef1425eba7e3c5d649cdbc12 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 23 May 2024 17:38:10 +0200 Subject: [PATCH 13/28] Add aarch64 build --- .github/workflows/linux.yml | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index b0a9a88..330384b 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -3,8 +3,8 @@ on: pull_request: name: "linux" jobs: - build: - name: Building Linux + build_x86_64: + name: Building Linux x86_64 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -29,4 +29,32 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} file: libpowersync_x64.so asset_name: libpowersync_x64.so - tag: 0.1.6 + tag: v0.1.6 + + build_aarch64: + name: Building Linux aarch64 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Install Rust Nightly + uses: dtolnay/rust-toolchain@stable + with: + toolchain: nightly-2024-05-18 + components: rust-src + targets: aarch64-unknown-linux-gnu + + - name: Setup + run: | + cargo build -p powersync_loadable --release + mv "target/release/libpowersync.so" "libpowersync_aarch64.so" + + - name: Upload binary + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: libpowersync_aarch64.so + asset_name: libpowersync_aarch64.so + tag: v0.1.6 From 068027f2f44ea5d047cc525be7878d1901f97027 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Fri, 24 May 2024 00:58:05 +0200 Subject: [PATCH 14/28] Test aarch64 target --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 330384b..b7c5561 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -48,7 +48,7 @@ jobs: - name: Setup run: | - cargo build -p powersync_loadable --release + cargo build -p powersync_loadable --release --target aarch64-unknown-linux-gnu mv "target/release/libpowersync.so" "libpowersync_aarch64.so" - name: Upload binary From 2cb69e1dacbf50af885fd4fa710921d57c568687 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Fri, 24 May 2024 00:59:59 +0200 Subject: [PATCH 15/28] Overwrite exiting build --- .github/workflows/linux.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index b7c5561..1868a7e 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -27,6 +27,7 @@ jobs: uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} + overwrite: true file: libpowersync_x64.so asset_name: libpowersync_x64.so tag: v0.1.6 @@ -55,6 +56,7 @@ jobs: uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} + overwrite: true file: libpowersync_aarch64.so asset_name: libpowersync_aarch64.so tag: v0.1.6 From 649ed50f863f9f75a7164f96b140b8ce0d6e01eb Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Fri, 24 May 2024 01:01:42 +0200 Subject: [PATCH 16/28] Update compile flags --- .cargo/config.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.cargo/config.toml b/.cargo/config.toml index 280373d..4956450 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -18,6 +18,11 @@ rustflags = [ "-C", "link-arg=-lgcc_eh", ] +[target.aarch64-unknown-linux-gnu] +rustflags = [ + "-C", "link-arg=-lgcc_eh", +] + # For iOS and macOS, we need to specify the minimum/target version. # This must match the versions in the podspec file. From 08705abb1d4bd4f6079c066a94b3d929fcaaa14a Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 27 May 2024 11:56:48 +0200 Subject: [PATCH 17/28] Test windows build --- .github/workflows/windows.yml | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000..12c1d6f --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,43 @@ +on: + push: + pull_request: +name: "linux" +jobs: + build_windows: + name: Building Windows + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Install Rust Nightly + uses: dtolnay/rust-toolchain@stable + with: + toolchain: nightly-2024-05-18 + components: rust-src + targets: x86_64-pc-windows-msvc + + - name: Install Perl + uses: shogo82148/actions-setup-perl@v1 + with: + distribution: strawberry + perl-version: "5.32" + + - name: Install make with Chocolatey + shell: bash + run: choco install make + + - name: Setup + run: | + cargo build -p powersync_loadable --release + mv "target/release/libpowersync.dll" "libpowersync_x64.dll" + + - name: Upload binary + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + overwrite: true + file: libpowersync_x64.dll + asset_name: libpowersync_x64.dll + tag: v0.1.6 From 26e817438472ad94e03ea84aeff04e5c6060c9ef Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 27 May 2024 12:02:21 +0200 Subject: [PATCH 18/28] Windows environment varirables --- .github/workflows/windows.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 12c1d6f..a6ea754 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -1,7 +1,7 @@ on: push: pull_request: -name: "linux" +name: "windows" jobs: build_windows: name: Building Windows @@ -28,9 +28,15 @@ jobs: shell: bash run: choco install make + - name: Set Windows environment variables + shell: pwsh + run: | + echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV + echo "OPENSSL_SRC_PERL=C:/Strawberry/perl/bin/perl" >> $env:GITHUB_ENV + - name: Setup run: | - cargo build -p powersync_loadable --release + cargo build -p powersync_loadable --release --target x86_64-pc-windows-msvc -Zbuild-std -v mv "target/release/libpowersync.dll" "libpowersync_x64.dll" - name: Upload binary From 7714adc8df482db11032368daa8fc42b6f2bc6fe Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 27 May 2024 12:08:19 +0200 Subject: [PATCH 19/28] Windows build directory --- .github/workflows/windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index a6ea754..ad6ba84 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -37,7 +37,7 @@ jobs: - name: Setup run: | cargo build -p powersync_loadable --release --target x86_64-pc-windows-msvc -Zbuild-std -v - mv "target/release/libpowersync.dll" "libpowersync_x64.dll" + mv "target/x86_64-pc-windows-msvc/release/libpowersync.dll" "libpowersync_x64.dll" - name: Upload binary uses: svenstaro/upload-release-action@v2 From feac769541cf7fe16858d4f415b55dbafb363d91 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 27 May 2024 12:18:31 +0200 Subject: [PATCH 20/28] Debug build directory --- .github/workflows/windows.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index ad6ba84..cc4bf54 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -37,6 +37,8 @@ jobs: - name: Setup run: | cargo build -p powersync_loadable --release --target x86_64-pc-windows-msvc -Zbuild-std -v + ls "target/x86_64-pc-windows-msvc" + ls "target/x86_64-pc-windows-msvc/release" mv "target/x86_64-pc-windows-msvc/release/libpowersync.dll" "libpowersync_x64.dll" - name: Upload binary From b59a838b43be3014ef977d8746ae0a5279e3faac Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 27 May 2024 12:22:34 +0200 Subject: [PATCH 21/28] Fix build directory --- .github/workflows/windows.yml | 36 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index cc4bf54..51d5458 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -18,34 +18,32 @@ jobs: components: rust-src targets: x86_64-pc-windows-msvc - - name: Install Perl - uses: shogo82148/actions-setup-perl@v1 - with: - distribution: strawberry - perl-version: "5.32" + # - name: Install Perl + # uses: shogo82148/actions-setup-perl@v1 + # with: + # distribution: strawberry + # perl-version: "5.32" - - name: Install make with Chocolatey - shell: bash - run: choco install make + # - name: Install make with Chocolatey + # shell: bash + # run: choco install make - - name: Set Windows environment variables - shell: pwsh - run: | - echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV - echo "OPENSSL_SRC_PERL=C:/Strawberry/perl/bin/perl" >> $env:GITHUB_ENV + # - name: Set Windows environment variables + # shell: pwsh + # run: | + # echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV + # echo "OPENSSL_SRC_PERL=C:/Strawberry/perl/bin/perl" >> $env:GITHUB_ENV - name: Setup run: | - cargo build -p powersync_loadable --release --target x86_64-pc-windows-msvc -Zbuild-std -v - ls "target/x86_64-pc-windows-msvc" - ls "target/x86_64-pc-windows-msvc/release" - mv "target/x86_64-pc-windows-msvc/release/libpowersync.dll" "libpowersync_x64.dll" + cargo build -p powersync_loadable --release --target x86_64-pc-windows-msvc -Zbuild-std + mv "target/x86_64-pc-windows-msvc/release/powersync.dll" "powersync_x64.dll" - name: Upload binary uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} overwrite: true - file: libpowersync_x64.dll - asset_name: libpowersync_x64.dll + file: powersync_x64.dll + asset_name: powersync_x64.dll tag: v0.1.6 From 8828f32ea3bbf51afc61ab6896f143f12f403836 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 3 Jun 2024 13:30:13 +0200 Subject: [PATCH 22/28] Fix windows cargo build --- .github/workflows/windows.yml | 20 ++------------------ README.md | 7 +++++-- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 51d5458..5742f22 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -18,26 +18,10 @@ jobs: components: rust-src targets: x86_64-pc-windows-msvc - # - name: Install Perl - # uses: shogo82148/actions-setup-perl@v1 - # with: - # distribution: strawberry - # perl-version: "5.32" - - # - name: Install make with Chocolatey - # shell: bash - # run: choco install make - - # - name: Set Windows environment variables - # shell: pwsh - # run: | - # echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV - # echo "OPENSSL_SRC_PERL=C:/Strawberry/perl/bin/perl" >> $env:GITHUB_ENV - - name: Setup run: | - cargo build -p powersync_loadable --release --target x86_64-pc-windows-msvc -Zbuild-std - mv "target/x86_64-pc-windows-msvc/release/powersync.dll" "powersync_x64.dll" + cargo build -p powersync_loadable --release + mv "target/release/powersync.dll" "powersync_x64.dll" - name: Upload binary uses: svenstaro/upload-release-action@v2 diff --git a/README.md b/README.md index 9739507..8df62e7 100644 --- a/README.md +++ b/README.md @@ -39,12 +39,15 @@ git submodule update --init --recursive ```sh # Build the shell -cargo build -t powersync_sqlite +cargo build -p powersync_sqlite ./target/debug/powersync_sqlite test.db "select powersync_rs_version()" # Build the loadable extension cargo build -p powersync_loadable -sqlite3 ":memory:" ".load ./target/debug/libpowersync" "select powersync_rs_version()" +sqlite3 ":memory:" ".load ./target/debug/libpowersync" "select powersync_rs_version()" #This requires sqlite3 installed + +# Build the release loadable extension +cargo build -p powersync_loadable --release # Build for iOS ./all-ios-loadable.sh From f7e09198eb9c62008e3ce184a2f9db26ae395248 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 3 Jun 2024 14:15:46 +0200 Subject: [PATCH 23/28] Build x64 and aarch64 for linux and windows --- .github/workflows/linux.yml | 28 ++++------------------------ .github/workflows/windows.yml | 16 +++++++++++++--- tool/build_linux.sh | 9 +++++++++ tool/build_windows.sh | 9 +++++++++ 4 files changed, 35 insertions(+), 27 deletions(-) create mode 100644 tool/build_linux.sh create mode 100644 tool/build_windows.sh diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 1868a7e..882704f 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -16,12 +16,9 @@ jobs: with: toolchain: nightly-2024-05-18 components: rust-src - targets: x86_64-unknown-linux-gnu - - name: Setup - run: | - cargo build -p powersync_loadable --release - mv "target/release/libpowersync.so" "libpowersync_x64.so" + - name: Build binaries + run: bash tool/build_linux.sh x64 - name: Upload binary uses: svenstaro/upload-release-action@v2 @@ -32,25 +29,8 @@ jobs: asset_name: libpowersync_x64.so tag: v0.1.6 - build_aarch64: - name: Building Linux aarch64 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - - name: Install Rust Nightly - uses: dtolnay/rust-toolchain@stable - with: - toolchain: nightly-2024-05-18 - components: rust-src - targets: aarch64-unknown-linux-gnu - - - name: Setup - run: | - cargo build -p powersync_loadable --release --target aarch64-unknown-linux-gnu - mv "target/release/libpowersync.so" "libpowersync_aarch64.so" + - name: Build binaries + run: bash tool/build_linux.sh - name: Upload binary uses: svenstaro/upload-release-action@v2 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 5742f22..26d69ab 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -19,9 +19,7 @@ jobs: targets: x86_64-pc-windows-msvc - name: Setup - run: | - cargo build -p powersync_loadable --release - mv "target/release/powersync.dll" "powersync_x64.dll" + run: bash tool/build_windows.sh x64 - name: Upload binary uses: svenstaro/upload-release-action@v2 @@ -31,3 +29,15 @@ jobs: file: powersync_x64.dll asset_name: powersync_x64.dll tag: v0.1.6 + + - name: Setup + run: bash tool/build_windows.sh + + - name: Upload binary + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + overwrite: true + file: powersync_aarch64.dll + asset_name: powersync_aarch64.dll + tag: v0.1.6 diff --git a/tool/build_linux.sh b/tool/build_linux.sh new file mode 100644 index 0000000..b7f904f --- /dev/null +++ b/tool/build_linux.sh @@ -0,0 +1,9 @@ +if [ "$1" = "x64" ]; then + rustup target add target x86_64-unknown-linux-gnu + cargo build -p powersync_loadable --release + mv "target/release/libpowersync.so" "libpowersync_x64.so" +else + rustup target add aarch64-unknown-linux-gnu + cargo build -p powersync_loadable --release + mv "target/release/libpowersync.so" "libpowersync_aarch64.so" +fi diff --git a/tool/build_windows.sh b/tool/build_windows.sh new file mode 100644 index 0000000..488a759 --- /dev/null +++ b/tool/build_windows.sh @@ -0,0 +1,9 @@ +if [ "$1" = "x64" ]; then + rustup target add x86_64-pc-windows-msvc + cargo build -p powersync_loadable --release + mv "target/release/powersync.dll" "powersync_x64.dll" +else + rustup target add aarch64-pc-windows-msvc + cargo build -p powersync_loadable --release + mv "target/release/powersync.dll" "powersync_aarch64.dll" +fi \ No newline at end of file From 2434b0f32deabaa778eef20c5454418970ed8aca Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 3 Jun 2024 14:37:29 +0200 Subject: [PATCH 24/28] Test removing target --- .github/workflows/linux.yml | 4 ++-- .github/workflows/windows.yml | 7 +++---- tool/build_linux.sh | 1 + tool/build_windows.sh | 1 + 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 882704f..3aac027 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -17,7 +17,7 @@ jobs: toolchain: nightly-2024-05-18 components: rust-src - - name: Build binaries + - name: Build binary x64 run: bash tool/build_linux.sh x64 - name: Upload binary @@ -29,7 +29,7 @@ jobs: asset_name: libpowersync_x64.so tag: v0.1.6 - - name: Build binaries + - name: Build binary aarch64 run: bash tool/build_linux.sh - name: Upload binary diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 26d69ab..0ba6f9b 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -16,12 +16,11 @@ jobs: with: toolchain: nightly-2024-05-18 components: rust-src - targets: x86_64-pc-windows-msvc - - name: Setup + - name: Build binary run: bash tool/build_windows.sh x64 - - name: Upload binary + - name: Upload binary x64 uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} @@ -30,7 +29,7 @@ jobs: asset_name: powersync_x64.dll tag: v0.1.6 - - name: Setup + - name: Build binary aarch64 run: bash tool/build_windows.sh - name: Upload binary diff --git a/tool/build_linux.sh b/tool/build_linux.sh index b7f904f..b710205 100644 --- a/tool/build_linux.sh +++ b/tool/build_linux.sh @@ -3,6 +3,7 @@ if [ "$1" = "x64" ]; then cargo build -p powersync_loadable --release mv "target/release/libpowersync.so" "libpowersync_x64.so" else + rustup target remove x86_64-unknown-linux-gnu rustup target add aarch64-unknown-linux-gnu cargo build -p powersync_loadable --release mv "target/release/libpowersync.so" "libpowersync_aarch64.so" diff --git a/tool/build_windows.sh b/tool/build_windows.sh index 488a759..a5b922e 100644 --- a/tool/build_windows.sh +++ b/tool/build_windows.sh @@ -3,6 +3,7 @@ if [ "$1" = "x64" ]; then cargo build -p powersync_loadable --release mv "target/release/powersync.dll" "powersync_x64.dll" else + rustup target remove x86_64-pc-windows-msvc rustup target add aarch64-pc-windows-msvc cargo build -p powersync_loadable --release mv "target/release/powersync.dll" "powersync_aarch64.dll" From ac6247db000229128cbe6926b711010850414b6e Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 3 Jun 2024 14:56:11 +0200 Subject: [PATCH 25/28] Test building linux --- .github/workflows/linux.yml | 6 ------ .github/workflows/windows.yml | 6 ------ tool/build_linux.sh | 5 ++++- tool/build_windows.sh | 5 ++++- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 3aac027..956b283 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -11,12 +11,6 @@ jobs: with: submodules: true - - name: Install Rust Nightly - uses: dtolnay/rust-toolchain@stable - with: - toolchain: nightly-2024-05-18 - components: rust-src - - name: Build binary x64 run: bash tool/build_linux.sh x64 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 0ba6f9b..2850ca6 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -11,12 +11,6 @@ jobs: with: submodules: true - - name: Install Rust Nightly - uses: dtolnay/rust-toolchain@stable - with: - toolchain: nightly-2024-05-18 - components: rust-src - - name: Build binary run: bash tool/build_windows.sh x64 diff --git a/tool/build_linux.sh b/tool/build_linux.sh index b710205..78cf6f9 100644 --- a/tool/build_linux.sh +++ b/tool/build_linux.sh @@ -1,9 +1,12 @@ if [ "$1" = "x64" ]; then + rustup toolchain install nightly-2024-05-18-x86_64-unknown-linux-gnu + rustup component add rust-src --toolchain nightly-2024-05-18-x86_64-unknown-linux-gnu rustup target add target x86_64-unknown-linux-gnu cargo build -p powersync_loadable --release mv "target/release/libpowersync.so" "libpowersync_x64.so" else - rustup target remove x86_64-unknown-linux-gnu + rustup toolchain install nightly-2024-05-18-aarch64-unknown-linux-gnu + rustup component add rust-src --toolchain nightly-2024-05-18-aarch64-unknown-linux-gnu rustup target add aarch64-unknown-linux-gnu cargo build -p powersync_loadable --release mv "target/release/libpowersync.so" "libpowersync_aarch64.so" diff --git a/tool/build_windows.sh b/tool/build_windows.sh index a5b922e..1127e13 100644 --- a/tool/build_windows.sh +++ b/tool/build_windows.sh @@ -1,9 +1,12 @@ if [ "$1" = "x64" ]; then + rustup toolchain install nightly-2024-05-18-x86_64-pc-windows-msvc + rustup component add rust-src --toolchain nightly-2024-05-18-x86_64-pc-windows-msvc rustup target add x86_64-pc-windows-msvc cargo build -p powersync_loadable --release mv "target/release/powersync.dll" "powersync_x64.dll" else - rustup target remove x86_64-pc-windows-msvc + rustup toolchain install nightly-2024-05-18-aarch64-pc-windows-msvc + rustup component add rust-src --toolchain nightly-2024-05-18-aarch64-pc-windows-msvc rustup target add aarch64-pc-windows-msvc cargo build -p powersync_loadable --release mv "target/release/powersync.dll" "powersync_aarch64.dll" From b58dd907ce2380e643c4c7b6ed69f96901d0c8e0 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Mon, 3 Jun 2024 15:08:12 +0200 Subject: [PATCH 26/28] Build only x64 --- .github/workflows/linux.yml | 20 +++++++------------- .github/workflows/windows.yml | 12 ------------ tool/build_linux.sh | 4 ---- tool/build_windows.sh | 4 ---- 4 files changed, 7 insertions(+), 33 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 956b283..d757340 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -11,7 +11,13 @@ jobs: with: submodules: true - - name: Build binary x64 + - name: Install Rust Nightly + uses: dtolnay/rust-toolchain@stable + with: + toolchain: nightly-2024-05-18 + components: rust-src + + - name: Build binaries run: bash tool/build_linux.sh x64 - name: Upload binary @@ -22,15 +28,3 @@ jobs: file: libpowersync_x64.so asset_name: libpowersync_x64.so tag: v0.1.6 - - - name: Build binary aarch64 - run: bash tool/build_linux.sh - - - name: Upload binary - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - overwrite: true - file: libpowersync_aarch64.so - asset_name: libpowersync_aarch64.so - tag: v0.1.6 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2850ca6..0f0b198 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -22,15 +22,3 @@ jobs: file: powersync_x64.dll asset_name: powersync_x64.dll tag: v0.1.6 - - - name: Build binary aarch64 - run: bash tool/build_windows.sh - - - name: Upload binary - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - overwrite: true - file: powersync_aarch64.dll - asset_name: powersync_aarch64.dll - tag: v0.1.6 diff --git a/tool/build_linux.sh b/tool/build_linux.sh index 78cf6f9..b7f904f 100644 --- a/tool/build_linux.sh +++ b/tool/build_linux.sh @@ -1,12 +1,8 @@ if [ "$1" = "x64" ]; then - rustup toolchain install nightly-2024-05-18-x86_64-unknown-linux-gnu - rustup component add rust-src --toolchain nightly-2024-05-18-x86_64-unknown-linux-gnu rustup target add target x86_64-unknown-linux-gnu cargo build -p powersync_loadable --release mv "target/release/libpowersync.so" "libpowersync_x64.so" else - rustup toolchain install nightly-2024-05-18-aarch64-unknown-linux-gnu - rustup component add rust-src --toolchain nightly-2024-05-18-aarch64-unknown-linux-gnu rustup target add aarch64-unknown-linux-gnu cargo build -p powersync_loadable --release mv "target/release/libpowersync.so" "libpowersync_aarch64.so" diff --git a/tool/build_windows.sh b/tool/build_windows.sh index 1127e13..488a759 100644 --- a/tool/build_windows.sh +++ b/tool/build_windows.sh @@ -1,12 +1,8 @@ if [ "$1" = "x64" ]; then - rustup toolchain install nightly-2024-05-18-x86_64-pc-windows-msvc - rustup component add rust-src --toolchain nightly-2024-05-18-x86_64-pc-windows-msvc rustup target add x86_64-pc-windows-msvc cargo build -p powersync_loadable --release mv "target/release/powersync.dll" "powersync_x64.dll" else - rustup toolchain install nightly-2024-05-18-aarch64-pc-windows-msvc - rustup component add rust-src --toolchain nightly-2024-05-18-aarch64-pc-windows-msvc rustup target add aarch64-pc-windows-msvc cargo build -p powersync_loadable --release mv "target/release/powersync.dll" "powersync_aarch64.dll" From 11e096b755ae6831bd8fcd277217765c05567a42 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 6 Jun 2024 11:42:21 +0200 Subject: [PATCH 27/28] Release windows and linux on tag push --- .github/workflows/android.yml | 3 +- .github/workflows/ios.yml | 3 +- .github/workflows/linux.yml | 5 ++-- .github/workflows/release.yml | 52 +++++++++++++++++++++++++++++++++-- .github/workflows/windows.yml | 5 ++-- 5 files changed, 60 insertions(+), 8 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index b1f1db7..448d8e2 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,6 +1,7 @@ on: push: - pull_request: + tags: + - "*" name: "android" jobs: build: diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index bd9139c..9a0aa71 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -1,6 +1,7 @@ on: push: - pull_request: + tags: + - "*" name: "ios" jobs: build: diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d757340..24176ab 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -1,6 +1,7 @@ on: push: - pull_request: + tags: + - "*" name: "linux" jobs: build_x86_64: @@ -27,4 +28,4 @@ jobs: overwrite: true file: libpowersync_x64.so asset_name: libpowersync_x64.so - tag: v0.1.6 + tag: ${{ github.ref_name }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 75a8cbd..5a3d72d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,8 +42,8 @@ jobs: - uses: actions/setup-java@v3 with: - distribution: 'temurin' - java-version: '17' + distribution: "temurin" + java-version: "17" - uses: nttld/setup-ndk@v1 with: @@ -110,3 +110,51 @@ jobs: GH_REPO: ${{ github.repository }} run: | gh release upload "${{ needs.draft_release.outputs.tag }}" powersync-sqlite-core.xcframework.tar.xz + + publish_linux_x86_64: + name: Publish Linux x86_64 + needs: [draft_release] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Install Rust Nightly + uses: dtolnay/rust-toolchain@stable + with: + toolchain: nightly-2024-05-18 + components: rust-src + + - name: Build binaries + run: bash tool/build_linux.sh x64 + + - name: Upload binary + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + overwrite: true + file: libpowersync_x64.so + asset_name: libpowersync_x64.so + tag: ${{ needs.draft_release.outputs.tag }} + + publish_windows_x64: + name: Publish Widnows x64 + needs: [draft_release] + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Build binary + run: bash tool/build_windows.sh x64 + + - name: Upload binary x64 + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + overwrite: true + file: powersync_x64.dll + asset_name: powersync_x64.dll + tag: ${{ needs.draft_release.outputs.tag }} diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 0f0b198..74d4f0d 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -1,6 +1,7 @@ on: push: - pull_request: + tags: + - "*" name: "windows" jobs: build_windows: @@ -21,4 +22,4 @@ jobs: overwrite: true file: powersync_x64.dll asset_name: powersync_x64.dll - tag: v0.1.6 + tag: ${{ github.ref_name }} From cb7e80fa23457a9de04dabf08f68549d62cf6943 Mon Sep 17 00:00:00 2001 From: Mugi Khan Date: Thu, 6 Jun 2024 15:02:45 +0200 Subject: [PATCH 28/28] Only upload for releases --- .github/workflows/linux.yml | 9 --------- .github/workflows/windows.yml | 9 --------- tool/build_linux.sh | 1 + tool/build_windows.sh | 1 + 4 files changed, 2 insertions(+), 18 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 24176ab..d130afd 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -20,12 +20,3 @@ jobs: - name: Build binaries run: bash tool/build_linux.sh x64 - - - name: Upload binary - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - overwrite: true - file: libpowersync_x64.so - asset_name: libpowersync_x64.so - tag: ${{ github.ref_name }} diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 74d4f0d..133bd0d 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -14,12 +14,3 @@ jobs: - name: Build binary run: bash tool/build_windows.sh x64 - - - name: Upload binary x64 - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - overwrite: true - file: powersync_x64.dll - asset_name: powersync_x64.dll - tag: ${{ github.ref_name }} diff --git a/tool/build_linux.sh b/tool/build_linux.sh index b7f904f..50f5b03 100644 --- a/tool/build_linux.sh +++ b/tool/build_linux.sh @@ -3,6 +3,7 @@ if [ "$1" = "x64" ]; then cargo build -p powersync_loadable --release mv "target/release/libpowersync.so" "libpowersync_x64.so" else + #Note: aarch64-unknown-linux-gnu has not been tested. rustup target add aarch64-unknown-linux-gnu cargo build -p powersync_loadable --release mv "target/release/libpowersync.so" "libpowersync_aarch64.so" diff --git a/tool/build_windows.sh b/tool/build_windows.sh index 488a759..64c8b8f 100644 --- a/tool/build_windows.sh +++ b/tool/build_windows.sh @@ -3,6 +3,7 @@ if [ "$1" = "x64" ]; then cargo build -p powersync_loadable --release mv "target/release/powersync.dll" "powersync_x64.dll" else + #Note: aarch64-pc-windows-msvc has not been tested. rustup target add aarch64-pc-windows-msvc cargo build -p powersync_loadable --release mv "target/release/powersync.dll" "powersync_aarch64.dll"