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
32 changes: 21 additions & 11 deletions .github/workflows/make-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,16 +131,21 @@ jobs:
bundleDir="sdk-out/livekit-sdk-${{ matrix.name }}-${{ steps.version.outputs.version }}"
mkdir -p "$bundleDir/lib"
mkdir -p "$bundleDir/include"
mkdir -p "$bundleDir/bin"
mkdir -p "$bundleDir/lib/cmake/LiveKit"

# Copy files
# Copy libs + headers (SDK)
cp -r build-release/lib/* "$bundleDir/lib/" 2>/dev/null || true
cp -r build-release/include/* "$bundleDir/include/" 2>/dev/null || true
cp -r build-release/bin/* "$bundleDir/bin/" 2>/dev/null || true


# Copy generated CMake package files
cp -f build-release/LiveKitConfig.cmake "$bundleDir/lib/cmake/LiveKit/" || true
cp -f build-release/LiveKitConfigVersion.cmake "$bundleDir/lib/cmake/LiveKit/" || true
cp -f build-release/LiveKitTargets.cmake "$bundleDir/lib/cmake/LiveKit/" || true
cp -f build-release/LiveKitTargets-*.cmake "$bundleDir/lib/cmake/LiveKit/" 2>/dev/null || true

# List bundle contents
echo "Bundle contents:"
find "$bundleDir" -type f | head -50
find "$bundleDir" -type f | head -80

# ---------- Build + Bundle (Windows) ----------
- name: Build and Bundle (Windows)
Expand All @@ -152,15 +157,20 @@ jobs:

# Create bundle directory with version in name
$bundleDir = "sdk-out/livekit-sdk-${{ matrix.name }}-${{ steps.version.outputs.version }}"
New-Item -ItemType Directory -Force -Path $bundleDir
New-Item -ItemType Directory -Force -Path "$bundleDir/lib"
New-Item -ItemType Directory -Force -Path "$bundleDir/include"
New-Item -ItemType Directory -Force -Path "$bundleDir/bin"
New-Item -ItemType Directory -Force -Path $bundleDir | Out-Null
New-Item -ItemType Directory -Force -Path "$bundleDir/lib" | Out-Null
New-Item -ItemType Directory -Force -Path "$bundleDir/include" | Out-Null
New-Item -ItemType Directory -Force -Path "$bundleDir/lib/cmake/LiveKit" | Out-Null

# Copy files
# Copy libs + headers (SDK)
Copy-Item -Recurse -Force "build-release/lib/*" "$bundleDir/lib/"
Copy-Item -Recurse -Force "build-release/include/*" "$bundleDir/include/"
Copy-Item -Recurse -Force "build-release/bin/*" "$bundleDir/bin/"

# Copy generated CMake package files (best-effort)
Copy-Item -Force "build-release/LiveKitConfig.cmake" "$bundleDir/lib/cmake/LiveKit/" -ErrorAction SilentlyContinue
Copy-Item -Force "build-release/LiveKitConfigVersion.cmake" "$bundleDir/lib/cmake/LiveKit/" -ErrorAction SilentlyContinue
Copy-Item -Force "build-release/LiveKitTargets.cmake" "$bundleDir/lib/cmake/LiveKit/" -ErrorAction SilentlyContinue
Copy-Item -Force "build-release/LiveKitTargets-*.cmake" "$bundleDir/lib/cmake/LiveKit/" -ErrorAction SilentlyContinue

# ---------- Upload artifact (raw directory, no pre-compression) ----------
- name: Upload build artifact
Expand Down
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,7 @@ target_include_directories(livekit
target_link_libraries(livekit
PRIVATE
livekit_ffi
PUBLIC
protobuf::libprotobuf
)

Expand Down Expand Up @@ -494,14 +495,14 @@ if(Protobuf_VERSION VERSION_GREATER_EQUAL 6.0)
endif()

if(absl_FOUND)
target_link_libraries(livekit PRIVATE
target_link_libraries(livekit PUBLIC
absl::log
absl::check
absl::strings
absl::base
)
elseif(Abseil_FOUND)
target_link_libraries(livekit PRIVATE
target_link_libraries(livekit PUBLIC
Abseil::log
Abseil::check
Abseil::strings
Expand Down
47 changes: 39 additions & 8 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -158,21 +158,52 @@ install_bundle() {
rm -rf "${PREFIX}"
mkdir -p "${PREFIX}"

# Use --config for safety (works for multi-config too)
cmake --install "${BUILD_DIR}" --config "${BUILD_TYPE}" --prefix "${PREFIX}"
# Detect whether generator is multi-config (VS/Xcode) or single-config (Ninja/Unix Makefiles)
local is_multi_config=0
if [[ -f "${BUILD_DIR}/CMakeCache.txt" ]]; then
if grep -q '^CMAKE_CONFIGURATION_TYPES:STRING=' "${BUILD_DIR}/CMakeCache.txt"; then
is_multi_config=1
fi
fi

# Sanity checks (non-fatal, but helpful)
if [[ ! -d "${PREFIX}/include" ]]; then
echo "WARN: ${PREFIX}/include not found. Did you add install(DIRECTORY include/ ...) rules?"
# Run install
if [[ "${is_multi_config}" -eq 1 ]]; then
echo "==> cmake --install (multi-config) config=${BUILD_TYPE}"
cmake --install "${BUILD_DIR}" --config "${BUILD_TYPE}" --prefix "${PREFIX}"
else
echo "==> cmake --install (single-config)"
cmake --install "${BUILD_DIR}" --prefix "${PREFIX}"
fi
if [[ ! -d "${PREFIX}/lib" && ! -d "${PREFIX}/lib64" ]]; then

local libdir=""
if [[ -d "${PREFIX}/lib" ]]; then
libdir="${PREFIX}/lib"
elif [[ -d "${PREFIX}/lib64" ]]; then
libdir="${PREFIX}/lib64"
else
echo "WARN: ${PREFIX}/lib or lib64 not found. Did you add install(TARGETS ...) rules?"
fi
if [[ ! -d "${PREFIX}/lib/cmake/LiveKit" && ! -d "${PREFIX}/lib64/cmake/LiveKit" ]]; then
echo "WARN: CMake package files not found under lib/cmake/LiveKit. Did you add install(EXPORT ...) + LiveKitConfig.cmake?"

if [[ -n "${libdir}" ]]; then
if [[ ! -d "${libdir}/cmake/LiveKit" ]]; then
echo "WARN: CMake package files not found under ${libdir}/cmake/LiveKit."
echo " Did you add install(EXPORT ...) + install(FILES LiveKitConfig*.cmake ...)?"
else
# Optional: verify that key files exist
if [[ ! -f "${libdir}/cmake/LiveKit/LiveKitConfig.cmake" ]]; then
echo "WARN: Missing ${libdir}/cmake/LiveKit/LiveKitConfig.cmake"
fi
if [[ ! -f "${libdir}/cmake/LiveKit/LiveKitTargets.cmake" ]]; then
echo "WARN: Missing ${libdir}/cmake/LiveKit/LiveKitTargets.cmake (install(EXPORT ...) didn’t run?)"
fi
if [[ ! -f "${libdir}/cmake/LiveKit/LiveKitConfigVersion.cmake" ]]; then
echo "WARN: Missing ${libdir}/cmake/LiveKit/LiveKitConfigVersion.cmake"
fi
fi
fi
}


archive_bundle() {
if [[ "${DO_BUNDLE}" != "1" ]]; then
echo "ERROR: --archive requires --bundle"
Expand Down
9 changes: 9 additions & 0 deletions cmake/LiveKitConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
@PACKAGE_INIT@

include(CMakeFindDependencyMacro)

find_dependency(Protobuf CONFIG REQUIRED)
find_dependency(absl CONFIG QUIET)
if(NOT absl_FOUND)
find_dependency(Abseil REQUIRED)
endif()

include("${CMAKE_CURRENT_LIST_DIR}/LiveKitTargets.cmake")

Loading