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

2016-05-01 Thread Pavel Labath via lldb-commits
labath added a comment.

In http://reviews.llvm.org/D19772#417954, @krytarowski wrote:

> I think I can close this report and http://reviews.llvm.org/D19685, and put 
> all the standalone CMake code mentioned here and in 
> http://reviews.llvm.org/D19685 as a patch in http://reviews.llvm.org/D15067. 
> The code for regex will get its dedicated patch by myself (or someone else if 
> he or she will be quicker) in future.
>
> Are you fine with it? It will reduce cost of maintainership downstream 
> significantly.


Sounds like a plan.


Repository:
  rL LLVM

http://reviews.llvm.org/D19772



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2016-04-30 Thread Zachary Turner via lldb-commits
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  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.0 +
>   +++ 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 

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

2016-04-30 Thread Kamil Rytarowski via lldb-commits
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.0 
+
  +++ 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 

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

2016-04-30 Thread Zachary Turner via lldb-commits
zturner added a comment.

Ahh makes sense. In that case maybe this line should go in
LLDBStandalone.cmake?


Repository:
  rL LLVM

http://reviews.llvm.org/D19772



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2016-04-30 Thread Zachary Turner via lldb-commits
Ahh makes sense. In that case maybe this line should go in
LLDBStandalone.cmake?
On Sat, Apr 30, 2016 at 6:15 PM Kamil Rytarowski  wrote:

> krytarowski added a comment.
>
> I'm using standalone build, it may be the reason why this value isn't
> inherited.
>
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D19772
>
>
>
>
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2016-04-30 Thread Zachary Turner via lldb-commits
Don't we already call FindPythonInterp from somewhere else in the LLDB's
CMake files?

On Sat, Apr 30, 2016 at 5:17 PM Kamil Rytarowski  wrote:

> krytarowski created this revision.
> krytarowski added reviewers: emaste, labath, zturner.
> krytarowski added subscribers: lldb-commits, joerg.
> krytarowski set the repository for this revision to rL LLVM.
>
> NetBSD ships with pkgsrc that installs versioned Python executables with
> suffix, like: python2.7 or python3.5.
>
> CMake needs more help to detect appropriate name, so require where needed
> `FindPythonInterp`.
>
> This diff addresses the following failure:
>
> ```
> CMake Error at scripts/cmake_install.cmake:31 (file):
>   file INSTALL cannot find
>   "/tmp/pkgsrc-tmp/wip/lldb-git/work/build/lib/python.".
> Call Stack (most recent call first):
>   cmake_install.cmake:37 (include)
>
>
>
> *** Error code 1
> ```
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D19772
>
> Files:
>   scripts/CMakeLists.txt
>
> Index: scripts/CMakeLists.txt
> ===
> --- scripts/CMakeLists.txt
> +++ scripts/CMakeLists.txt
> @@ -9,6 +9,8 @@
>${LLDB_SOURCE_DIR}/include/lldb/lldb-versioning.h
>  )
>
> +include(FindPythonInterp)
> +
>  find_package(SWIG REQUIRED)
>  add_custom_command(
>OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
>
>
>
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2016-04-30 Thread Kamil Rytarowski via lldb-commits
krytarowski created this revision.
krytarowski added reviewers: emaste, labath, zturner.
krytarowski added subscribers: lldb-commits, joerg.
krytarowski set the repository for this revision to rL LLVM.

NetBSD ships with pkgsrc that installs versioned Python executables with 
suffix, like: python2.7 or python3.5.

CMake needs more help to detect appropriate name, so require where needed 
`FindPythonInterp`.

This diff addresses the following failure:

```
CMake Error at scripts/cmake_install.cmake:31 (file):
  file INSTALL cannot find
  "/tmp/pkgsrc-tmp/wip/lldb-git/work/build/lib/python.".
Call Stack (most recent call first):
  cmake_install.cmake:37 (include)
  


*** Error code 1
```

Repository:
  rL LLVM

http://reviews.llvm.org/D19772

Files:
  scripts/CMakeLists.txt

Index: scripts/CMakeLists.txt
===
--- scripts/CMakeLists.txt
+++ scripts/CMakeLists.txt
@@ -9,6 +9,8 @@
   ${LLDB_SOURCE_DIR}/include/lldb/lldb-versioning.h
 )
 
+include(FindPythonInterp)
+
 find_package(SWIG REQUIRED)
 add_custom_command(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp


Index: scripts/CMakeLists.txt
===
--- scripts/CMakeLists.txt
+++ scripts/CMakeLists.txt
@@ -9,6 +9,8 @@
   ${LLDB_SOURCE_DIR}/include/lldb/lldb-versioning.h
 )
 
+include(FindPythonInterp)
+
 find_package(SWIG REQUIRED)
 add_custom_command(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits