forked from OSchip/llvm-project
Use response file when generating LLVM-C.dll
As discovered in D56774 the command line gets to long, so use a response file to give the script the libs. This change has been tested and is confirmed working for me. Commited on behalf of Jakob Bornecrantz Differential Revision: https://reviews.llvm.org/D56781 llvm-svn: 351833
This commit is contained in:
parent
03ed93fd37
commit
d62eb16331
|
@ -137,13 +137,20 @@ if(MSVC)
|
|||
list(APPEND FULL_LIB_NAMES ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib/${lib}.lib)
|
||||
endforeach()
|
||||
|
||||
# Need to seperate lib names with newlines.
|
||||
string(REPLACE ";" "\n" FILE_CONTENT "${FULL_LIB_NAMES}")
|
||||
|
||||
# Write out the full lib names into file to be read by the python script.
|
||||
set(LIBSFILE ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllvm-c.args)
|
||||
file(WRITE ${LIBSFILE} "${FILE_CONTENT}")
|
||||
|
||||
# Generate the exports file dynamically.
|
||||
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)
|
||||
|
||||
add_custom_command(OUTPUT ${LLVM_EXPORTED_SYMBOL_FILE}
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${GEN_SCRIPT} ${FULL_LIB_NAMES} ${GEN_UNDERSCORE} --nm ${LLVM_TOOLS_BINARY_DIR}/llvm-nm -o ${LLVM_EXPORTED_SYMBOL_FILE}
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${GEN_SCRIPT} --libsfile ${LIBSFILE} ${GEN_UNDERSCORE} --nm ${LLVM_TOOLS_BINARY_DIR}/llvm-nm -o ${LLVM_EXPORTED_SYMBOL_FILE}
|
||||
DEPENDS ${LIB_NAMES} llvm-nm
|
||||
COMMENT "Generating export list for LLVM-C"
|
||||
VERBATIM )
|
||||
|
|
|
@ -82,6 +82,10 @@ def gen_llvm_c_export(output, underscore, libs, nm):
|
|||
def main():
|
||||
parser = argparse.ArgumentParser('gen-msvc-exports')
|
||||
|
||||
parser.add_argument(
|
||||
'-i', '--libsfile', help='file with list of libs, new line separated',
|
||||
action='store', default=None
|
||||
)
|
||||
parser.add_argument(
|
||||
'-o', '--output', help='output filename', default='LLVM-C.exports'
|
||||
)
|
||||
|
@ -93,12 +97,19 @@ def main():
|
|||
'--nm', help='path to the llvm-nm executable', default='llvm-nm'
|
||||
)
|
||||
parser.add_argument(
|
||||
'libs', metavar='LIBS', nargs='+', help='list of libraries to generate export from'
|
||||
'libs', metavar='LIBS', nargs='*', help='list of libraries to generate export from'
|
||||
)
|
||||
|
||||
ns = parser.parse_args()
|
||||
|
||||
gen_llvm_c_export(ns.output, ns.underscore, ns.libs, ns.nm)
|
||||
libs = ns.libs
|
||||
|
||||
# Add if we where given a libsfile add it to the libs.
|
||||
if ns.libsfile:
|
||||
with open(ns.libsfile) as f:
|
||||
libs.extend(f.read().splitlines())
|
||||
|
||||
gen_llvm_c_export(ns.output, ns.underscore, libs, ns.nm)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Reference in New Issue