Merge pull request #140 from hussainnaqvee/patch-1
[awesomized/libmemcached] / src / libhashkit / CMakeLists.txt
1 set(libhashkit_sources
2 aes.cc
3 algorithm.cc
4 common.h
5 crc32.cc
6 digest.cc
7 encrypt.cc
8 fnv_32.cc
9 fnv_64.cc
10 function.cc
11 has.cc
12 hashkit.cc
13 hsieh.cc
14 jenkins.cc
15 md5.cc
16 murmur.cc
17 murmur3.cc
18 murmur3_api.cc
19 one_at_a_time.cc
20 str_algorithm.cc
21 strerror.cc
22 string.cc
23 )
24 add_library(libhashkit)
25 add_library(hashkit ALIAS libhashkit)
26 set_target_properties(libhashkit PROPERTIES
27 CXX_STANDARD ${CXX_STANDARD}
28 OUTPUT_NAME hashkit
29 OUTPUT_NAME_DEBUG hashkit-dbg
30 SOVERSION ${LIBHASHKIT_SO_SOVERSION}
31 VERSION ${LIBHASHKIT_SO_VERSION})
32 target_compile_options(libhashkit PRIVATE -DBUILDING_HASHKIT)
33 target_include_directories(libhashkit PRIVATE
34 ${CMAKE_SOURCE_DIR}/src
35 ${CMAKE_BINARY_DIR}/src
36 ${CMAKE_BINARY_DIR})
37 target_include_directories(libhashkit PUBLIC
38 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
39 $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>
40 $<INSTALL_INTERFACE:include>)
41
42 if(ENABLE_OPENSSL_CRYPTO)
43 find_package(OpenSSL)
44 if(OPENSSL_FOUND)
45 if(OPENSSL_CRYPTO_LIBRARY)
46 target_compile_definitions(libhashkit PRIVATE HAVE_OPENSSL_CRYPTO)
47 target_link_libraries(libhashkit PUBLIC OpenSSL::Crypto)
48 pkgconfig_export(REQUIRES_PRIVATE libcrypto)
49 else()
50 message(WARNING "Could not find OpenSSL::Crypto")
51 endif()
52 endif()
53 endif()
54
55 if (NOT OPENSSL_CRYPTO_LIBRARY)
56 set (libhashkit_sources ${libhashkit_sources} rijndael.cc)
57 endif()
58
59 configure_file(hashkitcon.h.in hashkitcon.h @ONLY)
60
61 install(TARGETS libhashkit EXPORT libhashkit-targets
62 RUNTIME COMPONENT bin DESTINATION ${CMAKE_INSTALL_BINDIR}
63 ARCHIVE COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR}
64 LIBRARY COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR}
65 ${TARGET_NAMELINK_COMPONENT}
66 )
67 export(EXPORT libhashkit-targets NAMESPACE libmemcached::)
68 install(EXPORT libhashkit-targets NAMESPACE libmemcached::
69 COMPONENT dev
70 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
71
72 install_public_headers(
73 libhashkit
74
75 hashkit.h
76 )
77
78 target_sources(libhashkit PRIVATE
79 ${libhashkit_sources}
80 ${libhashkit_includes})