Commit 3dc4abf9 authored by Dominik Charousset's avatar Dominik Charousset

Merge pull request #897

parents b91102ed f52deca7
...@@ -49,6 +49,29 @@ if(NOT CMAKE_CROSSCOMPILING) ...@@ -49,6 +49,29 @@ if(NOT CMAKE_CROSSCOMPILING)
endif() endif()
endif() endif()
set(CAF_LINKAGE_DEFAULT_SHARED ON)
if(WIN32)
# Shared libs are currently not supported on Windows.
set(CAF_LINKAGE_DEFAULT_SHARED OFF)
endif()
option(BUILD_SHARED_LIBS "" ${CAF_LINKAGE_DEFAULT_SHARED})
if (DEFINED CAF_BUILD_STATIC OR DEFINED CAF_BUILD_STATIC_ONLY)
if (CAF_BUILD_STATIC OR CAF_BUILD_STATIC_ONLY)
set(BUILD_SHARED_LIBS OFF)
else ()
set(BUILD_SHARED_LIBS ON)
endif ()
endif ()
if(BUILD_SHARED_LIBS)
set(LINK_TYPE "shared")
else()
set(LINK_TYPE "static")
endif()
set(CMAKE_INSTALL_CMAKEBASEDIR "${CMAKE_INSTALL_LIBDIR}/cmake" CACHE PATH
"Base directory for installing cmake specific artifacts")
set(INSTALL_CAF_CMAKEDIR "${CMAKE_INSTALL_CMAKEBASEDIR}/caf")
# Be nice to VIM users and Clang tools. # Be nice to VIM users and Clang tools.
set(CMAKE_EXPORT_COMPILE_COMMANDS 1) set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
...@@ -57,12 +80,6 @@ if(APPLE AND NOT DEFINED CMAKE_MACOSX_RPATH) ...@@ -57,12 +80,6 @@ if(APPLE AND NOT DEFINED CMAKE_MACOSX_RPATH)
set(CMAKE_MACOSX_RPATH true) set(CMAKE_MACOSX_RPATH true)
endif() endif()
# Shared libs are currently not supported on Windows.
if(WIN32 AND NOT CAF_BUILD_STATIC_ONLY)
message(STATUS "CAF currently only supports static-only builds on Windows")
set(CAF_BUILD_STATIC_ONLY yes)
endif()
if(CAF_BUILD_STATIC_RUNTIME) if(CAF_BUILD_STATIC_RUNTIME)
set(flags_configs set(flags_configs
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS
...@@ -169,8 +186,6 @@ pretty_yes("CAF_FORCE_NO_EXCEPTIONS") ...@@ -169,8 +186,6 @@ pretty_yes("CAF_FORCE_NO_EXCEPTIONS")
pretty_no("CAF_ENABLE_RUNTIME_CHECKS") pretty_no("CAF_ENABLE_RUNTIME_CHECKS")
pretty_no("CAF_NO_MEM_MANAGEMENT") pretty_no("CAF_NO_MEM_MANAGEMENT")
pretty_no("CAF_NO_EXCEPTIONS") pretty_no("CAF_NO_EXCEPTIONS")
pretty_no("CAF_BUILD_STATIC_ONLY")
pretty_no("CAF_BUILD_STATIC")
pretty_no("CAF_NO_OPENSSL") pretty_no("CAF_NO_OPENSSL")
pretty_no("CAF_NO_PYTHON") pretty_no("CAF_NO_PYTHON")
pretty_no("CAF_NO_TOOLS") pretty_no("CAF_NO_TOOLS")
...@@ -332,8 +347,6 @@ if(MINGW) ...@@ -332,8 +347,6 @@ if(MINGW)
build_string("EXTRA_FLAGS" "-static") build_string("EXTRA_FLAGS" "-static")
elseif(CYGWIN) elseif(CYGWIN)
build_string("EXTRA_FLAGS" "-U__STRICT_ANSI__") build_string("EXTRA_FLAGS" "-U__STRICT_ANSI__")
else()
build_string("EXTRA_FLAGS" "-fPIC")
endif() endif()
if (WIN32) if (WIN32)
list(APPEND CAF_EXTRA_LDFLAGS ws2_32 iphlpapi) list(APPEND CAF_EXTRA_LDFLAGS ws2_32 iphlpapi)
...@@ -444,26 +457,11 @@ include_directories("${LIBCAF_INCLUDE_DIRS}") ...@@ -444,26 +457,11 @@ include_directories("${LIBCAF_INCLUDE_DIRS}")
################################################################################ ################################################################################
macro(add_caf_lib name) macro(add_caf_lib name)
string(TOUPPER ${name} upper_name)
set(full_name libcaf_${name}) set(full_name libcaf_${name})
set(shared_target ${full_name}_shared)
set(static_target ${full_name}_static)
add_subdirectory(${full_name}) add_subdirectory(${full_name})
set(lib_varname CAF_LIBRARY_${upper_name})
set(lib_varname_static ${lib_varname}_STATIC)
if(NOT CAF_BUILD_STATIC_ONLY)
set(${lib_varname} ${shared_target})
set(CAF_LIBRARIES ${CAF_LIBRARIES} ${shared_target})
else()
set(${lib_varname} ${static_target})
set(CAF_LIBRARIES ${CAF_LIBRARIES} ${static_target})
endif()
if(CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC)
set(${lib_varname_static} ${static_target})
endif()
add_unit_tests("${full_name}/test/*.cpp") add_unit_tests("${full_name}/test/*.cpp")
# add headers to include directories so other subprojects can use them # add headers to include directories so other subprojects can use them
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/libcaf_${name}") include_directories("${CMAKE_CURRENT_SOURCE_DIR}/${full_name}")
endmacro() endmacro()
macro(add_optional_caf_lib name) macro(add_optional_caf_lib name)
...@@ -554,6 +552,27 @@ add_optional_caf_binaries(examples) ...@@ -554,6 +552,27 @@ add_optional_caf_binaries(examples)
# build tools if not being told otherwise # build tools if not being told otherwise
add_optional_caf_binaries(tools) add_optional_caf_binaries(tools)
export(EXPORT CAFTargets FILE CAFTargets.cmake NAMESPACE caf::)
install(EXPORT CAFTargets
DESTINATION "${INSTALL_CAF_CMAKEDIR}"
NAMESPACE caf::)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/CAFConfigVersion.cmake"
VERSION ${CAF_VERSION}
COMPATIBILITY ExactVersion)
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/CAFConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/CAFConfig.cmake" INSTALL_DESTINATION
"${INSTALL_CAF_CMAKEDIR}")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/CAFConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/CAFConfigVersion.cmake"
DESTINATION "${INSTALL_CAF_CMAKEDIR}")
################################################################################ ################################################################################
# unit tests setup # # unit tests setup #
################################################################################ ################################################################################
...@@ -652,8 +671,7 @@ if(NOT CAF_NO_SUMMARY) ...@@ -652,8 +671,7 @@ if(NOT CAF_NO_SUMMARY)
"\nCAF version: ${CAF_VERSION}" "\nCAF version: ${CAF_VERSION}"
"\n" "\n"
"\nBuild type: ${CMAKE_BUILD_TYPE}" "\nBuild type: ${CMAKE_BUILD_TYPE}"
"\nBuild static: ${CAF_BUILD_STATIC}" "\nLink type: ${LINK_TYPE}"
"\nBuild static only: ${CAF_BUILD_STATIC_ONLY}"
"\nBuild static runtime: ${CAF_BUILD_STATIC_RUNTIME}" "\nBuild static runtime: ${CAF_BUILD_STATIC_RUNTIME}"
"\nRuntime checks: ${CAF_ENABLE_RUNTIME_CHECKS}" "\nRuntime checks: ${CAF_ENABLE_RUNTIME_CHECKS}"
"\nLog level: ${CAF_LOG_LEVEL}" "\nLog level: ${CAF_LOG_LEVEL}"
......
...@@ -98,14 +98,6 @@ config = [ ...@@ -98,14 +98,6 @@ config = [
'OPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include', 'OPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include',
], ],
], ],
Windows: [
debug: defaultDebugBuildFlags + [
'CAF_BUILD_STATIC_ONLY:BOOL=yes',
],
release: defaultReleaseBuildFlags + [
'CAF_BUILD_STATIC_ONLY:BOOL=yes',
],
],
], ],
// Configures what binary the coverage report uses and what paths to exclude. // Configures what binary the coverage report uses and what paths to exclude.
coverage: [ coverage: [
......
@PACKAGE_INIT@
include(CMakeFindDependencyMacro)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_dependency(Threads)
include("${CMAKE_CURRENT_LIST_DIR}/CAFTargets.cmake")
...@@ -71,7 +71,7 @@ foreach (comp ${CAF_FIND_COMPONENTS}) ...@@ -71,7 +71,7 @@ foreach (comp ${CAF_FIND_COMPONENTS})
message(WARNING "Found all.hpp for CAF core, but not build_config.hpp") message(WARNING "Found all.hpp for CAF core, but not build_config.hpp")
set(CAF_${comp}_FOUND false) set(CAF_${comp}_FOUND false)
else() else()
list(APPEND CAF_INCLUDE_DIRS "${caf_build_header_path}") list(APPEND CAF_INCLUDE_DIR_${UPPERCOMP} "${caf_build_header_path}")
endif() endif()
endif() endif()
list(APPEND CAF_INCLUDE_DIRS "${CAF_INCLUDE_DIR_${UPPERCOMP}}") list(APPEND CAF_INCLUDE_DIRS "${CAF_INCLUDE_DIR_${UPPERCOMP}}")
...@@ -84,7 +84,6 @@ foreach (comp ${CAF_FIND_COMPONENTS}) ...@@ -84,7 +84,6 @@ foreach (comp ${CAF_FIND_COMPONENTS})
find_library(CAF_LIBRARY_${UPPERCOMP} find_library(CAF_LIBRARY_${UPPERCOMP}
NAMES NAMES
"caf_${comp}" "caf_${comp}"
"caf_${comp}_static"
HINTS HINTS
${library_hints} ${library_hints}
/usr/lib /usr/lib
...@@ -120,3 +119,43 @@ mark_as_advanced(CAF_ROOT_DIR ...@@ -120,3 +119,43 @@ mark_as_advanced(CAF_ROOT_DIR
CAF_LIBRARIES CAF_LIBRARIES
CAF_INCLUDE_DIRS) CAF_INCLUDE_DIRS)
if (CAF_core_FOUND AND NOT TARGET caf::core)
add_library(caf::core UNKNOWN IMPORTED)
set_target_properties(caf::core PROPERTIES
IMPORTED_LOCATION "${CAF_LIBRARY_CORE}"
INTERFACE_INCLUDE_DIRECTORIES "${CAF_INCLUDE_DIR_CORE}")
endif ()
if (CAF_io_FOUND AND NOT TARGET caf::io)
add_library(caf::io UNKNOWN IMPORTED)
set_target_properties(caf::io PROPERTIES
IMPORTED_LOCATION "${CAF_LIBRARY_IO}"
INTERFACE_INCLUDE_DIRECTORIES "${CAF_INCLUDE_DIR_IO}"
INTERFACE_LINK_LIBRARIES "caf::core")
endif ()
if (CAF_openssl_FOUND AND NOT TARGET caf::openssl)
add_library(caf::openssl UNKNOWN IMPORTED)
set_target_properties(caf::openssl PROPERTIES
IMPORTED_LOCATION "${CAF_LIBRARY_OPENSSL}"
INTERFACE_INCLUDE_DIRECTORIES "${CAF_INCLUDE_DIR_OPENSSL}"
INTERFACE_LINK_LIBRARIES "caf::core;caf::io")
if (NOT BUILD_SHARED_LIBS)
include(CMakeFindDependencyMacro)
set(OPENSSL_USE_STATIC_LIBS TRUE)
find_dependency(OpenSSL)
set_property(TARGET caf::openssl APPEND PROPERTY
INTERFACE_LINK_LIBRARIES "OpenSSL::SSL")
endif ()
endif ()
if (CAF_opencl_FOUND AND NOT TARGET caf::opencl)
add_library(caf::opencl UNKNOWN IMPORTED)
set_target_properties(caf::opencl PROPERTIES
IMPORTED_LOCATION "${CAF_LIBRARY_OPENCL}"
INTERFACE_INCLUDE_DIRECTORIES "${CAF_INCLUDE_DIR_OPENCL}"
INTERFACE_LINK_LIBRARIES "caf::core")
endif ()
if (CAF_test_FOUND AND NOT TARGET caf::test)
add_library(caf::test INTERFACE IMPORTED)
set_target_properties(caf::test PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CAF_INCLUDE_DIR_TEST}"
INTERFACE_LINK_LIBRARIES "caf::core")
endif ()
...@@ -34,8 +34,7 @@ Usage: $0 [OPTION]... [VAR=VALUE]... ...@@ -34,8 +34,7 @@ Usage: $0 [OPTION]... [VAR=VALUE]...
--with-qt-prefix=PATH prefix path for Qt5 cmake modules --with-qt-prefix=PATH prefix path for Qt5 cmake modules
--with-openssl=PATH path to OpenSSL library and headers --with-openssl=PATH path to OpenSSL library and headers
--dual-build build using both gcc and clang --dual-build build using both gcc and clang
--build-static build as static and shared library --build-static build as static library
--build-static-only build as static library only
--static-runtime build with static C++ runtime --static-runtime build with static C++ runtime
--more-warnings enables most warnings --more-warnings enables most warnings
--no-compiler-check disable compiler version check --no-compiler-check disable compiler version check
...@@ -340,10 +339,7 @@ while [ $# -ne 0 ]; do ...@@ -340,10 +339,7 @@ while [ $# -ne 0 ]; do
append_cache_entry CAF_NO_OPENSSL BOOL yes append_cache_entry CAF_NO_OPENSSL BOOL yes
;; ;;
--build-static) --build-static)
append_cache_entry CAF_BUILD_STATIC BOOL yes append_cache_entry BUILD_SHARED_LIBS BOOL no
;;
--build-static-only)
append_cache_entry CAF_BUILD_STATIC_ONLY BOOL yes
;; ;;
--static-runtime) --static-runtime)
append_cache_entry CAF_BUILD_STATIC_RUNTIME BOOL yes append_cache_entry CAF_BUILD_STATIC_RUNTIME BOOL yes
......
...@@ -167,45 +167,38 @@ list(APPEND LIBCAF_CORE_HDRS ...@@ -167,45 +167,38 @@ list(APPEND LIBCAF_CORE_HDRS
"${CMAKE_CURRENT_BINARY_DIR}/caf/detail/build_config.hpp" "${CMAKE_CURRENT_BINARY_DIR}/caf/detail/build_config.hpp"
) )
add_custom_target(libcaf_core) add_library(libcaf_core ${LIBCAF_CORE_SRCS} ${LIBCAF_CORE_HDRS})
target_link_libraries(libcaf_core PUBLIC ${CAF_EXTRA_LDFLAGS})
# build shared library if not compiling static only target_include_directories(libcaf_core PUBLIC
if (NOT CAF_BUILD_STATIC_ONLY)
add_library(libcaf_core_shared SHARED ${LIBCAF_CORE_SRCS} ${LIBCAF_CORE_HDRS})
target_link_libraries(libcaf_core_shared ${CAF_EXTRA_LDFLAGS})
target_include_directories(libcaf_core_shared PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include>
) )
set_target_properties(libcaf_core_shared set_target_properties(libcaf_core
PROPERTIES PROPERTIES
EXPORT_NAME core
SOVERSION ${CAF_VERSION} SOVERSION ${CAF_VERSION}
VERSION ${CAF_LIB_VERSION} VERSION ${CAF_LIB_VERSION}
OUTPUT_NAME caf_core OUTPUT_NAME caf_core
) )
install(TARGETS libcaf_core_shared
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
add_dependencies(libcaf_core_shared libcaf_core)
endif ()
# build static library only if --build-static or --build-static-only was set
if (CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC)
add_library(libcaf_core_static STATIC ${LIBCAF_CORE_HDRS} ${LIBCAF_CORE_SRCS})
target_link_libraries(libcaf_core_static ${CAF_EXTRA_LDFLAGS})
target_include_directories(libcaf_core_static PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
set_target_properties(libcaf_core_static PROPERTIES OUTPUT_NAME caf_core_static)
install(TARGETS libcaf_core_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
add_dependencies(libcaf_core_static libcaf_core)
endif ()
install(TARGETS libcaf_core
EXPORT CAFTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT core
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT core
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT core
)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/caf" install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/caf"
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT core
FILES_MATCHING PATTERN "*.hpp" FILES_MATCHING PATTERN "*.hpp"
) )
add_library(caf::core ALIAS libcaf_core)
if (BUILD_SHARED_LIBS)
add_library(libcaf_core_shared ALIAS libcaf_core)
else ()
add_library(libcaf_core_static ALIAS libcaf_core)
endif ()
list(APPEND CAF_LIBRARIES libcaf_core)
set(CAF_LIBRARIES ${CAF_LIBRARIES} PARENT_SCOPE)
...@@ -51,41 +51,37 @@ set(LIBCAF_IO_SRCS ...@@ -51,41 +51,37 @@ set(LIBCAF_IO_SRCS
src/policy/udp.cpp src/policy/udp.cpp
) )
add_custom_target(libcaf_io) add_library(libcaf_io ${LIBCAF_IO_SRCS} ${LIBCAF_IO_HDRS})
target_link_libraries(libcaf_io PUBLIC caf::core)
# build shared library if not compiling static only target_include_directories(libcaf_io PUBLIC
if (NOT CAF_BUILD_STATIC_ONLY)
add_library(libcaf_io_shared SHARED ${LIBCAF_IO_SRCS} ${LIBCAF_IO_HDRS})
target_link_libraries(libcaf_io_shared ${CAF_EXTRA_LDFLAGS} ${CAF_LIBRARY_CORE})
target_include_directories(libcaf_io_shared PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include>
) )
set_target_properties(libcaf_io_shared set_target_properties(libcaf_io
PROPERTIES PROPERTIES
EXPORT_NAME io
SOVERSION ${CAF_VERSION} SOVERSION ${CAF_VERSION}
VERSION ${CAF_LIB_VERSION} VERSION ${CAF_LIB_VERSION}
OUTPUT_NAME caf_io) OUTPUT_NAME caf_io
install(TARGETS libcaf_io_shared )
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
add_dependencies(libcaf_io_shared libcaf_io)
endif ()
# build static library only if --build-static or --build-static-only was set
if (CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC)
add_library(libcaf_io_static STATIC ${LIBCAF_IO_HDRS} ${LIBCAF_IO_SRCS})
target_link_libraries(libcaf_io_static ${CAF_EXTRA_LDFLAGS} ${CAF_LIBRARY_CORE_STATIC})
target_include_directories(libcaf_io_static PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
set_target_properties(libcaf_io_static PROPERTIES OUTPUT_NAME caf_io_static)
install(TARGETS libcaf_io_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
add_dependencies(libcaf_io_static libcaf_io)
endif ()
# install includes install(TARGETS libcaf_io
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/caf EXPORT CAFTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT io
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT io
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT io
)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/caf"
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.hpp") COMPONENT io
FILES_MATCHING PATTERN "*.hpp"
)
add_library(caf::io ALIAS libcaf_io)
if (BUILD_SHARED_LIBS)
add_library(libcaf_io_shared ALIAS libcaf_io)
else ()
add_library(libcaf_io_static ALIAS libcaf_io)
endif ()
list(APPEND CAF_LIBRARIES libcaf_io)
set(CAF_LIBRARIES ${CAF_LIBRARIES} PARENT_SCOPE)
...@@ -13,54 +13,40 @@ set(LIBCAF_OPENSSL_SRCS ...@@ -13,54 +13,40 @@ set(LIBCAF_OPENSSL_SRCS
src/openssl/session.cpp src/openssl/session.cpp
) )
add_custom_target(libcaf_openssl) add_library(libcaf_openssl ${LIBCAF_OPENSSL_SRCS} ${LIBCAF_OPENSSL_HDRS})
target_link_libraries(libcaf_openssl PUBLIC caf::core caf::io ${OPENSSL_LIBRARIES})
if (MINGW) if(NOT APPLE AND NOT WIN32)
set(OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES} -lz) target_link_libraries(libcaf_openssl PUBLIC "-pthread")
endif() endif()
# build shared library if not compiling static only target_include_directories(libcaf_openssl PUBLIC
if (NOT CAF_BUILD_STATIC_ONLY) $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
add_library(libcaf_openssl_shared SHARED $<INSTALL_INTERFACE:include>
${LIBCAF_OPENSSL_SRCS} ${LIBCAF_OPENSSL_HDRS}) )
target_link_libraries(libcaf_openssl_shared ${CAF_EXTRA_LDFLAGS} set_target_properties(libcaf_openssl
${CAF_LIBRARY_CORE} ${CAF_LIBRARY_IO} ${OPENSSL_LIBRARIES})
if(NOT APPLE AND NOT WIN32)
target_link_libraries(libcaf_openssl_shared "-pthread")
endif()
set_target_properties(libcaf_openssl_shared
PROPERTIES PROPERTIES
EXPORT_NAME openssl
SOVERSION ${CAF_VERSION} SOVERSION ${CAF_VERSION}
VERSION ${CAF_LIB_VERSION} VERSION ${CAF_LIB_VERSION}
OUTPUT_NAME caf_openssl) OUTPUT_NAME caf_openssl
if (CYGWIN) )
install(TARGETS libcaf_openssl_shared RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
elseif (NOT WIN32)
install(TARGETS libcaf_openssl_shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
add_dependencies(libcaf_openssl_shared libcaf_openssl)
endif ()
# build static library only if --build-static or --build-static-only was set
if (CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC)
add_library(libcaf_openssl_static STATIC
${LIBCAF_OPENSSL_HDRS} ${LIBCAF_OPENSSL_SRCS})
target_link_libraries(libcaf_openssl_static ${CAF_EXTRA_LDFLAGS}
${CAF_LIBRARY_CORE_STATIC} ${CAF_LIBRARY_IO_STATIC} ${OPENSSL_LIBRARIES})
set_target_properties(libcaf_openssl_static PROPERTIES
OUTPUT_NAME caf_openssl_static)
if(NOT WIN32)
install(TARGETS libcaf_openssl_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
add_dependencies(libcaf_openssl_static libcaf_openssl)
endif ()
link_directories(${LD_DIRS})
include_directories(. ${INCLUDE_DIRS})
# install includes install(TARGETS libcaf_openssl
if(NOT WIN32) EXPORT CAFTargets
install(DIRECTORY caf/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/caf FILES_MATCHING PATTERN "*.hpp") ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT openssl
endif() RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT openssl
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT openssl
)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/caf"
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT openssl
FILES_MATCHING PATTERN "*.hpp"
)
add_library(caf::openssl ALIAS libcaf_openssl)
if (BUILD_SHARED_LIBS)
add_library(libcaf_openssl_shared ALIAS libcaf_openssl)
else ()
add_library(libcaf_openssl_static ALIAS libcaf_openssl)
endif ()
list(APPEND CAF_LIBRARIES libcaf_openssl)
set(CAF_LIBRARIES ${CAF_LIBRARIES} PARENT_SCOPE)
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 2.8.12)
project(caf_cash CXX) project(caf_cash CXX)
# check whether submodules are available # check whether submodules are available
...@@ -47,8 +47,7 @@ if(NOT CAF_NO_PYTHON) ...@@ -47,8 +47,7 @@ if(NOT CAF_NO_PYTHON)
add_executable(caf-python ${CAF_PYTHON_SRCS} ${CAF_PYTHON_HDRS}) add_executable(caf-python ${CAF_PYTHON_SRCS} ${CAF_PYTHON_HDRS})
target_link_libraries(caf-python target_link_libraries(caf-python
${CAF_EXTRA_LDFLAGS} ${CAF_EXTRA_LDFLAGS}
${CAF_LIBRARY_CORE} caf::core caf::io
${CAF_LIBRARY_IO}
${CAF_LIBRARY_RIAC} ${CAF_LIBRARY_RIAC}
${PTHREAD_LIBRARIES} ${PTHREAD_LIBRARIES}
${LIBEDIT_LIBRARIES} ${LIBEDIT_LIBRARIES}
......
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