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
52 changes: 52 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Build and Test

on:
push:
branches: [master]
pull_request:
branches: [master]

permissions:
contents: read

jobs:
build-and-test:
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
- os: ubuntu-22.04

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for git-tag-based versioning

- name: Install prerequisites
shell: pwsh
run: ./install-prerequisites.ps1

- name: Install unixODBC (Linux)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y unixodbc unixodbc-dev

- name: Build, install and test
shell: pwsh
run: Invoke-Build test -Configuration Release -File ./firebird-odbc-driver.build.ps1

- name: Upload driver (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v4
with:
name: FirebirdODBC-windows-x64
path: build/Release/FirebirdODBC.dll

- name: Upload driver (Linux)
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: FirebirdODBC-linux-x64
path: build/libOdbcFb.so
36 changes: 0 additions & 36 deletions .github/workflows/linux.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/msbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ name: MSBuild

on:
push:
branches: [ "master", "new-build-system", "new-build-system-no-pr" ]
branches: [master]
pull_request:
branches: [ "master" ]
branches: [master]

env:
# Path to the solution file relative to the root of the project.
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/msbuild_arm64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ name: MSBuild_ARM64

on:
push:
branches: [ "master", "new-build-system", "new-build-system-no-pr" ]
branches: [master]
pull_request:
branches: [ "master" ]
branches: [master]

env:
# Path to the solution file relative to the root of the project.
Expand Down
37 changes: 0 additions & 37 deletions .github/workflows/rpi_arm64.yml

This file was deleted.

4 changes: 2 additions & 2 deletions FirebirdODBC.dll.manifest
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
processorArchitecture="*"
name="Firebird OdbcJdbc driver"
type="win32"
/>
Expand All @@ -13,7 +13,7 @@
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
Expand Down
66 changes: 49 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ All the new features and fixes are documented here -

The latest build artifacts:
* [Windows installation package](https://github.com/user-attachments/files/19207749/win_installers.zip) [![MSBuild](https://github.com/FirebirdSQL/firebird-odbc-driver/actions/workflows/msbuild.yml/badge.svg)](https://github.com/FirebirdSQL/firebird-odbc-driver/actions/workflows/msbuild.yml)
* [Linux x86-64](https://github.com/user-attachments/files/19207739/linux_libs.zip) [![Linux](https://github.com/FirebirdSQL/firebird-odbc-driver/actions/workflows/linux.yml/badge.svg)](https://github.com/FirebirdSQL/firebird-odbc-driver/actions/workflows/linux.yml)
* [Linux_ARM64](https://github.com/user-attachments/files/19210460/linux_arm64_libs.zip) [![RaspberryPI](https://github.com/FirebirdSQL/firebird-odbc-driver/actions/workflows/rpi_arm64.yml/badge.svg)](https://github.com/FirebirdSQL/firebird-odbc-driver/actions/workflows/rpi_arm64.yml)

[![Build and Test](https://github.com/FirebirdSQL/firebird-odbc-driver/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/FirebirdSQL/firebird-odbc-driver/actions/workflows/build-and-test.yml)

You can also download the lastest & archive build packages here: https://github.com/FirebirdSQL/firebird-odbc-driver/wiki

Expand Down Expand Up @@ -108,21 +108,53 @@ Identifier handling options:

## Build from sources

### Linux
* Clone the git repository into your working copy folder
* Make sure you have Unix ODBC dev package installed. If not - install it (for example: `sudo apt install unixodbc-dev` for Ubuntu)
* Move to Builds/Gcc.lin
* Rename makefile.linux -> makefile
* Set the DEBUG var if you need a Debug build instead of Release (by default)
* Run `make`
* Your libraries are in ./Release_<arch> or ./Debug_<arch> folder.

### Windows
* Clone the git repository into your working copy folder
* Open `<working copy folder>`/Builds/MsVc2022.win/OdbcFb.sln with MS Visual Studio (VS2022 or later)
* Select your desired arch & build mode (debug|release)
* Build the project
* Copy the built library (`<working copy folder>`\Builds\MsVc2022.win\\`arch`\\`build_mode`\FirebirdODBC.dll) to `<Windows>`\System32 (x64 arch) or `<Windows>`\SysWOW64 (Win32 arch)
### Prerequisites

Install [PowerShell](https://github.com/PowerShell/PowerShell) (v7+), then run:

```powershell
./install-prerequisites.ps1
```

This installs the required PowerShell modules ([InvokeBuild](https://github.com/nightroman/Invoke-Build) and [PSFirebird](https://github.com/fdcastel/PSFirebird)).

On Linux, you also need the unixODBC development package:

```bash
sudo apt-get install unixodbc unixodbc-dev
```

### Building

```powershell
Invoke-Build build -Configuration Release
```

This runs CMake to configure and build the driver. The output is:
- **Windows**: `build/Release/FirebirdODBC.dll`
- **Linux**: `build/libOdbcFb.so`

### Testing

```powershell
Invoke-Build test -Configuration Release
```

This will build the driver, download Firebird 5.0, create test databases, register the ODBC driver, and run the full test suite with multiple charset configurations.

### Available tasks

| Task | Description |
|------|-------------|
| `build` | Build the driver and tests (default) |
| `test` | Build, install driver, create test databases, run tests |
| `install` | Register the ODBC driver on the system |
| `uninstall` | Unregister the ODBC driver |
| `clean` | Remove the build directory |

### Alternative: Visual Studio

You can also open `Builds/MsVc2022.win/OdbcFb.sln` with Visual Studio 2022 or later. Run `cmake -B build` first to fetch the required Firebird headers.

## Development & Feedback

Expand Down
Loading
Loading