From 1d8cb099231a79b6ad96e745c2d17cf307bea857 Mon Sep 17 00:00:00 2001 From: Arlo Siemsen Date: Mon, 6 Jul 2020 13:17:22 -0700 Subject: [PATCH] Add option LLVM_NM to allow specifying the location of the llvm-nm tool The new option works like the existing LLVM_TABLEGEN, and LLVM_CONFIG_PATH options. Instead of building llvm-nm, the build uses the executable defined by LLVM_NM. This is useful for cross-compilation scenarios where the host cannot run the cross-compiled tool, and recursing into another cmake build is not an option (due to required DEFINE's, for example). Reviewed By: smeenai Differential Revision: https://reviews.llvm.org/D83022 --- llvm/tools/llvm-shlib/CMakeLists.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/llvm/tools/llvm-shlib/CMakeLists.txt b/llvm/tools/llvm-shlib/CMakeLists.txt index 25803da0c252..f3a2056f80d3 100644 --- a/llvm/tools/llvm-shlib/CMakeLists.txt +++ b/llvm/tools/llvm-shlib/CMakeLists.txt @@ -154,13 +154,17 @@ if(LLVM_BUILD_LLVM_C_DYLIB AND MSVC) set(GEN_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/gen-msvc-exports.py) set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllvm-c.exports) - - if(CMAKE_CROSSCOMPILING) - build_native_tool(llvm-nm llvm_nm) - set(llvm_nm_target "${llvm_nm}") + if(NOT LLVM_NM) + if(CMAKE_CROSSCOMPILING) + build_native_tool(llvm-nm llvm_nm) + set(llvm_nm_target "${llvm_nm}") + else() + set(llvm_nm $) + set(llvm_nm_target llvm-nm) + endif() else() - set(llvm_nm $) - set(llvm_nm_target llvm-nm) + set(llvm_nm ${LLVM_NM}) + set(llvm_nm_target "") endif() add_custom_command(OUTPUT ${LLVM_EXPORTED_SYMBOL_FILE}