summaryrefslogtreecommitdiff
blob: e81de974c4dba1063ae0f0ac8000893f39daa73a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
From 1f7f5bf3dccee957e23bdf4d976883b155d5e81a Mon Sep 17 00:00:00 2001
From: Anders Jenbo <anders@jenbo.dk>
Date: Tue, 23 Jul 2019 21:34:08 +0200
Subject: [PATCH] Use facebookincubator findflindsodium cmake helper

https://github.com/facebookincubator/fizz/blob/master/fizz/cmake/FindSodium.cmake
---
 CMake/Findsodium.cmake | 34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/CMake/Findsodium.cmake b/CMake/Findsodium.cmake
index 0667920c..c664ccbe 100644
--- a/CMake/Findsodium.cmake
+++ b/CMake/Findsodium.cmake
@@ -55,22 +55,22 @@ if (UNIX)
     endif()
 
     if(sodium_USE_STATIC_LIBS)
-        if (sodium_PKG_STATIC_LIBRARIES)
-            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)
-        else()
-            # if pkgconfig for libsodium doesn't provide
-            # static lib info, then override PKG_STATIC here..
+        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
+        # static lib info, then override PKG_STATIC here..
+        if (NOT sodium_PKG_STATIC_FOUND)
             set(sodium_PKG_STATIC_LIBRARIES libsodium.a)
         endif()
 
         set(XPREFIX sodium_PKG_STATIC)
     else()
-        if (sodium_PKG_LIBRARIES STREQUAL "")
+        if (NOT sodium_PKG_FOUND)
             set(sodium_PKG_LIBRARIES sodium)
         endif()
 
@@ -101,7 +101,7 @@ elseif (WIN32)
 
     if (MSVC)
         # detect target architecture
-        file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arch.c" [=[
+        file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arch.cpp" [=[
             #if defined _M_IX86
             #error ARCH_VALUE x86_32
             #elif defined _M_X64
@@ -109,7 +109,7 @@ elseif (WIN32)
             #endif
             #error ARCH_VALUE unknown
         ]=])
-        try_compile(_UNUSED_VAR "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/arch.c"
+        try_compile(_UNUSED_VAR "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/arch.cpp"
             OUTPUT_VARIABLE _COMPILATION_LOG
         )
         string(REGEX REPLACE ".*ARCH_VALUE ([a-zA-Z0-9_]+).*" "\\1" _TARGET_ARCH "${_COMPILATION_LOG}")
@@ -224,7 +224,8 @@ endif()
 
 # communicate results
 include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(sodium
+find_package_handle_standard_args(
+    Sodium # The name must be either uppercase or match the filename case.
     REQUIRED_VARS
         sodium_LIBRARY_RELEASE
         sodium_LIBRARY_DEBUG
@@ -233,6 +234,11 @@ find_package_handle_standard_args(sodium
         sodium_VERSION
 )
 
+if(Sodium_FOUND)
+    set(sodium_LIBRARIES
+        optimized ${sodium_LIBRARY_RELEASE} debug ${sodium_LIBRARY_DEBUG})
+endif()
+
 # mark file paths as advanced
 mark_as_advanced(sodium_INCLUDE_DIR)
 mark_as_advanced(sodium_LIBRARY_DEBUG)