mirror of
https://github.com/gelldur/EventBus.git
synced 2024-12-27 12:21:02 +08:00
3688c145cb
commit f7dd4172cf535cf52601a8819cf5c8bfabcd1fe4 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 31 10:26:27 2018 +0200 Improve Travis script Fixed after reordering project structure commit d054e5c91762da15defa458404e355d7c670e301 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Mon Jul 30 15:11:21 2018 +0200 Update Travis CI for linux and OSX commit 63395f5a7e3dd9f2a52b2d6a254da89ec1d6e5e9 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Fri Jul 27 14:38:40 2018 +0200 Secure EventBus from wrong usage For example user previously could do such thing: bus.listen<const MyEvent>(...) bus.listen<MyEvent>(...) Those we 2 different events :/ commit f9195316d3ba6313ee425e3194b65b32fe52d641 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Thu Jul 26 12:44:17 2018 +0200 Update for better managing Debug/Release Updated project for easy switch between debug/release versions of library Thanks to that we can do only find_package and don't have to care about if's switching between debug/release Thanks: https://github.com/forexample/package-example commit 7d708959d9e96176875ca882f0f69a72622added Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Wed Jul 25 13:45:55 2018 +0200 Update clang-format style commit beb1d3b863379490f321e43f3e42ab272954ea67 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 16:05:16 2018 +0200 Add some docs commit ca450dfeee2d4bc604bbb9bf0599f373c21a4173 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 15:49:52 2018 +0200 Remove not needed includes commit 6473b80e8e60408675bcc4adc88653390576c4bd Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 15:41:57 2018 +0200 Code format commit 8abb56e1dd4b71df2b05bb34bef0530567e4ff2e Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 15:41:40 2018 +0200 Improve performance Thanks to that we don't need RTTI commit 1feacbb1f9ae6a5ac2209a6dc1df5c868ead8fd4 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 15:14:16 2018 +0200 Remove trash commit b5dc5c05589b969dd61eb65b68e4cdce69c5a5fb Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 15:00:15 2018 +0200 Fix include path commit 9939fd09805191f0bdada6cb85193a291d519116 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 14:51:02 2018 +0200 Update install lib commit 9eaa09f9ec5a29045b03ffc7632878863a2b2b9b Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 14:50:47 2018 +0200 Fix commit 7a5b3323af0b728f7e511ac22ff5027c6d06402e Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 14:16:12 2018 +0200 Update README commit beb6599ee4385fdffc747dc866db46e160be1358 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 14:16:05 2018 +0200 Add performance compare to Poco::NotifactionCenter commit 1d25b997580a9ee09c9db86135b4ca9e1b1a10c6 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 14:14:08 2018 +0200 Update clang-format commit 4f4cb4a7e8a849c067a42085eb3e76c3df894bc7 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 13:04:30 2018 +0200 Remove bad flag It is only working for GCC commit 66a7945084607f94d9d0c803008398e8d281fd06 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 13:03:15 2018 +0200 Remove deprecated stuff It was breaking encapsulation commit 1e7500607b42bff3632250f623888b95a503dfd0 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 13:01:37 2018 +0200 Update sample commit 11a146bb9145fa55f9b9a39a9e033387007a7151 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 13:01:27 2018 +0200 Add clang-format rules commit 685562c632d9751f50a2f05b92ef9ebf53a5d6e0 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 12:47:10 2018 +0200 Reorganize project layout Inspired by: https://www.youtube.com/watch?v=6sWec7b0JIc commit 40d1d6487814730533d7dd7cbedbaf2b4e34ef19 Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 12:45:55 2018 +0200 Remove Catch2 submodule Switch to own dependency commit ca21df04f392adcb027a5b4f25ffac085b51f48c Author: Dawid Drozd <dawid.drozd@mobica.com> Date: Tue Jul 24 11:28:51 2018 +0200 Remove old code
105 lines
2.8 KiB
CMake
105 lines
2.8 KiB
CMake
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
|
|
|
|
# BUILD_SHARED_LIBS can controll build type!
|
|
project(EventBus
|
|
VERSION 2.2.0
|
|
LANGUAGES CXX
|
|
)
|
|
|
|
# Dependencies
|
|
# No dependencies for EventBus yay!
|
|
|
|
# Introduce variables:
|
|
# * CMAKE_INSTALL_LIBDIR
|
|
# * CMAKE_INSTALL_BINDIR
|
|
# * CMAKE_INSTALL_INCLUDEDIR
|
|
include(GNUInstallDirs)
|
|
|
|
# Layout. This works for all platforms:
|
|
# * <prefix>/lib*/cmake/<PROJECT-NAME>
|
|
# * <prefix>/lib*/
|
|
# * <prefix>/include/
|
|
set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
|
|
|
|
# Library definition
|
|
add_library(EventBus
|
|
src/EventCollector.cpp include/eventbus/EventCollector.h
|
|
include/eventbus/EventBus.h
|
|
)
|
|
add_library(Dexode::EventBus ALIAS EventBus)
|
|
|
|
target_compile_features(EventBus PUBLIC cxx_std_14)
|
|
|
|
target_include_directories(EventBus PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>
|
|
$<INSTALL_INTERFACE:include/>
|
|
PRIVATE lib/src/
|
|
)
|
|
|
|
# Add definitions for targets
|
|
# Values:
|
|
# * Debug: -DEVENTBUS_DEBUG=1
|
|
# * Release: -DEVENTBUS_DEBUG=0
|
|
# * other: -DEVENTBUS_DEBUG=0
|
|
target_compile_definitions(EventBus PUBLIC "EVENTBUS_DEBUG=$<CONFIG:Debug>")
|
|
|
|
|
|
# Configuration
|
|
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
|
set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
|
|
set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
|
|
set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
|
|
set(namespace "Dexode::")
|
|
|
|
# Targets:
|
|
# * <prefix>/lib/libEventBus.a
|
|
# * header location after install: <prefix>/include/eventbus/EventBus.h
|
|
# * headers can be included by C++ code `#include <eventbus/EventBus.h>`
|
|
install(TARGETS EventBus
|
|
EXPORT "${TARGETS_EXPORT_NAME}"
|
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
|
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
|
)
|
|
|
|
# Export headers
|
|
install(DIRECTORY include/eventbus
|
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
|
)
|
|
|
|
# Include module with fuction 'write_basic_package_version_file'
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
# Configure '<PROJECT-NAME>ConfigVersion.cmake'
|
|
# Use:
|
|
# * PROJECT_VERSION
|
|
write_basic_package_version_file(
|
|
"${version_config}" COMPATIBILITY SameMajorVersion
|
|
)
|
|
|
|
# Configure '<PROJECT-NAME>Config.cmake'
|
|
# Use variables:
|
|
# * TARGETS_EXPORT_NAME
|
|
# * PROJECT_NAME
|
|
configure_package_config_file(
|
|
"cmake/Config.cmake.in"
|
|
"${project_config}"
|
|
INSTALL_DESTINATION "${config_install_dir}"
|
|
)
|
|
|
|
# Config
|
|
# * <prefix>/lib/cmake/EventBusventBusConfig.cmake
|
|
# * <prefix>/lib/cmake/EventBus/EventBusConfigVersion.cmake
|
|
install(
|
|
FILES "${project_config}" "${version_config}"
|
|
DESTINATION "${config_install_dir}"
|
|
)
|
|
|
|
# Config
|
|
# * <prefix>/lib/cmake/EventBus/EventBusTargets.cmake
|
|
install(EXPORT "${TARGETS_EXPORT_NAME}"
|
|
DESTINATION "${config_install_dir}"
|
|
NAMESPACE "${namespace}"
|
|
)
|