@@ -162,10 +162,47 @@ else()
162162 SOURCE_SUBDIR contrib/windows-cmake/ FIND_PACKAGE_ARGS)
163163 FetchContent_MakeAvailable(hwloc_targ)
164164
165+ if (CMAKE_GENERATOR STREQUAL "Ninja" )
166+ add_custom_command (
167+ COMMAND ${CMAKE_COMMAND}
168+ -DCMAKE_INSTALL_PREFIX=${hwloc_targ_BINARY_DIR} -B build
169+ WORKING_DIRECTORY
170+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/
171+ OUTPUT
172+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/CMakeCache.txt
173+ )
174+ add_custom_command (
175+ COMMAND ${CMAKE_COMMAND} --build build
176+ WORKING_DIRECTORY
177+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/
178+ OUTPUT
179+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/build /lib/hwloc.lib
180+ DEPENDS
181+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/CMakeCache.txt
182+ )
183+ add_custom_command (
184+ COMMAND ${CMAKE_COMMAND} --build build --target INSTALL
185+ WORKING_DIRECTORY
186+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/
187+ OUTPUT ${hwloc_targ_BINARY_DIR} /lib/hwloc.lib
188+ DEPENDS
189+ ${hwloc_targ_SOURCE_DIR} /contrib/windows-cmake/build /lib/hwloc.lib
190+ )
191+ add_custom_target (hwloc_prod
192+ DEPENDS ${hwloc_targ_BINARY_DIR} /lib/hwloc.lib)
193+ target_link_libraries (
194+ hwloc INTERFACE ${hwloc_targ_BINARY_DIR} /lib/hwloc.lib)
195+ add_dependencies (hwloc hwloc_prod)
196+
197+ set (LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR} /lib)
198+ set (LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR} /lib/hwloc.lib)
199+ else ()
200+ set (LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR} /$<CONFIG>)
201+ set (LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR} /$<CONFIG>/hwloc.lib)
202+ endif ()
203+
165204 set (LIBHWLOC_INCLUDE_DIRS
166205 ${hwloc_targ_SOURCE_DIR} /include ;${hwloc_targ_BINARY_DIR} /include )
167- set (LIBHWLOC_LIBRARY_DIRS
168- ${hwloc_targ_BINARY_DIR} /Release;${hwloc_targ_BINARY_DIR} /Debug)
169206 else ()
170207 include (FetchContent)
171208 message (
0 commit comments