@@ -70,10 +70,6 @@ umf_option(UMF_BUILD_BENCHMARKS_MT "Build UMF multithreaded benchmarks" OFF)
7070umf_option(UMF_BUILD_EXAMPLES "Build UMF examples" ON )
7171umf_option(UMF_BUILD_GPU_EXAMPLES "Build UMF GPU examples" OFF )
7272umf_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 )
7773umf_option(
7874 UMF_LINK_HWLOC_STATICALLY
7975 "Link UMF with HWLOC library statically (proxy library will be disabled on Windows+Debug build)"
@@ -245,7 +241,7 @@ else()
245241 )
246242endif ()
247243
248- if (NOT UMF_DISABLE_HWLOC AND ( NOT UMF_LINK_HWLOC_STATICALLY) )
244+ if (NOT UMF_LINK_HWLOC_STATICALLY)
249245 pkg_check_modules(LIBHWLOC hwloc>=2.3.0)
250246 if (NOT LIBHWLOC_FOUND)
251247 find_package (LIBHWLOC 2.3.0 COMPONENTS hwloc)
@@ -272,98 +268,92 @@ if(UMF_LINK_HWLOC_STATICALLY AND LINUX)
272268 endif ()
273269endif ()
274270
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 ()
283278
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 ()
291282
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" )
357300 endif ()
358- endif () # UMF_LINK_HWLOC_STATICALLY
359301
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)
366348 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} " )
367357endif ()
368358
369359if (hwloc_targ_SOURCE_DIR)
@@ -596,9 +586,7 @@ if(WINDOWS)
596586endif ()
597587
598588# 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)
602590 # TODO enable this scenario
603591 message (
604592 STATUS
@@ -655,7 +643,7 @@ if(UMF_BUILD_BENCHMARKS)
655643 add_subdirectory (benchmark)
656644endif ()
657645
658- if (UMF_BUILD_EXAMPLES AND NOT UMF_DISABLE_HWLOC )
646+ if (UMF_BUILD_EXAMPLES)
659647 add_subdirectory (examples)
660648endif ()
661649
0 commit comments