Unverified Commit dc5f58fa authored by Dominik Charousset's avatar Dominik Charousset Committed by GitHub

Merge pull request #754

Make build_config.hpp actually part of the build
parents 376b5411 a2519780
......@@ -12,7 +12,6 @@ manual
*.swp
bii/*
.idea/
libcaf_core/caf/detail/build_config.hpp
.ycm_extra_conf.pyc
blog_release_note.md
github_release_note.md
......
cmake_minimum_required(VERSION 2.8.4)
cmake_minimum_required(VERSION 2.8.12)
project(caf C CXX)
include(CheckCSourceCompiles)
......@@ -98,7 +98,6 @@ if(CAF_USE_CCACHE)
if(CCACHE_PROGRAM)
message(STATUS "Using ccache command: ${CCACHE_PROGRAM}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}")
else()
message(STATUS "Unable to find ccache")
endif()
......@@ -365,48 +364,20 @@ if (DEFINED CMAKE_LD_LIBS)
endif()
################################################################################
# configure build_config.hpp header #
# setup logging #
################################################################################
if(NOT CAF_LOG_LEVEL)
set(CAF_LOG_LEVEL "-1")
endif()
macro(to_int_value name)
if(${name})
set(${name}_INT 1)
else()
set(${name}_INT -1)
endif()
endmacro()
to_int_value(CAF_NO_EXCEPTIONS)
to_int_value(CAF_NO_MEM_MANAGEMENT)
to_int_value(CAF_ENABLE_RUNTIME_CHECKS)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/build_config.hpp.in"
"${CMAKE_CURRENT_SOURCE_DIR}/libcaf_core/caf/detail/build_config.hpp"
IMMEDIATE @ONLY)
################################################################################
# setup for install target #
################################################################################
# install includes from core
install(DIRECTORY libcaf_core/caf/
DESTINATION include/caf FILES_MATCHING PATTERN "*.hpp")
# install includes from io
install(DIRECTORY libcaf_io/caf/ DESTINATION include/caf
FILES_MATCHING PATTERN "*.hpp")
# install includes from test
install(DIRECTORY libcaf_test/caf/ DESTINATION include/caf
FILES_MATCHING PATTERN "*.hpp")
# install includes from opencl
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libcaf_opencl/CMakeLists.txt")
install(DIRECTORY libcaf_opencl/caf/ DESTINATION include/caf
FILES_MATCHING PATTERN "*.hpp")
endif()
# process cmake_uninstall.cmake.in
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
......
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 2.8.12)
project(caf_core C CXX)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
include_directories(.)
# get header files; only needed by CMake generators,
# e.g., for creating proper Xcode projects
file(GLOB_RECURSE LIBCAF_CORE_HDRS "caf/*.hpp")
......@@ -131,22 +127,38 @@ set(LIBCAF_CORE_SRCS
src/work_stealing.cpp
)
# configure build_config.hpp header
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../cmake/build_config.hpp.in"
"${CMAKE_CURRENT_BINARY_DIR}/caf/detail/build_config.hpp"
@ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/caf/detail/build_config.hpp"
DESTINATION include/caf/detail
)
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
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
set_target_properties(libcaf_core_shared
PROPERTIES
SOVERSION ${CAF_VERSION}
VERSION ${CAF_VERSION}
OUTPUT_NAME caf_core)
if (CYGWIN)
install(TARGETS libcaf_core_shared RUNTIME DESTINATION bin)
else()
install(TARGETS libcaf_core_shared LIBRARY DESTINATION lib)
endif()
OUTPUT_NAME caf_core
)
install(TARGETS libcaf_core_shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
)
add_dependencies(libcaf_core_shared libcaf_core)
endif ()
......@@ -154,10 +166,17 @@ endif ()
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 ()
link_directories(${LD_DIRS})
include_directories(. ${INCLUDE_DIRS})
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/caf"
DESTINATION include
FILES_MATCHING PATTERN "*.hpp"
)
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 2.8.12)
project(caf_io C CXX)
# get header files; only needed by CMake generators,
......@@ -55,16 +55,18 @@ add_custom_target(libcaf_io)
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}>
$<INSTALL_INTERFACE:include>
)
set_target_properties(libcaf_io_shared
PROPERTIES
SOVERSION ${CAF_VERSION}
VERSION ${CAF_VERSION}
OUTPUT_NAME caf_io)
if (CYGWIN)
install(TARGETS libcaf_io_shared RUNTIME DESTINATION bin)
else()
install(TARGETS libcaf_io_shared LIBRARY DESTINATION lib)
endif()
install(TARGETS libcaf_io_shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib)
add_dependencies(libcaf_io_shared libcaf_io)
endif ()
......@@ -72,16 +74,16 @@ endif ()
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 ()
link_directories(${LD_DIRS})
include_directories(. ${INCLUDE_DIRS})
# install includes
if(NOT WIN32)
install(DIRECTORY caf/ DESTINATION include/caf FILES_MATCHING PATTERN "*.hpp")
endif()
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/caf
DESTINATION include
FILES_MATCHING PATTERN "*.hpp")
......@@ -24,14 +24,16 @@ if(NOT CAF_BUILD_STATIC_ONLY)
target_link_libraries(libcaf_opencl_shared ${CAF_EXTRA_LDFLAGS}
${CAF_LIBRARY_CORE}
${OpenCL_LIBRARIES})
target_link_libraries(libcaf_opencl_shared
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
set_target_properties(libcaf_opencl_shared
PROPERTIES
SOVERSION "${CAF_VERSION}"
VERSION "${CAF_VERSION}"
OUTPUT_NAME caf_opencl)
if(NOT WIN32)
install(TARGETS libcaf_opencl_shared LIBRARY DESTINATION lib)
endif()
endif()
# build static library only if --build-static or --build-static-only was set
......@@ -42,12 +44,15 @@ if(CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC)
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()
link_directories(${LD_DIRS})
include_directories(. ${INCLUDE_DIRS})
# install includes
install(DIRECTORY caf/ DESTINATION include/caf FILES_MATCHING PATTERN "*.hpp")
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/caf
DESTINATION include
FILES_MATCHING PATTERN "*.hpp")
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