Skip to content

Commit 307eb9c

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 307eb9c

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

CMakeLists.txt

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,52 @@ else()
282282
SOURCE_SUBDIR contrib/windows-cmake/ FIND_PACKAGE_ARGS)
283283
FetchContent_MakeAvailable(hwloc_targ)
284284

285+
message(STATUS "hwloc CMAKE_GENERATOR: ${CMAKE_GENERATOR}")
286+
287+
if(CMAKE_GENERATOR STREQUAL "Ninja")
288+
add_custom_command(
289+
COMMAND ${CMAKE_COMMAND}
290+
-DCMAKE_INSTALL_PREFIX=${hwloc_targ_BINARY_DIR} -B build
291+
WORKING_DIRECTORY
292+
${hwloc_targ_SOURCE_DIR}/contrib/windows-cmake/
293+
OUTPUT
294+
${hwloc_targ_SOURCE_DIR}/contrib/windows-cmake/CMakeCache.txt
295+
)
296+
add_custom_command(
297+
COMMAND ${CMAKE_COMMAND} --build build
298+
WORKING_DIRECTORY
299+
${hwloc_targ_SOURCE_DIR}/contrib/windows-cmake/
300+
OUTPUT
301+
${hwloc_targ_SOURCE_DIR}/contrib/windows-cmake/build/lib/hwloc.lib
302+
DEPENDS
303+
${hwloc_targ_SOURCE_DIR}/contrib/windows-cmake/CMakeCache.txt
304+
)
305+
add_custom_command(
306+
COMMAND ${CMAKE_COMMAND} --build build --target INSTALL
307+
WORKING_DIRECTORY
308+
${hwloc_targ_SOURCE_DIR}/contrib/windows-cmake/
309+
OUTPUT ${hwloc_targ_BINARY_DIR}/lib/hwloc.lib
310+
DEPENDS
311+
${hwloc_targ_SOURCE_DIR}/contrib/windows-cmake/build/lib/hwloc.lib
312+
)
313+
add_custom_target(hwloc_prod
314+
DEPENDS ${hwloc_targ_BINARY_DIR}/lib/hwloc.lib)
315+
target_link_libraries(
316+
hwloc INTERFACE ${hwloc_targ_BINARY_DIR}/lib/hwloc.lib)
317+
add_dependencies(hwloc hwloc_prod)
318+
319+
set(LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR}/lib)
320+
set(LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR}/lib/hwloc.lib)
321+
elseif(CMAKE_GENERATOR STREQUAL "NMake Makefiles")
322+
set(LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR}/)
323+
set(LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR}/hwloc.lib)
324+
else()
325+
set(LIBHWLOC_LIBRARY_DIRS ${hwloc_targ_BINARY_DIR}/$<CONFIG>)
326+
set(LIBHWLOC_LIBRARIES ${hwloc_targ_BINARY_DIR}/$<CONFIG>/hwloc.lib)
327+
endif()
328+
285329
set(LIBHWLOC_INCLUDE_DIRS
286330
${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)
289331
else()
290332
include(FetchContent)
291333
message(

0 commit comments

Comments
 (0)