Skip to content

Commit 9749d07

Browse files
committed
Use Windows/ARM64 in interpreted mode only (III)
1 parent a4c1eb4 commit 9749d07

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

CMakeLists.txt

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,14 +346,36 @@ function(miniexpr_setup_target target_name)
346346
endif()
347347
if(_miniexpr_builtins_names)
348348
unset(_miniexpr_builtins_lib CACHE)
349-
find_library(_miniexpr_builtins_lib NAMES ${_miniexpr_builtins_names})
349+
execute_process(
350+
COMMAND "${CMAKE_C_COMPILER}" -print-resource-dir
351+
OUTPUT_VARIABLE _miniexpr_clang_resource_dir
352+
OUTPUT_STRIP_TRAILING_WHITESPACE
353+
ERROR_QUIET
354+
)
355+
if(_miniexpr_clang_resource_dir)
356+
foreach(_miniexpr_builtins_name IN LISTS _miniexpr_builtins_names)
357+
find_file(_miniexpr_builtins_lib
358+
NAMES "${_miniexpr_builtins_name}.lib"
359+
PATHS "${_miniexpr_clang_resource_dir}/lib/windows"
360+
NO_DEFAULT_PATH
361+
)
362+
if(_miniexpr_builtins_lib)
363+
break()
364+
endif()
365+
endforeach()
366+
endif()
367+
if(NOT _miniexpr_builtins_lib)
368+
find_library(_miniexpr_builtins_lib NAMES ${_miniexpr_builtins_names})
369+
endif()
350370
if(_miniexpr_builtins_lib)
351371
target_link_libraries(${target_name} PUBLIC "${_miniexpr_builtins_lib}")
352372
else()
353373
message(STATUS
354374
"MiniExpr: clang_rt builtins library not found for ${CMAKE_VS_PLATFORM_NAME}; using default toolchain runtime.")
355375
endif()
356376
unset(_miniexpr_builtins_lib CACHE)
377+
unset(_miniexpr_builtins_name)
378+
unset(_miniexpr_clang_resource_dir)
357379
endif()
358380
unset(_miniexpr_builtins_names)
359381
endif()

0 commit comments

Comments
 (0)