
Summary: A tool for changing surrouding namespaces of class/function definitions while keeping references to types in the changed namespace correctly qualified by prepending namespace specifiers before them. Example: test.cc namespace na { class X {}; namespace nb { class Y { X x; }; } // namespace nb } // namespace na To move the definition of class Y from namespace "na::nb" to "x::y", run: clang-change-namespace --old_namespace "na::nb" \ --new_namespace "x::y" --file_pattern "test.cc" test.cc -- Output: namespace na { class X {}; } // namespace na namespace x { namespace y { class Y { na::X x; }; } // namespace y } // namespace x Reviewers: alexfh, omtcyfz, hokein Subscribers: mgorny, klimek, djasper, beanz, alexshap, Eugene.Zelenko, cfe-commits Differential Revision: https://reviews.llvm.org/D24183 llvm-svn: 281918
20 lines
260 B
CMake
20 lines
260 B
CMake
set(LLVM_LINK_COMPONENTS
|
|
support
|
|
)
|
|
|
|
add_clang_library(clangChangeNamespace
|
|
ChangeNamespace.cpp
|
|
|
|
LINK_LIBS
|
|
clangAST
|
|
clangASTMatchers
|
|
clangBasic
|
|
clangFormat
|
|
clangFrontend
|
|
clangLex
|
|
clangTooling
|
|
clangToolingCore
|
|
)
|
|
|
|
add_subdirectory(tool)
|