Skip to content

Commit 64bf023

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 286a6d8 commit 64bf023

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
@@ -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

Comments
 (0)