Skip to content

Commit

Permalink
OpenSSL is optional.
Browse files Browse the repository at this point in the history
  • Loading branch information
winsoft666 committed Nov 23, 2021
1 parent 1e5f13c commit 7203725
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 9 deletions.
3 changes: 1 addition & 2 deletions run_cmake.bat
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,7 @@ if "" == "%BUILD_SHARED_LIBS%" (
)

vcpkg install gtest:%VCPKG_TARGET_TRIPLET%
vcpkg install curl[non-http]:%VCPKG_TARGET_TRIPLET%

cmake.exe -G "%CMAKE_GENERATOR%" -T "%TOOLSET%" -A "%ARCH%" -DCMAKE_TOOLCHAIN_FILE=D:\sourcecode\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=%VCPKG_TARGET_TRIPLET% -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_INSTALL_PREFIX=D:\Teemo -DBUILD_TESTS=ON -S %~dp0 -B %~dp0build
cmake.exe -G "%CMAKE_GENERATOR%" -T "%TOOLSET%" -A "%ARCH%" -DCMAKE_TOOLCHAIN_FILE=D:\sourcecode\Github\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=%VCPKG_TARGET_TRIPLET% -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCMAKE_INSTALL_PREFIX=D:\Teemo -DBUILD_TESTS=ON -S %~dp0 -B %~dp0build
endlocal
goto :eof
7 changes: 5 additions & 2 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,11 @@ target_include_directories(${LIB_NAME} PUBLIC
${CURL_INCLUDE_DIRS})

# OpenSSL
find_package(OpenSSL REQUIRED)
target_link_libraries(${LIB_NAME} PUBLIC OpenSSL::SSL OpenSSL::Crypto)
find_package(OpenSSL)
if(OpenSSL_FOUND)
add_definitions(-DWITH_OPENSSL)
target_link_libraries(${LIB_NAME} PUBLIC OpenSSL::SSL OpenSSL::Crypto)
endif()


if (WIN32 OR _WIN32)
Expand Down
8 changes: 8 additions & 0 deletions src/curl_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@

#include "curl_utils.h"
#include "curl/curl.h"
#ifdef WITH_OPENSSL
#include <openssl/crypto.h>
#endif

namespace teemo {
namespace {
Expand All @@ -36,6 +38,7 @@ int THREAD_cleanup(void);
#define THREAD_ID pthread_self()
#endif

#ifdef WITH_OPENSSL
static MUTEX_TYPE* mutex_buf = NULL;
static void locking_function(int mode, int n, const char* file, int line) {
if (mode & CRYPTO_LOCK)
Expand Down Expand Up @@ -72,15 +75,20 @@ int THREAD_cleanup(void) {
mutex_buf = NULL;
return 1;
}
#endif
} // namespace

void GlobalCurlInit() {
#ifdef WITH_OPENSSL
THREAD_setup();
#endif
curl_global_init(CURL_GLOBAL_ALL);
}

void GlobalCurlUnInit() {
curl_global_cleanup();
#ifdef WITH_OPENSSL
THREAD_cleanup();
#endif
}
} // namespace teemo
6 changes: 4 additions & 2 deletions tests/teemo_tool/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,10 @@ find_package(CURL REQUIRED)
target_link_libraries(${EXE_NAME} ${CURL_LIBRARIES})

# OpenSSL
find_package(OpenSSL REQUIRED)
target_link_libraries(${EXE_NAME} OpenSSL::SSL OpenSSL::Crypto)
find_package(OpenSSL)
if(OpenSSL_FOUND)
target_link_libraries(${EXE_NAME} OpenSSL::SSL OpenSSL::Crypto)
endif()

# Win32 Console
if (WIN32 OR _WIN32)
Expand Down
8 changes: 5 additions & 3 deletions tests/unit_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ if (NOT BUILD_SHARED_LIBS)
endif()

include_directories(../../src)
file(GLOB SOURCE_FILES ./*.cpp ../../src/file_util.cpp)
file(GLOB SOURCE_FILES ./*.cpp ../../src/file_util.cpp ../../src/string_encode.cpp)

add_executable(
${EXE_NAME}
Expand All @@ -56,8 +56,10 @@ find_package(CURL REQUIRED)
target_link_libraries(${EXE_NAME} ${CURL_LIBRARIES})

# OpenSSL
find_package(OpenSSL REQUIRED)
target_link_libraries(${EXE_NAME} OpenSSL::SSL OpenSSL::Crypto)
find_package(OpenSSL)
if(OpenSSL_FOUND)
target_link_libraries(${EXE_NAME} OpenSSL::SSL OpenSSL::Crypto)
endif()

add_test(NAME unit
COMMAND ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}/unit_tests)
Expand Down

0 comments on commit 7203725

Please sign in to comment.