Skip to content

Commit b42dd42

Browse files
committed
Make memspace_hmat and memspace_numa examples standalone
Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 7da7696 commit b42dd42

File tree

4 files changed

+145
-0
lines changed

4 files changed

+145
-0
lines changed

examples/cmake/FindLIBNUMA.cmake

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright (C) 2024 Intel Corporation
2+
# Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
3+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4+
5+
message(STATUS "Checking for module 'libnuma' using find_library()")
6+
7+
find_library(LIBNUMA_LIBRARY NAMES libnuma numa)
8+
set(LIBNUMA_LIBRARIES ${LIBNUMA_LIBRARY})
9+
10+
if(LIBNUMA_LIBRARY)
11+
message(STATUS " Found libnuma using find_library()")
12+
else()
13+
set(MSG_NOT_FOUND
14+
"libnuma NOT found (set CMAKE_PREFIX_PATH to point the location)")
15+
if(LIBNUMA_FIND_REQUIRED)
16+
message(FATAL_ERROR ${MSG_NOT_FOUND})
17+
else()
18+
message(WARNING ${MSG_NOT_FOUND})
19+
endif()
20+
endif()

examples/memspace_hmat/CMakeLists.txt

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Copyright (C) 2024 Intel Corporation
2+
# Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
3+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4+
5+
cmake_minimum_required(VERSION 3.14.0 FATAL_ERROR)
6+
project(umf_example_memspace_hmat LANGUAGES C)
7+
enable_testing()
8+
9+
set(UMF_EXAMPLE_DIR "${CMAKE_SOURCE_DIR}/..")
10+
list(APPEND CMAKE_MODULE_PATH "${UMF_EXAMPLE_DIR}/cmake")
11+
message(STATUS "CMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}")
12+
13+
find_package(PkgConfig)
14+
pkg_check_modules(LIBUMF libumf)
15+
if(NOT LIBUMF_FOUND)
16+
find_package(LIBUMF REQUIRED libumf)
17+
endif()
18+
19+
pkg_check_modules(LIBHWLOC hwloc>=2.3.0)
20+
if(NOT LIBHWLOC_FOUND)
21+
find_package(LIBHWLOC 2.3.0 REQUIRED hwloc)
22+
endif()
23+
24+
pkg_check_modules(LIBNUMA numa)
25+
if(NOT LIBNUMA_FOUND)
26+
find_package(LIBNUMA REQUIRED numa)
27+
endif()
28+
29+
# build the example
30+
set(EXAMPLE_NAME umf_example_memspace_hmat)
31+
add_executable(${EXAMPLE_NAME} memspace_hmat.c)
32+
target_include_directories(${EXAMPLE_NAME} PRIVATE ${LIBUMF_INCLUDE_DIRS}
33+
../common)
34+
target_link_directories(${EXAMPLE_NAME} PRIVATE ${LIBHWLOC_LIBRARY_DIRS}
35+
${LIBNUMA_LIBRARY_DIRS})
36+
target_link_libraries(
37+
${EXAMPLE_NAME} PRIVATE ${LIBUMF_LIBRARIES} ${LIBHWLOC_LIBRARIES}
38+
${LIBNUMA_LIBRARIES})
39+
40+
add_test(
41+
NAME ${EXAMPLE_NAME}
42+
COMMAND ${EXAMPLE_NAME}
43+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
44+
45+
set(UMF_TEST_SKIP_RETURN_CODE 125)
46+
set_tests_properties(${EXAMPLE_NAME} PROPERTIES LABELS "example-standalone")
47+
set_tests_properties(${EXAMPLE_NAME} PROPERTIES SKIP_RETURN_CODE
48+
${UMF_TEST_SKIP_RETURN_CODE})
49+
50+
if(LINUX)
51+
# set LD_LIBRARY_PATH
52+
set_property(
53+
TEST ${EXAMPLE_NAME}
54+
PROPERTY
55+
ENVIRONMENT_MODIFICATION
56+
"LD_LIBRARY_PATH=path_list_append:${LIBUMF_LIBRARY_DIRS};LD_LIBRARY_PATH=path_list_append:${LIBHWLOC_LIBRARY_DIRS};LD_LIBRARY_PATH=path_list_append:${LIBNUMA_LIBRARY_DIRS}"
57+
)
58+
endif()

examples/memspace_numa/CMakeLists.txt

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Copyright (C) 2024 Intel Corporation
2+
# Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
3+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4+
5+
cmake_minimum_required(VERSION 3.14.0 FATAL_ERROR)
6+
project(umf_example_memspace_numa LANGUAGES C)
7+
enable_testing()
8+
9+
set(UMF_EXAMPLE_DIR "${CMAKE_SOURCE_DIR}/..")
10+
list(APPEND CMAKE_MODULE_PATH "${UMF_EXAMPLE_DIR}/cmake")
11+
message(STATUS "CMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}")
12+
13+
find_package(PkgConfig)
14+
pkg_check_modules(LIBUMF libumf)
15+
if(NOT LIBUMF_FOUND)
16+
find_package(LIBUMF REQUIRED libumf)
17+
endif()
18+
19+
pkg_check_modules(LIBHWLOC hwloc>=2.3.0)
20+
if(NOT LIBHWLOC_FOUND)
21+
find_package(LIBHWLOC 2.3.0 REQUIRED hwloc)
22+
endif()
23+
24+
pkg_check_modules(LIBNUMA numa)
25+
if(NOT LIBNUMA_FOUND)
26+
find_package(LIBNUMA REQUIRED numa)
27+
endif()
28+
29+
# build the example
30+
set(EXAMPLE_NAME umf_example_memspace_numa)
31+
add_executable(${EXAMPLE_NAME} memspace_numa.c)
32+
target_include_directories(${EXAMPLE_NAME} PRIVATE ${LIBUMF_INCLUDE_DIRS}
33+
../common)
34+
target_link_directories(${EXAMPLE_NAME} PRIVATE ${LIBHWLOC_LIBRARY_DIRS}
35+
${LIBNUMA_LIBRARY_DIRS})
36+
target_link_libraries(
37+
${EXAMPLE_NAME} PRIVATE ${LIBUMF_LIBRARIES} ${LIBHWLOC_LIBRARIES}
38+
${LIBNUMA_LIBRARIES})
39+
40+
add_test(
41+
NAME ${EXAMPLE_NAME}
42+
COMMAND ${EXAMPLE_NAME}
43+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
44+
45+
set(UMF_TEST_SKIP_RETURN_CODE 125)
46+
set_tests_properties(${EXAMPLE_NAME} PROPERTIES LABELS "example-standalone")
47+
set_tests_properties(${EXAMPLE_NAME} PROPERTIES SKIP_RETURN_CODE
48+
${UMF_TEST_SKIP_RETURN_CODE})
49+
50+
if(LINUX)
51+
# set LD_LIBRARY_PATH
52+
set_property(
53+
TEST ${EXAMPLE_NAME}
54+
PROPERTY
55+
ENVIRONMENT_MODIFICATION
56+
"LD_LIBRARY_PATH=path_list_append:${LIBUMF_LIBRARY_DIRS};LD_LIBRARY_PATH=path_list_append:${LIBHWLOC_LIBRARY_DIRS};LD_LIBRARY_PATH=path_list_append:${LIBNUMA_LIBRARY_DIRS}"
57+
)
58+
endif()

test/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,15 @@ if(LINUX
504504
)
505505
endif()
506506

507+
if(LIBNUMA_LIBRARIES)
508+
set(EXAMPLES ${EXAMPLES} memspace_hmat memspace_numa)
509+
else()
510+
message(
511+
STATUS
512+
"The memspace_hmat and memspace_numa examples require libnuma to be installed and added to the default library search path - skipping"
513+
)
514+
endif()
515+
507516
if(UMF_BUILD_GPU_EXAMPLES
508517
AND UMF_BUILD_LIBUMF_POOL_DISJOINT
509518
AND UMF_BUILD_LEVEL_ZERO_PROVIDER)

0 commit comments

Comments
 (0)