From 75966ee241a2f1b7712caa1bbe66560347b23359 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Mon, 17 Aug 2020 08:47:52 -0700 Subject: [PATCH] [lldb] Get rid of helper CMake variables for Python This patch is a big sed to rename the following variables: s/PYTHON_LIBRARIES/Python3_LIBRARIES/g s/PYTHON_INCLUDE_DIRS/Python3_INCLUDE_DIRS/g s/PYTHON_EXECUTABLE/Python3_EXECUTABLE/g s/PYTHON_RPATH/Python3_RPATH/g I've also renamed the CMake module to better express its purpose and for consistency with FindLuaAndSwig. Differential revision: https://reviews.llvm.org/D85976 --- lldb/CMakeLists.txt | 2 +- lldb/bindings/python/CMakeLists.txt | 2 +- ...InterpAndLibs.cmake => FindPythonAndSwig.cmake} | 29 ++++++++++------------ lldb/cmake/modules/LLDBConfig.cmake | 6 ++--- lldb/source/API/CMakeLists.txt | 10 ++++---- lldb/source/Plugins/ObjectFile/CMakeLists.txt | 2 +- .../Plugins/ScriptInterpreter/None/CMakeLists.txt | 2 +- .../ScriptInterpreter/Python/CMakeLists.txt | 2 +- lldb/test/API/CMakeLists.txt | 2 +- lldb/test/API/lit.site.cfg.py.in | 2 +- lldb/test/CMakeLists.txt | 2 +- lldb/test/Shell/lit.site.cfg.py.in | 2 +- lldb/test/Unit/lit.site.cfg.py.in | 2 +- lldb/test/lit.site.cfg.py.in | 2 +- lldb/tools/intel-features/CMakeLists.txt | 2 +- lldb/tools/lldb-test/CMakeLists.txt | 6 ++--- lldb/unittests/API/CMakeLists.txt | 4 +-- lldb/unittests/Process/Linux/CMakeLists.txt | 2 +- .../unittests/ScriptInterpreter/Lua/CMakeLists.txt | 2 +- .../ScriptInterpreter/Python/CMakeLists.txt | 6 ++--- lldb/utils/lldb-dotest/lldb-dotest.in | 2 +- 21 files changed, 44 insertions(+), 47 deletions(-) rename lldb/cmake/modules/{FindPythonInterpAndLibs.cmake => FindPythonAndSwig.cmake} (67%) diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt index cd3d3c8..4e417e9 100644 --- a/lldb/CMakeLists.txt +++ b/lldb/CMakeLists.txt @@ -36,7 +36,7 @@ endif() if (LLDB_ENABLE_PYTHON) execute_process( - COMMAND ${PYTHON_EXECUTABLE} + COMMAND ${Python3_EXECUTABLE} -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(True, False, ''))" OUTPUT_VARIABLE LLDB_PYTHON_DEFAULT_RELATIVE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) diff --git a/lldb/bindings/python/CMakeLists.txt b/lldb/bindings/python/CMakeLists.txt index dc097cb..d51730d 100644 --- a/lldb/bindings/python/CMakeLists.txt +++ b/lldb/bindings/python/CMakeLists.txt @@ -28,7 +28,7 @@ function(create_python_package swig_target working_dir pkg_dir) set(copy_cmd COMMAND ${CMAKE_COMMAND} -E copy ${ARG_FILES} ${pkg_dir}) endif() if(NOT ARG_NOINIT) - set(init_cmd COMMAND ${PYTHON_EXECUTABLE} + set(init_cmd COMMAND ${Python3_EXECUTABLE} "${LLDB_SOURCE_DIR}/bindings/python/createPythonInit.py" "${pkg_dir}" ${ARG_FILES}) endif() diff --git a/lldb/cmake/modules/FindPythonInterpAndLibs.cmake b/lldb/cmake/modules/FindPythonAndSwig.cmake similarity index 67% rename from lldb/cmake/modules/FindPythonInterpAndLibs.cmake rename to lldb/cmake/modules/FindPythonAndSwig.cmake index 5ac472b..c8edaaa 100644 --- a/lldb/cmake/modules/FindPythonInterpAndLibs.cmake +++ b/lldb/cmake/modules/FindPythonAndSwig.cmake @@ -1,5 +1,5 @@ #.rst: -# FindPythonInterpAndLibs +# FindPythonAndSwig # ----------- # # Find the python interpreter and libraries as a whole. @@ -9,9 +9,6 @@ macro(FindPython3) set(Python3_ROOT_DIR "${PYTHON_HOME}") find_package(Python3 COMPONENTS Interpreter Development) if(Python3_FOUND AND Python3_Interpreter_FOUND) - set(PYTHON_LIBRARIES ${Python3_LIBRARIES}) - set(PYTHON_INCLUDE_DIRS ${Python3_INCLUDE_DIRS}) - set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) # The install name for the Python 3 framework in Xcode is relative to # the framework's location and not the dylib itself. @@ -25,21 +22,21 @@ macro(FindPython3) # called Python.framework instead of Python3.framework. if (APPLE AND Python3_LIBRARIES MATCHES "Python3.framework") string(FIND "${Python3_LIBRARIES}" "Python3.framework" python_framework_pos) - string(SUBSTRING "${Python3_LIBRARIES}" "0" ${python_framework_pos} PYTHON_RPATH) + string(SUBSTRING "${Python3_LIBRARIES}" "0" ${python_framework_pos} Python3_RPATH) endif() set(PYTHON3_FOUND TRUE) mark_as_advanced( - PYTHON_LIBRARIES - PYTHON_INCLUDE_DIRS - PYTHON_EXECUTABLE - PYTHON_RPATH + Python3_LIBRARIES + Python3_INCLUDE_DIRS + Python3_EXECUTABLE + Python3_RPATH SWIG_EXECUTABLE) endif() endmacro() -if(PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS AND PYTHON_EXECUTABLE AND SWIG_EXECUTABLE) - set(PYTHONINTERPANDLIBS_FOUND TRUE) +if(Python3_LIBRARIES AND Python3_INCLUDE_DIRS AND Python3_EXECUTABLE AND SWIG_EXECUTABLE) + set(PYTHONANDSWIG_FOUND TRUE) else() find_package(SWIG 2.0) if (SWIG_FOUND) @@ -49,12 +46,12 @@ else() endif() include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(PythonInterpAndLibs + find_package_handle_standard_args(PythonAndSwig FOUND_VAR - PYTHONINTERPANDLIBS_FOUND + PYTHONANDSWIG_FOUND REQUIRED_VARS - PYTHON_LIBRARIES - PYTHON_INCLUDE_DIRS - PYTHON_EXECUTABLE + Python3_LIBRARIES + Python3_INCLUDE_DIRS + Python3_EXECUTABLE SWIG_EXECUTABLE) endif() diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake index ed77e18..b0c139e 100644 --- a/lldb/cmake/modules/LLDBConfig.cmake +++ b/lldb/cmake/modules/LLDBConfig.cmake @@ -56,7 +56,7 @@ add_optional_dependency(LLDB_ENABLE_LIBEDIT "Enable editline support in LLDB" Li add_optional_dependency(LLDB_ENABLE_CURSES "Enable curses support in LLDB" CursesAndPanel CURSESANDPANEL_FOUND) add_optional_dependency(LLDB_ENABLE_LZMA "Enable LZMA compression support in LLDB" LibLZMA LIBLZMA_FOUND) add_optional_dependency(LLDB_ENABLE_LUA "Enable Lua scripting support in LLDB" LuaAndSwig LUAANDSWIG_FOUND) -add_optional_dependency(LLDB_ENABLE_PYTHON "Enable Python scripting support in LLDB" PythonInterpAndLibs PYTHONINTERPANDLIBS_FOUND) +add_optional_dependency(LLDB_ENABLE_PYTHON "Enable Python scripting support in LLDB" PythonAndSwig PYTHONANDSWIG_FOUND) add_optional_dependency(LLDB_ENABLE_LIBXML2 "Enable Libxml 2 support in LLDB" LibXml2 LIBXML2_FOUND VERSION 2.8) option(LLDB_USE_SYSTEM_SIX "Use six.py shipped with system and do not install a copy of it" OFF) @@ -143,9 +143,9 @@ if (LLDB_ENABLE_PYTHON) "Embed PYTHONHOME in the binary. If set to OFF, PYTHONHOME environment variable will be used to to locate Python." ${default_embed_python_home}) - include_directories(${PYTHON_INCLUDE_DIRS}) + include_directories(${Python3_INCLUDE_DIRS}) if (LLDB_EMBED_PYTHON_HOME) - get_filename_component(PYTHON_HOME "${PYTHON_EXECUTABLE}" DIRECTORY) + get_filename_component(PYTHON_HOME "${Python3_EXECUTABLE}" DIRECTORY) set(LLDB_PYTHON_HOME "${PYTHON_HOME}" CACHE STRING "Path to use as PYTHONHOME in lldb. If a relative path is specified, it will be resolved at runtime relative to liblldb directory.") endif() diff --git a/lldb/source/API/CMakeLists.txt b/lldb/source/API/CMakeLists.txt index 86eb9e4..8a7f28c 100644 --- a/lldb/source/API/CMakeLists.txt +++ b/lldb/source/API/CMakeLists.txt @@ -121,9 +121,9 @@ if(LLDB_ENABLE_PYTHON AND (BUILD_SHARED_LIBS OR LLVM_LINK_LLVM_DYLIB) AND UNIX A set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "\$ORIGIN/../../../../lib${LLVM_LIBDIR_SUFFIX}") endif() -if(PYTHON_RPATH) - set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "${PYTHON_RPATH}") - set_property(TARGET liblldb APPEND PROPERTY BUILD_RPATH "${PYTHON_RPATH}") +if(Python3_RPATH) + set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "${Python3_RPATH}") + set_property(TARGET liblldb APPEND PROPERTY BUILD_RPATH "${Python3_RPATH}") endif() @@ -184,9 +184,9 @@ endif() if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) # Only MSVC has the ABI compatibility problem and avoids using FindPythonLibs, - # so only it needs to explicitly link against ${PYTHON_LIBRARIES} + # so only it needs to explicitly link against ${Python3_LIBRARIES} if (MSVC AND LLDB_ENABLE_PYTHON) - target_link_libraries(liblldb PRIVATE ${PYTHON_LIBRARIES}) + target_link_libraries(liblldb PRIVATE ${Python3_LIBRARIES}) endif() else() set_target_properties(liblldb diff --git a/lldb/source/Plugins/ObjectFile/CMakeLists.txt b/lldb/source/Plugins/ObjectFile/CMakeLists.txt index 76f6d7a..77ca511 100644 --- a/lldb/source/Plugins/ObjectFile/CMakeLists.txt +++ b/lldb/source/Plugins/ObjectFile/CMakeLists.txt @@ -3,4 +3,4 @@ add_subdirectory(ELF) add_subdirectory(Mach-O) add_subdirectory(PECOFF) add_subdirectory(JIT) -add_subdirectory(wasm) \ No newline at end of file +add_subdirectory(wasm) diff --git a/lldb/source/Plugins/ScriptInterpreter/None/CMakeLists.txt b/lldb/source/Plugins/ScriptInterpreter/None/CMakeLists.txt index 7e7dd58..ce4fb4f 100644 --- a/lldb/source/Plugins/ScriptInterpreter/None/CMakeLists.txt +++ b/lldb/source/Plugins/ScriptInterpreter/None/CMakeLists.txt @@ -4,4 +4,4 @@ add_lldb_library(lldbPluginScriptInterpreterNone PLUGIN LINK_LIBS lldbCore lldbInterpreter - ) \ No newline at end of file + ) diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt b/lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt index 761772f..2cbf8bc 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt +++ b/lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt @@ -19,7 +19,7 @@ add_lldb_library(lldbPluginScriptInterpreterPython PLUGIN lldbHost lldbInterpreter lldbTarget - ${PYTHON_LIBRARIES} + ${Python3_LIBRARIES} ${LLDB_LIBEDIT_LIBS} LINK_COMPONENTS diff --git a/lldb/test/API/CMakeLists.txt b/lldb/test/API/CMakeLists.txt index a80992f2..192c0ad 100644 --- a/lldb/test/API/CMakeLists.txt +++ b/lldb/test/API/CMakeLists.txt @@ -1,6 +1,6 @@ function(add_python_test_target name test_script args comment) set(PYTHON_TEST_COMMAND - ${PYTHON_EXECUTABLE} + ${Python3_EXECUTABLE} ${test_script} ${args} ) diff --git a/lldb/test/API/lit.site.cfg.py.in b/lldb/test/API/lit.site.cfg.py.in index 866dc16..3a108ae 100644 --- a/lldb/test/API/lit.site.cfg.py.in +++ b/lldb/test/API/lit.site.cfg.py.in @@ -19,7 +19,7 @@ config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@" config.target_triple = "@TARGET_TRIPLE@" config.lldb_build_directory = "@LLDB_TEST_BUILD_DIRECTORY@" config.lldb_reproducer_directory = os.path.join("@LLDB_TEST_BUILD_DIRECTORY@", "reproducers") -config.python_executable = "@PYTHON_EXECUTABLE@" +config.python_executable = "@Python3_EXECUTABLE@" config.dotest_path = "@LLDB_SOURCE_DIR@/test/API/dotest.py" config.dotest_args_str = "@LLDB_DOTEST_ARGS@" config.lldb_enable_python = @LLDB_ENABLE_PYTHON@ diff --git a/lldb/test/CMakeLists.txt b/lldb/test/CMakeLists.txt index dc5af5e..c024918 100644 --- a/lldb/test/CMakeLists.txt +++ b/lldb/test/CMakeLists.txt @@ -218,7 +218,7 @@ if(LLDB_BUILT_STANDALONE) if (EXISTS ${LLVM_MAIN_SRC_DIR}/utils/llvm-lit) # LLVM's make_paths_relative uses Python3_EXECUTABLE which isn't set in a # standalone LLDB build. - set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE}) + set(Python3_EXECUTABLE ${Python3_EXECUTABLE}) add_subdirectory(${LLVM_MAIN_SRC_DIR}/utils/llvm-lit ${CMAKE_CURRENT_BINARY_DIR}/llvm-lit) endif() endif() diff --git a/lldb/test/Shell/lit.site.cfg.py.in b/lldb/test/Shell/lit.site.cfg.py.in index d998a0c..ff4de9d 100644 --- a/lldb/test/Shell/lit.site.cfg.py.in +++ b/lldb/test/Shell/lit.site.cfg.py.in @@ -13,7 +13,7 @@ config.lldb_tools_dir = "@LLDB_TOOLS_DIR@" # should not need to be escaped. config.lldb_lit_tools_dir = r"@LLDB_LIT_TOOLS_DIR@" config.target_triple = "@TARGET_TRIPLE@" -config.python_executable = "@PYTHON_EXECUTABLE@" +config.python_executable = "@Python3_EXECUTABLE@" config.have_zlib = @LLVM_ENABLE_ZLIB@ config.lldb_enable_lzma = @LLDB_ENABLE_LZMA@ config.host_triple = "@LLVM_HOST_TRIPLE@" diff --git a/lldb/test/Unit/lit.site.cfg.py.in b/lldb/test/Unit/lit.site.cfg.py.in index 9d9bcd4..e2035d6 100644 --- a/lldb/test/Unit/lit.site.cfg.py.in +++ b/lldb/test/Unit/lit.site.cfg.py.in @@ -10,7 +10,7 @@ config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" config.lldb_obj_root = "@LLDB_BINARY_DIR@" config.lldb_src_root = "@LLDB_SOURCE_DIR@" config.target_triple = "@TARGET_TRIPLE@" -config.python_executable = "@PYTHON_EXECUTABLE@" +config.python_executable = "@Python3_EXECUTABLE@" # Support substitution of the tools and libs dirs with user parameters. This is # used when we can't determine the tool dir at configuration time. diff --git a/lldb/test/lit.site.cfg.py.in b/lldb/test/lit.site.cfg.py.in index 49d789d..24c0a4d 100644 --- a/lldb/test/lit.site.cfg.py.in +++ b/lldb/test/lit.site.cfg.py.in @@ -10,7 +10,7 @@ config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" config.lldb_obj_root = "@LLDB_BINARY_DIR@" config.lldb_src_root = "@LLDB_SOURCE_DIR@" config.target_triple = "@TARGET_TRIPLE@" -config.python_executable = "@PYTHON_EXECUTABLE@" +config.python_executable = "@Python3_EXECUTABLE@" # Support substitution of the tools and libs dirs with user parameters. This is # used when we can't determine the tool dir at configuration time. diff --git a/lldb/tools/intel-features/CMakeLists.txt b/lldb/tools/intel-features/CMakeLists.txt index e5f3bbf..e4979ad 100644 --- a/lldb/tools/intel-features/CMakeLists.txt +++ b/lldb/tools/intel-features/CMakeLists.txt @@ -56,7 +56,7 @@ add_lldb_library(lldbIntelFeatures SHARED LINK_LIBS ${FEATURE_LIBS} - ${PYTHON_LIBRARIES} + ${Python3_LIBRARIES} ) # Add link dependencies for python wrapper diff --git a/lldb/tools/lldb-test/CMakeLists.txt b/lldb/tools/lldb-test/CMakeLists.txt index 2edbd8e..5629057 100644 --- a/lldb/tools/lldb-test/CMakeLists.txt +++ b/lldb/tools/lldb-test/CMakeLists.txt @@ -24,9 +24,9 @@ add_lldb_tool(lldb-test Support ) -if(PYTHON_RPATH) - set_property(TARGET lldb-test APPEND PROPERTY INSTALL_RPATH "${PYTHON_RPATH}") - set_property(TARGET lldb-test APPEND PROPERTY BUILD_RPATH "${PYTHON_RPATH}") +if(Python3_RPATH) + set_property(TARGET lldb-test APPEND PROPERTY INSTALL_RPATH "${Python3_RPATH}") + set_property(TARGET lldb-test APPEND PROPERTY BUILD_RPATH "${Python3_RPATH}") endif() target_include_directories(lldb-test PRIVATE ${LLDB_SOURCE_DIR}/source) diff --git a/lldb/unittests/API/CMakeLists.txt b/lldb/unittests/API/CMakeLists.txt index 308249b..2f066f2 100644 --- a/lldb/unittests/API/CMakeLists.txt +++ b/lldb/unittests/API/CMakeLists.txt @@ -5,6 +5,6 @@ add_lldb_unittest(APITests liblldb ) -if(PYTHON_RPATH) - set_property(TARGET APITests APPEND PROPERTY BUILD_RPATH "${PYTHON_RPATH}") +if(Python3_RPATH) + set_property(TARGET APITests APPEND PROPERTY BUILD_RPATH "${Python3_RPATH}") endif() diff --git a/lldb/unittests/Process/Linux/CMakeLists.txt b/lldb/unittests/Process/Linux/CMakeLists.txt index d2256bc..ab6eaa4 100644 --- a/lldb/unittests/Process/Linux/CMakeLists.txt +++ b/lldb/unittests/Process/Linux/CMakeLists.txt @@ -6,4 +6,4 @@ add_lldb_unittest(ProcessorTraceTests ) target_include_directories(ProcessorTraceTests PRIVATE - ${LLDB_SOURCE_DIR}/source/Plugins/Process/Linux) \ No newline at end of file + ${LLDB_SOURCE_DIR}/source/Plugins/Process/Linux) diff --git a/lldb/unittests/ScriptInterpreter/Lua/CMakeLists.txt b/lldb/unittests/ScriptInterpreter/Lua/CMakeLists.txt index aa8a95c..e030070 100644 --- a/lldb/unittests/ScriptInterpreter/Lua/CMakeLists.txt +++ b/lldb/unittests/ScriptInterpreter/Lua/CMakeLists.txt @@ -9,4 +9,4 @@ add_lldb_unittest(ScriptInterpreterLuaTests LLVMTestingSupport LINK_COMPONENTS Support - ) \ No newline at end of file + ) diff --git a/lldb/unittests/ScriptInterpreter/Python/CMakeLists.txt b/lldb/unittests/ScriptInterpreter/Python/CMakeLists.txt index 913bd62..90a53bf 100644 --- a/lldb/unittests/ScriptInterpreter/Python/CMakeLists.txt +++ b/lldb/unittests/ScriptInterpreter/Python/CMakeLists.txt @@ -10,6 +10,6 @@ add_lldb_unittest(ScriptInterpreterPythonTests Support ) -if(PYTHON_RPATH) - set_property(TARGET ScriptInterpreterPythonTests APPEND PROPERTY BUILD_RPATH "${PYTHON_RPATH}") -endif() \ No newline at end of file +if(Python3_RPATH) + set_property(TARGET ScriptInterpreterPythonTests APPEND PROPERTY BUILD_RPATH "${Python3_RPATH}") +endif() diff --git a/lldb/utils/lldb-dotest/lldb-dotest.in b/lldb/utils/lldb-dotest/lldb-dotest.in index ee0ea6d..f573d5b 100755 --- a/lldb/utils/lldb-dotest/lldb-dotest.in +++ b/lldb/utils/lldb-dotest/lldb-dotest.in @@ -1,4 +1,4 @@ -#!@PYTHON_EXECUTABLE@ +#!@Python3_EXECUTABLE@ import subprocess import sys -- 2.7.4