vcpkg/ports/srpc/cmake.diff

130 lines
3.6 KiB
Diff

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7c2d5b3..32a2f40 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -13,11 +13,9 @@ endif ()
find_package(OpenSSL REQUIRED)
set(protobuf_MODULE_COMPATIBLE ON CACHE BOOL "")
-if (WIN32)
- find_package(Protobuf REQUIRED CONFIG)
-else ()
- find_package(Protobuf 3.5.0 REQUIRED)
-endif ()
+find_package(Protobuf CONFIG REQUIRED)
+# Use target in order to carry link libraries
+set(Protobuf_LIBRARY protobuf::libprotobuf)
if (WIN32)
set (HAVE_SYS_UIO_H_01 false)
@@ -39,12 +37,21 @@ else ()
configure_file(${SNAPPY_DIR}/snappy-stubs-public.h.in ${SNAPPY_DIR}/snappy-stubs-public.h)
else ()
find_package(Snappy 1.1.6 REQUIRED CONFIG)
+ add_library(snappy ALIAS Snappy::snappy)
set(SNAPPY_LIB snappy)
endif ()
if (LZ4_INSTALLED)
+ find_package(lz4 CONFIG REQUIRED)
+ add_library(lz4 ALIAS lz4::lz4)
set(LZ4_LIB lz4)
endif ()
+
+ find_package(ZLIB REQUIRED)
+ add_library(z ALIAS ZLIB::ZLIB)
+
+ find_package(Threads REQUIRED)
+ add_library(pthread ALIAS Threads::Threads)
endif()
include_directories(
@@ -57,11 +64,10 @@ include_directories(
if (WIN32)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /wd4200")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /wd4200 /Zc:__cplusplus /std:c++14")
-else ()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fPIC -pipe -std=gnu90")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC -pipe -std=c++14 -fno-exceptions")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /wd4200 /Zc:__cplusplus")
endif ()
+set(CMAKE_C_STANDARD 90)
+set(CMAKE_CXX_STANDARD 17)
add_subdirectory(generator)
@@ -108,6 +114,8 @@ if (WIN32)
strncasecmp=_strnicmp
)
+ target_link_libraries(${PROJECT_NAME} PRIVATE protobuf::libprotobuf)
+
install(
TARGETS ${PROJECT_NAME}
ARCHIVE
@@ -118,7 +126,7 @@ if (WIN32)
else ()
set(STATIC_LIB_NAME ${PROJECT_NAME}-static)
set(SHARED_LIB_NAME ${PROJECT_NAME}-shared)
- get_filename_component(Protobuf_LIB_DIR ${Protobuf_LIBRARY} DIRECTORY)
+ set(Protobuf_LIB_DIR "")
link_directories(${OPENSSL_LINK_DIR} ${WORKFLOW_LIB_DIR} ${Protobuf_LIB_DIR})
add_library(
@@ -143,8 +151,18 @@ else ()
$<TARGET_OBJECTS:http>
)
- if (APPLE)
+ if (NOT BUILD_SHARED_LIBS)
+ target_link_libraries(${STATIC_LIB_NAME}
+ PRIVATE
+ OpenSSL::SSL
+ OpenSSL::Crypto
+ pthread
+ ${Protobuf_LIBRARY}
+ workflow
+ z ${SNAPPY_LIB} ${LZ4_LIB})
+ elseif (1)
target_link_libraries(${SHARED_LIB_NAME}
+ PRIVATE
OpenSSL::SSL
OpenSSL::Crypto
pthread
@@ -161,17 +179,22 @@ else ()
add_dependencies(${STATIC_LIB_NAME} LINK_HEADERS)
add_dependencies(${SHARED_LIB_NAME} LINK_HEADERS)
+ if(NOT BUILD_SHARED_LIBS)
+ set_target_properties(${SHARED_LIB_NAME} PROPERTIES EXCLUDE_FROM_ALL 1)
install(
TARGETS ${STATIC_LIB_NAME}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT devel
)
+ else()
+ set_target_properties(${STATIC_LIB_NAME} PROPERTIES EXCLUDE_FROM_ALL 1)
install(
TARGETS ${SHARED_LIB_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT devel
)
+ endif()
endif ()
diff --git a/srpc-config.cmake.in b/srpc-config.cmake.in
index 54b4323..1cdb97f 100644
--- a/srpc-config.cmake.in
+++ b/srpc-config.cmake.in
@@ -3,7 +3,6 @@
set(SRPC_VERSION "@srpc_VERSION@")
set_and_check(SRPC_INCLUDE_DIR "@PACKAGE_CONFIG_INC_DIR@")
set_and_check(SRPC_LIB_DIR "@PACKAGE_CONFIG_LIB_DIR@")
-set_and_check(SRPC_BIN_DIR "@PACKAGE_CONFIG_BIN_DIR@")
if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/srpc-targets.cmake")
include ("${CMAKE_CURRENT_LIST_DIR}/srpc-targets.cmake")