[CMAKE] Fix static library detection on unix (#642)
Manually prepend `lib` and append `.a` to the static library names provided by the cmake pkg-config cmake module. This is necessary because the `find_library()` function always prefers the shared object file if the library name is "unqualified" and unfortunately the cmake pkg-config module seems to provide only "unqualified" library names through `*_PKG_STATIC_LIBIRARIES`.
This commit is contained in:
parent
01072a2f6a
commit
06739323d5
@ -55,23 +55,35 @@ if (UNIX)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(sodium_USE_STATIC_LIBS)
|
if(sodium_USE_STATIC_LIBS)
|
||||||
|
foreach(_libname ${sodium_PKG_STATIC_LIBRARIES})
|
||||||
|
if (NOT _libname MATCHES "^lib.*\\.a$") # ignore strings already ending with .a
|
||||||
|
list(INSERT sodium_PKG_STATIC_LIBRARIES 0 "lib${_libname}.a")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
list(REMOVE_DUPLICATES sodium_PKG_STATIC_LIBRARIES)
|
||||||
|
|
||||||
# if pkgconfig for libsodium doesn't provide
|
# if pkgconfig for libsodium doesn't provide
|
||||||
# static lib info, then override PKG_STATIC here..
|
# static lib info, then override PKG_STATIC here..
|
||||||
if (NOT DEFINED sodium_PKG_STATIC_LIBRARIES)
|
if (sodium_PKG_STATIC_LIBRARIES STREQUAL "")
|
||||||
set(sodium_PKG_STATIC_LIBRARIES libsodium.a)
|
set(sodium_PKG_STATIC_LIBRARIES libsodium.a)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(XPREFIX sodium_PKG_STATIC)
|
set(XPREFIX sodium_PKG_STATIC)
|
||||||
else()
|
else()
|
||||||
|
if (sodium_PKG_LIBRARIES STREQUAL "")
|
||||||
|
set(sodium_PKG_LIBRARIES sodium)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(XPREFIX sodium_PKG)
|
set(XPREFIX sodium_PKG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_path(sodium_INCLUDE_DIR sodium.h
|
find_path(sodium_INCLUDE_DIR sodium.h
|
||||||
HINTS ${${XPREFIX}_INCLUDE_DIRS}
|
HINTS ${${XPREFIX}_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
find_library(sodium_LIBRARY_DEBUG NAMES ${${XPREFIX}_LIBRARIES} sodium
|
find_library(sodium_LIBRARY_DEBUG NAMES ${${XPREFIX}_LIBRARIES}
|
||||||
HINTS ${${XPREFIX}_LIBRARY_DIRS}
|
HINTS ${${XPREFIX}_LIBRARY_DIRS}
|
||||||
)
|
)
|
||||||
find_library(sodium_LIBRARY_RELEASE NAMES ${${XPREFIX}_LIBRARIES} sodium
|
find_library(sodium_LIBRARY_RELEASE NAMES ${${XPREFIX}_LIBRARIES}
|
||||||
HINTS ${${XPREFIX}_LIBRARY_DIRS}
|
HINTS ${${XPREFIX}_LIBRARY_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user