diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 74c9b8614a..394d6a4b72 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -42,11 +42,14 @@ jobs: echo 'org.gradle.configuration-cache=false' >> gradle.properties - name: 'Build' - env: - CC: zig cc -target x86_64-linux-musl - CXX: zig c++ -target x86_64-linux-musl run: | - ./gradlew :selekt-sqlite3-native:jar + ./gradlew clean :selekt-sqlite3-native:jar --no-build-cache --no-configuration-cache --rerun-tasks + + - name: 'Upload native JAR' + uses: actions/upload-artifact@v4 + with: + name: selekt-native-${{ runner.os }} + path: selekt-sqlite3-native/build/libs/*.jar ci-pipeline: name: 'Continuous Integration' diff --git a/.github/workflows/publication.yml b/.github/workflows/publication.yml index d25e7ab39c..86549e8a4e 100644 --- a/.github/workflows/publication.yml +++ b/.github/workflows/publication.yml @@ -46,8 +46,10 @@ jobs: - name: 'Build' env: - CC: zig cc -target x86_64-linux-musl - CXX: zig c++ -target x86_64-linux-musl + CC: zig cc + CXX: zig c++ + CFLAGS: -target x86_64-linux-musl -O2 -s + CXXFLAGS: -target x86_64-linux-musl -O2 -s run: | if [[ "${{ github.event_name }}" == "push" ]]; then ./gradlew :selekt-sqlite3-native:jar diff --git a/.gitignore b/.gitignore index 8c773453b2..60cc6df32f 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,5 @@ local.properties **/.cxx-host **/CMakeCache.txt -**/*.cmake **/CMakeFiles **/MakeFile diff --git a/SQLite3/build.gradle.kts b/SQLite3/build.gradle.kts index 4baaa7097d..eff0cc7567 100644 --- a/SQLite3/build.gradle.kts +++ b/SQLite3/build.gradle.kts @@ -100,14 +100,19 @@ tasks.register("cmakeSQLite") { doFirst { Files.createDirectories(workingDir) } - workingDir(".cxx-host") + workingDir(workingDir) commandLine("cmake") args( + "-DCMAKE_TOOLCHAIN_FILE=${layout.projectDirectory.dir("zig-toolchain-x86_64-linux-musl.cmake") + .asFile.absolutePath}", "-DCMAKE_BUILD_TYPE=Release", - "-DUSE_CCACHE=1", + //"-DUSE_CCACHE=1", "-DSLKT_TARGET_ABI=${platformIdentifier()}", projectDir ) + isIgnoreExitValue = false + logging.captureStandardOutput(LogLevel.INFO) + logging.captureStandardError(LogLevel.INFO) } tasks.register("makeSQLite") { diff --git a/SQLite3/zig-toolchain-x86_64-linux-musl.cmake b/SQLite3/zig-toolchain-x86_64-linux-musl.cmake new file mode 100644 index 0000000000..3095a456be --- /dev/null +++ b/SQLite3/zig-toolchain-x86_64-linux-musl.cmake @@ -0,0 +1,16 @@ +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_C_COMPILER "zig") +set(CMAKE_C_COMPILER_ARG1 "cc") +set(CMAKE_C_COMPILER_TARGET "x86_64-linux-musl") + +set(CMAKE_CXX_COMPILER "zig") +set(CMAKE_CXX_COMPILER_ARG1 "c++") +set(CMAKE_CXX_COMPILER_TARGET "x86_64-linux-musl") + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -s") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -s") + +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --target=x86_64-linux-musl -s") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")