diff --git a/coreapi/help/doc/CMakeLists.txt b/coreapi/help/doc/CMakeLists.txt new file mode 100644 index 000000000..c4d5481de --- /dev/null +++ b/coreapi/help/doc/CMakeLists.txt @@ -0,0 +1,42 @@ +############################################################################ +# CMakeLists.txt +# Copyright (C) 2017 Belledonne Communications, Grenoble France +# +############################################################################ +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +############################################################################ + +add_subdirectory(doxygen) + +if(ENABLE_JAVADOC) + find_package(Java REQUIRED) + set(JAVADOC_PACKAGES "org.linphone.core org.linphone.mediastream") + set(JAVADOC_CLASSPATHS + "${PROJECT_SOURCE_DIR}/java/common" + "${PROJECT_SOURCE_DIR}/java/j2se" + "${PROJECT_SOURCE_DIR}/mediastreamer2/java/src" + ) + string(REPLACE ";" ":" JAVADOC_CLASSPATHS "${JAVADOC_CLASSPATHS}") + set(JAVADOC_TITLE "Linphone SDK ${PROJECT_VERSION} reference documentation") + set(JAVADOC_JAVA_REFERENCE "http://docs.oracle.com/javase/8/docs/api/") + set(JAVADOC_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc/java") + set(JAVADOC_LOGFILE "${CMAKE_CURRENT_BINARY_DIR}/javadoc.log") + configure_file("generate_javadoc.sh.in" "generate_javadoc.sh" @ONLY) + add_custom_target(javadoc ALL + COMMAND "${CMAKE_CURRENT_BINARY_DIR}/generate_javadoc.sh" + ) +endif() diff --git a/coreapi/help/doc/Makefile.am b/coreapi/help/doc/Makefile.am new file mode 100644 index 000000000..f9d89466a --- /dev/null +++ b/coreapi/help/doc/Makefile.am @@ -0,0 +1 @@ +SUBDIRS=doxygen diff --git a/coreapi/help/doc/doxygen/CMakeLists.txt b/coreapi/help/doc/doxygen/CMakeLists.txt new file mode 100644 index 000000000..181dba7dc --- /dev/null +++ b/coreapi/help/doc/doxygen/CMakeLists.txt @@ -0,0 +1,49 @@ +############################################################################ +# CMakeLists.txt +# Copyright (C) 2017 Belledonne Communications, Grenoble France +# +############################################################################ +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +############################################################################ + +if (ENABLE_DOC OR ENABLE_CXX_WRAPPER OR ENABLE_CSHARP_WRAPPER) + find_package(Doxygen) + if(DOXYGEN_FOUND) + if(DOXYGEN_DOT_FOUND) + set(top_srcdir "${PROJECT_SOURCE_DIR}") + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) + set(DOC_INPUT_FILES ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.dox + ${LINPHONE_HEADER_FILES} + ) + add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/html/index.html" "${CMAKE_CURRENT_BINARY_DIR}/xml/index.xml" + COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + DEPENDS ${DOC_INPUT_FILES} + ) + add_custom_target(linphone-doc ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/html/index.html" "${CMAKE_CURRENT_BINARY_DIR}/xml/index.xml") + install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html" "${CMAKE_CURRENT_BINARY_DIR}/xml" + DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/linphone-${LINPHONE_VERSION}") + else() + if (ENABLE_CXX_WRAPPER) + message(FATAL_ERROR "The dot program is needed to generate the linphone documentation. You can get it from http://www.graphviz.org/.") + else() + message(WARNING "The dot program is needed to generate the linphone documentation. You can get it from http://www.graphviz.org/.") + endif() + endif() + endif() +endif() + diff --git a/coreapi/help/doc/doxygen/Makefile.am b/coreapi/help/doc/doxygen/Makefile.am new file mode 100644 index 000000000..9f27d3d64 --- /dev/null +++ b/coreapi/help/doc/doxygen/Makefile.am @@ -0,0 +1,40 @@ +EXTRA_DIST=Doxyfile.in doxygen.dox + +SOURCES=doxygen.dox $(top_srcdir)/coreapi/help/*.c $(top_srcdir)/coreapi/*.c $(top_srcdir)/coreapi/*.h + +if HAVE_DOXYGEN + +# docdir & pkgdocdir are not always defined by automake +pkgdocdir=$(docdir)/$(PACKAGE)-$(VERSION) +doc_htmldir=$(pkgdocdir)/html +doc_xmldir=$(pkgdocdir)/xml + +doc_html_DATA = $(top_builddir)/coreapi/help/doc/html/html.tar + +$(doc_html_DATA): $(top_builddir)/coreapi/help/doc/html/index.html + cd $(top_builddir)/coreapi/help/doc/html/ && tar cf html.tar * + +$(top_builddir)/coreapi/help/doc/html/index.html: $(SOURCES) Doxyfile Makefile.am + rm -rf doc + $(DOXYGEN) Doxyfile + +doc_xml_DATA = $(top_builddir)/coreapi/help/doc/xml/xml.tar + +$(doc_xml_DATA): $(top_builddir)/coreapi/help/doc/xml/index.xml + cd $(top_builddir)/coreapi/help/doc/xml/ && tar cf xml.tar * + +$(top_builddir)/coreapi/help/doc/xml/index.xml: $(top_builddir)/coreapi/help/doc/html/index.html + + +install-data-hook: + cd $(DESTDIR)$(doc_htmldir) && tar xf html.tar && rm -f html.tar + cd $(DESTDIR)$(doc_xmldir) && tar xf xml.tar && rm -f xml.tar + +uninstall-hook: + cd $(DESTDIR)$(doc_htmldir) && rm -f * + cd $(DESTDIR)$(doc_xmldir) && rm -f * + +endif + +clean-local: + rm -rf doc