Skip to content

Commit 53bc4c5

Browse files
committed
Refactor UMF installation
- remove tests from the installation - rename libunified-memory-framework.a - install license file - change hardcoded installation paths to prefixed with CMake vars - remove installation paths that are equal to default ones - remove alias targets usages where not needed
1 parent a7f155a commit 53bc4c5

File tree

5 files changed

+42
-28
lines changed

5 files changed

+42
-28
lines changed

CMakeLists.txt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ target_include_directories(umf_headers INTERFACE
6868
# Add the include directory and the headers target to the install.
6969
install(
7070
DIRECTORY "${PROJECT_SOURCE_DIR}/include/"
71-
DESTINATION include COMPONENT umf_headers)
71+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
7272

7373
install(
7474
TARGETS umf_headers
@@ -136,14 +136,18 @@ if(UMF_FORMAT_CODE_STYLE)
136136
COMMENT "Format files using clang-format")
137137
endif()
138138

139+
# Add license to the installation path
140+
install(FILES ${CMAKE_SOURCE_DIR}/LICENSE.TXT
141+
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}/")
142+
139143
# Add the list of installed targets to the install. This includes the namespace
140144
# which all installed targets will be prefixed with, e.g. for the headers
141145
# target users will depend on ${PROJECT_NAME}::headers.
142146
install(
143147
EXPORT ${PROJECT_NAME}-targets
144148
FILE ${PROJECT_NAME}-targets.cmake
145149
NAMESPACE ${PROJECT_NAME}::
146-
DESTINATION lib/cmake/${PROJECT_NAME})
150+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
147151

148152
# Configure the package versions file for use in find_package when installed.
149153
write_basic_package_version_file(
@@ -155,11 +159,11 @@ write_basic_package_version_file(
155159
configure_package_config_file(
156160
${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake.in
157161
${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}-config.cmake
158-
INSTALL_DESTINATION lib/cmake/${PROJECT_NAME})
162+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
159163

160164
# Add the package files to the install.
161165
install(
162166
FILES
163167
${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}-config.cmake
164168
${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}-config-version.cmake
165-
DESTINATION lib/cmake/${PROJECT_NAME})
169+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})

benchmark/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ endif()
88

99
add_executable(ubench ubench.c)
1010
add_dependencies(ubench
11-
unified_memory_framework
11+
umf
1212
disjoint_pool)
1313
target_include_directories(ubench PRIVATE ${UMF_CMAKE_SOURCE_DIR}/include/)
1414
target_link_libraries(ubench
15-
unified_memory_framework
15+
umf
1616
disjoint_pool
1717
pthread
1818
m)

src/CMakeLists.txt

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,27 @@ elseif(MACOSX)
4545
endif()
4646

4747
if(UMF_BUILD_SHARED_LIBRARY)
48-
add_umf_library(NAME unified_memory_framework TYPE SHARED SRCS ${UMF_SOURCES} LIBS ${UMF_LIBS})
49-
target_compile_definitions(unified_memory_framework PUBLIC UMF_SHARED_LIBRARY)
48+
add_umf_library(NAME umf
49+
TYPE SHARED
50+
SRCS ${UMF_SOURCES}
51+
LIBS ${UMF_LIBS})
52+
target_compile_definitions(umf PUBLIC UMF_SHARED_LIBRARY)
5053
else()
51-
add_umf_library(NAME unified_memory_framework TYPE STATIC SRCS ${UMF_SOURCES} LIBS ${UMF_LIBS})
54+
add_umf_library(NAME umf
55+
TYPE STATIC
56+
SRCS ${UMF_SOURCES}
57+
LIBS ${UMF_LIBS})
5258
endif()
5359

5460
if (UMF_ENABLE_POOL_TRACKING)
55-
target_sources(unified_memory_framework PRIVATE memory_pool_tracking.c)
61+
target_sources(umf PRIVATE memory_pool_tracking.c)
5662
else()
57-
target_sources(unified_memory_framework PRIVATE memory_pool_default.c)
63+
target_sources(umf PRIVATE memory_pool_default.c)
5864
endif()
5965

60-
add_library(${PROJECT_NAME}::unified_memory_framework ALIAS unified_memory_framework)
66+
add_library(${PROJECT_NAME}::umf ALIAS umf)
6167

62-
target_include_directories(unified_memory_framework PUBLIC
68+
target_include_directories(umf PUBLIC
6369
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
6470
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/common>
6571
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/critnib>
@@ -68,11 +74,8 @@ target_include_directories(unified_memory_framework PUBLIC
6874
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
6975
)
7076

71-
install(TARGETS unified_memory_framework
77+
install(TARGETS umf
7278
EXPORT ${PROJECT_NAME}-targets
73-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
74-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
75-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
7679
)
7780

7881
add_subdirectory(pool)

src/pool/CMakeLists.txt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
1111
add_library(${PROJECT_NAME}::disjoint_pool ALIAS disjoint_pool)
1212

1313
add_dependencies(disjoint_pool
14-
unified_memory_framework)
14+
umf)
1515

1616
target_link_libraries(disjoint_pool PRIVATE
17-
unified_memory_framework)
17+
umf)
1818

1919
target_include_directories(disjoint_pool PUBLIC
2020
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/umf/pools>
@@ -23,14 +23,20 @@ if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
2323

2424
install(TARGETS disjoint_pool
2525
EXPORT ${PROJECT_NAME}-targets
26-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
2726
)
2827
endif()
29-
28+
3029
# libumf_pool_jemalloc
3130
if(UMF_BUILD_LIBUMF_POOL_JEMALLOC)
3231
if(LINUX)
33-
add_umf_library(NAME pool_jemalloc TYPE STATIC SRCS pool_jemalloc.c LIBS jemalloc)
32+
add_umf_library(NAME jemalloc_pool
33+
TYPE STATIC
34+
SRCS pool_jemalloc.c
35+
LIBS jemalloc)
36+
add_library(${PROJECT_NAME}::jemalloc_pool ALIAS jemalloc_pool)
37+
install(TARGETS jemalloc_pool
38+
EXPORT ${PROJECT_NAME}-targets
39+
)
3440
else()
3541
message(FATAL_ERROR "libumf_pool_jemalloc is supported on Linux only")
3642
endif()

test/CMakeLists.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ FetchContent_Declare(
1313
)
1414
# For Windows: Prevent overriding the parent project's compiler/linker settings
1515
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
16+
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
1617
FetchContent_MakeAvailable(googletest)
1718
enable_testing()
1819

@@ -30,11 +31,11 @@ function(add_umf_test)
3031
set(TEST_TARGET_NAME umf_test-${ARG_NAME})
3132

3233
set(TEST_LIBS test_common
33-
${PROJECT_NAME}::unified_memory_framework
34+
umf
3435
GTest::gtest_main
3536
${ARG_LIBS})
3637
if(UMF_BUILD_LIBUMF_POOL_JEMALLOC)
37-
set(TEST_LIBS ${TEST_LIBS} pool_jemalloc)
38+
set(TEST_LIBS ${TEST_LIBS} jemalloc_pool)
3839
endif()
3940
add_umf_executable(NAME ${TEST_TARGET_NAME} SRCS ${ARG_SRCS} LIBS ${TEST_LIBS})
4041

@@ -69,11 +70,11 @@ add_umf_test(NAME memory_pool_internal
6970

7071
if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
7172
add_umf_test(NAME disjointPool
72-
SRCS disjoint_pool.cpp malloc_compliance_tests.cpp
73-
LIBS ${PROJECT_NAME}::disjoint_pool)
73+
SRCS disjoint_pool.cpp malloc_compliance_tests.cpp
74+
LIBS disjoint_pool)
7475
add_umf_test(NAME c_api_disjoint_pool
75-
SRCS c_api/disjoint_pool.c
76-
LIBS ${PROJECT_NAME}::disjoint_pool)
76+
SRCS c_api/disjoint_pool.c
77+
LIBS disjoint_pool)
7778
endif()
7879

7980
if(LINUX) # OS-specific functions are implemented only for Linux now

0 commit comments

Comments
 (0)