Skip to content

Commit b214dec

Browse files
committed
Add cmake package config support; bump version to 1.0.5
1 parent b908bae commit b214dec

3 files changed

Lines changed: 105 additions & 3 deletions

File tree

CHANGELOG

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
#v1.0.5 - [02/04/2026]
2+
- Add CMake package configuration support for find_package()
3+
- Add cmake/slick-socketConfig.cmake.in template
4+
- Add slick-socketConfigVersion.cmake generation with SameMajorVersion compatibility
5+
- Install CMake config files to lib/cmake/slick-socket/
6+
- Export library targets with proper install commands
7+
- Enable downstream projects to use find_package(slick-socket)
8+
19
#v1.0.4 - [01/12/2026]
210
- Rename repository from slick_socket to slick-socket (hyphenated naming follows recommended convention)
311
- Changed export name from slick::slick_socket to slick::socket

CMakeLists.txt

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
55
set(CMAKE_CXX_EXTENSIONS OFF)
66

77
project(slick-socket
8-
VERSION 1.0.4
8+
VERSION 1.0.5
99
LANGUAGES C CXX
1010
)
1111

@@ -120,12 +120,64 @@ if(BUILD_SLICK_SOCKET_TESTING)
120120
add_subdirectory(tests)
121121
endif()
122122

123+
# Install headers
123124
install(DIRECTORY include/ DESTINATION include)
125+
126+
# Install library targets
124127
if (WIN32)
125128
if (BUILD_SLICK_SOCKET_STATIC_LIBS)
126-
install(DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE}/ DESTINATION lib)
129+
install(TARGETS slick-socket
130+
EXPORT slick-socketTargets
131+
ARCHIVE DESTINATION lib
132+
LIBRARY DESTINATION lib
133+
RUNTIME DESTINATION bin
134+
)
127135
endif()
128136
if (BUILD_SLICK_SOCKET_SHARED_LIBS)
129-
install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}/ DESTINATION bin)
137+
install(TARGETS slick-socket-shared
138+
EXPORT slick-socketTargets
139+
ARCHIVE DESTINATION lib
140+
LIBRARY DESTINATION lib
141+
RUNTIME DESTINATION bin
142+
)
130143
endif()
144+
else()
145+
install(TARGETS slick-socket
146+
EXPORT slick-socketTargets
147+
ARCHIVE DESTINATION lib
148+
LIBRARY DESTINATION lib
149+
)
131150
endif()
151+
152+
# Install CMake package configuration files
153+
include(CMakePackageConfigHelpers)
154+
155+
# Generate the config file from template
156+
configure_package_config_file(
157+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/slick-socketConfig.cmake.in
158+
${CMAKE_CURRENT_BINARY_DIR}/slick-socketConfig.cmake
159+
INSTALL_DESTINATION lib/cmake/slick-socket
160+
)
161+
162+
# Generate version file
163+
write_basic_package_version_file(
164+
${CMAKE_CURRENT_BINARY_DIR}/slick-socketConfigVersion.cmake
165+
VERSION ${PROJECT_VERSION}
166+
COMPATIBILITY SameMajorVersion
167+
)
168+
169+
# Install the config and version files
170+
install(FILES
171+
${CMAKE_CURRENT_BINARY_DIR}/slick-socketConfig.cmake
172+
${CMAKE_CURRENT_BINARY_DIR}/slick-socketConfigVersion.cmake
173+
DESTINATION lib/cmake/slick-socket
174+
)
175+
176+
# Install the targets file
177+
install(EXPORT slick-socketTargets
178+
FILE slick-socketTargets.cmake
179+
NAMESPACE slick::
180+
DESTINATION lib/cmake/slick-socket
181+
)
182+
183+
message(STATUS "${PROJECT_NAME}: ${PROJECT_VERSION}")

cmake/slick-socketConfig.cmake.in

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
@PACKAGE_INIT@
2+
3+
# slick-socket CMake package configuration file
4+
# This file is used to find and configure the slick-socket library
5+
6+
include(CMakeFindDependencyMacro)
7+
8+
# Platform-specific dependencies
9+
if(WIN32)
10+
# Windows requires Winsock2 library
11+
find_dependency(Threads)
12+
endif()
13+
14+
# Include the targets file
15+
include("${CMAKE_CURRENT_LIST_DIR}/slick-socketTargets.cmake")
16+
17+
# Provide backward compatibility aliases
18+
if(NOT TARGET slick_socket)
19+
add_library(slick_socket ALIAS slick::socket)
20+
endif()
21+
22+
if(WIN32)
23+
if(TARGET slick::socket-shared AND NOT TARGET slick_socket_shared)
24+
add_library(slick_socket_shared ALIAS slick::socket-shared)
25+
endif()
26+
if(TARGET slick::socket-shared AND NOT TARGET slick::slick_socket_shared)
27+
add_library(slick::slick_socket_shared ALIAS slick::socket-shared)
28+
endif()
29+
endif()
30+
31+
if(NOT TARGET slick::slick_socket)
32+
add_library(slick::slick_socket ALIAS slick::socket)
33+
endif()
34+
35+
# Set package variables
36+
set(slick-socket_VERSION @PROJECT_VERSION@)
37+
set(slick-socket_VERSION_MAJOR @PROJECT_VERSION_MAJOR@)
38+
set(slick-socket_VERSION_MINOR @PROJECT_VERSION_MINOR@)
39+
set(slick-socket_VERSION_PATCH @PROJECT_VERSION_PATCH@)
40+
41+
# Verify that required components are found
42+
check_required_components(slick-socket)

0 commit comments

Comments
 (0)