Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
3fcb99f1
Commit
3fcb99f1
authored
Aug 28, 2019
by
Tobias Mayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use cmake builtin mechanism for static and shared
... and export the library targets.
parent
478bfeb0
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
145 additions
and
177 deletions
+145
-177
CMakeLists.txt
CMakeLists.txt
+24
-16
cmake/CAFConfig.cmake.in
cmake/CAFConfig.cmake.in
+9
-0
libcaf_core/CMakeLists.txt
libcaf_core/CMakeLists.txt
+25
-37
libcaf_io/CMakeLists.txt
libcaf_io/CMakeLists.txt
+27
-36
libcaf_opencl/CMakeLists.txt
libcaf_opencl/CMakeLists.txt
+29
-37
libcaf_openssl/CMakeLists.txt
libcaf_openssl/CMakeLists.txt
+29
-48
libcaf_python/CMakeLists.txt
libcaf_python/CMakeLists.txt
+2
-3
No files found.
CMakeLists.txt
View file @
3fcb99f1
...
...
@@ -12,6 +12,8 @@ else()
endif
()
unset
(
_parent
)
option
(
BUILD_SHARED_LIBS
""
ON
)
set
(
CMAKE_INSTALL_CMAKEBASEDIR
"lib/cmake"
CACHE PATH
"Base directory for installing cmake specific artifacts"
)
set
(
INSTALL_CAF_CMAKEDIR
"
${
CMAKE_INSTALL_CMAKEBASEDIR
}
/caf"
)
...
...
@@ -462,26 +464,11 @@ include_directories("${LIBCAF_INCLUDE_DIRS}")
################################################################################
macro
(
add_caf_lib name
)
string
(
TOUPPER
${
name
}
upper_name
)
set
(
full_name libcaf_
${
name
}
)
set
(
shared_target
${
full_name
}
_shared
)
set
(
static_target
${
full_name
}
_static
)
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 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
()
macro
(
add_optional_caf_lib name
)
...
...
@@ -589,6 +576,27 @@ add_optional_caf_binaries(examples)
# build tools if not being told otherwise
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 #
################################################################################
...
...
cmake/CAFConfig.cmake.in
0 → 100644
View file @
3fcb99f1
@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")
libcaf_core/CMakeLists.txt
View file @
3fcb99f1
...
...
@@ -149,45 +149,33 @@ list(APPEND LIBCAF_CORE_HDRS
"
${
CMAKE_CURRENT_BINARY_DIR
}
/caf/detail/build_config.hpp"
)
add_custom_target
(
libcaf_core
)
# build shared library if not compiling static only
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
add_library
(
libcaf_core
${
LIBCAF_CORE_SRCS
}
${
LIBCAF_CORE_HDRS
}
)
target_link_libraries
(
libcaf_core PUBLIC
${
CAF_EXTRA_LDFLAGS
}
)
target_include_directories
(
libcaf_core PUBLIC
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_BINARY_DIR
}
>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
>
$<INSTALL_INTERFACE:include>
)
set_target_properties
(
libcaf_core_shared
)
set_target_properties
(
libcaf_core
PROPERTIES
EXPORT_NAME core
SOVERSION
${
CAF_VERSION
}
VERSION
${
CAF_VERSION
}
OUTPUT_NAME caf_core
)
install
(
TARGETS libcaf_core_shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
)
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 lib
)
add_dependencies
(
libcaf_core_static libcaf_core
)
endif
()
)
install
(
TARGETS libcaf_core
EXPORT CAFTargets
ARCHIVE DESTINATION lib COMPONENT core
RUNTIME DESTINATION bin COMPONENT core
LIBRARY DESTINATION lib COMPONENT core
)
install
(
DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/caf"
DESTINATION include
COMPONENT core
FILES_MATCHING PATTERN
"*.hpp"
)
add_library
(
caf::core ALIAS libcaf_core
)
list
(
APPEND CAF_LIBRARIES libcaf_core
)
set
(
CAF_LIBRARIES
${
CAF_LIBRARIES
}
PARENT_SCOPE
)
libcaf_io/CMakeLists.txt
View file @
3fcb99f1
...
...
@@ -49,41 +49,32 @@ set(LIBCAF_IO_SRCS
src/worker.cpp
)
add_custom_target
(
libcaf_io
)
# build shared library if not compiling static only
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
add_library
(
libcaf_io
${
LIBCAF_IO_SRCS
}
${
LIBCAF_IO_HDRS
}
)
target_link_libraries
(
libcaf_io PUBLIC caf::core
)
target_include_directories
(
libcaf_io PUBLIC
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
>
$<INSTALL_INTERFACE:include>
)
set_target_properties
(
libcaf_io_shared
)
set_target_properties
(
libcaf_io
PROPERTIES
EXPORT_NAME io
SOVERSION
${
CAF_VERSION
}
VERSION
${
CAF_VERSION
}
OUTPUT_NAME caf_io
)
install
(
TARGETS libcaf_io_shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
)
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 lib
)
add_dependencies
(
libcaf_io_static libcaf_io
)
endif
()
OUTPUT_NAME caf_io
)
# install includes
install
(
DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
/caf
install
(
TARGETS libcaf_io
EXPORT CAFTargets
ARCHIVE DESTINATION lib COMPONENT io
RUNTIME DESTINATION bin COMPONENT io
LIBRARY DESTINATION lib COMPONENT io
)
install
(
DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/caf"
DESTINATION include
FILES_MATCHING PATTERN
"*.hpp"
)
COMPONENT io
FILES_MATCHING PATTERN
"*.hpp"
)
add_library
(
caf::io ALIAS libcaf_io
)
list
(
APPEND CAF_LIBRARIES libcaf_io
)
set
(
CAF_LIBRARIES
${
CAF_LIBRARIES
}
PARENT_SCOPE
)
libcaf_opencl/CMakeLists.txt
View file @
3fcb99f1
...
...
@@ -14,42 +14,34 @@ set(LIBCAF_OPENCL_SRCS
src/program.cpp
)
# build shared library if not compiling static only
if
(
NOT CAF_BUILD_STATIC_ONLY
)
add_library
(
libcaf_opencl_shared SHARED
${
LIBCAF_OPENCL_SRCS
}
${
LIBCAF_OPENCL_HDRS
}
${
OpenCL_INCLUDE_DIRS
}
)
target_link_libraries
(
libcaf_opencl_shared
${
CAF_EXTRA_LDFLAGS
}
${
CAF_LIBRARY_CORE
}
${
OpenCL_LIBRARIES
}
)
target_link_libraries
(
libcaf_opencl_shared
message
(
STATUS
"OpenCL_LIBRARIES =
${
OpenCL_LIBRARIES
}
"
)
add_library
(
libcaf_opencl
${
LIBCAF_OPENCL_SRCS
}
${
LIBCAF_OPENCL_HDRS
}
)
target_link_libraries
(
libcaf_opencl PUBLIC caf::core
${
OpenCL_LIBRARIES
}
)
target_include_directories
(
libcaf_opencl PUBLIC
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
>
$<INSTALL_INTERFACE:include>
)
set_target_properties
(
libcaf_opencl_shared
)
set_target_properties
(
libcaf_opencl
PROPERTIES
SOVERSION
"
${
CAF_VERSION
}
"
VERSION
"
${
CAF_VERSION
}
"
OUTPUT_NAME caf_opencl
)
install
(
TARGETS libcaf_opencl_shared LIBRARY DESTINATION lib
)
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_opencl_static STATIC
${
LIBCAF_OPENCL_SRCS
}
${
LIBCAF_OPENCL_HDRS
}
${
OpenCL_INCLUDE_DIRS
}
)
target_link_libraries
(
libcaf_opencl_static
${
CAF_EXTRA_LDFLAGS
}
${
CAF_LIBRARY_CORE_STATIC
}
${
OpenCL_LIBRARIES
}
)
target_link_libraries
(
libcaf_opencl_static
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
>
$<INSTALL_INTERFACE:include>
)
set_target_properties
(
libcaf_opencl_static PROPERTIES OUTPUT_NAME caf_opencl_static
)
install
(
TARGETS libcaf_opencl_static ARCHIVE DESTINATION lib
)
endif
()
EXPORT_NAME opencl
SOVERSION
${
CAF_VERSION
}
VERSION
${
CAF_VERSION
}
OUTPUT_NAME caf_opencl
)
# install includes
install
(
DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
/caf
install
(
TARGETS libcaf_opencl
EXPORT CAFTargets
ARCHIVE DESTINATION lib COMPONENT opencl
RUNTIME DESTINATION bin COMPONENT opencl
LIBRARY DESTINATION lib COMPONENT opencl
)
install
(
DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/caf"
DESTINATION include
FILES_MATCHING PATTERN
"*.hpp"
)
COMPONENT opencl
FILES_MATCHING PATTERN
"*.hpp"
)
add_library
(
caf::opencl ALIAS libcaf_opencl
)
list
(
APPEND CAF_LIBRARIES libcaf_opencl
)
set
(
CAF_LIBRARIES
${
CAF_LIBRARIES
}
PARENT_SCOPE
)
libcaf_openssl/CMakeLists.txt
View file @
3fcb99f1
...
...
@@ -13,54 +13,35 @@ set(LIBCAF_OPENSSL_SRCS
src/session.cpp
)
add_
custom_target
(
libcaf_openssl
)
if
(
MINGW
)
set
(
OPENSSL_LIBRARIES
${
OPENSSL_LIBRARIES
}
-lz
)
add_
library
(
libcaf_openssl
${
LIBCAF_OPENSSL_SRCS
}
${
LIBCAF_OPENSSL_HDRS
}
)
target_link_libraries
(
libcaf_openssl PUBLIC caf::core caf::io
${
OPENSSL_LIBRARIES
}
)
if
(
NOT APPLE AND NOT WIN32
)
target_link_libraries
(
libcaf_openssl PUBLIC
"-pthread"
)
endif
()
# build shared library if not compiling static only
if
(
NOT CAF_BUILD_STATIC_ONLY
)
add_library
(
libcaf_openssl_shared SHARED
${
LIBCAF_OPENSSL_SRCS
}
${
LIBCAF_OPENSSL_HDRS
}
)
target_link_libraries
(
libcaf_openssl_shared
${
CAF_EXTRA_LDFLAGS
}
${
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
target_include_directories
(
libcaf_openssl PUBLIC
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
>
$<INSTALL_INTERFACE:include>
)
set_target_properties
(
libcaf_openssl
PROPERTIES
EXPORT_NAME openssl
SOVERSION
${
CAF_VERSION
}
VERSION
${
CAF_VERSION
}
OUTPUT_NAME caf_openssl
)
if
(
CYGWIN
)
install
(
TARGETS libcaf_openssl_shared RUNTIME DESTINATION bin
)
elseif
(
NOT WIN32
)
install
(
TARGETS libcaf_openssl_shared LIBRARY DESTINATION lib
)
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 lib
)
endif
()
add_dependencies
(
libcaf_openssl_static libcaf_openssl
)
endif
()
link_directories
(
${
LD_DIRS
}
)
include_directories
(
.
${
INCLUDE_DIRS
}
)
OUTPUT_NAME caf_openssl
)
# install includes
if
(
NOT WIN32
)
install
(
DIRECTORY caf/ DESTINATION include/caf FILES_MATCHING PATTERN
"*.hpp"
)
endif
()
install
(
TARGETS libcaf_openssl
EXPORT CAFTargets
ARCHIVE DESTINATION lib COMPONENT openssl
RUNTIME DESTINATION bin COMPONENT openssl
LIBRARY DESTINATION lib COMPONENT openssl
)
install
(
DIRECTORY
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/caf"
DESTINATION include
COMPONENT openssl
FILES_MATCHING PATTERN
"*.hpp"
)
add_library
(
caf::openssl ALIAS libcaf_openssl
)
list
(
APPEND CAF_LIBRARIES libcaf_openssl
)
set
(
CAF_LIBRARIES
${
CAF_LIBRARIES
}
PARENT_SCOPE
)
libcaf_python/CMakeLists.txt
View file @
3fcb99f1
cmake_minimum_required
(
VERSION 2.8
)
cmake_minimum_required
(
VERSION 2.8
.12
)
project
(
caf_cash CXX
)
# check whether submodules are available
...
...
@@ -47,8 +47,7 @@ if(NOT CAF_NO_PYTHON)
add_executable
(
caf-python
${
CAF_PYTHON_SRCS
}
${
CAF_PYTHON_HDRS
}
)
target_link_libraries
(
caf-python
${
CAF_EXTRA_LDFLAGS
}
${
CAF_LIBRARY_CORE
}
${
CAF_LIBRARY_IO
}
caf::core caf::io
${
CAF_LIBRARY_RIAC
}
${
PTHREAD_LIBRARIES
}
${
LIBEDIT_LIBRARIES
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment