@@ -282,10 +282,47 @@ else()
282282 SOURCE_SUBDIR contrib/windows-cmake/ FIND_PACKAGE_ARGS)
283283 FetchContent_MakeAvailable(hwloc_targ)
284284
285+ if (CMAKE_GENERATOR STREQUAL "Ninja" )
286+ add_custom_command (
287+ COMMAND ${CMAKE_COMMAND}
288+ -DCMAKE_INSTALL_PREFIX=${hwloc_targ_BINARY_DIR} -B build
289+ WORKING_DIRECTORY
290+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/
291+ OUTPUT
292+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/CMakeCache.txt
293+ )
294+ add_custom_command (
295+ COMMAND ${CMAKE_COMMAND} --build build
296+ WORKING_DIRECTORY
297+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/
298+ OUTPUT
299+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/build /lib/hwloc.lib
300+ DEPENDS
301+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/CMakeCache.txt
302+ )
303+ add_custom_command (
304+ COMMAND ${CMAKE_COMMAND} --build build --target INSTALL
305+ WORKING_DIRECTORY
306+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/
307+ OUTPUT ${hwloc_targ_BINARY_DIR} /lib/hwloc.lib
308+ DEPENDS
309+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/build /lib/hwloc.lib
310+ )
311+ add_custom_target (hwloc_prod
312+ DEPENDS ${hwloc_targ_BINARY_DIR} /lib/hwloc.lib)
313+ target_link_libraries (
314+ hwloc INTERFACE ${hwloc_targ_BINARY_DIR} /lib/hwloc.lib)
315+ add_dependencies (hwloc hwloc_prod)
316+
317+ set (LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR} /lib)
318+ set (LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR} /lib/hwloc.lib)
319+ else ()
320+ set (LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR} /$<CONFIG>)
321+ set (LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR} /$<CONFIG>/hwloc.lib)
322+ endif ()
323+
285324 set (LIBHWLOC_INCLUDE_DIRS
286325 ${hwloc_targ_SOURCE_DIR} /include ;${hwloc_targ_BINARY_DIR} /include )
287- set (LIBHWLOC_LIBRARY_DIRS
288- ${hwloc_targ_BINARY_DIR} /Release;${hwloc_targ_BINARY_DIR} /Debug)
289326 else ()
290327 include (FetchContent)
291328 message (
0 commit comments