From 48be38f94bb01698f787422bd3082ac9babcdd5b Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Tue, 29 Jan 2019 13:43:22 +0000 Subject: [PATCH] Revert r351833 and r352250. They were breaking the Windows build when using MSBuild, see the discussion on D56781. r351833: "Use response file when generating LLVM-C.dll" > 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 r352250: "Build LLVM-C.dll by default on windows and enable in release package" > Build LLVM-C.dll by default on windows and enable in release package > > With the fixes to the building of LLVM-C.dll in D56781 this should now > be safe to land. This will greatly simplify dealing with LLVM for people > that just want to use the C API on windows. This is a follow up from > D35077. > > Patch by Jakob Bornecrantz! > > Differential revision: https://reviews.llvm.org/D56774 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352492 91177308-0d34-0410-b5e6-96231b3b80d8 --- CMakeLists.txt | 2 +- tools/llvm-shlib/CMakeLists.txt | 9 +-------- tools/llvm-shlib/gen-msvc-exports.py | 15 ++------------- utils/release/build_llvm_package.bat | 12 +----------- 4 files changed, 5 insertions(+), 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a24c5cc4a5..168ec6a6cff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -534,7 +534,7 @@ if(NOT DEFINED LLVM_DYLIB_COMPONENTS) endif() option(LLVM_LINK_LLVM_DYLIB "Link tools against the libllvm dynamic library" OFF) if(MSVC) - option(LLVM_BUILD_LLVM_C_DYLIB "Build LLVM-C.dll (Windows only)" ON) + option(LLVM_BUILD_LLVM_C_DYLIB "Build LLVM-C.dll (Windows only)" OFF) else() option(LLVM_BUILD_LLVM_C_DYLIB "Build libllvm-c re-export library (Darwin only)" OFF) endif() diff --git a/tools/llvm-shlib/CMakeLists.txt b/tools/llvm-shlib/CMakeLists.txt index 8fdefc0d350..187066e5ded 100644 --- a/tools/llvm-shlib/CMakeLists.txt +++ b/tools/llvm-shlib/CMakeLists.txt @@ -137,20 +137,13 @@ 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} --libsfile ${LIBSFILE} ${GEN_UNDERSCORE} --nm ${LLVM_TOOLS_BINARY_DIR}/llvm-nm -o ${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} DEPENDS ${LIB_NAMES} llvm-nm COMMENT "Generating export list for LLVM-C" VERBATIM ) diff --git a/tools/llvm-shlib/gen-msvc-exports.py b/tools/llvm-shlib/gen-msvc-exports.py index 671faf11528..2b7291de28b 100644 --- a/tools/llvm-shlib/gen-msvc-exports.py +++ b/tools/llvm-shlib/gen-msvc-exports.py @@ -82,10 +82,6 @@ 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' ) @@ -97,19 +93,12 @@ 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() - 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) + gen_llvm_c_export(ns.output, ns.underscore, ns.libs, ns.nm) if __name__ == '__main__': diff --git a/utils/release/build_llvm_package.bat b/utils/release/build_llvm_package.bat index 580708edfe3..8038d798aa0 100755 --- a/utils/release/build_llvm_package.bat +++ b/utils/release/build_llvm_package.bat @@ -52,17 +52,7 @@ svn.exe export -r %revision% http://llvm.org/svn/llvm-project/lldb/%branch% llvm REM Setting CMAKE_CL_SHOWINCLUDES_PREFIX to work around PR27226. -set cmake_flags=^ - -DCMAKE_BUILD_TYPE=Release ^ - -DLLVM_ENABLE_ASSERTIONS=ON ^ - -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON ^ - -DLLVM_BUILD_LLVM_C_DYLIB=ON ^ - -DCMAKE_INSTALL_UCRT_LIBRARIES=ON ^ - -DCLANG_FORMAT_VS_VERSION=%clang_format_vs_version% ^ - -DPACKAGE_VERSION=%package_version% ^ - -DLLDB_RELOCATABLE_PYTHON=1 ^ - -DLLDB_TEST_COMPILER=%cd%\build32_stage0\bin\clang.exe ^ - -DCMAKE_CL_SHOWINCLUDES_PREFIX="Note: including file: " +set cmake_flags=-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON -DCMAKE_INSTALL_UCRT_LIBRARIES=ON -DCLANG_FORMAT_VS_VERSION=%clang_format_vs_version% -DPACKAGE_VERSION=%package_version% -DLLDB_RELOCATABLE_PYTHON=1 -DLLDB_TEST_COMPILER=%cd%\build32_stage0\bin\clang.exe -DCMAKE_CL_SHOWINCLUDES_PREFIX="Note: including file: " REM TODO: Run the "check-all" tests. -- 2.40.0