mirror of
https://github.com/Naios/continuable.git
synced 2025-12-06 16:56:44 +08:00
Add install targets and CPack support
This commit is contained in:
parent
c75baaec90
commit
0fb0058f6b
@ -1,11 +1,12 @@
|
|||||||
cmake_minimum_required(VERSION 3.2)
|
cmake_minimum_required(VERSION 3.2)
|
||||||
project(continuable C CXX)
|
project(continuable VERSION 2.0.0 LANGUAGES C CXX)
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
if (NOT DEFINED CONTINUABLE_UNIT_TESTS
|
||||||
|
AND CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||||
set(CONTINUABLE_UNIT_TESTS ON)
|
set(CONTINUABLE_UNIT_TESTS ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -13,10 +14,12 @@ add_subdirectory(dep)
|
|||||||
|
|
||||||
# continuable-base
|
# continuable-base
|
||||||
add_library(continuable-base INTERFACE)
|
add_library(continuable-base INTERFACE)
|
||||||
|
add_library(continuable::continuable-base ALIAS continuable-base)
|
||||||
|
|
||||||
target_include_directories(continuable-base
|
target_include_directories(continuable-base
|
||||||
INTERFACE
|
INTERFACE
|
||||||
"${CMAKE_CURRENT_LIST_DIR}/include")
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
|
||||||
|
$<INSTALL_INTERFACE:include>)
|
||||||
|
|
||||||
target_link_libraries(continuable-base
|
target_link_libraries(continuable-base
|
||||||
INTERFACE
|
INTERFACE
|
||||||
@ -45,8 +48,40 @@ target_link_libraries(continuable
|
|||||||
continuable-base
|
continuable-base
|
||||||
function2)
|
function2)
|
||||||
|
|
||||||
|
# Create an install target
|
||||||
|
install(TARGETS continuable-base
|
||||||
|
EXPORT ContinuableConfig
|
||||||
|
INCLUDES DESTINATION include)
|
||||||
|
|
||||||
|
install(EXPORT ContinuableConfig
|
||||||
|
FILE ContinuableConfig.cmake
|
||||||
|
NAMESPACE continuable::
|
||||||
|
DESTINATION lib/cmake/continuable)
|
||||||
|
|
||||||
|
install(DIRECTORY include/continuable
|
||||||
|
DESTINATION include FILES_MATCHING PATTERN "*.hpp")
|
||||||
|
|
||||||
|
install(FILES LICENSE Readme.md
|
||||||
|
DESTINATION .)
|
||||||
|
|
||||||
|
# Setup CPack for bundling
|
||||||
|
set(CPACK_GENERATOR "ZIP")
|
||||||
|
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
||||||
|
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||||
|
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
|
||||||
|
|
||||||
|
# Since the header only library is platform independent
|
||||||
|
# we name the packages after the native line feed
|
||||||
|
if(WIN32)
|
||||||
|
set(CPACK_SYSTEM_NAME "crlf")
|
||||||
|
else()
|
||||||
|
set(CPACK_SYSTEM_NAME "lf")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(CPack)
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
if (CONTINUABLE_UNIT_TESTS)
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||||
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
|||||||
@ -99,7 +99,7 @@ int main(int, char**) {
|
|||||||
// auto socket = std::make_shared<udp::socket>(service);
|
// auto socket = std::make_shared<udp::socket>(service);
|
||||||
// socket->async_send_to()
|
// socket->async_send_to()
|
||||||
})
|
})
|
||||||
.fail([](cti::error_type error) {
|
.fail([](cti::error_type /*error*/) {
|
||||||
// ...
|
// ...
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user