[Lldb-commits] [PATCH] D19772: Detect Python's executable on NetBSD

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Sat Apr 30 18:46:19 PDT 2016


I'm not sure anyone else uses the standalone build, so as long as the
changes you're making are confined to LLDBStandalone, it should be fine
On Sat, Apr 30, 2016 at 6:41 PM Kamil Rytarowski <n54 at gmx.com> wrote:

> krytarowski added a comment.
>
> If the change should go to LLDBStandalone.cmake -- can I just put there in
> one go all the bits for standalone builds?
>
>   --- cmake/modules/LLDBStandalone.cmake.orig     2016-04-27
> 00:55:49.000000000 +0000
>   +++ cmake/modules/LLDBStandalone.cmake
>   @@ -2,61 +2,82 @@
>    # standalone project, using LLVM as an external library:
>    if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
>      project(lldb)
>   -  cmake_minimum_required(VERSION 2.8)
>   +  cmake_minimum_required(VERSION 2.8.12.2)
>
>      option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in
> the 'install' target." OFF)
>
>   -  set(LLDB_PATH_TO_LLVM_SOURCE "" CACHE PATH
>   -    "Path to LLVM source code. Not necessary if using an installed
> LLVM.")
>   -  set(LLDB_PATH_TO_LLVM_BUILD "" CACHE PATH
>   -    "Path to the directory where LLVM was built or installed.")
>   -
>   -  set(LLDB_PATH_TO_CLANG_SOURCE "" CACHE PATH
>   -    "Path to Clang source code. Not necessary if using an installed
> Clang.")
>   -  set(LLDB_PATH_TO_CLANG_BUILD "" CACHE PATH
>   -    "Path to the directory where Clang was built or installed.")
>   -
>   -  if (LLDB_PATH_TO_LLVM_SOURCE)
>   -    if (NOT EXISTS "${LLDB_PATH_TO_LLVM_SOURCE}/cmake/config-ix.cmake")
>   -      message(FATAL_ERROR "Please set LLDB_PATH_TO_LLVM_SOURCE to the
> root "
>   -              "directory of LLVM source code.")
>   +  # Rely on llvm-config.
>   +  set(CONFIG_OUTPUT)
>   +  find_program(LLVM_CONFIG "llvm-config")
>   +  if(LLVM_CONFIG)
>   +    message(STATUS "Found LLVM_CONFIG as ${LLVM_CONFIG}")
>   +    set(CONFIG_COMMAND ${LLVM_CONFIG}
>   +      "--assertion-mode"
>   +      "--bindir"
>   +      "--libdir"
>   +      "--includedir"
>   +      "--prefix"
>   +      "--src-root")
>   +    execute_process(
>   +      COMMAND ${CONFIG_COMMAND}
>   +      RESULT_VARIABLE HAD_ERROR
>   +      OUTPUT_VARIABLE CONFIG_OUTPUT
>   +    )
>   +    if(NOT HAD_ERROR)
>   +      string(REGEX REPLACE
>   +        "[ \t]*[\r\n]+[ \t]*" ";"
>   +        CONFIG_OUTPUT ${CONFIG_OUTPUT})
>   +
>        else()
>   -      get_filename_component(LLVM_MAIN_SRC_DIR
> ${LLDB_PATH_TO_LLVM_SOURCE}
>   -                             ABSOLUTE)
>   -      set(LLVM_MAIN_INCLUDE_DIR "${LLVM_MAIN_SRC_DIR}/include")
>   -      list(APPEND CMAKE_MODULE_PATH
> "${LLVM_MAIN_SRC_DIR}/cmake/modules")
>   +      string(REPLACE ";" " " CONFIG_COMMAND_STR "${CONFIG_COMMAND}")
>   +      message(STATUS "${CONFIG_COMMAND_STR}")
>   +      message(FATAL_ERROR "llvm-config failed with status ${HAD_ERROR}")
>        endif()
>   -  endif()
>   -
>   -  if (LLDB_PATH_TO_CLANG_SOURCE)
>   -      get_filename_component(CLANG_MAIN_SRC_DIR
> ${LLDB_PATH_TO_CLANG_SOURCE}
>   -                             ABSOLUTE)
>   -      set(CLANG_MAIN_INCLUDE_DIR "${CLANG_MAIN_SRC_DIR}/include")
>   -  endif()
>   -
>   -  list(APPEND CMAKE_MODULE_PATH
> "${LLDB_PATH_TO_LLVM_BUILD}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
>   -
>   -  if (LLDB_PATH_TO_LLVM_BUILD)
>   -    get_filename_component(PATH_TO_LLVM_BUILD ${LLDB_PATH_TO_LLVM_BUILD}
>   -                           ABSOLUTE)
>      else()
>   -    message(FATAL_ERROR "Please set LLDB_PATH_TO_LLVM_BUILD to the root
> "
>   -            "directory of LLVM build or install site.")
>   +    message(FATAL_ERROR "llvm-config not found -- ${LLVM_CONFIG}")
>      endif()
>
>   -  if (LLDB_PATH_TO_CLANG_BUILD)
>   -    get_filename_component(PATH_TO_CLANG_BUILD
> ${LLDB_PATH_TO_CLANG_BUILD}
>   -                           ABSOLUTE)
>   +  list(GET CONFIG_OUTPUT 0 ENABLE_ASSERTIONS)
>   +  list(GET CONFIG_OUTPUT 1 TOOLS_BINARY_DIR)
>   +  list(GET CONFIG_OUTPUT 2 LIBRARY_DIR)
>   +  list(GET CONFIG_OUTPUT 3 INCLUDE_DIR)
>   +  list(GET CONFIG_OUTPUT 4 LLVM_OBJ_ROOT)
>   +  list(GET CONFIG_OUTPUT 5 MAIN_SRC_DIR)
>   +
>   +  if(NOT MSVC_IDE)
>   +    set(LLVM_ENABLE_ASSERTIONS ${ENABLE_ASSERTIONS}
>   +      CACHE BOOL "Enable assertions")
>   +    # Assertions should follow llvm-config's.
>   +    mark_as_advanced(LLVM_ENABLE_ASSERTIONS)
>   +  endif()
>   +
>   +  set(LLVM_TOOLS_BINARY_DIR ${TOOLS_BINARY_DIR} CACHE PATH "Path to
> llvm/bin")
>   +  set(LLVM_LIBRARY_DIR ${LIBRARY_DIR} CACHE PATH "Path to llvm/lib")
>   +  set(LLVM_MAIN_INCLUDE_DIR ${INCLUDE_DIR} CACHE PATH "Path to
> llvm/include")
>   +  set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build
> tree")
>   +  set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source
> tree")
>   +
>   +  find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR}
>   +    NO_DEFAULT_PATH)
>   +
>   +  set(LLVM_CMAKE_PATH
> "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
>   +  set(LLVMCONFIG_FILE "${LLVM_CMAKE_PATH}/LLVMConfig.cmake")
>   +  if(EXISTS ${LLVMCONFIG_FILE})
>   +    list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}")
>   +    include(${LLVMCONFIG_FILE})
>      else()
>   -    message(FATAL_ERROR "Please set LLDB_PATH_TO_CLANG_BUILD to the
> root "
>   -            "directory of Clang build or install site.")
>   +    message(FATAL_ERROR "Not found: ${LLVMCONFIG_FILE}")
>      endif()
>
>   -
>   -  # These variables are used by add_llvm_library.
>   +  # They are used as destination of target generators.
>      set(LLVM_RUNTIME_OUTPUT_INTDIR
> ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
>      set(LLVM_LIBRARY_OUTPUT_INTDIR
> ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
>   -  set(LLVM_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
>   +  if(WIN32 OR CYGWIN)
>   +    # DLL platform -- put DLLs into bin.
>   +    set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
>   +  else()
>   +    set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
>   +  endif()
>
>      include(AddLLVM)
>      include(HandleLLVMOptions)
>   @@ -73,23 +94,16 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR
>        message("-- Found PythonInterp: ${PYTHON_EXECUTABLE}")
>      endif()
>      # Import CMake library targets from LLVM and Clang.
>   -
> include("${LLDB_PATH_TO_LLVM_BUILD}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm/LLVMConfig.cmake")
>   -  if (EXISTS
> "${LLDB_PATH_TO_CLANG_BUILD}/lib${LLVM_LIBDIR_SUFFIX}/cmake/clang/ClangConfig.cmake")
>   -
> include("${LLDB_PATH_TO_CLANG_BUILD}/lib${LLVM_LIBDIR_SUFFIX}/cmake/clang/ClangConfig.cmake")
>   -  endif()
>   +
> include("${LLVM_OBJ_ROOT}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm/LLVMConfig.cmake")
>   +
> include("${LLVM_OBJ_ROOT}/lib${LLVM_LIBDIR_SUFFIX}/cmake/clang/ClangConfig.cmake")
>
>      set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}")
>
>      set(LLVM_BINARY_DIR ${CMAKE_BINARY_DIR})
>
>      set(CMAKE_INCLUDE_CURRENT_DIR ON)
>   -  include_directories("${PATH_TO_LLVM_BUILD}/include"
>   -                      "${LLVM_MAIN_INCLUDE_DIR}"
>   -                      "${PATH_TO_CLANG_BUILD}/include"
>   -                      "${CLANG_MAIN_INCLUDE_DIR}"
>   -                      "${CMAKE_CURRENT_SOURCE_DIR}/source")
>   -  link_directories("${PATH_TO_LLVM_BUILD}/lib${LLVM_LIBDIR_SUFFIX}"
>   -                   "${PATH_TO_CLANG_BUILD}/lib${LLVM_LIBDIR_SUFFIX}")
>   +  include_directories("${LLVM_BINARY_DIR}/include"
> "${LLVM_MAIN_INCLUDE_DIR}")
>   +  link_directories("${LLVM_LIBRARY_DIR}")
>
>      set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
>      set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
> ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
>
> This patch is anyway cherry-picked from NetBSD by vendors like Red Hat or
> Mageia.
>
> There is only need to fix pending regex support - for now I'm using the
> hack from http://reviews.llvm.org/D15067 locally, and once I will get
> more subsystems to build and test I will be able to finish it cleanly.
>
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D19772
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160501/f6b3d06e/attachment.html>


More information about the lldb-commits mailing list