xref: /llvm-project/clang-tools-extra/clang-doc/tool/CMakeLists.txt (revision 87d58ab22af0627b2c90138713c19b5263b6c132)
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