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 ...@@ -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,48 +364,20 @@ if (DEFINED CMAKE_LD_LIBS) ...@@ -365,48 +364,20 @@ 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(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 includes from test
install(DIRECTORY libcaf_test/caf/ DESTINATION include/caf install(DIRECTORY libcaf_test/caf/ DESTINATION include/caf
FILES_MATCHING PATTERN "*.hpp") 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 # process cmake_uninstall.cmake.in
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/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) 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,38 @@ set(LIBCAF_CORE_SRCS ...@@ -131,22 +127,38 @@ set(LIBCAF_CORE_SRCS
src/work_stealing.cpp 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) 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 RUNTIME DESTINATION bin) install(TARGETS libcaf_core_shared
else() RUNTIME DESTINATION bin
install(TARGETS libcaf_core_shared LIBRARY DESTINATION lib) LIBRARY DESTINATION lib
endif() )
add_dependencies(libcaf_core_shared libcaf_core) add_dependencies(libcaf_core_shared libcaf_core)
endif () endif ()
...@@ -154,10 +166,17 @@ endif () ...@@ -154,10 +166,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"
)
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 2.8.12)
project(caf_io C CXX) project(caf_io C CXX)
# get header files; only needed by CMake generators, # get header files; only needed by CMake generators,
...@@ -55,16 +55,18 @@ add_custom_target(libcaf_io) ...@@ -55,16 +55,18 @@ add_custom_target(libcaf_io)
if (NOT CAF_BUILD_STATIC_ONLY) if (NOT CAF_BUILD_STATIC_ONLY)
add_library(libcaf_io_shared SHARED ${LIBCAF_IO_SRCS} ${LIBCAF_IO_HDRS}) 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_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 set_target_properties(libcaf_io_shared
PROPERTIES PROPERTIES
SOVERSION ${CAF_VERSION} SOVERSION ${CAF_VERSION}
VERSION ${CAF_VERSION} VERSION ${CAF_VERSION}
OUTPUT_NAME caf_io) OUTPUT_NAME caf_io)
if (CYGWIN) install(TARGETS libcaf_io_shared
install(TARGETS libcaf_io_shared RUNTIME DESTINATION bin) RUNTIME DESTINATION bin
else() LIBRARY DESTINATION lib)
install(TARGETS libcaf_io_shared LIBRARY DESTINATION lib)
endif()
add_dependencies(libcaf_io_shared libcaf_io) add_dependencies(libcaf_io_shared libcaf_io)
endif () endif ()
...@@ -72,16 +74,16 @@ endif () ...@@ -72,16 +74,16 @@ endif ()
if (CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC) if (CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC)
add_library(libcaf_io_static STATIC ${LIBCAF_IO_HDRS} ${LIBCAF_IO_SRCS}) 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_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) set_target_properties(libcaf_io_static PROPERTIES OUTPUT_NAME caf_io_static)
install(TARGETS libcaf_io_static ARCHIVE DESTINATION lib) install(TARGETS libcaf_io_static ARCHIVE DESTINATION lib)
add_dependencies(libcaf_io_static libcaf_io) add_dependencies(libcaf_io_static libcaf_io)
endif () endif ()
link_directories(${LD_DIRS})
include_directories(. ${INCLUDE_DIRS})
# install includes # install includes
if(NOT WIN32) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/caf
install(DIRECTORY caf/ DESTINATION include/caf FILES_MATCHING PATTERN "*.hpp") DESTINATION include
endif() FILES_MATCHING PATTERN "*.hpp")
...@@ -24,14 +24,16 @@ if(NOT CAF_BUILD_STATIC_ONLY) ...@@ -24,14 +24,16 @@ if(NOT CAF_BUILD_STATIC_ONLY)
target_link_libraries(libcaf_opencl_shared ${CAF_EXTRA_LDFLAGS} target_link_libraries(libcaf_opencl_shared ${CAF_EXTRA_LDFLAGS}
${CAF_LIBRARY_CORE} ${CAF_LIBRARY_CORE}
${OpenCL_LIBRARIES}) ${OpenCL_LIBRARIES})
target_link_libraries(libcaf_opencl_shared
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
set_target_properties(libcaf_opencl_shared set_target_properties(libcaf_opencl_shared
PROPERTIES PROPERTIES
SOVERSION "${CAF_VERSION}" SOVERSION "${CAF_VERSION}"
VERSION "${CAF_VERSION}" VERSION "${CAF_VERSION}"
OUTPUT_NAME caf_opencl) OUTPUT_NAME caf_opencl)
if(NOT WIN32)
install(TARGETS libcaf_opencl_shared LIBRARY DESTINATION lib) install(TARGETS libcaf_opencl_shared LIBRARY DESTINATION lib)
endif()
endif() endif()
# build static library only if --build-static or --build-static-only was set # 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) ...@@ -42,12 +44,15 @@ if(CAF_BUILD_STATIC_ONLY OR CAF_BUILD_STATIC)
target_link_libraries(libcaf_opencl_static ${CAF_EXTRA_LDFLAGS} target_link_libraries(libcaf_opencl_static ${CAF_EXTRA_LDFLAGS}
${CAF_LIBRARY_CORE_STATIC} ${CAF_LIBRARY_CORE_STATIC}
${OpenCL_LIBRARIES}) ${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) set_target_properties(libcaf_opencl_static PROPERTIES OUTPUT_NAME caf_opencl_static)
install(TARGETS libcaf_opencl_static ARCHIVE DESTINATION lib) install(TARGETS libcaf_opencl_static ARCHIVE DESTINATION lib)
endif() endif()
link_directories(${LD_DIRS})
include_directories(. ${INCLUDE_DIRS})
# install includes # 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