Skip to content

Commit

Permalink
Add option LLVM_NM to allow specifying the location of the llvm-nm tool
Browse files Browse the repository at this point in the history
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
1 parent 6c040dd commit e10146d
Showing 1 changed file with 10 additions and 6 deletions.
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

0 comments on commit e10146d

Please sign in to comment.