fix MinGW
[awesomized/libmemcached] / src / libmemcachedutil / CMakeLists.txt
index f09b2a2d96db604e1e80b5b0f64156ac08b1b556..e08de1884d47fdc93b34a2a65bb4867a324b9e3b 100644 (file)
@@ -1,19 +1,50 @@
 
 add_library(libmemcachedutil SHARED
         ../libmemcached/backtrace.cc
+        common.h
         flush.cc
         pid.cc
         ping.cc
-        pool.cc
         version.cc
         )
+if(CMAKE_USE_PTHREADS_INIT)
+    target_sources(libmemcachedutil PRIVATE pool.cc)
+endif()
 add_library(memcachedutil ALIAS libmemcachedutil)
-set_target_properties(libmemcachedutil PROPERTIES LIBRARY_OUTPUT_NAME memcachedutil)
+set_target_properties(libmemcachedutil PROPERTIES
+        CXX_STANDARD ${CXX_STANDARD}
+        LIBRARY_OUTPUT_NAME memcachedutil
+        LIBRARY_OUTPUT_NAME_DEBUG memcachedutil-dbg
+        SOVERSION ${LIBMEMCACHEDUTIL_SO_VERSION})
 target_compile_definitions(libmemcachedutil PRIVATE -DBUILDING_LIBMEMCACHED)
-target_link_libraries(libmemcachedutil libmemcached Threads::Threads)
+if(CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
+       set_target_properties(libmemcachedutil PROPERTIES
+               LINK_FLAGS "-Wl,-undefined,dynamic_lookup"
+               )
+endif()
+if(MSVC OR MINGW)
+    target_link_libraries(libmemcachedutil PUBLIC libmemcached)
+endif()
+target_link_libraries(libmemcachedutil PUBLIC Threads::Threads)
+if(HAVE_LIBSASL)
+    target_link_libraries(libmemcachedutil PUBLIC ${LIBSASL})
+endif()
+target_include_directories(libmemcachedutil PRIVATE
+        ${CMAKE_SOURCE_DIR}/src
+        ${CMAKE_BINARY_DIR}/src
+        ${CMAKE_BINARY_DIR})
+target_include_directories(libmemcachedutil PUBLIC
+        $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
+        $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>
+        $<INSTALL_INTERFACE:include>)
 
-set_target_properties(libmemcachedutil PROPERTIES SOVERSION ${LIBMEMCACHEDUTIL_SO_VERSION})
-install(TARGETS libmemcachedutil EXPORT libmemcachedutil
-        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
-export(EXPORT libmemcachedutil)
-install(EXPORT libmemcachedutil DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake)
+install(TARGETS libmemcachedutil EXPORT libmemcachedutil-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 libmemcachedutil-targets NAMESPACE libmemcached::)
+install(EXPORT libmemcachedutil-targets NAMESPACE libmemcached::
+        COMPONENT dev
+        DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake)