hhb updated this revision to Diff 227974.
hhb added a comment.
Fix some naming
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69589/new/
https://reviews.llvm.org/D69589
Files:
lldb/CMakeLists.txt
lldb/scripts/CMakeLists.txt
Index: lldb/scripts/CMakeLists.txt
===================================================================
--- lldb/scripts/CMakeLists.txt
+++ lldb/scripts/CMakeLists.txt
@@ -54,4 +54,5 @@
${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
${CMAKE_CURRENT_BINARY_DIR}/lldb.py
)
+set_target_properties(swig_wrapper PROPERTIES FOLDER "lldb misc")
Index: lldb/CMakeLists.txt
===================================================================
--- lldb/CMakeLists.txt
+++ lldb/CMakeLists.txt
@@ -103,77 +103,105 @@
# Add a Post-Build Event to copy over Python files and create the symlink
# to liblldb.so for the Python API(hardlink on Windows).
- add_custom_target(finish_swig ALL VERBATIM
- COMMAND ${CMAKE_COMMAND} -E make_directory ${lldb_python_build_path}
- DEPENDS ${lldb_scripts_dir}/lldb.py
- COMMENT "Python script sym-linking LLDB Python API")
+ add_custom_target(finish_swig ALL
+ COMMENT "Copy over Python files and create symlinks for LLDB Python API.")
+ set_target_properties(finish_swig PROPERTIES FOLDER "lldb misc")
+
+ function(add_copy_file_target name)
+ cmake_parse_arguments(ARG "" "DEST_DIR;DEST_FILE_NAME" "FILES" ${ARGN})
+ add_custom_command(OUTPUT ${ARG_DEST_DIR} VERBATIM
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${ARG_DEST_DIR})
+ foreach(src_file ${ARG_FILES})
+ if(ARG_DEST_FILE_NAME)
+ set(file_name ${ARG_DEST_FILE_NAME})
+ else()
+ get_filename_component(file_name ${src_file} NAME)
+ endif()
+ set(dest_file ${ARG_DEST_DIR}/${file_name})
+ list(APPEND DEST_FILES ${dest_file})
+ add_custom_command(OUTPUT ${dest_file} VERBATIM
+ COMMAND ${CMAKE_COMMAND} -E copy ${src_file} ${dest_file}
+ DEPENDS ${ARG_DEST_DIR} ${src_file})
+ endforeach()
+ add_custom_target(${name} DEPENDS ${DEST_FILES} ${ARG_DEST_DIR})
+ endfunction()
if(NOT LLDB_USE_SYSTEM_SIX)
- add_custom_command(TARGET finish_swig POST_BUILD VERBATIM
- COMMAND ${CMAKE_COMMAND} -E copy
- "${LLDB_SOURCE_DIR}/third_party/Python/module/six/six.py"
- "${lldb_python_build_path}/../six.py")
+ add_copy_file_target(lldb_python_six
+ FILES "${LLDB_SOURCE_DIR}/third_party/Python/module/six/six.py"
+ DEST_DIR "${lldb_python_build_path}/..")
+ add_dependencies(finish_swig lldb_python_six)
endif()
- add_custom_command(TARGET finish_swig POST_BUILD VERBATIM
- COMMAND ${CMAKE_COMMAND} -E copy
- "${lldb_scripts_dir}/lldb.py"
- "${lldb_python_build_path}/__init__.py")
+ add_copy_file_target(lldb_python_init
+ FILES "${lldb_scripts_dir}/lldb.py"
+ DEST_DIR "${lldb_python_build_path}"
+ DEST_FILE_NAME "__init__.py")
+ add_dependencies(finish_swig lldb_python_init)
if(APPLE)
- SET(lldb_python_heap_dir "${lldb_python_build_path}/macosx/heap")
- add_custom_command(TARGET finish_swig POST_BUILD VERBATIM
- COMMAND ${CMAKE_COMMAND} -E make_directory ${lldb_python_heap_dir}
- COMMAND ${CMAKE_COMMAND} -E copy
- "${LLDB_SOURCE_DIR}/examples/darwin/heap_find/heap/heap_find.cpp"
- "${LLDB_SOURCE_DIR}/examples/darwin/heap_find/heap/Makefile"
- ${lldb_python_heap_dir})
+ add_copy_file_target(lldb_python_heap
+ FILES "${LLDB_SOURCE_DIR}/examples/darwin/heap_find/heap/heap_find.cpp"
+ "${LLDB_SOURCE_DIR}/examples/darwin/heap_find/heap/Makefile"
+ DEST_DIR "${lldb_python_build_path}/macosx/heap")
+ add_dependencies(finish_swig lldb_python_heap)
endif()
- function(create_python_package target pkg_dir)
+ add_copy_file_target(lldb_python_embeded_interpreter
+ FILES "${LLDB_SOURCE_DIR}/source/Interpreter/embedded_interpreter.py"
+ DEST_DIR "${lldb_python_build_path}")
+ add_dependencies(finish_swig lldb_python_embeded_interpreter)
+
+ function(add_lldb_python_package_target name pkg_dir)
cmake_parse_arguments(ARG "" "" "FILES" ${ARGN})
- if(ARG_FILES)
- set(copy_cmd COMMAND ${CMAKE_COMMAND} -E copy ${ARG_FILES} ${pkg_dir})
- endif()
- add_custom_command(TARGET ${target} POST_BUILD VERBATIM
- COMMAND ${CMAKE_COMMAND} -E make_directory ${pkg_dir}
- ${copy_cmd}
+ set(ABS_PKG_DIR "${lldb_python_build_path}/${pkg_dir}")
+ add_copy_file_target("${name}_srcs" FILES ${ARG_FILES} DEST_DIR ${ABS_PKG_DIR})
+ add_custom_command(OUTPUT "${ABS_PKG_DIR}/__init__.py" VERBATIM
COMMAND ${PYTHON_EXECUTABLE} "${LLDB_SOURCE_DIR}/scripts/Python/createPythonInit.py"
${pkg_dir} ${ARG_FILES}
- WORKING_DIRECTORY ${lldb_python_build_path})
+ WORKING_DIRECTORY ${lldb_python_build_path}
+ DEPENDS "${name}_srcs")
+ add_custom_target(${name} DEPENDS "${ABS_PKG_DIR}/__init__.py" "${name}_srcs")
endfunction()
- add_custom_command(TARGET finish_swig POST_BUILD VERBATIM
- COMMAND ${CMAKE_COMMAND} -E copy
- "${LLDB_SOURCE_DIR}/source/Interpreter/embedded_interpreter.py" ${lldb_python_build_path})
-
- create_python_package(finish_swig "formatters/cpp"
+ add_lldb_python_package_target(lldb_python_formatters_cpp "formatters/cpp"
FILES "${LLDB_SOURCE_DIR}/examples/synthetic/gnu_libstdcpp.py"
"${LLDB_SOURCE_DIR}/examples/synthetic/libcxx.py")
+ add_dependencies(finish_swig lldb_python_formatters_cpp)
+
# Make an empty __init__.py in lldb/runtime as this is required for
# Python to recognize lldb.runtime as a valid package (and hence,
# lldb.runtime.objc as a valid contained package)
- create_python_package(finish_swig "runtime")
+ add_lldb_python_package_target(lldb_python_runtime "runtime")
+ add_dependencies(finish_swig lldb_python_runtime)
+
# Having these files copied here ensure that lldb/formatters is a
# valid package itself
- create_python_package(finish_swig "formatters"
+ add_lldb_python_package_target(lldb_python_formatters "formatters"
FILES "${LLDB_SOURCE_DIR}/examples/summaries/cocoa/cache.py"
"${LLDB_SOURCE_DIR}/examples/summaries/synth.py"
"${LLDB_SOURCE_DIR}/examples/summaries/cocoa/metrics.py"
"${LLDB_SOURCE_DIR}/examples/summaries/cocoa/attrib_fromdict.py"
"${LLDB_SOURCE_DIR}/examples/summaries/cocoa/Logger.py")
- create_python_package(finish_swig "utils"
+ add_dependencies(finish_swig lldb_python_formatters)
+
+ add_lldb_python_package_target(lldb_python_utils "utils"
FILES "${LLDB_SOURCE_DIR}/examples/python/symbolication.py")
+ add_dependencies(finish_swig lldb_python_utils)
+
if(APPLE)
- create_python_package(finish_swig "macosx"
+ add_lldb_python_package_target(lldb_python_macosx "macosx"
FILES "${LLDB_SOURCE_DIR}/examples/python/crashlog.py"
"${LLDB_SOURCE_DIR}/examples/darwin/heap_find/heap.py")
- create_python_package(finish_swig "diagnose"
+ add_dependencies(finish_swig lldb_python_macosx)
+
+ add_lldb_python_package_target(lldb_python_diagnose "diagnose"
FILES "${LLDB_SOURCE_DIR}/examples/python/diagnose_unwind.py"
"${LLDB_SOURCE_DIR}/examples/python/diagnose_nsstring.py")
+ add_dependencies(finish_swig lldb_python_diagnose)
endif()
- function(create_relative_symlink target dest_file output_dir output_name)
+ function(add_relative_symlink_target name dest_file output_dir output_name)
get_filename_component(dest_file ${dest_file} ABSOLUTE)
get_filename_component(output_dir ${output_dir} ABSOLUTE)
file(RELATIVE_PATH rel_dest_file ${output_dir} ${dest_file})
@@ -182,9 +210,10 @@
else()
set(LLVM_LINK_OR_COPY copy)
endif()
- add_custom_command(TARGET ${target} POST_BUILD VERBATIM
+ add_custom_command(OUTPUT ${output_dir}/${output_name} DEPENDS ${output_dir}/${rel_dest_file}
COMMAND ${CMAKE_COMMAND} -E ${LLVM_LINK_OR_COPY} ${rel_dest_file} ${output_name}
- WORKING_DIRECTORY ${output_dir})
+ WORKING_DIRECTORY ${output_dir} VERBATIM)
+ add_custom_target(${name} DEPENDS ${output_dir}/${output_name})
endfunction()
if(LLDB_BUILD_FRAMEWORK)
@@ -201,18 +230,18 @@
else()
set(LIBLLDB_SYMLINK_OUTPUT_FILE "_lldb.so")
endif()
- create_relative_symlink(finish_swig ${LIBLLDB_SYMLINK_DEST}
- ${lldb_python_build_path} ${LIBLLDB_SYMLINK_OUTPUT_FILE})
+ add_relative_symlink_target(lldb_python_liblldb ${LIBLLDB_SYMLINK_DEST}
+ ${lldb_python_build_path} ${LIBLLDB_SYMLINK_OUTPUT_FILE})
+ add_dependencies(finish_swig lldb_python_liblldb)
if(NOT LLDB_BUILD_FRAMEWORK)
set(LLDB_ARGDUMPER_FILENAME "lldb-argdumper${CMAKE_EXECUTABLE_SUFFIX}")
- create_relative_symlink(finish_swig "${LLVM_RUNTIME_OUTPUT_INTDIR}/${LLDB_ARGDUMPER_FILENAME}"
- ${lldb_python_build_path} ${LLDB_ARGDUMPER_FILENAME})
+ add_relative_symlink_target(lldb_python_argdumper
+ "${LLVM_RUNTIME_OUTPUT_INTDIR}/${LLDB_ARGDUMPER_FILENAME}"
+ ${lldb_python_build_path} ${LLDB_ARGDUMPER_FILENAME})
+ add_dependencies(finish_swig lldb_python_argdumper)
endif()
- add_dependencies(finish_swig swig_wrapper liblldb lldb-argdumper)
- set_target_properties(finish_swig swig_wrapper PROPERTIES FOLDER "lldb misc")
-
# Ensure we do the python post-build step when building lldb.
add_dependencies(lldb finish_swig)
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits