@@ -51,48 +51,70 @@ endif()
5151# Find required packages
5252find_package (PkgConfig)
5353
54- # Find libsodium
55- if (PkgConfig_FOUND)
56- pkg_check_modules(LIBSODIUM libsodium)
57- if (LIBSODIUM_FOUND)
58- message (STATUS "Found libsodium via pkg-config: ${LIBSODIUM_LIBRARIES} " )
54+ # Find libsodium - handle vcpkg on Windows
55+ if (WIN32 )
56+ # On Windows, prefer vcpkg find_package over pkg-config
57+ find_package (unofficial-sodium CONFIG)
58+ if (unofficial-sodium_FOUND)
59+ set (LIBSODIUM_FOUND TRUE )
60+ set (LIBSODIUM_LIBRARIES unofficial-sodium::sodium)
61+ set (LIBSODIUM_INCLUDE_DIRS "" ) # Handled by the target
62+ message (STATUS "Found libsodium via vcpkg: unofficial-sodium::sodium" )
63+ else ()
64+ # Fallback to manual search on Windows
65+ find_path (LIBSODIUM_INCLUDE_DIR sodium.h)
66+ find_library (LIBSODIUM_LIBRARY NAMES sodium libsodium)
67+ if (LIBSODIUM_INCLUDE_DIR AND LIBSODIUM_LIBRARY)
68+ set (LIBSODIUM_FOUND TRUE )
69+ set (LIBSODIUM_INCLUDE_DIRS ${LIBSODIUM_INCLUDE_DIR} )
70+ set (LIBSODIUM_LIBRARIES ${LIBSODIUM_LIBRARY} )
71+ message (STATUS "Found libsodium: ${LIBSODIUM_LIBRARY} " )
72+ endif ()
73+ endif ()
74+ else ()
75+ # Unix systems: prefer pkg-config
76+ if (PkgConfig_FOUND)
77+ pkg_check_modules(LIBSODIUM libsodium)
78+ if (LIBSODIUM_FOUND)
79+ message (STATUS "Found libsodium via pkg-config: ${LIBSODIUM_LIBRARIES} " )
80+ endif ()
5981 endif ()
60- endif ()
6182
62- # Fallback for systems without pkg-config or if libsodium is not found via pkg-config
63- if (NOT LIBSODIUM_FOUND)
64- # Add macOS brew paths
65- if (APPLE )
66- # Try to find brew prefix
67- execute_process (
68- COMMAND brew --prefix
69- OUTPUT_VARIABLE BREW_PREFIX
70- OUTPUT_STRIP_TRAILING_WHITESPACE
71- ERROR_QUIET
83+ # Fallback for systems without pkg-config or if libsodium is not found via pkg-config
84+ if (NOT LIBSODIUM_FOUND)
85+ # Add macOS brew paths
86+ if (APPLE )
87+ # Try to find brew prefix
88+ execute_process (
89+ COMMAND brew --prefix
90+ OUTPUT_VARIABLE BREW_PREFIX
91+ OUTPUT_STRIP_TRAILING_WHITESPACE
92+ ERROR_QUIET
93+ )
94+ if (BREW_PREFIX)
95+ list (APPEND CMAKE_PREFIX_PATH ${BREW_PREFIX} )
96+ endif ()
97+ endif ()
98+
99+ find_path (LIBSODIUM_INCLUDE_DIR sodium.h
100+ PATHS /usr/include /usr/local/include /opt/local/include /opt/homebrew/include
101+ ${CMAKE_PREFIX_PATH} /include
102+ PATH_SUFFIXES sodium
72103 )
73- if (BREW_PREFIX)
74- list (APPEND CMAKE_PREFIX_PATH ${BREW_PREFIX} )
104+
105+ find_library (LIBSODIUM_LIBRARY
106+ NAMES sodium libsodium
107+ PATHS /usr/lib /usr/local/lib /opt/local/lib /opt/homebrew/lib
108+ ${CMAKE_PREFIX_PATH} /lib
109+ )
110+
111+ if (LIBSODIUM_INCLUDE_DIR AND LIBSODIUM_LIBRARY)
112+ set (LIBSODIUM_FOUND TRUE )
113+ set (LIBSODIUM_INCLUDE_DIRS ${LIBSODIUM_INCLUDE_DIR} )
114+ set (LIBSODIUM_LIBRARIES ${LIBSODIUM_LIBRARY} )
115+ message (STATUS "Found libsodium: ${LIBSODIUM_LIBRARY} " )
75116 endif ()
76117 endif ()
77-
78- find_path (LIBSODIUM_INCLUDE_DIR sodium.h
79- PATHS /usr/include /usr/local/include /opt/local/include /opt/homebrew/include
80- ${CMAKE_PREFIX_PATH} /include
81- PATH_SUFFIXES sodium
82- )
83-
84- find_library (LIBSODIUM_LIBRARY
85- NAMES sodium libsodium
86- PATHS /usr/lib /usr/local/lib /opt/local/lib /opt/homebrew/lib
87- ${CMAKE_PREFIX_PATH} /lib
88- )
89-
90- if (LIBSODIUM_INCLUDE_DIR AND LIBSODIUM_LIBRARY)
91- set (LIBSODIUM_FOUND TRUE )
92- set (LIBSODIUM_INCLUDE_DIRS ${LIBSODIUM_INCLUDE_DIR} )
93- set (LIBSODIUM_LIBRARIES ${LIBSODIUM_LIBRARY} )
94- message (STATUS "Found libsodium: ${LIBSODIUM_LIBRARY} " )
95- endif ()
96118endif ()
97119
98120if (NOT LIBSODIUM_FOUND)
0 commit comments