89 lines · plain
1set(LLVM_LINK_COMPONENTS support)2 3add_clang_library(clangFormat4 AffectedRangeManager.cpp5 BreakableToken.cpp6 ContinuationIndenter.cpp7 DefinitionBlockSeparator.cpp8 Format.cpp9 FormatToken.cpp10 FormatTokenLexer.cpp11 IntegerLiteralSeparatorFixer.cpp12 MacroCallReconstructor.cpp13 MacroExpander.cpp14 MatchFilePath.cpp15 NamespaceEndCommentsFixer.cpp16 NumericLiteralCaseFixer.cpp17 NumericLiteralInfo.cpp18 ObjCPropertyAttributeOrderFixer.cpp19 QualifierAlignmentFixer.cpp20 SortJavaScriptImports.cpp21 TokenAnalyzer.cpp22 TokenAnnotator.cpp23 UnwrappedLineFormatter.cpp24 UnwrappedLineParser.cpp25 UsingDeclarationsSorter.cpp26 WhitespaceManager.cpp27 28 LINK_LIBS29 clangBasic30 clangLex31 clangToolingCore32 clangToolingInclusions33 )34 35file(GLOB_RECURSE files36 *.cpp37 *.h38 ${CLANG_SOURCE_DIR}/include/clang/Format/*.h39 ${CLANG_SOURCE_DIR}/tools/clang-format/*.cpp40 ${CLANG_SOURCE_DIR}/unittests/Format/*.cpp41 ${CLANG_SOURCE_DIR}/unittests/Format/*.h42 )43 44set(check_format_depends)45set(i 0)46foreach(file IN LISTS files)47 add_custom_command(OUTPUT check_format_depend_${i}48 COMMAND clang-format ${file} | diff -u ${file} -49 VERBATIM50 COMMENT "Checking format of ${file}"51 )52 list(APPEND check_format_depends check_format_depend_${i})53 math(EXPR i ${i}+1)54endforeach()55add_custom_target(clang-format-check-format DEPENDS ${check_format_depends})56 57set(docs_tools_dir ${CLANG_SOURCE_DIR}/docs/tools)58 59set(format_style_depend ${CMAKE_CURRENT_BINARY_DIR}/format_style_depend)60set(dump_style dump_format_style.py)61set(style_options_rst ${CLANG_SOURCE_DIR}/docs/ClangFormatStyleOptions.rst)62add_custom_command(OUTPUT ${format_style_depend}63 COMMAND ${Python3_EXECUTABLE} ${dump_style} && touch ${format_style_depend}64 WORKING_DIRECTORY ${docs_tools_dir}65 VERBATIM66 COMMENT "Updating ${style_options_rst}"67 DEPENDS ${CLANG_SOURCE_DIR}/include/clang/Format/Format.h68 ${CLANG_SOURCE_DIR}/include/clang/Tooling/Inclusions/IncludeStyle.h69 ${style_options_rst}70 ${docs_tools_dir}/plurals.txt71 ${docs_tools_dir}/${dump_style}72 )73add_custom_target(clang-format-style DEPENDS ${format_style_depend})74 75set(format_help_depend ${CMAKE_CURRENT_BINARY_DIR}/format_help_depend)76set(dump_help dump_format_help.py)77set(clang_format_rst ${CLANG_SOURCE_DIR}/docs/ClangFormat.rst)78add_custom_command(OUTPUT ${format_help_depend}79 COMMAND ${Python3_EXECUTABLE} ${dump_help} -d ${CMAKE_BINARY_DIR}/bin &&80 touch ${format_help_depend}81 WORKING_DIRECTORY ${docs_tools_dir}82 VERBATIM83 COMMENT "Updating ${clang_format_rst}"84 DEPENDS clang-format85 ${clang_format_rst}86 ${docs_tools_dir}/${dump_help}87 )88add_custom_target(clang-format-help DEPENDS ${format_help_depend})89