Commit b7c55f36 authored by Dominik Charousset's avatar Dominik Charousset

Fix build on MSVC

parent 153fcb56
......@@ -146,6 +146,11 @@ if(NOT caf_is_subproject)
add_custom_target(configure COMMAND ${CMAKE_CURRENT_BINARY_DIR}/config.status)
endif()
# Silence annoying MSVC warning.
if(MSVC)
add_compile_options(/wd4275 /wd4251)
endif()
################################################################################
# utility functions #
################################################################################
......@@ -181,7 +186,7 @@ add_executable(caf-generate-enum-strings cmake/caf-generate-enum-strings.cpp)
function(enum_to_string relative_input_file relative_output_file)
set(input "${CMAKE_CURRENT_SOURCE_DIR}/${relative_input_file}")
set(output "${CMAKE_CURRENT_BINARY_DIR}/${relative_output_file}")
set(output "${CMAKE_BINARY_DIR}/${relative_output_file}")
add_custom_command(OUTPUT "${output}"
COMMAND caf-generate-enum-strings "${input}" "${output}"
DEPENDS caf-generate-enum-strings "${input}")
......
......@@ -16,14 +16,14 @@ enum_to_string("caf/stream_priority.hpp" "stream_priority_strings.cpp")
# -- list cpp files for libcaf_core --------------------------------------------
set(CAF_CORE_SOURCES
"${CMAKE_CURRENT_BINARY_DIR}/exit_reason_strings.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/inbox_result_strings.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/invoke_msg_result_strings.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/message_priority_strings.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/pec_strings.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/sec_strings.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/stream_priority_strings.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/task_result_strings.cpp"
"${CMAKE_BINARY_DIR}/exit_reason_strings.cpp"
"${CMAKE_BINARY_DIR}/inbox_result_strings.cpp"
"${CMAKE_BINARY_DIR}/invoke_msg_result_strings.cpp"
"${CMAKE_BINARY_DIR}/message_priority_strings.cpp"
"${CMAKE_BINARY_DIR}/pec_strings.cpp"
"${CMAKE_BINARY_DIR}/sec_strings.cpp"
"${CMAKE_BINARY_DIR}/stream_priority_strings.cpp"
"${CMAKE_BINARY_DIR}/task_result_strings.cpp"
src/abstract_actor.cpp
src/abstract_channel.cpp
src/abstract_composable_behavior.cpp
......@@ -277,11 +277,13 @@ add_library(caf::core ALIAS libcaf_core)
target_link_libraries(libcaf_core PUBLIC ${CAF_EXTRA_LDFLAGS})
generate_export_header(libcaf_core_obj
generate_export_header(libcaf_core
EXPORT_MACRO_NAME CAF_CORE_EXPORT
EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/caf/detail/core_export.hpp"
STATIC_DEFINE CAF_STATIC_BUILD)
target_compile_definitions(libcaf_core_obj PRIVATE libcaf_core_EXPORTS)
set_target_properties(libcaf_core PROPERTIES
EXPORT_NAME core
SOVERSION ${CAF_VERSION}
......@@ -314,6 +316,7 @@ if(NOT CAF_NO_UNIT_TESTS)
"${PROJECT_SOURCE_DIR}/libcaf_test/caf/test/unit_test_impl.hpp"
${CAF_CORE_TEST_SOURCES}
$<TARGET_OBJECTS:libcaf_core_obj>)
target_compile_definitions(caf-core-test PRIVATE libcaf_core_EXPORTS)
target_link_libraries(caf-core-test ${CAF_EXTRA_LDFLAGS})
add_test_suites(caf-core-test
"${CMAKE_CURRENT_SOURCE_DIR}"
......
......@@ -185,6 +185,7 @@ enum class invoke_message_result;
// -- aliases ------------------------------------------------------------------
using actor_id = uint64_t;
using byte_buffer = std::vector<byte>;
using ip_address = ipv6_address;
using ip_endpoint = ipv6_endpoint;
using ip_subnet = ipv6_subnet;
......
......@@ -44,6 +44,7 @@ using sorted_builtin_types
actor_addr, // @addr
std::vector<actor_addr>, // @addrvec
atom_value, // @atom
byte_buffer, // @bytebuf
std::vector<char>, // @charbuf
config_value, // @config_value
down_msg, // @down
......
......@@ -10,8 +10,8 @@ enum_to_string("caf/io/network/operation.hpp" "operation_to_string.cpp")
# -- list cpp files ------------------------------------------------------------
set(CAF_IO_SOURCES
"${CMAKE_CURRENT_BINARY_DIR}/message_type_to_string.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/operation_to_string.cpp"
"${CMAKE_BINARY_DIR}/message_type_to_string.cpp"
"${CMAKE_BINARY_DIR}/operation_to_string.cpp"
src/detail/socket_guard.cpp
src/io/abstract_broker.cpp
src/io/basp/header.cpp
......@@ -77,11 +77,13 @@ add_library(caf::io ALIAS libcaf_io)
target_link_libraries(libcaf_io PUBLIC caf::core ${CAF_EXTRA_LDFLAGS})
generate_export_header(libcaf_io_obj
generate_export_header(libcaf_io
EXPORT_MACRO_NAME CAF_IO_EXPORT
EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/caf/detail/io_export.hpp"
STATIC_DEFINE CAF_STATIC_BUILD)
target_compile_definitions(libcaf_io_obj PRIVATE libcaf_io_EXPORTS)
set_target_properties(libcaf_io PROPERTIES
EXPORT_NAME io
SOVERSION ${CAF_VERSION}
......@@ -113,6 +115,7 @@ if(NOT CAF_NO_UNIT_TESTS)
"${PROJECT_SOURCE_DIR}/libcaf_test/caf/test/unit_test_impl.hpp"
${CAF_IO_TEST_SOURCES}
$<TARGET_OBJECTS:libcaf_io_obj>)
target_compile_definitions(caf-io-test PRIVATE libcaf_io_EXPORTS)
target_link_libraries(caf-io-test caf::core ${CAF_EXTRA_LDFLAGS})
add_test_suites(caf-io-test
"${CMAKE_CURRENT_SOURCE_DIR}"
......
......@@ -140,6 +140,14 @@ public:
explicit default_multiplexer(actor_system* sys);
default_multiplexer(default_multiplexer&&) = delete;
default_multiplexer(const default_multiplexer&) = delete;
default_multiplexer& operator=(default_multiplexer&&) = delete;
default_multiplexer& operator=(const default_multiplexer&) = delete;
~default_multiplexer() override;
supervisor_ptr make_supervisor() override;
......
......@@ -29,15 +29,16 @@ target_link_libraries(libcaf_openssl PUBLIC
caf::core caf::io ${OPENSSL_LIBRARIES})
if(NOT APPLE AND NOT WIN32)
target_link_libraries(libcaf_openssl_obj PUBLIC "-pthread")
target_link_libraries(libcaf_openssl PUBLIC "-pthread")
endif()
generate_export_header(libcaf_openssl_obj
generate_export_header(libcaf_openssl
EXPORT_MACRO_NAME CAF_OPENSSL_EXPORT
EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/caf/detail/openssl_export.hpp"
STATIC_DEFINE CAF_STATIC_BUILD)
target_compile_definitions(libcaf_openssl_obj PRIVATE libcaf_openssl_EXPORTS)
target_include_directories(libcaf_openssl PUBLIC
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>
......@@ -74,6 +75,7 @@ if(NOT CAF_NO_UNIT_TESTS)
"${PROJECT_SOURCE_DIR}/libcaf_test/caf/test/unit_test_impl.hpp"
${CAF_OPENSSL_TEST_SOURCES}
$<TARGET_OBJECTS:libcaf_openssl_obj>)
target_compile_definitions(caf-openssl-test PRIVATE libcaf_openssl_EXPORTS)
target_link_libraries(caf-openssl-test caf::core caf::io
${OPENSSL_LIBRARIES} ${CAF_EXTRA_LDFLAGS})
add_test_suites(caf-openssl-test
......
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