Skip to content

Commit 2993cef

Browse files
authored
Merge pull request #21 from cen1/feature/cmakeTargets
Add cmake install targets
2 parents 5571561 + 457ea4a commit 2993cef

File tree

3 files changed

+53
-7
lines changed

3 files changed

+53
-7
lines changed

CMake/bncsutilConfig.cmake.in

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
@PACKAGE_INIT@
2+
3+
include("${CMAKE_CURRENT_LIST_DIR}/bncsutilTargets.cmake")
4+
5+
set(bncsutil_FOUND TRUE)
6+
set(bncsutil_VERSION "@PROJECT_VERSION@")
7+
message(STATUS "Found bncsutil: ${bncsutil_VERSION}")

CMakeLists.txt

+40-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
cmake_minimum_required(VERSION 3.25)
2-
project(bncsutil)
2+
SET(VERSION_MAJOR "1")
3+
SET(VERSION_MINOR "4")
4+
SET(VERSION_PATCH "3")
5+
6+
project(bncsutil VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
37

48
set(CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR} "${PROJECT_SOURCE_DIR}/CMake/Modules")
59
message(${CMAKE_BINARY_DIR})
610

7-
SET(VERSION_MAJOR "1")
8-
SET(VERSION_MINOR "4")
9-
SET(VERSION_PATCH "2")
10-
1111
add_library(bncsutil SHARED)
1212

1313
set(HEADERS
@@ -97,9 +97,42 @@ if (MSVC)
9797
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT "bncsutil")
9898
endif()
9999

100-
install(TARGETS bncsutil RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
100+
include(CMakePackageConfigHelpers)
101+
102+
install(TARGETS bncsutil
103+
EXPORT bncsutilTargets
104+
RUNTIME DESTINATION bin
105+
LIBRARY DESTINATION lib
106+
ARCHIVE DESTINATION lib
107+
INCLUDES DESTINATION include
108+
)
109+
101110
install(FILES ${HEADERS} DESTINATION include/bncsutil)
102111

112+
install(EXPORT bncsutilTargets
113+
FILE bncsutilTargets.cmake
114+
NAMESPACE bncsutil::
115+
DESTINATION lib/cmake/bncsutil
116+
)
117+
118+
configure_package_config_file(
119+
"${CMAKE_CURRENT_SOURCE_DIR}/CMake/bncsutilConfig.cmake.in"
120+
"${CMAKE_CURRENT_BINARY_DIR}/bncsutilConfig.cmake"
121+
INSTALL_DESTINATION lib/cmake/bncsutil
122+
)
123+
124+
write_basic_package_version_file(
125+
"${CMAKE_CURRENT_BINARY_DIR}/bncsutilConfigVersion.cmake"
126+
VERSION ${PROJECT_VERSION}
127+
COMPATIBILITY AnyNewerVersion
128+
)
129+
130+
install(FILES
131+
"${CMAKE_CURRENT_BINARY_DIR}/bncsutilConfig.cmake"
132+
"${CMAKE_CURRENT_BINARY_DIR}/bncsutilConfigVersion.cmake"
133+
DESTINATION lib/cmake/bncsutil
134+
)
135+
103136
#CPack configuration
104137
SET(CPACK_GENERATOR "DEB" "RPM")
105138
SET(CPACK_PACKAGE_NAME "bncsutil")
@@ -124,7 +157,7 @@ SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libgmp10")
124157

125158
#RPM configuration
126159
SET(CPACK_RPM_PACKAGE_RELEASE 1)
127-
SET(CPACK_RPM_PACKAGE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
160+
SET(CPACK_RPM_PACKAGE_LICENSE "LGPL-2.1")
128161
SET(CPACK_RPM_PACKAGE_GROUP "bncsutil")
129162
SET(CPACK_RPM_PACKAGE_URL "https://github.com/BNETDocs/bncsutil")
130163
SET(CPACK_RPM_PACKAGE_REQUIRES "gmp")

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ been maintained over the course of several years by the open source Battle.net c
1818
# Usage
1919
`#include <bncsutil/bncsutil.h>` and link against `bncsutil.lib` or `libbncsutil.so`.
2020

21+
For CMake add:
22+
```
23+
find_package(bncsutil REQUIRED)
24+
target_link_libraries(mytarget PRIVATE bncsutil::bncsutil)
25+
```
26+
2127
# Building
2228

2329
To force a specific build (32bit or 64bit) add `-DCMAKE_GENERATOR_PLATFORM=x86` or `-DCMAKE_GENERATOR_PLATFORM=x64` to CMake flags.

0 commit comments

Comments
 (0)