clamav/docs/CMakeLists.txt
Micah Snyder 382ac2764c CMake, Windows: install News, Readme, and html as UserManual
For Windows to match 0.103 installer behavior, include NEWS.md and
README.md and rename the html directory to UserManual during the
install.

Unfortunately I can't match the behavior for the main page for the
user manual. It is now called index.html instead of UserManual.html
and is inside the UserManual directory instead of at the top level.
2021-08-27 14:46:05 -07:00

120 lines
3.7 KiB
CMake

# Generate documentation (man pages, doxygen, etc.)
if(ENABLE_MAN_PAGES)
#
# man pages
#
# .1 files
configure_file(man/clamscan.1.in man/clamscan.1)
configure_file(man/freshclam.1.in man/freshclam.1)
configure_file(man/sigtool.1.in man/sigtool.1)
configure_file(man/clamdscan.1.in man/clamdscan.1)
configure_file(man/clamconf.1.in man/clamconf.1)
configure_file(man/clamdtop.1.in man/clamdtop.1)
configure_file(man/clamsubmit.1.in man/clamsubmit.1)
configure_file(man/clambc.1.in man/clambc.1)
# .5 files
configure_file(man/clamd.conf.5.in man/clamd.conf.5)
configure_file(man/clamav-milter.conf.5.in man/clamav-milter.conf.5)
configure_file(man/freshclam.conf.5.in man/freshclam.conf.5)
# .8 files
configure_file(man/clamd.8.in man/clamd.8)
configure_file(man/clamav-milter.8.in man/clamav-milter.8)
if(C_LINUX)
configure_file(man/clamonacc.8.in man/clamonacc.8)
endif()
set(MAN1_FILES
man/clamscan.1
man/freshclam.1
man/sigtool.1
man/clamdscan.1
man/clamconf.1
man/clamdtop.1
man/clamsubmit.1
man/clambc.1)
foreach(m IN LISTS MAN1_FILES)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/${m}
DESTINATION
${CMAKE_INSTALL_MANDIR}/man1
COMPONENT documentation)
endforeach()
set(MAN5_FILES
man/clamd.conf.5
man/clamav-milter.conf.5
man/freshclam.conf.5)
foreach(m IN LISTS MAN5_FILES)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/${m}
DESTINATION
${CMAKE_INSTALL_MANDIR}/man5
COMPONENT documentation)
endforeach()
set(MAN8_FILES
man/clamd.8
man/clamav-milter.8)
foreach(m IN LISTS MAN8_FILES)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/${m}
DESTINATION
${CMAKE_INSTALL_MANDIR}/man8
COMPONENT documentation)
endforeach()
if(C_LINUX)
# Also install Linux-only manpage
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/man/clamonacc.8
DESTINATION
${CMAKE_INSTALL_MANDIR}/man8
COMPONENT documentation)
endif()
endif()
if(ENABLE_DOXYGEN)
#
# clamav.h and libfreshclam.h doxygen docs
#
find_package(Doxygen REQUIRED)
set(DOXYGEN_GENERATE_HTML YES)
set(DOXYGEN_GENERATE_MAN NO)
set(DOXYGEN_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set(EXTRACT_ALL YES)
set(HIDE_UNDOC_MEMBERS YES)
set(JAVADOC_AUTOBRIEF YES)
set(OPTIMIZE_OUTPUT_FOR_C YES)
set(FULL_PATH_NAMES NO)
set(GENERATE_LATEX NO)
doxygen_add_docs(doxygen
${CMAKE_SOURCE_DIR}/libclamav/clamav.h
${CMAKE_SOURCE_DIR}/libfreshclam/libfreshclam.h
COMMENT "Generate html documentation")
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
DESTINATION ${CMAKE_INSTALL_DOCDIR}
COMPONENT documentation OPTIONAL)
endif()
# When built from the release tarball, this includes the user manual
# which is exported from the clamav-faq repo.
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/html/index.html)
if(WIN32)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/html/
DESTINATION ./UserManual
COMPONENT documentation)
else()
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/html
DESTINATION ${CMAKE_INSTALL_DOCDIR}
COMPONENT documentation)
endif()
endif()