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