60 lines · plain
1file(GLOB SWIG_INTERFACES interface/*.i)2file(GLOB_RECURSE SWIG_SOURCES *.swig)3file(GLOB SWIG_HEADERS4 ${LLDB_SOURCE_DIR}/include/lldb/API/*.h5 ${LLDB_SOURCE_DIR}/include/lldb/*.h6 ${LLDB_BINARY_DIR}/include/lldb/API/SBLanguages.h7)8file(GLOB SWIG_PRIVATE_HEADERS9 ${LLDB_SOURCE_DIR}/include/lldb/lldb-private*.h10)11foreach(private_header ${SWIG_PRIVATE_HEADERS})12 list(REMOVE_ITEM SWIG_HEADERS ${private_header})13endforeach()14 15if(LLDB_BUILD_FRAMEWORK)16 set(framework_arg --framework --target-platform Darwin)17endif()18 19if(APPLE)20 set(DARWIN_EXTRAS "-D__APPLE__")21else()22 set(DARWIN_EXTRAS "")23endif()24 25set(SWIG_COMMON_FLAGS26 -c++27 # Ignored warnings:28 # 361: operator! ignored.29 # 362: operator= ignored.30 # 509: Overloaded method declaration effectively ignored, shadowed by previous declaration.31 -w361,362,50932 -features autodoc33 -I${LLDB_SOURCE_DIR}/include34 -I${LLDB_BINARY_DIR}/include35 -I${CMAKE_CURRENT_SOURCE_DIR}36 ${DARWIN_EXTRAS}37)38 39function(create_relative_symlink swig_target dest_file output_dir output_name)40 get_filename_component(dest_file ${dest_file} ABSOLUTE)41 get_filename_component(output_dir ${output_dir} ABSOLUTE)42 file(RELATIVE_PATH rel_dest_file ${output_dir} ${dest_file})43 if(CMAKE_HOST_UNIX)44 set(LLVM_LINK_OR_COPY create_symlink)45 else()46 set(LLVM_LINK_OR_COPY copy)47 endif()48 add_custom_command(TARGET ${swig_target} POST_BUILD VERBATIM49 COMMAND ${CMAKE_COMMAND} -E ${LLVM_LINK_OR_COPY} ${rel_dest_file} ${output_name}50 WORKING_DIRECTORY ${output_dir})51endfunction()52 53if (LLDB_ENABLE_PYTHON)54 add_subdirectory(python)55endif()56 57if (LLDB_ENABLE_LUA)58 add_subdirectory(lua)59endif()60