Skip to content

Commit 3b5648b

Browse files
committed
BREAKING_CHANGE: cmake install now works, combined target name changed from all to ut
1 parent 3d0db46 commit 3b5648b

File tree

5 files changed

+54
-8
lines changed

5 files changed

+54
-8
lines changed

CMakeLists.txt

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,30 @@
11
cmake_minimum_required(VERSION 3.21)
2-
project(libut LANGUAGES CXX)
2+
project(
3+
libut
4+
VERSION 0.1.0
5+
DESCRIPTION "Various useful bits of C++"
6+
HOMEPAGE_URL "https://github.com/dk949/libut"
7+
LANGUAGES CXX
8+
)
9+
include(cmake/install.cmake)
310
include(cmake/targets.cmake)
411

512
file(GLOB includes "${CMAKE_CURRENT_SOURCE_DIR}/include/*")
613

7-
add_library(all INTERFACE)
14+
add_library(ut INTERFACE)
815
foreach (include ${includes})
916
add_subdirectory("${include}")
1017
cmake_path(GET include FILENAME module_name)
11-
target_link_libraries(all INTERFACE "${module_name}")
18+
target_link_libraries(ut INTERFACE "${module_name}")
1219
list(APPEND LIBUT_TARGET_LIST "${module_name}")
1320
endforeach ()
14-
list(APPEND LIBUT_TARGET_LIST all)
21+
list(APPEND LIBUT_TARGET_LIST ut)
1522
set(LIBUT_TARGET_LIST
1623
"${LIBUT_TARGET_LIST}"
1724
CACHE INTERNAL "" FORCE
1825
)
19-
message(STATUS "libut: adding UT::all")
26+
message(STATUS "libut: adding UT::ut")
27+
libut_install()
2028

2129
if (PROJECT_IS_TOP_LEVEL)
2230
option(ENABLE_TESTING "Should tests be enabled?" ON)

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![CMake build and test](https://github.com/dk949/libut/actions/workflows/cmake-multi-platform.yml/badge.svg)](https://github.com/dk949/libut/actions/workflows/cmake-multi-platform.yml)
44

5-
Various useful bits of c++
5+
Various useful bits of C++
66

77
This is header only C++ library for doing useful things. Such as printing human
88
readable type names, converting `string_view`s to numbers. See the [Currently
@@ -67,7 +67,7 @@ target_link_libraries(MY_TARGET UT::target_name)
6767

6868
<!-- AUTOGEN_END -->
6969

70-
A special target `UT::all` is also available, combining all of the above.
70+
A special target `UT::ut` is also available, combining all of the above.
7171

7272
## Testing
7373

cmake/UTConfig.cmake.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@PACKAGE_INIT@
2+
3+
# Let the config file find the targets file installed by install(EXPORT)
4+
include("${CMAKE_CURRENT_LIST_DIR}/UTTargets.cmake")

cmake/install.cmake

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
include(GNUInstallDirs)
2+
include(CMakePackageConfigHelpers)
3+
4+
function (libut_install)
5+
install(
6+
TARGETS ${LIBUT_TARGET_LIST}
7+
EXPORT UTTargets
8+
FILE_SET HEADERS
9+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
10+
)
11+
12+
install(
13+
EXPORT UTTargets
14+
NAMESPACE UT::
15+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ut
16+
)
17+
18+
configure_package_config_file(
19+
"${CMAKE_CURRENT_LIST_DIR}/cmake/UTConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/UTConfig.cmake"
20+
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ut"
21+
NO_CHECK_REQUIRED_COMPONENTS_MACRO
22+
)
23+
24+
write_basic_package_version_file(
25+
"${CMAKE_CURRENT_BINARY_DIR}/UTConfigVersion.cmake"
26+
VERSION ${PROJECT_VERSION}
27+
COMPATIBILITY AnyNewerVersion
28+
)
29+
30+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/UTConfig.cmake"
31+
"${CMAKE_CURRENT_BINARY_DIR}/UTConfigVersion.cmake"
32+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ut
33+
)
34+
endfunction ()

tests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ check_source_compiles(
5454
endblock()
5555

5656
function (setup_target target)
57-
target_link_libraries(${target} PRIVATE UT::all)
57+
target_link_libraries(${target} PRIVATE ut)
5858
set_target_warnings(${target})
5959
target_link_libraries(${target} PRIVATE Catch2::Catch2WithMain)
6060
target_precompile_headers(${target} PRIVATE <catch.hpp>)

0 commit comments

Comments
 (0)