diff --git a/linuxBuild.sh b/linuxBuild.sh index 4e520d7..95a4b31 100755 --- a/linuxBuild.sh +++ b/linuxBuild.sh @@ -15,6 +15,7 @@ fi ./makeLinuxArm64.sh #now we can do the delegated build cd .. +# TODO collect static libraries from mac and windows build and include them in jvm resources automatically #build libsodium bindings ./gradlew multiplatform-crypto-libsodium-bindings:build diff --git a/macBuild-buildLibsodium.sh b/macBuild-buildLibsodium.sh index 84546be..c27e249 100755 --- a/macBuild-buildLibsodium.sh +++ b/macBuild-buildLibsodium.sh @@ -4,8 +4,7 @@ set -e ./gradlew multiplatform-crypto-api:build #now let's build linux deps cd sodiumWrapper -./makeMacosX86-64.sh -./makeIosWatchosTvos.sh +./makeMacosIosWatchosTvos.sh #now we can do the delegated build cd .. -set +e \ No newline at end of file +set +e diff --git a/macBuild-ios.sh b/macBuild-ios.sh deleted file mode 100755 index d1143e4..0000000 --- a/macBuild-ios.sh +++ /dev/null @@ -1,17 +0,0 @@ -set -e -#!/bin/sh -#this will hopefully download all konan dependancies that we use in the build scripts -./gradlew multiplatform-crypto-api:build -#now let's build linux deps -cd sodiumWrapper -./makeMacosX86-64.sh -./makeIos.sh -#now we can do the delegated build of ios and macos libraries -cd .. - -./gradlew multiplatform-crypto-libsodium-bindings:iosArm32MainKlibrary multiplatform-crypto-libsodium-bindings:iosArm32TestKlibrary \ -multiplatform-crypto-libsodium-bindings:iosArm64MainKlibrary multiplatform-crypto-libsodium-bindings:iosArm64TestKlibrary \ -multiplatform-crypto-libsodium-bindings:iosX64MainKlibrary multiplatform-crypto-libsodium-bindings:iosX64TestKlibrary -./gradlew multiplatform-crypto-libsodium-bindings:iosX64Test -set +e - diff --git a/macBuild-mac.sh b/macBuild-mac.sh deleted file mode 100755 index 52498e1..0000000 --- a/macBuild-mac.sh +++ /dev/null @@ -1,14 +0,0 @@ -set -e -#!/bin/sh -#this will hopefully download all konan dependancies that we use in the build scripts -./gradlew multiplatform-crypto-api:build -#now let's build linux deps -cd sodiumWrapper -./makeMacosX86-64.sh -./makeIos.sh -#now we can do the delegated build of ios and macos libraries -cd .. -./gradlew multiplatform-crypto-libsodium-bindings:macosX64MainKlibrary multiplatform-crypto-libsodium-bindings:macosX64TestKlibrary -./gradlew multiplatform-crypto-libsodium-bindings:macosX64Test -set +e - diff --git a/macBuild-tvos.sh b/macBuild-tvos.sh deleted file mode 100755 index 154841d..0000000 --- a/macBuild-tvos.sh +++ /dev/null @@ -1,14 +0,0 @@ -set -e -#!/bin/sh -#this will hopefully download all konan dependancies that we use in the build scripts -./gradlew multiplatform-crypto-api:build -#now let's build linux deps -cd sodiumWrapper -./makeTvos.sh -#now we can do the delegated build of ios and macos libraries -cd .. - -./gradlew multiplatform-crypto-libsodium-bindings:tvosArm64MainKlibrary multiplatform-crypto-libsodium-bindings:tvosArm64TestKlibrary \ -multiplatform-crypto-libsodium-bindings:tvosX64MainKlibrary multiplatform-crypto-libsodium-bindings:tvosX64TestKlibrary -./gradlew multiplatform-crypto-libsodium-bindings:tvosX64Test -set +e diff --git a/macBuild-watchos.sh b/macBuild-watchos.sh deleted file mode 100755 index 6311ae4..0000000 --- a/macBuild-watchos.sh +++ /dev/null @@ -1,15 +0,0 @@ -set -e -#!/bin/sh -#this will hopefully download all konan dependancies that we use in the build scripts -./gradlew multiplatform-crypto-api:build -#now let's build linux deps -cd sodiumWrapper -./makeWatchos.sh -#now we can do the delegated build of ios and macos libraries -cd .. - -./gradlew multiplatform-crypto-libsodium-bindings:watchosArm32MainKlibrary multiplatform-crypto-libsodium-bindings:watchosArm32TestKlibrary \ -multiplatform-crypto-libsodium-bindings:watchosArm64MainKlibrary multiplatform-crypto-libsodium-bindings:watchosArm64TestKlibrary \ -multiplatform-crypto-libsodium-bindings:watchosX86MainKlibrary multiplatform-crypto-libsodium-bindings:watchosX86TestKlibrary -./gradlew multiplatform-crypto-libsodium-bindings:watchosX86Test -set +e diff --git a/macBuild.sh b/macBuild.sh index b12ed96..9aea9ea 100755 --- a/macBuild.sh +++ b/macBuild.sh @@ -4,8 +4,7 @@ set -e ./gradlew multiplatform-crypto-api:build #now let's build linux deps cd sodiumWrapper -./makeMacosX86-64.sh -./makeIosWatchosTvos.sh +./makeMacosIosWatchosTvos.sh #now we can do the delegated build cd .. #libsodium bindings diff --git a/macBuildAndPublish-ios.sh b/macBuildAndPublish-ios.sh deleted file mode 100755 index ac8dbb1..0000000 --- a/macBuildAndPublish-ios.sh +++ /dev/null @@ -1,15 +0,0 @@ -set -e -#!/bin/sh -#this will hopefully download all konan dependancies that we use in the build scripts -./gradlew multiplatform-crypto-api:build -#now let's build linux deps -cd sodiumWrapper -./makeMacosX86-64.sh -./makeIos.sh -#now we can do the delegated build of ios and macos libraries -cd .. - -./gradlew multiplatform-crypto-libsodium-bindings:publishIosArm32PublicationToSnapshotRepository \ -multiplatform-crypto-libsodium-bindings:publishIosArm64PublicationToSnapshotRepository \ -multiplatform-crypto-libsodium-bindings:publishIosX64PublicationToSnapshotRepository -set +e diff --git a/macBuildAndPublish-mac.sh b/macBuildAndPublish-mac.sh deleted file mode 100755 index df18499..0000000 --- a/macBuildAndPublish-mac.sh +++ /dev/null @@ -1,12 +0,0 @@ -set -e -#!/bin/sh -#this will hopefully download all konan dependancies that we use in the build scripts -./gradlew multiplatform-crypto-api:build -#now let's build linux deps -cd sodiumWrapper -./makeMacosX86-64.sh -#now we can do the delegated build of ios and macos libraries -cd .. - -./gradlew multiplatform-crypto-libsodium-bindings:publishMacosX64PublicationToSnapshotRepository -set +e diff --git a/macBuildAndPublish-watchos.sh b/macBuildAndPublish-watchos.sh deleted file mode 100755 index ee42802..0000000 --- a/macBuildAndPublish-watchos.sh +++ /dev/null @@ -1,14 +0,0 @@ -set -e -#!/bin/sh -#this will hopefully download all konan dependancies that we use in the build scripts -./gradlew multiplatform-crypto-api:build -#now let's build linux deps -cd sodiumWrapper -./makeWatchos.sh -#now we can do the delegated build of ios and macos libraries -cd .. - -./gradlew multiplatform-crypto-libsodium-bindings:publishWatchosArm32PublicationToSnapshotRepository \ -multiplatform-crypto-libsodium-bindings:publishWatchosArm64PublicationToSnapshotRepository \ -multiplatform-crypto-libsodium-bindings:publishWatchosX86PublicationToSnapshotRepository -set +e diff --git a/macBuildAndPublishSnapshot-bindings.sh b/macBuildAndPublishSnapshot-bindings.sh index 57e2558..8fcdd56 100755 --- a/macBuildAndPublishSnapshot-bindings.sh +++ b/macBuildAndPublishSnapshot-bindings.sh @@ -1,15 +1,20 @@ set -e #!/bin/sh -./gradlew multiplatform-crypto-libsodium-bindings:publishMacosX64PublicationToSnapshotRepository +./gradlew multiplatform-crypto-libsodium-bindings:publishMacosX64PublicationToSnapshotRepository \ +multiplatform-crypto-libsodium-bindings:publishMacosArm64PublicationToSnapshotRepository ./gradlew multiplatform-crypto-libsodium-bindings:publishIosArm32PublicationToSnapshotRepository \ multiplatform-crypto-libsodium-bindings:publishIosArm64PublicationToSnapshotRepository \ -multiplatform-crypto-libsodium-bindings:publishIosX64PublicationToSnapshotRepository +multiplatform-crypto-libsodium-bindings:publishIosX64PublicationToSnapshotRepository \ +multiplatform-crypto-libsodium-bindings:publishIosSimulatorArm64PublicationToSnapshotRepository ./gradlew multiplatform-crypto-libsodium-bindings:publishWatchosArm32PublicationToSnapshotRepository \ multiplatform-crypto-libsodium-bindings:publishWatchosArm64PublicationToSnapshotRepository \ -multiplatform-crypto-libsodium-bindings:publishWatchosX86PublicationToSnapshotRepository +multiplatform-crypto-libsodium-bindings:publishWatchosX86PublicationToSnapshotRepository \ +multiplatform-crypto-libsodium-bindings:publishWatchosSimulatorArm64PublicationToSnapshotRepository ./gradlew multiplatform-crypto-libsodium-bindings:publishTvosArm64PublicationToSnapshotRepository \ -multiplatform-crypto-libsodium-bindings:publishTvosX64PublicationToSnapshotRepository +multiplatform-crypto-libsodium-bindings:publishTvosX64PublicationToSnapshotRepository \ +multiplatform-crypto-libsodium-bindings:publishTvosSimulatorArm64PublicationToSnapshotRepository + set +e diff --git a/multiplatform-crypto-libsodium-bindings/build.gradle.kts b/multiplatform-crypto-libsodium-bindings/build.gradle.kts index e516a6c..a12f370 100644 --- a/multiplatform-crypto-libsodium-bindings/build.gradle.kts +++ b/multiplatform-crypto-libsodium-bindings/build.gradle.kts @@ -156,6 +156,7 @@ kotlin { } println("Configuring macos targets") + iosX64() { binaries { framework { @@ -170,7 +171,6 @@ kotlin { } } } - iosArm32() { binaries { framework { @@ -178,23 +178,7 @@ kotlin { } } } - macosX64() { - binaries { - framework { - optimized = true - } - } - compilations.getByName("main") { - val libsodiumCinterop by cinterops.creating { - defFile(projectRef.file("src/nativeInterop/cinterop/libsodium.def")) - compilerOpts.add("-I${projectRef.rootDir}/sodiumWrapper/static-macos-x86-64/include") - } - kotlinOptions.freeCompilerArgs = listOf( - "-include-binary", "${projectRef.rootDir}/sodiumWrapper/static-macos-x86-64/lib/libsodium.a" - ) - } - } - tvosX64() { + iosSimulatorArm64() { binaries { framework { optimized = true @@ -202,6 +186,28 @@ kotlin { } } + macosX64() { + binaries { + framework { + optimized = true + } + } + } + macosArm64() { + binaries { + framework { + optimized = true + } + } + } + + tvosX64() { + binaries { + framework { + optimized = true + } + } + } tvosArm64() { binaries { framework { @@ -209,6 +215,13 @@ kotlin { } } } + tvosSimulatorArm64() { + binaries { + framework { + optimized = true + } + } + } watchosArm64() { binaries { @@ -217,7 +230,6 @@ kotlin { } } } - watchosArm32() { binaries { framework { @@ -225,7 +237,6 @@ kotlin { } } } - watchosX86() { binaries { framework { @@ -233,6 +244,14 @@ kotlin { } } } + watchosSimulatorArm64() { + binaries { + framework { + optimized = true + } + } + } + println("Configuring Mingw targets") mingwX64() { binaries { @@ -309,13 +328,13 @@ kotlin { //iosArm32, iosArm64, iosX64, macosX64, metadata, tvosArm64, tvosX64, watchosArm32, watchosArm64, watchosX86 val macos64Bit = setOf( - "macosX64" + "macosX64", "macosArm64" ) val iosArm = setOf( "iosArm64", "iosArm32" ) val iosSimulator = setOf( - "iosX64" + "iosX64", "iosSimulatorArm64" ) val mingw64Bit = setOf( "mingwX64" @@ -325,14 +344,14 @@ kotlin { "tvosArm64" ) val tvosSimulator = setOf( - "tvosX64" + "tvosX64", "tvosSimulatorArm64" ) val watchosArm = setOf( "watchosArm32", "watchosArm64" ) val watchosSimulator = setOf( - "watchosX86" + "watchosX86", "watchosSimulatorArm64" ) targets.withType { @@ -365,6 +384,14 @@ kotlin { } if (macos64Bit.contains(this@withType.name)) { defaultSourceSet.dependsOn(createWorkaroundNativeMainSourceSet(this@withType.name, nativeDependencies)) + println("Setting macos cinterop for $this") + val libsodiumCinterop by cinterops.creating { + defFile(projectRef.file("src/nativeInterop/cinterop/libsodium.def")) + compilerOpts.add("-I${projectRef.rootDir}/sodiumWrapper/static-macos/include") + } + kotlinOptions.freeCompilerArgs = listOf( + "-include-binary", "${projectRef.rootDir}/sodiumWrapper/static-macos/lib/libsodium.a" + ) } //All ioses share the same static library if (iosArm.contains(this@withType.name)) { diff --git a/sodiumWrapper/makeIosWatchosTvos.sh b/sodiumWrapper/makeMacosIosWatchosTvos.sh similarity index 100% rename from sodiumWrapper/makeIosWatchosTvos.sh rename to sodiumWrapper/makeMacosIosWatchosTvos.sh diff --git a/sodiumWrapper/makeMacosX86-64.sh b/sodiumWrapper/makeMacosX86-64.sh deleted file mode 100755 index 9ceaa76..0000000 --- a/sodiumWrapper/makeMacosX86-64.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -./configureMacos64.sh -make -j32 -C libsodium clean -make -j32 -C libsodium -make -j32 -C libsodium install diff --git a/sodiumWrapper/makeTvos.sh b/sodiumWrapper/makeTvos.sh deleted file mode 100755 index f49790f..0000000 --- a/sodiumWrapper/makeTvos.sh +++ /dev/null @@ -1,11 +0,0 @@ -cd libsodium -./autogen.sh -s -f - -./configure --prefix=$PREFIX "$@" -./dist-build/tvos.sh -mkdir ../static-tvos -cp -R ./libsodium-tvos/lib ../static-tvos/lib -cp -R ./libsodium-tvos/include ../static-tvos/include -rm -r ./libsodium-tvos/ - - diff --git a/sodiumWrapper/makeWatchos.sh b/sodiumWrapper/makeWatchos.sh deleted file mode 100755 index 50d631a..0000000 --- a/sodiumWrapper/makeWatchos.sh +++ /dev/null @@ -1,9 +0,0 @@ -cd libsodium -./autogen.sh -s -f - -./configure --prefix=$PREFIX "$@" -./dist-build/watchos.sh -mkdir ../static-watchos -cp -R ./libsodium-watchos/lib ../static-watchos/lib -cp -R ./libsodium-watchos/include ../static-watchos/include -rm -r ./libsodium-watchos/