X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Flibhashkit%2FCMakeLists.txt;h=455570af3e3d78093882e303ee15a523cb441fcc;hb=4a434c5a70f3c58c0efbbe9280eef6a7948303f4;hp=6decd186a1e5d7870a92322d43df8f2e1ecbc567;hpb=5bb6f975322d3da0caf082b8d890132194d0a4ea;p=awesomized%2Flibmemcached diff --git a/src/libhashkit/CMakeLists.txt b/src/libhashkit/CMakeLists.txt index 6decd186..455570af 100644 --- a/src/libhashkit/CMakeLists.txt +++ b/src/libhashkit/CMakeLists.txt @@ -1,13 +1,7 @@ -if(HAVE_HSIEH_HASH) - set(HSIEH_CC hsieh.cc) -else() - set(HSIEH_CC nohsieh.cc) -endif() - -add_library(libhashkit SHARED +set(libhashkit_sources aes.cc algorithm.cc - behavior.cc + common.h crc32.cc digest.cc encrypt.cc @@ -16,33 +10,71 @@ add_library(libhashkit SHARED function.cc has.cc hashkit.cc - ${HSIEH_CC} + hsieh.cc jenkins.cc - ketama.cc md5.cc murmur.cc murmur3.cc murmur3_api.cc one_at_a_time.cc - rijndael.cc str_algorithm.cc strerror.cc string.cc ) +add_library(libhashkit) add_library(hashkit ALIAS libhashkit) -set_target_properties(libhashkit PROPERTIES LIBRARY_OUTPUT_NAME hashkit) +set_target_properties(libhashkit PROPERTIES + CXX_STANDARD ${CXX_STANDARD} + OUTPUT_NAME hashkit + OUTPUT_NAME_DEBUG hashkit-dbg + SOVERSION ${LIBHASHKIT_SO_SOVERSION} + VERSION ${LIBHASHKIT_SO_VERSION}) target_compile_options(libhashkit PRIVATE -DBUILDING_HASHKIT) +target_include_directories(libhashkit PRIVATE + ${CMAKE_SOURCE_DIR}/src + ${CMAKE_BINARY_DIR}/src + ${CMAKE_BINARY_DIR}) +target_include_directories(libhashkit PUBLIC + $ + $ + $) + +if(ENABLE_OPENSSL_CRYPTO) + find_package(OpenSSL) + if(OPENSSL_FOUND) + if(OPENSSL_CRYPTO_LIBRARY) + target_compile_definitions(libhashkit PRIVATE HAVE_OPENSSL_CRYPTO) + target_link_libraries(libhashkit PUBLIC OpenSSL::Crypto) + pkgconfig_export(REQUIRES_PRIVATE libcrypto) + else() + message(WARNING "Could not find OpenSSL::Crypto") + endif() + endif() +endif() + +if (NOT OPENSSL_CRYPTO_LIBRARY) + set (libhashkit_sources ${libhashkit_sources} rijndael.cc) +endif() configure_file(hashkitcon.h.in hashkitcon.h @ONLY) -set_target_properties(libhashkit PROPERTIES SOVERSION ${LIBHASHKIT_SO_VERSION}) -install(TARGETS libhashkit EXPORT libhashkit - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -export(EXPORT libhashkit) -install(EXPORT libhashkit DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake) +install(TARGETS libhashkit EXPORT libhashkit-targets + RUNTIME COMPONENT bin DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY COMPONENT lib DESTINATION ${CMAKE_INSTALL_LIBDIR} + ${TARGET_NAMELINK_COMPONENT} + ) +export(EXPORT libhashkit-targets NAMESPACE libmemcached::) +install(EXPORT libhashkit-targets NAMESPACE libmemcached:: + COMPONENT dev + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) install_public_headers( libhashkit hashkit.h ) + +target_sources(libhashkit PRIVATE + ${libhashkit_sources} + ${libhashkit_includes})