mirror of
https://github.com/gelldur/EventBus.git
synced 2024-12-26 18:51:02 +08:00
Add new way of installing public headers
This commit is contained in:
parent
be33318242
commit
412bc653aa
@ -19,6 +19,8 @@ set(CMAKE_CXX_STANDARD 17)
|
|||||||
# * CMAKE_INSTALL_BINDIR
|
# * CMAKE_INSTALL_BINDIR
|
||||||
# * CMAKE_INSTALL_INCLUDEDIR
|
# * CMAKE_INSTALL_INCLUDEDIR
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
include(cmake/InstallHelp.cmake)
|
||||||
|
|
||||||
|
|
||||||
# Layout. This works for all platforms:
|
# Layout. This works for all platforms:
|
||||||
# * <prefix>/lib*/cmake/<PROJECT-NAME>
|
# * <prefix>/lib*/cmake/<PROJECT-NAME>
|
||||||
@ -43,7 +45,6 @@ add_library(EventBus
|
|||||||
src/dexode/eventbus/strategy/Protected.cpp include/dexode/eventbus/strategy/Protected.hpp
|
src/dexode/eventbus/strategy/Protected.cpp include/dexode/eventbus/strategy/Protected.hpp
|
||||||
src/dexode/eventbus/strategy/Transaction.cpp include/dexode/eventbus/strategy/Transaction.hpp
|
src/dexode/eventbus/strategy/Transaction.cpp include/dexode/eventbus/strategy/Transaction.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(Dexode::EventBus ALIAS EventBus)
|
add_library(Dexode::EventBus ALIAS EventBus)
|
||||||
|
|
||||||
target_compile_features(EventBus PUBLIC cxx_std_14)
|
target_compile_features(EventBus PUBLIC cxx_std_14)
|
||||||
@ -54,6 +55,13 @@ target_include_directories(EventBus PUBLIC
|
|||||||
PRIVATE lib/src/
|
PRIVATE lib/src/
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(EventBus_PUBLIC_HEADERS
|
||||||
|
include/dexode/EventBus.hpp
|
||||||
|
include/dexode/eventbus/Listener.hpp
|
||||||
|
include/dexode/eventbus/Subscriber.hpp
|
||||||
|
include/dexode/eventbus/strategy/Protected.hpp
|
||||||
|
include/dexode/eventbus/strategy/Transaction.hpp
|
||||||
|
)
|
||||||
# Add definitions for targets
|
# Add definitions for targets
|
||||||
# Values:
|
# Values:
|
||||||
# * Debug: -DEVENTBUS_DEBUG=1
|
# * Debug: -DEVENTBUS_DEBUG=1
|
||||||
@ -121,8 +129,10 @@ install(EXPORT "${TARGETS_EXPORT_NAME}"
|
|||||||
NAMESPACE "${namespace}"
|
NAMESPACE "${namespace}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
install_public_headers_with_directory(EventBus_PUBLIC_HEADERS "include/")
|
||||||
|
|
||||||
# Cpack configuration
|
# Cpack configuration
|
||||||
if(NOT CPACK_GENERATOR STREQUAL "")
|
if(NOT CPACK_GENERATOR STREQUAL "")
|
||||||
include("cmake/EventBus_CPack.cmake")
|
include(cmake/EventBus_CPack.cmake)
|
||||||
enable_cpack(${CPACK_GENERATOR})
|
enable_cpack(${CPACK_GENERATOR})
|
||||||
endif()
|
endif()
|
||||||
|
14
lib/cmake/InstallHelp.cmake
Normal file
14
lib/cmake/InstallHelp.cmake
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#
|
||||||
|
# Installs files with preserving paths.
|
||||||
|
#
|
||||||
|
# Example usage:
|
||||||
|
# install_public_headers_with_directory(MyHeadersList "src/")
|
||||||
|
#
|
||||||
|
macro(install_public_headers_with_directory HEADER_LIST IGNORE_PREFIX)
|
||||||
|
foreach(HEADER ${${HEADER_LIST}})
|
||||||
|
get_filename_component(DIR ${HEADER} DIRECTORY)
|
||||||
|
string(REPLACE ${IGNORE_PREFIX} "" DIR ${DIR})
|
||||||
|
install(FILES ${HEADER} DESTINATION include/${DIR})
|
||||||
|
endforeach(HEADER)
|
||||||
|
|
||||||
|
endmacro(install_public_headers_with_directory)
|
Loading…
x
Reference in New Issue
Block a user