mirror of
https://github.com/simdjson/simdjson
synced 2026-06-08 17:27:07 +00:00
e5a408386b
* build: add pkg-config support
The CMake build script now generates a simple pkg-config files that can
be easily used by non-CMake users.
The file is generated from a template file that gets filled in at
configure time.
As CMake doesn't have anything similar to Meson's pkg-config generator
the file is quite static, i.e. new simdjson public defines/dependencies
won't be picked up automatically.
This approach also suffers from one minor issue, mentioned in
[jtojnar/cmake-snips][]; in short, it doesn't work well when users
specify CMAKE_INSTALL_INCLUDEDIR and similar as absolute paths. It's not
a big deal, and it will easily fixable once you'll require CMake >=3.20.
Fixes #1763
[jtojnar/cmake-snips]: https://github.com/jtojnar/cmake-snips#concatenating-paths-when-building-pkg-config-files
* build: handle absolute paths in .pc generation
As mentioned in the previous commit message, correct concatenation of
paths is only available in CMake >=3.20, so handling absolute paths in
pkg-config file generation requires using jtojnar's JoinPaths module.
* ci: add debian job
This new jobs compiles simdjson on Debian Testing, a semi-rolling
release, so that new compilers are always tested.
This job also tests the pkg-config file introduced in commit
1096c3b299
34 lines
622 B
YAML
34 lines
622 B
YAML
name: Debian
|
|
|
|
on: [push, pull_request]
|
|
|
|
defaults:
|
|
run:
|
|
shell: sh
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
pkg-config:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: debian:testing
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
apt -y update
|
|
apt -y --no-install-recommends install g++ cmake make pkg-config
|
|
|
|
- name: Build and install
|
|
run: |
|
|
cmake -B build
|
|
cmake --build build
|
|
cmake --install build
|
|
|
|
- name: Test pkg-config
|
|
run: g++ examples/quickstart/quickstart.cpp $(pkg-config --cflags --libs simdjson)
|