From fbe96b99c197650778aa890acf0ea61feba94a17 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Mon, 21 Oct 2019 14:09:31 -0700 Subject: [PATCH] [CMake] Fix the static bindings workflow. Rename LLDB_ALLOW_STATIC_BINDINGS to LLDB_USE_STATIC_BINDINGS and make LLDB use the static bindings unconditionally when it's set. The current variable is opaque because it *allows* LLDB to use the static bindings, but only if SWIG is not found. If an incompatible version of swig is found, it reports a fatal error. This serves no purpose other than to confuse the user. This patch simplifies things and makes the variable do what you expect. When enabled, LLDB uses the static bindings. When disabled, we try to generate them with SWIG. --- lldb/cmake/caches/Apple-lldb-Linux.cmake | 4 ---- lldb/cmake/caches/Apple-lldb-base.cmake | 4 ++++ lldb/cmake/modules/LLDBConfig.cmake | 2 +- lldb/scripts/CMakeLists.txt | 22 ++++++++++++---------- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/lldb/cmake/caches/Apple-lldb-Linux.cmake b/lldb/cmake/caches/Apple-lldb-Linux.cmake index ec6a9deb048cc..13d3839f852f6 100644 --- a/lldb/cmake/caches/Apple-lldb-Linux.cmake +++ b/lldb/cmake/caches/Apple-lldb-Linux.cmake @@ -1,9 +1,5 @@ include(${CMAKE_CURRENT_LIST_DIR}/Apple-lldb-base.cmake) -# Begin Swift Mods -set(LLDB_ALLOW_STATIC_BINDINGS ON CACHE BOOL "") -# End Swift Mods - set(LLVM_DISTRIBUTION_COMPONENTS lldb liblldb diff --git a/lldb/cmake/caches/Apple-lldb-base.cmake b/lldb/cmake/caches/Apple-lldb-base.cmake index d22b6b4686385..ca76f18c093d5 100644 --- a/lldb/cmake/caches/Apple-lldb-base.cmake +++ b/lldb/cmake/caches/Apple-lldb-base.cmake @@ -7,3 +7,7 @@ set(LLVM_ENABLE_MODULES OFF CACHE BOOL "") set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") set(LIBCXX_ENABLE_STATIC OFF CACHE BOOL "") + +# Begin Swift Mods +set(LLDB_USE_STATIC_BINDINGS ON CACHE BOOL "") +# End Swift Mods diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake index 885b107627bfb..b28faa4547b16 100644 --- a/lldb/cmake/modules/LLDBConfig.cmake +++ b/lldb/cmake/modules/LLDBConfig.cmake @@ -54,7 +54,7 @@ option(LLDB_USE_SYSTEM_DEBUGSERVER "Use the system's debugserver for testing (Da # BEGIN SWIFT MOD option(LLDB_ENABLE_SWIFT_SUPPORT "Enable swift support" ON) -option(LLDB_ALLOW_STATIC_BINDINGS "Enable using static/baked language bindings if swig is not present." OFF) +option(LLDB_USE_STATIC_BINDINGS "Use the static Python bindings." OFF) # END SWIFT CODE if(LLDB_BUILD_FRAMEWORK) diff --git a/lldb/scripts/CMakeLists.txt b/lldb/scripts/CMakeLists.txt index 6a461dd3b168a..b10a65ec70770 100644 --- a/lldb/scripts/CMakeLists.txt +++ b/lldb/scripts/CMakeLists.txt @@ -13,19 +13,21 @@ if(LLDB_BUILD_FRAMEWORK) set(framework_arg --framework --target-platform Darwin) endif() -find_package(SWIG) -if(${SWIG_FOUND}) - set(SWIG_MIN_VERSION "2.0.0") - if (${SWIG_VERSION} VERSION_LESS ${SWIG_MIN_VERSION}) - message(FATAL_ERROR "LLDB requires swig ${SWIG_MIN_VERSION}, your version is ${SWIG_VERSION}.") - endif() - set(PREPARE_BINDINGS_ARGS - "--swig-executable=${SWIG_EXECUTABLE}") -elseif(${LLDB_ALLOW_STATIC_BINDINGS}) +if(${LLDB_USE_STATIC_BINDINGS}) set(PREPARE_BINDINGS_ARGS --use-static-binding) else() - message(FATAL_ERROR "swig not found and static bindings not permitted - install swig or specify -DLLDB_ALLOW_STATIC_BINDINGS=1") + find_package(SWIG) + if(${SWIG_FOUND}) + set(SWIG_MIN_VERSION "2.0.0") + if (${SWIG_VERSION} VERSION_LESS ${SWIG_MIN_VERSION}) + message(FATAL_ERROR "LLDB requires swig ${SWIG_MIN_VERSION}, your version is ${SWIG_VERSION}.") + endif() + set(PREPARE_BINDINGS_ARGS + "--swig-executable=${SWIG_EXECUTABLE}") + else() + message(FATAL_ERROR "LLDB requires swig ${SWIG_MIN_VERSION}. To use the static bindings instead use -DLLDB_USE_STATIC_BINDINGS=ON") + endif() endif() add_custom_command(