1- cmake_minimum_required (VERSION 3.0)
2-
1+ cmake_minimum_required (VERSION 3.6)
32set (CMAKE_CXX_STANDARD 11)
4-
53project (DolphinDBAPI)
64
5+ set (LINK_LIBS)
6+ if (USE_OPENSSL)
7+ add_definitions ("-DUSE_OPENSSL=1" )
8+ if (OPENSSL_PATH)
9+ set (ENV{OPENSSL_ROOT_DIR} ${OPENSSL_PATH} )
10+ endif ()
11+ find_package (OpenSSL REQUIRED)
12+ list (APPEND LINK_LIBS ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} )
13+ include_directories (${OPENSSL_INCLUDE_DIR} )
14+ message ("openssl include dir : ${OPENSSL_INCLUDE_DIR} " )
15+ message ("openssl ssl lib dir : ${OPENSSL_SSL_LIBRARY} " )
16+ message ("openssl crypto lib dir : ${OPENSSL_CRYPTO_LIBRARY} " )
17+ endif ()
18+
719if (UNIX )
8- add_definitions (-fPIC -DNDEBUG -O3 -Wall -fmessage-length =0 -std=gnu++11 -msse -msse2 -msse3 -funroll-loops)
9- add_definitions ("-DLINUX" )
20+ add_definitions (-fPIC -DNDEBUG -DLINUX -O3 -Wall -fmessage-length =0 -std=gnu++11 -msse -msse2 -msse3 -funroll-loops)
1021 if (ABI EQUAL 0)
1122 message ("set _GLIBCXX_USE_CXX11_ABI to 0" )
1223 add_definitions ("-D_GLIBCXX_USE_CXX11_ABI=0" )
1324 elseif (ABI EQUAL 1)
1425 message ("set _GLIBCXX_USE_CXX11_ABI to 1" )
1526 add_definitions ("-D_GLIBCXX_USE_CXX11_ABI=1" )
1627 endif ()
17- if (SSL_LIBS)
18- include_directories (${SSL_LIBS} /include )
19- set (LIBSSL "-Wl,--whole-archive ${SSL_LIBS} /lib/libssl.a -Wl,--no-whole-archive" )
20- set (LIBCRYPTO "-Wl,--whole-archive ${SSL_LIBS} /lib/libcrypto.a -Wl,--no-whole-archive" )
21- else ()
22- set (LIBSSL ssl)
23- set (LIBCRYPTO crypto)
24- endif ()
25-
26- if (UUID_LIBS)
27- include_directories (${UUID_LIBS} /include )
28- set (LIBUUID "-Wl,--whole-archive ${UUID_LIBS} /lib/libuuid.a -Wl,--no-whole-archive" )
29- else ()
30- set (LIBUUID uuid)
28+ if (UUID_PATH)
29+ include_directories (${UUID_PATH} /include )
30+ link_directories (${UUID_PATH} /lib)
3131 endif ()
32-
32+ list ( APPEND LINK_LIBS pthread uuid dl)
3333elseif (WIN32 )
34- if (MSVC )
35- message ("MSVC Compiling" )
36- add_definitions ("-DWINDOWS -DWIN32_LEAN_AND_MEAN -D_DDBAPIDLL -DNOMINMAX" )
37- if (SSL_LIBS)
38- include_directories (${SSL_LIBS} /include64)
39- set (LIBSSL ${SSL_LIBS} /lib64/ssleay32MD.lib)
40- set (LIBCRYPTO ${SSL_LIBS} /lib64/libeay32MD.lib)
41- else ()
42- set (LIBSSL ssleay32MD.lib)
43- set (LIBCRYPTO libeay32MD.lib)
44- endif ()
45- elseif (MINGW)
46- message ("MINGW Compiling" )
47- add_definitions (-fPIC -DNDEBUG -O3 -Wall -fmessage-length =0 -std=gnu++11 -msse -msse2 -msse3 -funroll-loops)
48- add_definitions ("-DWINDOWS -D_WIN32_WINNT=0x0600" )
34+ if (MSVC )
35+ message ("MSVC Compiling" )
36+ add_definitions ("-DWINDOWS -DWIN32_LEAN_AND_MEAN -D_DDBAPIDLL -DNOMINMAX" )
37+ set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MDd" )
38+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd" )
39+ elseif (MINGW)
40+ message ("MINGW Compiling" )
41+ add_definitions (-fPIC -DNDEBUG -O3 -Wall -fmessage-length =0 -std=gnu++11 -msse -msse2 -msse3 -funroll-loops)
42+ add_definitions ("-DWINDOWS -D_WIN32_WINNT=0x0600" )
4943 if (ABI EQUAL 0)
5044 message ("set _GLIBCXX_USE_CXX11_ABI to 0" )
5145 add_definitions ("-D_GLIBCXX_USE_CXX11_ABI=0" )
5246 elseif (ABI EQUAL 1)
5347 message ("set _GLIBCXX_USE_CXX11_ABI to 1" )
5448 add_definitions ("-D_GLIBCXX_USE_CXX11_ABI=1" )
5549 endif ()
56- if (SSL_LIBS)
57- include_directories (${SSL_LIBS} /include )
58- set (LIBSSL ${SSL_LIBS} /lib/libssl.a)
59- set (LIBCRYPTO ${SSL_LIBS} /lib/libcrypto.a)
60- else ()
61- set (LIBSSL ssl)
62- set (LIBCRYPTO crypto)
63- endif ()
64- endif ()
65-
66-
50+ endif ()
51+ list (APPEND LINK_LIBS ws2_32)
6752endif ()
6853
6954AUX_SOURCE_DIRECTORY (src DIR_SRCS)
7055include_directories (include )
7156ADD_LIBRARY (DolphinDBAPI SHARED ${DIR_SRCS} )
72-
73- if (UNIX )
74- target_link_libraries (
75- DolphinDBAPI
76- pthread
77- ${LIBSSL}
78- ${LIBCRYPTO}
79- ${LIBUUID}
80- dl
81- )
82- elseif (WIN32 )
83- target_link_libraries (
84- DolphinDBAPI
85- ${LIBSSL}
86- ${LIBCRYPTO}
87- ws2_32
88- )
89- endif ()
57+ target_link_libraries (
58+ DolphinDBAPI
59+ ${LINK_LIBS}
60+ )
0 commit comments