@@ -70,10 +70,6 @@ umf_option(UMF_BUILD_BENCHMARKS_MT "Build UMF multithreaded benchmarks" OFF)
70
70
umf_option(UMF_BUILD_EXAMPLES "Build UMF examples" ON )
71
71
umf_option(UMF_BUILD_GPU_EXAMPLES "Build UMF GPU examples" OFF )
72
72
umf_option(UMF_BUILD_FUZZTESTS "Build UMF fuzz tests" OFF )
73
- umf_option(
74
- UMF_DISABLE_HWLOC
75
- "Disable hwloc and UMF features requiring it (OS provider, memtargets, topology discovery)"
76
- OFF )
77
73
umf_option(
78
74
UMF_LINK_HWLOC_STATICALLY
79
75
"Link UMF with HWLOC library statically (proxy library will be disabled on Windows+Debug build)"
@@ -245,7 +241,7 @@ else()
245
241
)
246
242
endif ()
247
243
248
- if (NOT UMF_DISABLE_HWLOC AND ( NOT UMF_LINK_HWLOC_STATICALLY) )
244
+ if (NOT UMF_LINK_HWLOC_STATICALLY)
249
245
pkg_check_modules(LIBHWLOC hwloc>=2.3.0)
250
246
if (NOT LIBHWLOC_FOUND)
251
247
find_package (LIBHWLOC 2.3.0 COMPONENTS hwloc)
@@ -272,98 +268,92 @@ if(UMF_LINK_HWLOC_STATICALLY AND LINUX)
272
268
endif ()
273
269
endif ()
274
270
275
- if (UMF_DISABLE_HWLOC)
276
- message (STATUS "hwloc is disabled, hence OS provider, memtargets, "
277
- "topology discovery, examples won't be available!" )
278
- else ()
279
- if (UMF_LINK_HWLOC_STATICALLY)
280
- if (NOT DEFINED UMF_HWLOC_REPO)
281
- set (UMF_HWLOC_REPO "https://github.com/open-mpi/hwloc.git" )
282
- endif ()
271
+ if (UMF_LINK_HWLOC_STATICALLY)
272
+ message (
273
+ STATUS "Will fetch hwloc from ${UMF_HWLOC_REPO} (tag: ${UMF_HWLOC_TAG} )"
274
+ )
275
+ if (NOT DEFINED UMF_HWLOC_REPO)
276
+ set (UMF_HWLOC_REPO "https://github.com/open-mpi/hwloc.git" )
277
+ endif ()
283
278
284
- if (NOT DEFINED UMF_HWLOC_TAG)
285
- set (UMF_HWLOC_TAG hwloc-2.10.0)
286
- endif ()
287
- message (
288
- STATUS
289
- "Will fetch hwloc from ${UMF_HWLOC_REPO} (tag: ${UMF_HWLOC_TAG} )"
290
- )
279
+ if (NOT DEFINED UMF_HWLOC_TAG)
280
+ set (UMF_HWLOC_TAG hwloc-2.10.0)
281
+ endif ()
291
282
292
- if (WINDOWS)
293
- set (HWLOC_ENABLE_TESTING OFF )
294
- set (HWLOC_SKIP_LSTOPO ON )
295
- set (HWLOC_SKIP_TOOLS ON )
296
-
297
- FetchContent_Declare(
298
- hwloc_targ
299
- GIT_REPOSITORY ${UMF_HWLOC_REPO}
300
- GIT_TAG ${UMF_HWLOC_TAG}
301
- SOURCE_SUBDIR contrib/windows-cmake/)
302
- FetchContent_MakeAvailable(hwloc_targ)
303
-
304
- set (HWLOC_LIB_PATH "" )
305
- if (CMAKE_GENERATOR STREQUAL "NMake Makefiles" )
306
- set (HWLOC_LIB_PATH "${hwloc_targ_BINARY_DIR} /hwloc.lib" )
307
- else ()
308
- set (HWLOC_LIB_PATH "${hwloc_targ_BINARY_DIR} /lib/hwloc.lib" )
309
- endif ()
310
-
311
- get_filename_component (LIBHWLOC_LIBRARY_DIRS ${HWLOC_LIB_PATH}
312
- DIRECTORY )
313
- set (LIBHWLOC_LIBRARIES ${HWLOC_LIB_PATH} )
314
- set (LIBHWLOC_INCLUDE_DIRS ${hwloc_targ_BINARY_DIR} /include )
315
- else () # not Windows
316
- FetchContent_Declare(
317
- hwloc_targ
318
- GIT_REPOSITORY ${UMF_HWLOC_REPO}
319
- GIT_TAG ${UMF_HWLOC_TAG} )
320
- FetchContent_MakeAvailable(hwloc_targ)
321
-
322
- add_custom_command (
323
- COMMAND ./autogen.sh
324
- WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
325
- OUTPUT ${hwloc_targ_SOURCE_DIR} /configure)
326
- add_custom_command (
327
- COMMAND
328
- ./configure --prefix =${hwloc_targ_BINARY_DIR}
329
- --enable-static =yes --enable-shared=no --disable-libxml2
330
- --disable-pci --disable-levelzero --disable-opencl
331
- --disable-cuda --disable-nvml --disable-libudev
332
- --disable-rsmi CFLAGS=-fPIC CXXFLAGS=-fPIC
333
- WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
334
- OUTPUT ${hwloc_targ_SOURCE_DIR} /Makefile
335
- DEPENDS ${hwloc_targ_SOURCE_DIR} /configure)
336
- add_custom_command (
337
- COMMAND make
338
- WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
339
- OUTPUT ${hwloc_targ_SOURCE_DIR} /lib/libhwloc.la
340
- DEPENDS ${hwloc_targ_SOURCE_DIR} /Makefile)
341
- add_custom_command (
342
- COMMAND make install
343
- WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
344
- OUTPUT ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a
345
- DEPENDS ${hwloc_targ_SOURCE_DIR} /lib/libhwloc.la)
346
-
347
- add_custom_target (hwloc_prod
348
- DEPENDS ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a)
349
- add_library (hwloc INTERFACE )
350
- target_link_libraries (
351
- hwloc INTERFACE ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a)
352
- add_dependencies (hwloc hwloc_prod)
353
-
354
- set (LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR} /lib)
355
- set (LIBHWLOC_INCLUDE_DIRS ${hwloc_targ_BINARY_DIR} /include )
356
- set (LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a)
283
+ if (WINDOWS)
284
+ set (HWLOC_ENABLE_TESTING OFF )
285
+ set (HWLOC_SKIP_LSTOPO ON )
286
+ set (HWLOC_SKIP_TOOLS ON )
287
+
288
+ FetchContent_Declare(
289
+ hwloc_targ
290
+ GIT_REPOSITORY ${UMF_HWLOC_REPO}
291
+ GIT_TAG ${UMF_HWLOC_TAG}
292
+ SOURCE_SUBDIR contrib/windows-cmake/)
293
+ FetchContent_MakeAvailable(hwloc_targ)
294
+
295
+ set (HWLOC_LIB_PATH "" )
296
+ if (CMAKE_GENERATOR STREQUAL "NMake Makefiles" )
297
+ set (HWLOC_LIB_PATH "${hwloc_targ_BINARY_DIR} /hwloc.lib" )
298
+ else ()
299
+ set (HWLOC_LIB_PATH "${hwloc_targ_BINARY_DIR} /lib/hwloc.lib" )
357
300
endif ()
358
- endif () # UMF_LINK_HWLOC_STATICALLY
359
301
360
- message (STATUS " LIBHWLOC_LIBRARIES = ${LIBHWLOC_LIBRARIES} " )
361
- message (STATUS " LIBHWLOC_INCLUDE_DIRS = ${LIBHWLOC_INCLUDE_DIRS} " )
362
- message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
363
- message (STATUS " LIBHWLOC_API_VERSION = ${LIBHWLOC_API_VERSION} " )
364
- if (WINDOWS)
365
- message (STATUS " LIBHWLOC_DLL_DIRS = ${LIBHWLOC_DLL_DIRS} " )
302
+ get_filename_component (LIBHWLOC_LIBRARY_DIRS ${HWLOC_LIB_PATH}
303
+ DIRECTORY )
304
+ set (LIBHWLOC_LIBRARIES ${HWLOC_LIB_PATH} )
305
+ set (LIBHWLOC_INCLUDE_DIRS ${hwloc_targ_BINARY_DIR} /include )
306
+ else () # not Windows
307
+ FetchContent_Declare(
308
+ hwloc_targ
309
+ GIT_REPOSITORY ${UMF_HWLOC_REPO}
310
+ GIT_TAG ${UMF_HWLOC_TAG} )
311
+ FetchContent_MakeAvailable(hwloc_targ)
312
+
313
+ add_custom_command (
314
+ COMMAND ./autogen.sh
315
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
316
+ OUTPUT ${hwloc_targ_SOURCE_DIR} /configure)
317
+ add_custom_command (
318
+ COMMAND
319
+ ./configure --prefix =${hwloc_targ_BINARY_DIR}
320
+ --enable-static =yes --enable-shared=no --disable-libxml2
321
+ --disable-pci --disable-levelzero --disable-opencl
322
+ --disable-cuda --disable-nvml --disable-libudev --disable-rsmi
323
+ CFLAGS=-fPIC CXXFLAGS=-fPIC
324
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
325
+ OUTPUT ${hwloc_targ_SOURCE_DIR} /Makefile
326
+ DEPENDS ${hwloc_targ_SOURCE_DIR} /configure)
327
+ add_custom_command (
328
+ COMMAND make
329
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
330
+ OUTPUT ${hwloc_targ_SOURCE_DIR} /lib/libhwloc.la
331
+ DEPENDS ${hwloc_targ_SOURCE_DIR} /Makefile)
332
+ add_custom_command (
333
+ COMMAND make install
334
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
335
+ OUTPUT ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a
336
+ DEPENDS ${hwloc_targ_SOURCE_DIR} /lib/libhwloc.la)
337
+
338
+ add_custom_target (hwloc_prod
339
+ DEPENDS ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a)
340
+ add_library (hwloc INTERFACE )
341
+ target_link_libraries (hwloc
342
+ INTERFACE ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a)
343
+ add_dependencies (hwloc hwloc_prod)
344
+
345
+ set (LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR} /lib)
346
+ set (LIBHWLOC_INCLUDE_DIRS ${hwloc_targ_BINARY_DIR} /include )
347
+ set (LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a)
366
348
endif ()
349
+ endif () # UMF_LINK_HWLOC_STATICALLY
350
+
351
+ message (STATUS " LIBHWLOC_LIBRARIES = ${LIBHWLOC_LIBRARIES} " )
352
+ message (STATUS " LIBHWLOC_INCLUDE_DIRS = ${LIBHWLOC_INCLUDE_DIRS} " )
353
+ message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
354
+ message (STATUS " LIBHWLOC_API_VERSION = ${LIBHWLOC_API_VERSION} " )
355
+ if (WINDOWS)
356
+ message (STATUS " LIBHWLOC_DLL_DIRS = ${LIBHWLOC_DLL_DIRS} " )
367
357
endif ()
368
358
369
359
if (hwloc_targ_SOURCE_DIR)
@@ -596,9 +586,7 @@ if(WINDOWS)
596
586
endif ()
597
587
598
588
# set UMF_PROXY_LIB_ENABLED
599
- if (UMF_DISABLE_HWLOC)
600
- message (STATUS "Disabling the proxy library, because HWLOC is disabled" )
601
- elseif (NOT UMF_BUILD_SHARED_LIBRARY)
589
+ if (NOT UMF_BUILD_SHARED_LIBRARY)
602
590
# TODO enable this scenario
603
591
message (
604
592
STATUS
@@ -655,7 +643,7 @@ if(UMF_BUILD_BENCHMARKS)
655
643
add_subdirectory (benchmark)
656
644
endif ()
657
645
658
- if (UMF_BUILD_EXAMPLES AND NOT UMF_DISABLE_HWLOC )
646
+ if (UMF_BUILD_EXAMPLES)
659
647
add_subdirectory (examples)
660
648
endif ()
661
649
0 commit comments