Commit 42f02799 authored by Tobias Mayer's avatar Tobias Mayer

Make build_config.hpp actually part of the build

This also moves build_config into the libcaf_core target.
parent 376b5411
...@@ -12,7 +12,6 @@ manual ...@@ -12,7 +12,6 @@ manual
*.swp *.swp
bii/* bii/*
.idea/ .idea/
libcaf_core/caf/detail/build_config.hpp
.ycm_extra_conf.pyc .ycm_extra_conf.pyc
blog_release_note.md blog_release_note.md
github_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) project(caf C CXX)
include(CheckCSourceCompiles) include(CheckCSourceCompiles)
...@@ -98,7 +98,6 @@ if(CAF_USE_CCACHE) ...@@ -98,7 +98,6 @@ if(CAF_USE_CCACHE)
if(CCACHE_PROGRAM) if(CCACHE_PROGRAM)
message(STATUS "Using ccache command: ${CCACHE_PROGRAM}") message(STATUS "Using ccache command: ${CCACHE_PROGRAM}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}")
else() else()
message(STATUS "Unable to find ccache") message(STATUS "Unable to find ccache")
endif() endif()
...@@ -365,37 +364,18 @@ if (DEFINED CMAKE_LD_LIBS) ...@@ -365,37 +364,18 @@ if (DEFINED CMAKE_LD_LIBS)
endif() endif()
################################################################################ ################################################################################
# configure build_config.hpp header # # setup logging #
################################################################################ ################################################################################
if(NOT CAF_LOG_LEVEL) if(NOT CAF_LOG_LEVEL)
set(CAF_LOG_LEVEL "-1") set(CAF_LOG_LEVEL "-1")
endif() 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 # # setup for install target #
################################################################################ ################################################################################
# install includes from core # install includes from core
install(DIRECTORY libcaf_core/caf/
DESTINATION include/caf FILES_MATCHING PATTERN "*.hpp")
# install includes from io # install includes from io
install(DIRECTORY libcaf_io/caf/ DESTINATION include/caf install(DIRECTORY libcaf_io/caf/ DESTINATION include/caf
FILES_MATCHING PATTERN "*.hpp") FILES_MATCHING PATTERN "*.hpp")
......
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 2.8.12)
project(caf_core C CXX) project(caf_core C CXX)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
include_directories(.)
# get header files; only needed by CMake generators, # get header files; only needed by CMake generators,
# e.g., for creating proper Xcode projects # e.g., for creating proper Xcode projects
file(GLOB_RECURSE LIBCAF_CORE_HDRS "caf/*.hpp") file(GLOB_RECURSE LIBCAF_CORE_HDRS "caf/*.hpp")
...@@ -131,22 +127,46 @@ set(LIBCAF_CORE_SRCS ...@@ -131,22 +127,46 @@ set(LIBCAF_CORE_SRCS
src/work_stealing.cpp src/work_stealing.cpp
) )
# configure build_config.hpp header
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_BINARY_DIR}/caf/detail/build_config.hpp"
@ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/caf/detail/build_config.hpp"
DESTINATION include/caf/detail
)
add_custom_target(libcaf_core) add_custom_target(libcaf_core)
# build shared library if not compiling static only # build shared library if not compiling static only
if (NOT CAF_BUILD_STATIC_ONLY) if (NOT CAF_BUILD_STATIC_ONLY)
add_library(libcaf_core_shared SHARED ${LIBCAF_CORE_SRCS} ${LIBCAF_CORE_HDRS}) add_library(libcaf_core_shared SHARED ${LIBCAF_CORE_SRCS} ${LIBCAF_CORE_HDRS})
target_link_libraries(libcaf_core_shared ${CAF_EXTRA_LDFLAGS}) 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 set_target_properties(libcaf_core_shared
PROPERTIES PROPERTIES
SOVERSION ${CAF_VERSION} SOVERSION ${CAF_VERSION}
VERSION ${CAF_VERSION} VERSION ${CAF_VERSION}
OUTPUT_NAME caf_core) OUTPUT_NAME caf_core)
if (CYGWIN) install(TARGETS libcaf_core_shared
install(TARGETS libcaf_core_shared RUNTIME DESTINATION bin) RUNTIME DESTINATION bin
else() LIBRARY DESTINATION lib
install(TARGETS libcaf_core_shared LIBRARY DESTINATION lib) )
endif()
add_dependencies(libcaf_core_shared libcaf_core) add_dependencies(libcaf_core_shared libcaf_core)
endif () endif ()
...@@ -154,10 +174,17 @@ endif () ...@@ -154,10 +174,17 @@ endif ()
if (CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC) if (CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC)
add_library(libcaf_core_static STATIC ${LIBCAF_CORE_HDRS} ${LIBCAF_CORE_SRCS}) add_library(libcaf_core_static STATIC ${LIBCAF_CORE_HDRS} ${LIBCAF_CORE_SRCS})
target_link_libraries(libcaf_core_static ${CAF_EXTRA_LDFLAGS}) 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) set_target_properties(libcaf_core_static PROPERTIES OUTPUT_NAME caf_core_static)
install(TARGETS libcaf_core_static ARCHIVE DESTINATION lib) install(TARGETS libcaf_core_static ARCHIVE DESTINATION lib)
add_dependencies(libcaf_core_static libcaf_core) add_dependencies(libcaf_core_static libcaf_core)
endif () endif ()
link_directories(${LD_DIRS}) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/caf"
include_directories(. ${INCLUDE_DIRS}) 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