Skip to content

Commit 741c9ec

Browse files
committed
Add CMake Project
Now implemented: - standalote installation as asio package; - export asio::standalone library; - optional building and installation cpp11 and cpp14 examples; - import from buildtree.
1 parent b0926b6 commit 741c9ec

File tree

7 files changed

+706
-0
lines changed

7 files changed

+706
-0
lines changed

asio/CMakeLists.txt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Minimum supported CMake version
2+
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
3+
4+
# Project
5+
project(asio
6+
VERSION 1.12.0
7+
LANGUAGES CXX)
8+
9+
# Options
10+
set(asio_BUILD_EXAMPLES OFF CACHE BOOL "Build asio examples")
11+
12+
# Installation configuration
13+
include(GNUInstallDirs)
14+
if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR)
15+
set(CMAKE_INSTALL_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/asio)
16+
endif()
17+
18+
# Interface library
19+
add_subdirectory(include)
20+
21+
# Sources
22+
add_subdirectory(src)
23+
24+
# Installation
25+
include(CMakePackageConfigHelpers)
26+
write_basic_package_version_file(
27+
"${CMAKE_CURRENT_BINARY_DIR}/asio-config-version.cmake"
28+
VERSION ${${PROJECT_NAME}_VERSION}
29+
COMPATIBILITY AnyNewerVersion)
30+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/asio-config-version.cmake
31+
DESTINATION ${CMAKE_INSTALL_CMAKEDIR})
32+
install(EXPORT asio-targets
33+
DESTINATION ${CMAKE_INSTALL_CMAKEDIR}
34+
NAMESPACE asio::)
35+
install(FILES asio-config.cmake DESTINATION ${CMAKE_INSTALL_CMAKEDIR})
36+
37+
# Buildtree export
38+
configure_file(asio-config.cmake
39+
${CMAKE_CURRENT_BINARY_DIR}/asio-config.cmake COPYONLY)
40+
export(EXPORT asio-targets
41+
NAMESPACE asio::
42+
FILE ${CMAKE_CURRENT_BINARY_DIR}/asio-targets.cmake)

asio/asio-config.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include(${CMAKE_CURRENT_LIST_DIR}/asio-targets.cmake)

0 commit comments

Comments
 (0)