Skip to content

Commit 13b9267

Browse files
committed
Fix building hwloc on Windows with Ninja generator
Fixes: #1057 Co-developed-by: Patryk Kaminski <[email protected]> Co-developed-by: Lukasz Dorau <[email protected]> Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 5f42368 commit 13b9267

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

CMakeLists.txt

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)