Skip to content

Commit 340d598

Browse files
Copilot0xrinegade
andcommitted
Fix libsodium dependency in CI workflow and add robust CMake detection
Co-authored-by: 0xrinegade <[email protected]>
1 parent 8bc9dd7 commit 340d598

File tree

2 files changed

+37
-8
lines changed

2 files changed

+37
-8
lines changed

.github/workflows/cpp_sdk.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
if: matrix.os == 'ubuntu-latest'
3838
run: |
3939
sudo apt-get update
40-
sudo apt-get install -y cmake ninja-build libsodium-dev valgrind
40+
sudo apt-get install -y cmake ninja-build libsodium-dev pkg-config valgrind
4141
if [ "${{ matrix.compiler }}" = "clang" ]; then
4242
sudo apt-get install -y clang-15
4343
echo "CC=clang-15" >> $GITHUB_ENV
@@ -47,7 +47,7 @@ jobs:
4747
- name: Install dependencies (macOS)
4848
if: matrix.os == 'macos-latest'
4949
run: |
50-
brew install cmake ninja libsodium
50+
brew install cmake ninja libsodium pkg-config
5151
if [ "${{ matrix.compiler }}" = "clang" ]; then
5252
echo "CC=clang" >> $GITHUB_ENV
5353
echo "CXX=clang++" >> $GITHUB_ENV
@@ -56,9 +56,10 @@ jobs:
5656
- name: Install dependencies (Windows)
5757
if: matrix.os == 'windows-latest'
5858
run: |
59-
choco install cmake ninja
60-
vcpkg install libsodium:x64-windows
59+
choco install cmake ninja pkgconfiglite
60+
vcpkg install libsodium:x64-windows pkgconf:x64-windows
6161
echo "CMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" >> $env:GITHUB_ENV
62+
echo "PKG_CONFIG_PATH=C:/vcpkg/installed/x64-windows/lib/pkgconfig" >> $env:GITHUB_ENV
6263
if ("${{ matrix.compiler }}" -eq "msvc") {
6364
echo "Using MSVC compiler"
6465
} else {
@@ -142,7 +143,7 @@ jobs:
142143
- name: Install dependencies
143144
run: |
144145
sudo apt-get update
145-
sudo apt-get install -y cmake ninja-build libsodium-dev valgrind clang-15
146+
sudo apt-get install -y cmake ninja-build libsodium-dev pkg-config valgrind clang-15
146147
echo "CC=clang-15" >> $GITHUB_ENV
147148
echo "CXX=clang++-15" >> $GITHUB_ENV
148149
@@ -195,7 +196,7 @@ jobs:
195196
- name: Install dependencies
196197
run: |
197198
sudo apt-get update
198-
sudo apt-get install -y cmake ninja-build libsodium-dev clang-15 clang-tidy-15
199+
sudo apt-get install -y cmake ninja-build libsodium-dev pkg-config clang-15 clang-tidy-15
199200
echo "CC=clang-15" >> $GITHUB_ENV
200201
echo "CXX=clang++-15" >> $GITHUB_ENV
201202

cpp_sdk/CMakeLists.txt

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,38 @@ if(ENABLE_VALGRIND)
4949
endif()
5050

5151
# Find required packages
52-
find_package(PkgConfig REQUIRED)
52+
find_package(PkgConfig)
5353

5454
# Find libsodium
55-
pkg_check_modules(LIBSODIUM REQUIRED libsodium)
55+
if(PkgConfig_FOUND)
56+
pkg_check_modules(LIBSODIUM libsodium)
57+
endif()
58+
59+
# Fallback for systems without pkg-config or if libsodium is not found via pkg-config
60+
if(NOT LIBSODIUM_FOUND)
61+
find_path(LIBSODIUM_INCLUDE_DIR sodium.h
62+
PATHS /usr/include /usr/local/include /opt/local/include
63+
${CMAKE_PREFIX_PATH}/include
64+
PATH_SUFFIXES sodium
65+
)
66+
67+
find_library(LIBSODIUM_LIBRARY
68+
NAMES sodium libsodium
69+
PATHS /usr/lib /usr/local/lib /opt/local/lib
70+
${CMAKE_PREFIX_PATH}/lib
71+
)
72+
73+
if(LIBSODIUM_INCLUDE_DIR AND LIBSODIUM_LIBRARY)
74+
set(LIBSODIUM_FOUND TRUE)
75+
set(LIBSODIUM_INCLUDE_DIRS ${LIBSODIUM_INCLUDE_DIR})
76+
set(LIBSODIUM_LIBRARIES ${LIBSODIUM_LIBRARY})
77+
message(STATUS "Found libsodium: ${LIBSODIUM_LIBRARY}")
78+
endif()
79+
endif()
80+
81+
if(NOT LIBSODIUM_FOUND)
82+
message(FATAL_ERROR "libsodium not found! Please install libsodium development package.")
83+
endif()
5684

5785
# Include directories
5886
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)

0 commit comments

Comments
 (0)