1add_custom_command( 2 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapLua.cpp 3 DEPENDS ${SWIG_SOURCES} 4 DEPENDS ${SWIG_INTERFACES} 5 DEPENDS ${SWIG_HEADERS} 6 DEPENDS lldb-sbapi-dwarf-enums 7 COMMAND ${SWIG_EXECUTABLE} 8 ${SWIG_COMMON_FLAGS} 9 -I${CMAKE_CURRENT_SOURCE_DIR} 10 -lua 11 -w503 12 -outdir ${CMAKE_CURRENT_BINARY_DIR} 13 -o ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapLua.cpp 14 ${CMAKE_CURRENT_SOURCE_DIR}/lua.swig 15 VERBATIM 16 COMMENT "Building LLDB Lua wrapper") 17 18add_custom_target(swig_wrapper_lua ALL DEPENDS 19 ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapLua.cpp 20) 21 22function(create_lua_package swig_target working_dir pkg_dir) 23 cmake_parse_arguments(ARG "NOINIT" "" "FILES" ${ARGN}) 24 add_custom_command(TARGET ${swig_target} POST_BUILD VERBATIM 25 COMMAND ${CMAKE_COMMAND} -E make_directory ${pkg_dir} 26 WORKING_DIRECTORY ${working_dir}) 27endfunction() 28 29function(finish_swig_lua swig_target lldb_lua_bindings_dir lldb_lua_target_dir) 30 add_custom_target(${swig_target} ALL VERBATIM 31 COMMAND ${CMAKE_COMMAND} -E make_directory ${lldb_lua_target_dir} 32 DEPENDS swig_wrapper_lua liblldb 33 COMMENT "LLDB Lua API") 34 if(LLDB_BUILD_FRAMEWORK) 35 set(LIBLLDB_SYMLINK_DEST "${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/LLDB") 36 else() 37 set(LIBLLDB_SYMLINK_DEST "${LLVM_SHLIB_OUTPUT_INTDIR}/liblldb${CMAKE_SHARED_LIBRARY_SUFFIX}") 38 endif() 39 if(WIN32) 40 set(LIBLLDB_SYMLINK_OUTPUT_FILE "lldb.dll") 41 else() 42 set(LIBLLDB_SYMLINK_OUTPUT_FILE "lldb.so") 43 endif() 44 create_relative_symlink(${swig_target} ${LIBLLDB_SYMLINK_DEST} 45 ${lldb_lua_target_dir} ${LIBLLDB_SYMLINK_OUTPUT_FILE}) 46 set(lldb_lua_library_target "${swig_target}-library") 47 add_custom_target(${lldb_lua_library_target}) 48 add_dependencies(${lldb_lua_library_target} ${swig_target}) 49 50 # Ensure we do the Lua post-build step when building lldb. 51 add_dependencies(lldb ${swig_target}) 52 53 if(LLDB_BUILD_FRAMEWORK) 54 set(LLDB_LUA_INSTALL_PATH ${LLDB_FRAMEWORK_INSTALL_DIR}/LLDB.framework/Resources/Lua) 55 else() 56 set(LLDB_LUA_INSTALL_PATH ${LLDB_LUA_RELATIVE_PATH}) 57 endif() 58 install(DIRECTORY ${lldb_lua_target_dir}/ 59 DESTINATION ${LLDB_LUA_INSTALL_PATH} 60 COMPONENT ${lldb_lua_library_target}) 61 62 set(lldb_lua_library_install_target "install-${lldb_lua_library_target}") 63 if (NOT LLVM_ENABLE_IDE) 64 add_llvm_install_targets(${lldb_lua_library_install_target} 65 COMPONENT ${lldb_lua_library_target} 66 DEPENDS ${lldb_lua_library_target}) 67 endif() 68endfunction() 69