Re: [Lldb-commits] [PATCH] D19772: Detect Python's executable on NetBSD
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
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 Rytarowskiwrote: > 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
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
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
Ahh makes sense. In that case maybe this line should go in LLDBStandalone.cmake? On Sat, Apr 30, 2016 at 6:15 PM Kamil Rytarowskiwrote: > 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
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 Rytarowskiwrote: > 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
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