Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
  • Loading branch information
arlosi committed Jul 6, 2020
commit e10146ddf88beb0536aeb9f4fb6ff9944e3d9f4b
16 changes: 10 additions & 6 deletions llvm/tools/llvm-shlib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,17 @@ if(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 $<TARGET_FILE:llvm-nm>)
set(llvm_nm_target llvm-nm)
endif()
else()
set(llvm_nm $<TARGET_FILE: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}
Expand Down