1include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) 2 3add_clang_tool(clang-doc 4 ClangDocMain.cpp 5 ) 6 7clang_target_link_libraries(clang-doc 8 PRIVATE 9 clangAST 10 clangASTMatchers 11 clangBasic 12 clangFrontend 13 clangTooling 14 clangToolingCore 15 ) 16target_link_libraries(clang-doc 17 PRIVATE 18 clangDoc 19 ) 20 21 22set(assets 23 index.js 24 clang-doc-default-stylesheet.css 25) 26 27set(asset_dir "${CMAKE_CURRENT_SOURCE_DIR}/../assets") 28set(resource_dir "${LLVM_RUNTIME_OUTPUT_INTDIR}/../share/clang-doc") 29set(out_files) 30 31function(copy_files_to_dst src_dir dst_dir file) 32 set(src "${src_dir}/${file}") 33 set(dst "${dst_dir}/${file}") 34 add_custom_command(OUTPUT ${dst} 35 DEPENDS ${src} 36 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} 37 COMMENT "Copying ${file} to ${dst_dir}" 38 ) 39 list(APPEND out_files ${dst}) 40 set(out_files ${out_files} PARENT_SCOPE) 41endfunction(copy_files_to_dst) 42 43foreach(f ${assets}) 44 install(FILES ${asset_dir}/${f} 45 DESTINATION "${CMAKE_INSTALL_DATADIR}/clang-doc" 46 COMPONENT clang-doc) 47 copy_files_to_dst(${asset_dir} ${resource_dir} ${f}) 48endforeach(f) 49 50add_custom_target(copy-clang-doc-assets 51 DEPENDS ${out_files} 52 COMMENT "Copying Clang-Doc Assets" 53) 54set_target_properties(copy-clang-doc-assets PROPERTIES FOLDER "Clang-Doc/Assets") 55add_dependencies(clang-doc copy-clang-doc-assets) 56