Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: CI

on:
push:
branches:
- main
pull_request:
branches:
- '*'
workflow_dispatch:

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
library:
name: macOS
strategy:
matrix:
xcode: ['16.3']
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: Run tests
run: swift test
- name: Build release
run: swift build -c release

linux:
name: Linux
strategy:
matrix:
swift:
- '6.1'
runs-on: ubuntu-latest
container: swift:${{ matrix.swift }}
steps:
- uses: actions/checkout@v4
- name: Install SQLite
run: apt update && apt -y install libsqlite3-dev
- name: Build
run: swift build
28 changes: 28 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
NB: Compatible swift-format requires Xcode 16.3, not yet available on GitHub
name: Format

on:
push:
branches:
- main

concurrency:
group: format-${{ github.ref }}
cancel-in-progress: true

jobs:
swift_format:
name: swift-format
runs-on: macos-15
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Select Xcode 16.3
run: sudo xcode-select -s /Applications/Xcode_16.3.app
- name: Format
run: make format
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Run swift-format
branch: 'main'
15 changes: 15 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,21 @@ for index in package.targets.indices {
package.targets[index].swiftSettings = swiftSettings
}

#if !os(Darwin)
package.targets.append(
.systemLibrary(
name: "StructuredQueriesSQLite3",
providers: [.apt(["libsqlite3-dev"])]
)
)

for index in package.targets.indices {
if package.targets[index].name == "StructuredQueriesSQLite" {
package.targets[index].dependencies.append("StructuredQueriesSQLite3")
}
}
#endif

#if !os(Windows)
// Add the documentation compiler plugin if possible
package.dependencies.append(
Expand Down
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
# StructuredQueries

<!--
[![CI](https://github.com/pointfreeco/swift-structured-queries/workflows/CI/badge.svg)](https://github.com/pointfreeco/swift-structured-queries/actions?query=workflow%3ACI)
-->

[![Slack](https://img.shields.io/badge/slack-chat-informational.svg?label=Slack&logo=slack)](https://www.pointfree.co/slack-invite)
[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fpointfreeco%2Fswift-structured-queries%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/pointfreeco/swift-structured-queries)
[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fpointfreeco%2Fswift-structured-queries%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/pointfreeco/swift-structured-queries)
Expand Down
7 changes: 6 additions & 1 deletion Sources/StructuredQueriesSQLite/Database.swift
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import Foundation
import SQLite3
import StructuredQueries

#if canImport(Darwin)
import SQLite3
#else
import StructuredQueriesSQLite3
#endif

public struct Database {
@usableFromInline
let storage: Storage
Expand Down
7 changes: 6 additions & 1 deletion Sources/StructuredQueriesSQLite/SQLiteQueryDecoder.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import SQLite3
import StructuredQueries

#if canImport(Darwin)
import SQLite3
#else
import StructuredQueriesSQLite3
#endif

@usableFromInline
struct SQLiteQueryDecoder: QueryDecoder {
@usableFromInline
Expand Down
4 changes: 4 additions & 0 deletions Sources/StructuredQueriesSQLite3/StructuredQueriesSQLite3.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#ifndef StructuredQueriesSQLite3
#define StructuredQueriesSQLite3
#include <sqlite3.h>
#endif
5 changes: 5 additions & 0 deletions Sources/StructuredQueriesSQLite3/module.modulemap
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module StructuredQueriesSQLite3 [system] {
link "sqlite3"
header "StructuredQueriesSQLite3.h"
export *
}