sqlce 0.1.1__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sqlce-0.1.2/.github/workflows/release.yml +162 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/PKG-INFO +20 -2
- {sqlce-0.1.1 → sqlce-0.1.2}/README.md +13 -1
- {sqlce-0.1.1 → sqlce-0.1.2}/core/CMakeLists.txt +16 -1
- {sqlce-0.1.1 → sqlce-0.1.2}/pyproject.toml +10 -1
- {sqlce-0.1.1 → sqlce-0.1.2}/requirements.txt +1 -0
- sqlce-0.1.1/.github/workflows/release.yml +0 -78
- {sqlce-0.1.1 → sqlce-0.1.2}/.gitignore +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/CMakeLists.txt +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/LICENSE +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/bindings/CMakeLists.txt +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/bindings/src/module.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/bindings/src/value_convert.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/bindings/src/value_convert.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/application/ColumnSchema.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/application/SdfDatabase.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/ColumnDef.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/ColumnType.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/ColumnValue.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/DateTimeValue.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/EncryptionMode.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/Guid.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/IPageCipher.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/IPageStorage.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/NumericValue.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/PageLayout.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/Row.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/domain/TableDef.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/infrastructure/AesCbc.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/infrastructure/BinaryReader.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/infrastructure/FileStorage.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/infrastructure/PageView.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/infrastructure/Sha256.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/infrastructure/Sha512.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/CatalogPageScanner.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/CatalogRow.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/CatalogRowDecoder.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/CatalogSchema.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/ICatalogPageScanner.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/ICatalogRowDecoder.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/ILobChainRegistry.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/IRowDecoder.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/ITableCatalogBuilder.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/LobChainRegistry.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/RowDecoder.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/SdfPageCipher.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/TableCatalogBuilder.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/include/sdf/parsing/TextDecoder.hpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/main.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/application/SdfDatabase.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/domain/ColumnDef.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/domain/ColumnType.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/domain/ColumnValue.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/domain/DateTimeValue.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/domain/Guid.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/domain/NumericValue.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/domain/Row.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/domain/TableDef.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/infrastructure/AesCbc.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/infrastructure/BinaryReader.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/infrastructure/FileStorage.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/infrastructure/PageView.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/infrastructure/Sha256.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/infrastructure/Sha512.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/CatalogPageScanner.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/CatalogRow.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/CatalogRowDecoder.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/CatalogSchema.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/LobChainRegistry.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/RowDecoder.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/SdfPageCipher.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/TableCatalogBuilder.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/src/parsing/TextDecoder.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/tests/CMakeLists.txt +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/core/tests/count_test.cpp +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/docs/CONVENTIONS.md +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/docs/build.txt +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/docs/en/cpp.md +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/docs/en/python.md +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/docs/ru/cpp.md +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/docs/ru/python.md +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/main.py +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/python/sqlce/__init__.py +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/python/sqlce/__init__.pyi +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/python/sqlce/_sdf_native.pyi +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/research/catalog_parse/sdf_pages.py +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/research/catalog_parse/syscatalog.py +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/research/sdf_d3.py +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/research/sdf_d4.py +0 -0
- {sqlce-0.1.1 → sqlce-0.1.2}/research/sdf_reader.py +0 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
name: Build and release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
jobs:
|
|
8
|
+
build-linux:
|
|
9
|
+
name: Build wheel (Linux)
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
|
|
14
|
+
- name: Build wheels
|
|
15
|
+
uses: pypa/cibuildwheel@v2.21.3
|
|
16
|
+
env:
|
|
17
|
+
CIBW_ARCHS_LINUX: x86_64
|
|
18
|
+
CIBW_BUILD_VERBOSITY: 1
|
|
19
|
+
|
|
20
|
+
- name: Build sdist
|
|
21
|
+
run: |
|
|
22
|
+
python -m pip install --upgrade pip build
|
|
23
|
+
python -m build --sdist
|
|
24
|
+
|
|
25
|
+
- name: Collect wheels and sdist into one flat folder
|
|
26
|
+
run: |
|
|
27
|
+
mkdir -p collected
|
|
28
|
+
cp wheelhouse/*.whl collected/
|
|
29
|
+
cp dist/*.tar.gz collected/
|
|
30
|
+
|
|
31
|
+
- uses: actions/upload-artifact@v4
|
|
32
|
+
with:
|
|
33
|
+
name: dist-linux
|
|
34
|
+
path: collected/*
|
|
35
|
+
|
|
36
|
+
build-windows:
|
|
37
|
+
name: Build wheel (Windows)
|
|
38
|
+
runs-on: windows-latest
|
|
39
|
+
steps:
|
|
40
|
+
- uses: actions/checkout@v4
|
|
41
|
+
|
|
42
|
+
- name: Build wheels
|
|
43
|
+
uses: pypa/cibuildwheel@v2.21.3
|
|
44
|
+
env:
|
|
45
|
+
CIBW_ARCHS_WINDOWS: AMD64
|
|
46
|
+
CIBW_BUILD_VERBOSITY: 1
|
|
47
|
+
CIBW_CMAKE_ARGS: "-DSDF_BUILD_PYTHON_BINDINGS=ON"
|
|
48
|
+
|
|
49
|
+
- uses: actions/upload-artifact@v4
|
|
50
|
+
with:
|
|
51
|
+
name: dist-windows
|
|
52
|
+
path: wheelhouse/*
|
|
53
|
+
|
|
54
|
+
build-cpp-linux:
|
|
55
|
+
name: Build C++ library (Linux, ${{ matrix.link }})
|
|
56
|
+
runs-on: ubuntu-latest
|
|
57
|
+
strategy:
|
|
58
|
+
matrix:
|
|
59
|
+
link: [static, shared]
|
|
60
|
+
steps:
|
|
61
|
+
- uses: actions/checkout@v4
|
|
62
|
+
|
|
63
|
+
- name: Configure CMake
|
|
64
|
+
run: |
|
|
65
|
+
cmake -S . -B build \
|
|
66
|
+
-DCMAKE_BUILD_TYPE=Release \
|
|
67
|
+
-DBUILD_SHARED_LIBS=${{ matrix.link == 'shared' && 'ON' || 'OFF' }}
|
|
68
|
+
|
|
69
|
+
- name: Build libsdf
|
|
70
|
+
run: cmake --build build --target libsdf -j
|
|
71
|
+
|
|
72
|
+
- name: Package library + headers
|
|
73
|
+
run: |
|
|
74
|
+
version="${GITHUB_REF_NAME#v}"
|
|
75
|
+
pkg="libsdf-${version}-linux-x86_64-${{ matrix.link }}"
|
|
76
|
+
mkdir -p "$pkg/lib" "$pkg/include"
|
|
77
|
+
cp build/dist/lib/libsdf.* "$pkg/lib/"
|
|
78
|
+
cp -r core/include/. "$pkg/include/"
|
|
79
|
+
tar -czf "${pkg}.tar.gz" "$pkg"
|
|
80
|
+
|
|
81
|
+
- uses: actions/upload-artifact@v4
|
|
82
|
+
with:
|
|
83
|
+
name: cpp-linux-${{ matrix.link }}
|
|
84
|
+
path: libsdf-*.tar.gz
|
|
85
|
+
|
|
86
|
+
build-cpp-windows:
|
|
87
|
+
name: Build C++ library (Windows, ${{ matrix.link }})
|
|
88
|
+
runs-on: windows-latest
|
|
89
|
+
strategy:
|
|
90
|
+
matrix:
|
|
91
|
+
link: [static, shared]
|
|
92
|
+
steps:
|
|
93
|
+
- uses: actions/checkout@v4
|
|
94
|
+
|
|
95
|
+
- name: Configure CMake
|
|
96
|
+
shell: pwsh
|
|
97
|
+
run: |
|
|
98
|
+
$shared = if ("${{ matrix.link }}" -eq "shared") { "ON" } else { "OFF" }
|
|
99
|
+
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=$shared
|
|
100
|
+
|
|
101
|
+
- name: Build libsdf
|
|
102
|
+
run: cmake --build build --target libsdf --config Release -j
|
|
103
|
+
|
|
104
|
+
- name: Package library + headers
|
|
105
|
+
shell: pwsh
|
|
106
|
+
run: |
|
|
107
|
+
$version = "${env:GITHUB_REF_NAME}" -replace '^v', ''
|
|
108
|
+
$pkg = "libsdf-$version-windows-x86_64-${{ matrix.link }}"
|
|
109
|
+
New-Item -ItemType Directory -Force -Path "$pkg/lib" | Out-Null
|
|
110
|
+
New-Item -ItemType Directory -Force -Path "$pkg/include" | Out-Null
|
|
111
|
+
Copy-Item "build/dist/lib/libsdf.*" "$pkg/lib/"
|
|
112
|
+
Copy-Item -Recurse "core/include/*" "$pkg/include/"
|
|
113
|
+
Compress-Archive -Path $pkg -DestinationPath "$pkg.zip"
|
|
114
|
+
|
|
115
|
+
- uses: actions/upload-artifact@v4
|
|
116
|
+
with:
|
|
117
|
+
name: cpp-windows-${{ matrix.link }}
|
|
118
|
+
path: libsdf-*.zip
|
|
119
|
+
|
|
120
|
+
publish:
|
|
121
|
+
name: Publish to PyPI
|
|
122
|
+
needs: [build-linux, build-windows]
|
|
123
|
+
runs-on: ubuntu-latest
|
|
124
|
+
environment: pypi
|
|
125
|
+
permissions:
|
|
126
|
+
id-token: write
|
|
127
|
+
steps:
|
|
128
|
+
- uses: actions/download-artifact@v4
|
|
129
|
+
with:
|
|
130
|
+
pattern: dist-*
|
|
131
|
+
path: dist
|
|
132
|
+
merge-multiple: true
|
|
133
|
+
|
|
134
|
+
- name: Publish to PyPI
|
|
135
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
136
|
+
with:
|
|
137
|
+
packages-dir: dist
|
|
138
|
+
|
|
139
|
+
publish-release:
|
|
140
|
+
name: Publish GitHub Release
|
|
141
|
+
needs: [build-cpp-linux, build-cpp-windows, build-linux, build-windows]
|
|
142
|
+
runs-on: ubuntu-latest
|
|
143
|
+
permissions:
|
|
144
|
+
contents: write
|
|
145
|
+
steps:
|
|
146
|
+
- uses: actions/download-artifact@v4
|
|
147
|
+
with:
|
|
148
|
+
pattern: cpp-*
|
|
149
|
+
path: release-assets
|
|
150
|
+
merge-multiple: true
|
|
151
|
+
|
|
152
|
+
- uses: actions/download-artifact@v4
|
|
153
|
+
with:
|
|
154
|
+
pattern: dist-*
|
|
155
|
+
path: release-assets
|
|
156
|
+
merge-multiple: true
|
|
157
|
+
|
|
158
|
+
- name: Create GitHub Release
|
|
159
|
+
uses: softprops/action-gh-release@v2
|
|
160
|
+
with:
|
|
161
|
+
files: release-assets/*
|
|
162
|
+
generate_release_notes: true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: sqlce
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Cross-platform lib for reading SQL Server CE (.sdf)
|
|
5
5
|
Author-Email: boykopovar <boykopovar@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -19,6 +19,12 @@ Classifier: Operating System :: POSIX :: Linux
|
|
|
19
19
|
Project-URL: Homepage, https://github.com/boykopovar/sqlce
|
|
20
20
|
Project-URL: Issues, https://github.com/boykopovar/sqlce/issues
|
|
21
21
|
Requires-Python: >=3.8
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: scikit-build-core>=0.10; extra == "dev"
|
|
24
|
+
Requires-Dist: pybind11>=2.12; extra == "dev"
|
|
25
|
+
Requires-Dist: build; extra == "dev"
|
|
26
|
+
Requires-Dist: twine; extra == "dev"
|
|
27
|
+
Requires-Dist: pytest; extra == "dev"
|
|
22
28
|
Description-Content-Type: text/markdown
|
|
23
29
|
|
|
24
30
|
# sqlce
|
|
@@ -38,6 +44,16 @@ Description-Content-Type: text/markdown
|
|
|
38
44
|
pip install sqlce
|
|
39
45
|
```
|
|
40
46
|
|
|
47
|
+
```python
|
|
48
|
+
from sqlce import SdfDatabase
|
|
49
|
+
|
|
50
|
+
db = SdfDatabase("example.sdf", password="secret123")
|
|
51
|
+
|
|
52
|
+
for table_name in db.list_tables():
|
|
53
|
+
print(table_name, db.table_schema(table_name))
|
|
54
|
+
for row in db.read_table(table_name):
|
|
55
|
+
print(row)
|
|
56
|
+
```
|
|
41
57
|
|
|
42
58
|
Текущая [реализация](main.py) поддерживает чтение (поддерживается передача пароля) списка таблиц, структуры таблиц, содержимого записей. Использует c++.
|
|
43
59
|
|
|
@@ -45,4 +61,6 @@ pip install sqlce
|
|
|
45
61
|
|
|
46
62
|
[Documentation](docs/en/python.md)
|
|
47
63
|
|
|
48
|
-
[Соглашения по написанию кода](docs/CONVENTIONS.md)
|
|
64
|
+
[Соглашения по написанию кода](docs/CONVENTIONS.md) (PR приветствуются)
|
|
65
|
+
|
|
66
|
+
> Исключительно для интероперабельности с существующими файлами `.sdf` формата. Не содержит оригинальный код продукта.
|
|
@@ -15,6 +15,16 @@
|
|
|
15
15
|
pip install sqlce
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
```python
|
|
19
|
+
from sqlce import SdfDatabase
|
|
20
|
+
|
|
21
|
+
db = SdfDatabase("example.sdf", password="secret123")
|
|
22
|
+
|
|
23
|
+
for table_name in db.list_tables():
|
|
24
|
+
print(table_name, db.table_schema(table_name))
|
|
25
|
+
for row in db.read_table(table_name):
|
|
26
|
+
print(row)
|
|
27
|
+
```
|
|
18
28
|
|
|
19
29
|
Текущая [реализация](main.py) поддерживает чтение (поддерживается передача пароля) списка таблиц, структуры таблиц, содержимого записей. Использует c++.
|
|
20
30
|
|
|
@@ -22,4 +32,6 @@ pip install sqlce
|
|
|
22
32
|
|
|
23
33
|
[Documentation](docs/en/python.md)
|
|
24
34
|
|
|
25
|
-
[Соглашения по написанию кода](docs/CONVENTIONS.md)
|
|
35
|
+
[Соглашения по написанию кода](docs/CONVENTIONS.md) (PR приветствуются)
|
|
36
|
+
|
|
37
|
+
> Исключительно для интероперабельности с существующими файлами `.sdf` формата. Не содержит оригинальный код продукта.
|
|
@@ -36,7 +36,14 @@ add_library(libsdf
|
|
|
36
36
|
src/application/SdfDatabase.cpp
|
|
37
37
|
)
|
|
38
38
|
|
|
39
|
-
set_target_properties(libsdf PROPERTIES
|
|
39
|
+
set_target_properties(libsdf PROPERTIES
|
|
40
|
+
PREFIX ""
|
|
41
|
+
OUTPUT_NAME "libsdf"
|
|
42
|
+
POSITION_INDEPENDENT_CODE ON
|
|
43
|
+
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/dist/lib"
|
|
44
|
+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/dist/lib"
|
|
45
|
+
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/dist/lib"
|
|
46
|
+
)
|
|
40
47
|
|
|
41
48
|
target_include_directories(libsdf PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
42
49
|
|
|
@@ -57,6 +64,14 @@ if(MSVC)
|
|
|
57
64
|
target_compile_definitions(sdf_dump PRIVATE NOMINMAX _CRT_SECURE_NO_WARNINGS)
|
|
58
65
|
else()
|
|
59
66
|
target_compile_options(sdf_dump PRIVATE -Wall -Wextra)
|
|
67
|
+
if(MINGW)
|
|
68
|
+
target_link_options(sdf_dump PRIVATE
|
|
69
|
+
-static
|
|
70
|
+
-static-libgcc
|
|
71
|
+
-static-libstdc++
|
|
72
|
+
-Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive
|
|
73
|
+
)
|
|
74
|
+
endif()
|
|
60
75
|
endif()
|
|
61
76
|
|
|
62
77
|
enable_testing()
|
|
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sqlce"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.2"
|
|
8
8
|
description = "Cross-platform lib for reading SQL Server CE (.sdf)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -52,3 +52,12 @@ archs = ["x86_64"]
|
|
|
52
52
|
|
|
53
53
|
[tool.cibuildwheel.windows]
|
|
54
54
|
archs = ["AMD64"]
|
|
55
|
+
|
|
56
|
+
[project.optional-dependencies]
|
|
57
|
+
dev = [
|
|
58
|
+
"scikit-build-core>=0.10",
|
|
59
|
+
"pybind11>=2.12",
|
|
60
|
+
"build",
|
|
61
|
+
"twine",
|
|
62
|
+
"pytest",
|
|
63
|
+
]
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
name: Build and publish
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- "v*"
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
build-linux:
|
|
10
|
-
name: Build wheel (Linux)
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
steps:
|
|
13
|
-
- uses: actions/checkout@v4
|
|
14
|
-
|
|
15
|
-
- name: Build wheels
|
|
16
|
-
uses: pypa/cibuildwheel@v2.21.3
|
|
17
|
-
env:
|
|
18
|
-
CIBW_ARCHS_LINUX: x86_64
|
|
19
|
-
CIBW_BUILD_VERBOSITY: 1
|
|
20
|
-
|
|
21
|
-
- name: Build sdist
|
|
22
|
-
run: |
|
|
23
|
-
python -m pip install --upgrade pip build
|
|
24
|
-
python -m build --sdist
|
|
25
|
-
|
|
26
|
-
- name: Collect wheels and sdist into one flat folder
|
|
27
|
-
run: |
|
|
28
|
-
mkdir -p collected
|
|
29
|
-
cp wheelhouse/*.whl collected/
|
|
30
|
-
cp dist/*.tar.gz collected/
|
|
31
|
-
|
|
32
|
-
- uses: actions/upload-artifact@v4
|
|
33
|
-
with:
|
|
34
|
-
name: dist-linux
|
|
35
|
-
path: collected/*
|
|
36
|
-
|
|
37
|
-
build-windows:
|
|
38
|
-
name: Build wheel (Windows)
|
|
39
|
-
runs-on: windows-latest
|
|
40
|
-
steps:
|
|
41
|
-
- uses: actions/checkout@v4
|
|
42
|
-
|
|
43
|
-
- uses: actions/setup-python@v5
|
|
44
|
-
with:
|
|
45
|
-
python-version: "3.11"
|
|
46
|
-
|
|
47
|
-
- name: Install build tools
|
|
48
|
-
run: |
|
|
49
|
-
python -m pip install --upgrade pip
|
|
50
|
-
pip install build
|
|
51
|
-
|
|
52
|
-
- name: Build wheel
|
|
53
|
-
run: |
|
|
54
|
-
python -m build --wheel -C cmake.args="-DSDF_BUILD_PYTHON_BINDINGS=ON"
|
|
55
|
-
|
|
56
|
-
- uses: actions/upload-artifact@v4
|
|
57
|
-
with:
|
|
58
|
-
name: dist-windows
|
|
59
|
-
path: dist/*
|
|
60
|
-
|
|
61
|
-
publish:
|
|
62
|
-
name: Publish to PyPI
|
|
63
|
-
needs: [build-linux, build-windows]
|
|
64
|
-
runs-on: ubuntu-latest
|
|
65
|
-
environment: pypi
|
|
66
|
-
permissions:
|
|
67
|
-
id-token: write
|
|
68
|
-
steps:
|
|
69
|
-
- uses: actions/download-artifact@v4
|
|
70
|
-
with:
|
|
71
|
-
pattern: dist-*
|
|
72
|
-
path: dist
|
|
73
|
-
merge-multiple: true
|
|
74
|
-
|
|
75
|
-
- name: Publish to PyPI
|
|
76
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
77
|
-
with:
|
|
78
|
-
packages-dir: dist
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|