@@ -75,10 +75,6 @@ umf_option(UMF_BUILD_EXAMPLES "Build UMF examples" ON)
75
75
umf_option (UMF_BUILD_GPU_EXAMPLES "Build UMF GPU examples" OFF )
76
76
umf_option (UMF_BUILD_FUZZTESTS
77
77
"Build UMF fuzz tests (supported only on Linux with Clang)" OFF )
78
- umf_option (
79
- UMF_DISABLE_HWLOC
80
- "Disable hwloc and UMF features requiring it (OS provider, memtargets, topology discovery)"
81
- OFF )
82
78
umf_option (
83
79
UMF_LINK_HWLOC_STATICALLY
84
80
"Link UMF with HWLOC library statically (proxy library will be disabled on Windows+Debug build)"
@@ -119,13 +115,6 @@ set_property(CACHE UMF_PROXY_LIB_BASED_ON_POOL
119
115
PROPERTY STRINGS ${KNOWN_PROXY_LIB_POOLS} )
120
116
list (APPEND UMF_OPTIONS_LIST UMF_PROXY_LIB_BASED_ON_POOL )
121
117
122
- if (UMF_DISABLE_HWLOC )
123
- message (
124
- WARNING
125
- "UMF_DISABLE_HWLOC option is now deprecated and will be removed in v0.12.0 UMF release!"
126
- )
127
- endif ()
128
-
129
118
# --------------------------------------------------------------------------- #
130
119
# Setup required variables, definitions; fetch dependencies; include
131
120
# sub_directories based on build options; set flags; etc.
@@ -260,7 +249,7 @@ else()
260
249
)
261
250
endif ()
262
251
263
- if (NOT UMF_DISABLE_HWLOC AND ( NOT UMF_LINK_HWLOC_STATICALLY ) )
252
+ if (NOT UMF_LINK_HWLOC_STATICALLY )
264
253
pkg_check_modules (LIBHWLOC hwloc>=2.3.0 )
265
254
if (NOT LIBHWLOC_FOUND )
266
255
find_package (LIBHWLOC 2.3.0 COMPONENTS hwloc )
@@ -275,110 +264,95 @@ if(NOT UMF_DISABLE_HWLOC AND (NOT UMF_LINK_HWLOC_STATICALLY))
275
264
endif ()
276
265
endif ()
277
266
278
- if (UMF_LINK_HWLOC_STATICALLY AND LINUX )
279
- find_program ( AUTORECONF_EXECUTABLE autoreconf )
280
- if ( NOT AUTORECONF_EXECUTABLE )
281
- message ( WARNING "autoreconf is not installed. Disabling hwloc." )
282
- set ( UMF_DISABLE_HWLOC ON )
283
- set (UMF_LINK_HWLOC_STATICALLY OFF )
267
+ if (UMF_LINK_HWLOC_STATICALLY )
268
+ if ( NOT DEFINED UMF_HWLOC_REPO )
269
+ set ( UMF_HWLOC_REPO "https://github.com/open-mpi/hwloc.git" )
270
+ endif ( )
271
+ if ( NOT DEFINED UMF_HWLOC_TAG )
272
+ set (UMF_HWLOC_TAG hwloc-2.10.0 )
284
273
endif ()
285
- endif ()
286
274
287
- if (UMF_DISABLE_HWLOC )
288
- message (STATUS "hwloc is disabled, hence OS provider, memtargets, "
289
- "topology discovery, examples won't be available!" )
290
- else ()
291
- if (UMF_LINK_HWLOC_STATICALLY )
292
- if (NOT DEFINED UMF_HWLOC_REPO )
293
- set (UMF_HWLOC_REPO "https://github.com/open-mpi/hwloc.git" )
294
- endif ()
275
+ message (
276
+ STATUS "Will fetch hwloc from ${UMF_HWLOC_REPO} (tag: ${UMF_HWLOC_TAG} )"
277
+ )
295
278
296
- if (NOT DEFINED UMF_HWLOC_TAG )
297
- set (UMF_HWLOC_TAG hwloc-2.10.0 )
279
+ if (WINDOWS )
280
+ set (HWLOC_ENABLE_TESTING OFF )
281
+ set (HWLOC_SKIP_LSTOPO ON )
282
+ set (HWLOC_SKIP_TOOLS ON )
283
+ set (HWLOC_SKIP_INCLUDES ON )
284
+
285
+ FetchContent_Declare (
286
+ hwloc_targ
287
+ GIT_REPOSITORY ${UMF_HWLOC_REPO}
288
+ GIT_TAG ${UMF_HWLOC_TAG}
289
+ SOURCE_SUBDIR contrib/windows-cmake/ )
290
+ FetchContent_MakeAvailable (hwloc_targ )
291
+
292
+ set (HWLOC_LIB_PATH "" )
293
+ if (CMAKE_GENERATOR STREQUAL "NMake Makefiles" )
294
+ set (HWLOC_LIB_PATH "${hwloc_targ_BINARY_DIR} /hwloc.lib" )
295
+ else ()
296
+ set (HWLOC_LIB_PATH "${hwloc_targ_BINARY_DIR} /lib/hwloc.lib" )
298
297
endif ()
299
- message (
300
- STATUS
301
- "Will fetch hwloc from ${UMF_HWLOC_REPO} (tag: ${UMF_HWLOC_TAG} )"
302
- )
303
298
304
- if (WINDOWS )
305
- set (HWLOC_ENABLE_TESTING OFF )
306
- set (HWLOC_SKIP_LSTOPO ON )
307
- set (HWLOC_SKIP_TOOLS ON )
308
- set (HWLOC_SKIP_INCLUDES ON )
309
-
310
- FetchContent_Declare (
311
- hwloc_targ
312
- GIT_REPOSITORY ${UMF_HWLOC_REPO}
313
- GIT_TAG ${UMF_HWLOC_TAG}
314
- SOURCE_SUBDIR contrib/windows-cmake/ )
315
- FetchContent_MakeAvailable (hwloc_targ )
316
-
317
- set (HWLOC_LIB_PATH "" )
318
- if (CMAKE_GENERATOR STREQUAL "NMake Makefiles" )
319
- set (HWLOC_LIB_PATH "${hwloc_targ_BINARY_DIR} /hwloc.lib" )
320
- else ()
321
- set (HWLOC_LIB_PATH "${hwloc_targ_BINARY_DIR} /lib/hwloc.lib" )
322
- endif ()
323
-
324
- get_filename_component (LIBHWLOC_LIBRARY_DIRS ${HWLOC_LIB_PATH}
325
- DIRECTORY )
326
- set (LIBHWLOC_LIBRARIES ${HWLOC_LIB_PATH} )
327
- set (LIBHWLOC_INCLUDE_DIRS ${hwloc_targ_BINARY_DIR} /include )
328
- set (LIBHWLOC_FOUND TRUE )
329
- else () # not Windows
330
- FetchContent_Declare (
331
- hwloc_targ
332
- GIT_REPOSITORY ${UMF_HWLOC_REPO}
333
- GIT_TAG ${UMF_HWLOC_TAG} )
334
- FetchContent_MakeAvailable (hwloc_targ )
335
-
336
- add_custom_command (
337
- COMMAND ./autogen.sh
338
- WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
339
- OUTPUT ${hwloc_targ_SOURCE_DIR} /configure )
340
- add_custom_command (
341
- COMMAND
342
- ./configure --prefix=${hwloc_targ_BINARY_DIR}
343
- --enable-static=yes --enable-shared=no --disable-libxml2
344
- --disable-pci --disable-levelzero --disable-opencl
345
- --disable-cuda --disable-nvml --disable-libudev
346
- --disable-rsmi CFLAGS=-fPIC CXXFLAGS=-fPIC
347
- WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
348
- OUTPUT ${hwloc_targ_SOURCE_DIR} /Makefile
349
- DEPENDS ${hwloc_targ_SOURCE_DIR} /configure )
350
- add_custom_command (
351
- COMMAND make
352
- WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
353
- OUTPUT ${hwloc_targ_SOURCE_DIR} /lib/libhwloc.la
354
- DEPENDS ${hwloc_targ_SOURCE_DIR} /Makefile )
355
- add_custom_command (
356
- COMMAND make install
357
- WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
358
- OUTPUT ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a
359
- DEPENDS ${hwloc_targ_SOURCE_DIR} /lib/libhwloc.la )
360
-
361
- add_custom_target (hwloc_prod
362
- DEPENDS ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a )
363
- add_library (hwloc INTERFACE )
364
- target_link_libraries (
365
- hwloc INTERFACE ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a )
366
- add_dependencies (hwloc hwloc_prod )
367
-
368
- set (LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR} /lib )
369
- set (LIBHWLOC_INCLUDE_DIRS ${hwloc_targ_BINARY_DIR} /include )
370
- set (LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a )
371
- set (LIBHWLOC_FOUND TRUE )
372
- endif ()
373
- endif () # UMF_LINK_HWLOC_STATICALLY
299
+ get_filename_component (LIBHWLOC_LIBRARY_DIRS ${HWLOC_LIB_PATH}
300
+ DIRECTORY )
301
+ set (LIBHWLOC_LIBRARIES ${HWLOC_LIB_PATH} )
302
+ set (LIBHWLOC_INCLUDE_DIRS ${hwloc_targ_BINARY_DIR} /include )
303
+ set (LIBHWLOC_FOUND TRUE )
304
+ else () # not Windows
305
+ FetchContent_Declare (
306
+ hwloc_targ
307
+ GIT_REPOSITORY ${UMF_HWLOC_REPO}
308
+ GIT_TAG ${UMF_HWLOC_TAG} )
309
+ FetchContent_MakeAvailable (hwloc_targ )
374
310
375
- message (STATUS " LIBHWLOC_LIBRARIES = ${LIBHWLOC_LIBRARIES} " )
376
- message (STATUS " LIBHWLOC_INCLUDE_DIRS = ${LIBHWLOC_INCLUDE_DIRS} " )
377
- message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
378
- message (STATUS " LIBHWLOC_API_VERSION = ${LIBHWLOC_API_VERSION} " )
379
- if (WINDOWS )
380
- message (STATUS " LIBHWLOC_DLL_DIRS = ${LIBHWLOC_DLL_DIRS} " )
311
+ add_custom_command (
312
+ COMMAND ./autogen.sh
313
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
314
+ OUTPUT ${hwloc_targ_SOURCE_DIR} /configure )
315
+ add_custom_command (
316
+ COMMAND
317
+ ./configure --prefix=${hwloc_targ_BINARY_DIR}
318
+ --enable-static=yes --enable-shared=no --disable-libxml2
319
+ --disable-pci --disable-levelzero --disable-opencl
320
+ --disable-cuda --disable-nvml --disable-libudev --disable-rsmi
321
+ CFLAGS=-fPIC CXXFLAGS=-fPIC
322
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
323
+ OUTPUT ${hwloc_targ_SOURCE_DIR} /Makefile
324
+ DEPENDS ${hwloc_targ_SOURCE_DIR} /configure )
325
+ add_custom_command (
326
+ COMMAND make
327
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
328
+ OUTPUT ${hwloc_targ_SOURCE_DIR} /lib/libhwloc.la
329
+ DEPENDS ${hwloc_targ_SOURCE_DIR} /Makefile )
330
+ add_custom_command (
331
+ COMMAND make install
332
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
333
+ OUTPUT ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a
334
+ DEPENDS ${hwloc_targ_SOURCE_DIR} /lib/libhwloc.la )
335
+
336
+ add_custom_target (hwloc_prod
337
+ DEPENDS ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a )
338
+ add_library (hwloc INTERFACE )
339
+ target_link_libraries (hwloc
340
+ INTERFACE ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a )
341
+ add_dependencies (hwloc hwloc_prod )
342
+
343
+ set (LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR} /lib )
344
+ set (LIBHWLOC_INCLUDE_DIRS ${hwloc_targ_BINARY_DIR} /include )
345
+ set (LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR} /lib/libhwloc.a )
346
+ set (LIBHWLOC_FOUND TRUE )
381
347
endif ()
348
+ endif () # UMF_LINK_HWLOC_STATICALLY
349
+
350
+ message (STATUS " LIBHWLOC_LIBRARIES = ${LIBHWLOC_LIBRARIES} " )
351
+ message (STATUS " LIBHWLOC_INCLUDE_DIRS = ${LIBHWLOC_INCLUDE_DIRS} " )
352
+ message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
353
+ message (STATUS " LIBHWLOC_API_VERSION = ${LIBHWLOC_API_VERSION} " )
354
+ if (WINDOWS )
355
+ message (STATUS " LIBHWLOC_DLL_DIRS = ${LIBHWLOC_DLL_DIRS} " )
382
356
endif ()
383
357
384
358
if (hwloc_targ_SOURCE_DIR )
@@ -533,7 +507,7 @@ if(WINDOWS AND UMF_USE_DEBUG_POSTFIX)
533
507
-DUMF_BUILD_TESTS=OFF -DUMF_BUILD_GPU_TESTS=OFF
534
508
-DUMF_BUILD_BENCHMARKS=OFF -DUMF_BUILD_BENCHMARKS_MT=OFF
535
509
-DUMF_BUILD_EXAMPLES=OFF -DUMF_BUILD_GPU_EXAMPLES=OFF
536
- -DUMF_BUILD_FUZZTESTS=OFF -DUMF_DISABLE_HWLOC=${UMF_DISABLE_HWLOC}
510
+ -DUMF_BUILD_FUZZTESTS=OFF
537
511
-DUMF_LINK_HWLOC_STATICALLY=${UMF_LINK_HWLOC_STATICALLY}
538
512
-DUMF_HWLOC_NAME=${UMF_HWLOC_NAME}
539
513
-DUMF_INSTALL_RPATH=${UMF_INSTALL_RPATH} -DUMF_DEVELOPER_MODE=OFF
@@ -756,9 +730,7 @@ if(WINDOWS)
756
730
endif ()
757
731
758
732
# set UMF_PROXY_LIB_ENABLED
759
- if (UMF_DISABLE_HWLOC )
760
- message (STATUS "Disabling the proxy library, because HWLOC is disabled" )
761
- elseif (NOT UMF_BUILD_SHARED_LIBRARY )
733
+ if (NOT UMF_BUILD_SHARED_LIBRARY )
762
734
# TODO enable this scenario
763
735
message (
764
736
STATUS
@@ -803,7 +775,7 @@ if(UMF_BUILD_BENCHMARKS)
803
775
add_subdirectory (benchmark )
804
776
endif ()
805
777
806
- if (UMF_BUILD_EXAMPLES AND NOT UMF_DISABLE_HWLOC )
778
+ if (UMF_BUILD_EXAMPLES )
807
779
add_subdirectory (examples )
808
780
endif ()
809
781
0 commit comments