Skip to content

Commit 8456ebc

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 e4d2cfe commit 8456ebc

File tree

5 files changed

+31
-26
lines changed

5 files changed

+31
-26
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
numa
1818
pthread)

src/CMakeLists.txt

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,21 @@ elseif(MACOSX)
3939
endif()
4040

4141
if(UMF_BUILD_SHARED_LIBRARY)
42-
add_umf_library(unified_memory_framework SHARED ${UMF_SOURCES})
43-
target_compile_definitions(unified_memory_framework PUBLIC UMF_SHARED_LIBRARY)
42+
add_umf_library(umf SHARED ${UMF_SOURCES})
43+
target_compile_definitions(umf PUBLIC UMF_SHARED_LIBRARY)
4444
else()
45-
add_umf_library(unified_memory_framework STATIC ${UMF_SOURCES})
45+
add_umf_library(umf STATIC ${UMF_SOURCES})
4646
endif()
4747

4848
if (UMF_ENABLE_POOL_TRACKING)
49-
target_sources(unified_memory_framework PRIVATE memory_pool_tracking.c)
49+
target_sources(umf PRIVATE memory_pool_tracking.c)
5050
else()
51-
target_sources(unified_memory_framework PRIVATE memory_pool_default.c)
51+
target_sources(umf PRIVATE memory_pool_default.c)
5252
endif()
5353

54-
add_library(${PROJECT_NAME}::unified_memory_framework ALIAS unified_memory_framework)
54+
add_library(${PROJECT_NAME}::umf ALIAS umf)
5555

56-
target_include_directories(unified_memory_framework PUBLIC
56+
target_include_directories(umf PUBLIC
5757
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
5858
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/common>
5959
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/critnib>
@@ -62,11 +62,8 @@ target_include_directories(unified_memory_framework PUBLIC
6262
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
6363
)
6464

65-
install(TARGETS unified_memory_framework
65+
install(TARGETS umf
6666
EXPORT ${PROJECT_NAME}-targets
67-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
68-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
69-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
7067
)
7168

7269
add_subdirectory(pool)

src/pool/CMakeLists.txt

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

1212
add_dependencies(disjoint_pool
13-
unified_memory_framework)
13+
umf)
1414

1515
target_link_libraries(disjoint_pool PRIVATE
16-
unified_memory_framework)
16+
umf)
1717

1818
target_include_directories(disjoint_pool PUBLIC
1919
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/umf/pools>
@@ -22,15 +22,18 @@ if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
2222

2323
install(TARGETS disjoint_pool
2424
EXPORT ${PROJECT_NAME}-targets
25-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
2625
)
2726
endif()
28-
27+
2928
# libumf_pool_jemalloc
3029
if(UMF_BUILD_LIBUMF_POOL_JEMALLOC)
3130
if(LINUX)
32-
add_umf_library(pool_jemalloc STATIC
31+
add_umf_library(jemalloc_pool STATIC
3332
pool_jemalloc.c)
33+
add_library(${PROJECT_NAME}::jemalloc_pool ALIAS jemalloc_pool)
34+
install(TARGETS jemalloc_pool
35+
EXPORT ${PROJECT_NAME}-targets
36+
)
3437
else()
3538
message(FATAL_ERROR "libumf_pool_jemalloc is supported on Linux only")
3639
endif()

test/CMakeLists.txt

Lines changed: 5 additions & 4 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

@@ -33,7 +34,7 @@ function(add_umf_test)
3334

3435
target_link_libraries(${TEST_TARGET_NAME} PRIVATE
3536
test_common
36-
${PROJECT_NAME}::unified_memory_framework
37+
umf
3738
GTest::gtest_main
3839
${ARG_LIBS})
3940

@@ -58,7 +59,7 @@ endfunction()
5859
add_subdirectory(common)
5960

6061
if (UMF_BUILD_LIBUMF_POOL_JEMALLOC)
61-
set(LIBS_JEMALLOC pool_jemalloc jemalloc numa)
62+
set(LIBS_JEMALLOC jemalloc_pool jemalloc numa)
6263
endif()
6364

6465
add_umf_test(NAME base
@@ -73,10 +74,10 @@ add_umf_test(NAME memory_pool_internal
7374
if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
7475
add_umf_test(NAME disjointPool
7576
SRCS disjoint_pool.cpp malloc_compliance_tests.cpp
76-
LIBS ${PROJECT_NAME}::disjoint_pool)
77+
LIBS disjoint_pool)
7778
add_umf_test(NAME c_api_disjoint_pool
7879
SRCS c_api/disjoint_pool.c
79-
LIBS ${PROJECT_NAME}::disjoint_pool)
80+
LIBS disjoint_pool)
8081
endif()
8182

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

0 commit comments

Comments
 (0)