Remove logic to publish libpkl (#1960)

For reasons, we can't publish this just yet.
This commit is contained in:
Daniel Chao authored and GitHub committed 2026-11-03 17:00:51 -08:00
1 parent 875fac857c
commit 7e8e5f648d
3 files changed
+51 -46

No files matched your search

+1 -1
View File
@@ -34,7 +34,7 @@ fixed job {
--target "${GIT_SHA}" \
--verify-tag \
--notes "Release notes: https://pkl-lang.org/main/current/release-notes/changelog.html#release-${TAG_NAME}" \
*/build/executable/* */build/distributions/*
*/build/executable/*
"""#
}
}
+1 -1
View File
@@ -1341,7 +1341,7 @@ jobs:
--target "${GIT_SHA}" \
--verify-tag \
--notes "Release notes: https://pkl-lang.org/main/current/release-notes/changelog.html#release-${TAG_NAME}" \
*/build/executable/* */build/distributions/*
*/build/executable/*
publish-test-results:
if: '!cancelled()'
needs:
+49 -44
View File
@@ -7,6 +7,14 @@ It is designed to be a low-level API that interacts with Pkl via the xref:bindin
It is meant to be paired with higher level logic written in a host language within the context of a Pkl language binding library.
The higher level logic deals with implementing the evaluator API, and serializing/deserializing messages according to the message passing API.
== Installing libpkl
Currently, we do not publish libpkl.
Therefore, libpkl needs to be built from source, by cloning this repository and running the steps laid out in <<build-from-source>>.
Once built, it can be <<linking-to-libpkl,linked against>>, either statically or dynamically.
[[linking-to-libpkl]]
== Linking to libpkl
It is possible to link to libpkl either as a static library or a dynamic library.
@@ -16,50 +24,6 @@ However, this impacts the binary size of your application, as libpkl's library f
On the other hand, dynamically linking to libpkl has negligible impact on binary size, but requires that end users have libpkl installed on their OS.
== Distribution
We publish archives that contain header files, as well as both shared and static libraries.
The distributions are published as releases on GitHub, and can be downloaded for the appropriate OS/architecture.
The archives contain both statically linked and dynamically linked binaries for each OS.
The archive has the following structure:
[source]
----
.
└── libpkl-<version>-<os>-<arch>
├── include
│ └── pkl.h
├── lib
│ ├── libpkl.<shared library extension>
│ ├── libpkl.<static library extension>
│ └── pkgconfig
│ ├── libpkl-static.pc
│ └── libpkl.pc
├── LICENSE.txt
├── README.md
└── THIRD-PARTY-NOTICES.txt
----
The file extensions are as follows:
|===
|OS |Static Library Extension |Shared library extension
|macOS
|`.a`
|`.dylib`
|Linux
|`.a`
|`.so`
|Windows
|`.lib`
|`.dll`
|===
=== Linking to the static vs. shared library
The simplest way to configure your compiler to link to either the static or the shared library is to use https://en.wikipedia.org/wiki/Pkg-config[pkg-config].
@@ -98,6 +62,7 @@ cc -Wl,-Bstatic $(pkg-config --libs --cflags libpkl)
----
====
[[build-from-source]]
== Building libpkl from source
To build libpkl from source, the apple/pkl repository first must be cloned down to a host OS.
@@ -126,6 +91,46 @@ This results in two directories of interest:
Cross-compilation is not supported.
=== Distribution layout
The built distribution archive contains both statically linked and dynamically linked binaries for each OS.
The archive has the following structure:
[source]
----
.
└── libpkl-<version>-<os>-<arch>
├── include
│ └── pkl.h
├── lib
│ ├── libpkl.<shared library extension>
│ ├── libpkl.<static library extension>
│ └── pkgconfig
│ ├── libpkl-static.pc
│ └── libpkl.pc
├── LICENSE.txt
├── README.md
└── THIRD-PARTY-NOTICES.txt
----
The file extensions are as follows:
|===
|OS |Static Library Extension |Shared library extension
|macOS
|`.a`
|`.dylib`
|Linux
|`.a`
|`.so`
|Windows
|`.lib`
|`.dll`
|===
== ABI compatibility
libpkl is ABI compatible across Pkl versions.