projects/aports·blob master · refs

75 lines · 2.1 KiB

1diff --git a/CMakeLists.txt b/CMakeLists.txt
2index 32d537d..8e361da 100644
3--- a/CMakeLists.txt
4+++ b/CMakeLists.txt
5@@ -1,8 +1,9 @@
6+cmake_minimum_required(VERSION 3.23)
7 cmake_policy(SET CMP0091 NEW)
8 project(libarcus)
9-cmake_minimum_required(VERSION 3.23)
10-find_package(standardprojectsettings REQUIRED)
11-find_package(protobuf REQUIRED)
12+
13+include(CMakePackageConfigHelpers)
14+find_package(Protobuf REQUIRED)
15
16 set(arcus_SRCS
17 src/Socket.cpp
18@@ -12,16 +13,20 @@ set(arcus_SRCS
19 src/Error.cpp
20 )
21
22+set(arcus_HDRS
23+ include/Arcus/Socket.h
24+ include/Arcus/SocketListener.h
25+ include/Arcus/Types.h
26+ include/Arcus/MessageTypeStore.h
27+ include/Arcus/Error.h
28+)
29+
30 if(BUILD_SHARED_LIBS)
31 add_library(Arcus SHARED ${arcus_SRCS})
32 else()
33 add_library(Arcus STATIC ${arcus_SRCS})
34 endif()
35
36-set_project_warnings(Arcus)
37-enable_sanitizers(Arcus)
38-use_threads(Arcus)
39-
40 target_include_directories(Arcus
41 PUBLIC
42 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>
43@@ -38,3 +43,32 @@ if(WIN32)
44 target_link_libraries(Arcus PUBLIC Ws2_32)
45 set_target_properties(Arcus PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
46 endif()
47+
48+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
49+
50+set_target_properties(Arcus PROPERTIES
51+ FRAMEWORK FALSE
52+ VERSION ${ARCUS_VERSION}
53+ PUBLIC_HEADER "${arcus_HDRS}"
54+)
55+
56+configure_package_config_file(ArcusConfig.cmake.in ${CMAKE_BINARY_DIR}/ArcusConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Arcus)
57+write_basic_package_version_file(${CMAKE_BINARY_DIR}/ArcusConfigVersion.cmake VERSION ${ARCUS_VERSION} COMPATIBILITY SameMajorVersion)
58+
59+install(FILES
60+ ${CMAKE_BINARY_DIR}/ArcusConfig.cmake
61+ ${CMAKE_BINARY_DIR}/ArcusConfigVersion.cmake
62+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Arcus
63+)
64+
65+install(TARGETS Arcus
66+ EXPORT Arcus-targets
67+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
68+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
69+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
70+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/Arcus
71+)
72+
73+install(EXPORT Arcus-targets
74+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Arcus
75+)