Commit 43e2750b authored by Dominik Charousset's avatar Dominik Charousset

Fix exporting and installing of incubator libs

parent ed849af0
...@@ -2,159 +2,71 @@ ...@@ -2,159 +2,71 @@
file(GLOB_RECURSE CAF_NET_HEADERS "caf/*.hpp") file(GLOB_RECURSE CAF_NET_HEADERS "caf/*.hpp")
# -- add consistency checks for enum to_string implementations ----------------- # -- add targets ---------------------------------------------------------------
caf_incubator_add_enum_consistency_check("caf/net/basp/connection_state.hpp" caf_incubator_add_component(
"src/basp/connection_state_strings.cpp") net
caf_incubator_add_enum_consistency_check("caf/net/basp/ec.hpp" DEPENDENCIES
"src/basp/ec_strings.cpp") PUBLIC
caf_incubator_add_enum_consistency_check("caf/net/basp/message_type.hpp" CAF::core
"src/basp/message_type_strings.cpp") $<$<CXX_COMPILER_ID:MSVC>:ws2_32>
caf_incubator_add_enum_consistency_check("caf/net/operation.hpp" PRIVATE
"src/basp/operation_strings.cpp") CAF::internal
ENUM_CONSISTENCY_CHECKS
# -- utility function for setting default properties --------------------------- net.basp.connection_state
net.basp.ec
function(caf_net_set_default_properties) net.basp.message_type
foreach(target ${ARGN}) net.operation
caf_incubator_set_default_properties(${target}) HEADERS
# Make sure we find our headers plus the the generated export header. ${CAF_NET_HEADERS}
target_include_directories(${target} PRIVATE SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}" src/basp/connection_state_strings.cpp
"${CMAKE_BINARY_DIR}") src/basp/ec_strings.cpp
target_compile_definitions(${target} PRIVATE libcaf_net_EXPORTS) src/basp/message_type_strings.cpp
# Pull in public dependencies. src/basp/operation_strings.cpp
target_link_libraries(${target} PUBLIC CAF::core) src/convert_ip_endpoint.cpp
if(MSVC) src/datagram_socket.cpp
target_link_libraries(${target} PUBLIC ws2_32 iphlpapi) src/defaults.cpp
endif() src/detail/rfc6455.cpp
endforeach() src/header.cpp
endfunction() src/host.cpp
src/ip.cpp
# -- add library targets ------------------------------------------------------- src/message_queue.cpp
src/multiplexer.cpp
add_library(libcaf_net_obj OBJECT ${CAF_NET_HEADERS} src/net/abstract_actor_shell.cpp
#src/actor_proxy_impl.cpp src/net/actor_shell.cpp
#src/basp/application.cpp src/net/middleman.cpp
#src/endpoint_manager.cpp src/net/middleman_backend.cpp
#src/net/backend/tcp.cpp src/net/packet_writer.cpp
#src/net/backend/test.cpp src/network_socket.cpp
#src/net/endpoint_manager_queue.cpp src/pipe_socket.cpp
src/basp/connection_state_strings.cpp src/pollset_updater.cpp
src/basp/ec_strings.cpp src/socket.cpp
src/basp/message_type_strings.cpp src/socket_manager.cpp
src/basp/operation_strings.cpp src/stream_socket.cpp
src/convert_ip_endpoint.cpp src/tcp_accept_socket.cpp
src/datagram_socket.cpp src/tcp_stream_socket.cpp
src/defaults.cpp src/udp_datagram_socket.cpp
src/detail/rfc6455.cpp src/worker.cpp
src/header.cpp TEST_SOURCES
src/host.cpp test/net-test.cpp
src/ip.cpp TEST_SUITES
src/message_queue.cpp accept_socket
src/multiplexer.cpp convert_ip_endpoint
src/net/abstract_actor_shell.cpp datagram_socket
src/net/actor_shell.cpp detail.rfc6455
src/net/middleman.cpp header
src/net/middleman_backend.cpp ip
src/net/packet_writer.cpp multiplexer
src/network_socket.cpp net.actor_shell
src/pipe_socket.cpp net.length_prefix_framing
src/pollset_updater.cpp net.typed_actor_shell
src/socket.cpp net.web_socket_server
src/socket_manager.cpp network_socket
src/stream_socket.cpp pipe_socket
src/tcp_accept_socket.cpp socket
src/tcp_stream_socket.cpp socket_guard
src/udp_datagram_socket.cpp stream_socket
src/worker.cpp stream_transport
) tcp_sockets
udp_datagram_socket)
add_library(libcaf_net "${PROJECT_SOURCE_DIR}/cmake/dummy.cpp"
$<TARGET_OBJECTS:libcaf_net_obj>)
generate_export_header(libcaf_net
EXPORT_MACRO_NAME CAF_NET_EXPORT
EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/caf/detail/net_export.hpp")
set_property(TARGET libcaf_net_obj PROPERTY POSITION_INDEPENDENT_CODE ON)
caf_net_set_default_properties(libcaf_net_obj libcaf_net)
target_include_directories(libcaf_net INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>)
add_library(CAF::net ALIAS libcaf_net)
set_target_properties(libcaf_net PROPERTIES
EXPORT_NAME net
SOVERSION ${CAF_VERSION}
VERSION ${CAF_LIB_VERSION}
OUTPUT_NAME caf_net)
# -- install library and header files ------------------------------------------
install(FILES "${CMAKE_BINARY_DIR}/caf/detail/net_export.hpp"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/caf/detail")
install(TARGETS libcaf_net
EXPORT CAFTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT net
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT net
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT net)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/caf"
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT net
FILES_MATCHING PATTERN "*.hpp")
# -- build unit tests ----------------------------------------------------------
if(NOT CAF_INC_ENABLE_TESTING)
return()
endif()
add_executable(caf-net-test
test/net-test.cpp
$<TARGET_OBJECTS:libcaf_net_obj>)
caf_net_set_default_properties(caf-net-test)
target_include_directories(caf-net-test PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/test")
target_link_libraries(caf-net-test PRIVATE CAF::test)
caf_incubator_add_test_suites(caf-net-test
accept_socket
#application
convert_ip_endpoint
datagram_socket
detail.rfc6455
#datagram_transport
#doorman
#endpoint_manager
header
ip
multiplexer
net.actor_shell
#net.backend.tcp
#net.basp.message_queue
#net.basp.ping_pong
#net.basp.worker
net.length_prefix_framing
net.typed_actor_shell
net.web_socket_server
network_socket
pipe_socket
socket
socket_guard
#stream_application
stream_socket
stream_transport
#string_application
tcp_sockets
#transport_worker
#transport_worker_dispatcher
udp_datagram_socket
)
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "caf/byte.hpp" #include "caf/byte.hpp"
#include "caf/detail/net_export.hpp" #include "caf/detail/net_export.hpp"
#include "caf/fwd.hpp"
#include <cstdint> #include <cstdint>
#include <vector> #include <vector>
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <memory> #include <memory>
#include "caf/intrusive_ptr.hpp" #include "caf/intrusive_ptr.hpp"
#include "caf/type_id.hpp"
namespace caf::net { namespace caf::net {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment