file(TO_CMAKE_PATH ${LLDB_PYTHON_DEFAULT_RELATIVE_PATH} LLDB_PYTHON_DEFAULT_RELATIVE_PATH)
set(LLDB_PYTHON_RELATIVE_PATH ${LLDB_PYTHON_DEFAULT_RELATIVE_PATH}
CACHE STRING "Path where Python modules are installed, relative to install prefix")
-
- add_subdirectory(scripts)
endif ()
+add_subdirectory(scripts)
+
# We need the headers generated by instrinsics_gen before we can compile
# any source file in LLDB as the imported Clang modules might include
# some of these generated headers. This approach is copied from Clang's main
set(DARWIN_EXTRAS "")
endif()
-add_custom_command(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lldb.py
- DEPENDS ${SWIG_SOURCES}
- DEPENDS ${SWIG_INTERFACES}
- DEPENDS ${SWIG_HEADERS}
- COMMAND ${SWIG_EXECUTABLE}
- -c++
- -shadow
- -python
- -features autodoc
- -threads
- -I${LLDB_SOURCE_DIR}/include
- -I${CMAKE_CURRENT_SOURCE_DIR}
- -D__STDC_LIMIT_MACROS
- -D__STDC_CONSTANT_MACROS
- ${DARWIN_EXTRAS}
- -outdir ${CMAKE_CURRENT_BINARY_DIR}
- -o ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
- ${LLDB_SOURCE_DIR}/scripts/lldb.swig
- VERBATIM
- COMMENT "Builds LLDB Python wrapper")
-
-add_custom_target(swig_wrapper ALL DEPENDS
- ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/lldb.py
+set(SWIG_COMMON_FLAGS
+ -c++
+ -features autodoc
+ -I${LLDB_SOURCE_DIR}/include
+ -I${CMAKE_CURRENT_SOURCE_DIR}
+ -D__STDC_LIMIT_MACROS
+ -D__STDC_CONSTANT_MACROS
+ ${DARWIN_EXTRAS}
+ -outdir ${CMAKE_CURRENT_BINARY_DIR}
)
+
+if (LLDB_ENABLE_PYTHON)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lldb.py
+ DEPENDS ${SWIG_SOURCES}
+ DEPENDS ${SWIG_INTERFACES}
+ DEPENDS ${SWIG_HEADERS}
+ COMMAND ${SWIG_EXECUTABLE}
+ ${SWIG_COMMON_FLAGS}
+ -c++
+ -shadow
+ -python
+ -threads
+ -o ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
+ ${LLDB_SOURCE_DIR}/scripts/lldb.swig
+ VERBATIM
+ COMMENT "Builds LLDB Python wrapper")
+
+ add_custom_target(swig_wrapper ALL DEPENDS
+ ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/lldb.py
+ )
+endif()
+
+if (LLDB_ENABLE_LUA)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapLua.cpp
+ DEPENDS ${SWIG_SOURCES}
+ DEPENDS ${SWIG_INTERFACES}
+ DEPENDS ${SWIG_HEADERS}
+ COMMAND ${SWIG_EXECUTABLE}
+ ${SWIG_COMMON_FLAGS}
+ -lua
+ -w503
+ -o ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapLua.cpp
+ ${LLDB_SOURCE_DIR}/scripts/lldb_lua.swig
+ VERBATIM
+ COMMENT "Builds LLDB Lua wrapper")
+
+ add_custom_target(swig_wrapper_lua ALL DEPENDS
+ ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapLua.cpp
+ )
+endif()
set(lldb_python_wrapper ${lldb_scripts_dir}/LLDBWrapPython.cpp)
endif()
+if(LLDB_ENABLE_LUA)
+ get_target_property(lldb_scripts_dir swig_wrapper_lua BINARY_DIR)
+ set(lldb_lua_wrapper ${lldb_scripts_dir}/LLDBWrapLua.cpp)
+endif()
+
if(LLDB_BUILD_FRAMEWORK)
set(option_install_prefix INSTALL_PREFIX ${LLDB_FRAMEWORK_INSTALL_DIR})
set(option_framework FRAMEWORK)
SBUnixSignals.cpp
SystemInitializerFull.cpp
${lldb_python_wrapper}
+ ${lldb_lua_wrapper}
LINK_LIBS
lldbBase
endif ()
endif()
+if(lldb_lua_wrapper)
+ add_dependencies(liblldb swig_wrapper_lua)
+ target_include_directories(liblldb PRIVATE ${LUA_INCLUDE_DIR})
+
+ if (MSVC)
+ set_property(SOURCE ${lldb_lua_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " /W0")
+ else()
+ set_property(SOURCE ${lldb_lua_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " -w")
+ endif()
+
+ set_source_files_properties(${lldb_lua_wrapper} PROPERTIES GENERATED ON)
+endif()
+
set_target_properties(liblldb
PROPERTIES
VERSION ${LLDB_VERSION}