Commit 8e104a13 authored by mk's avatar mk

update 1.8.10

parent b69ba35a
File added
...@@ -3,9 +3,13 @@ compiler: ...@@ -3,9 +3,13 @@ compiler:
- gcc - gcc
before_install: before_install:
- sudo apt-get update -qq - sudo apt-get update -qq
- sudo apt-get install -qq texlive texlive-extra-utils libxml2-utils perl - sudo apt-get install -qq texlive texlive-extra-utils texlive-latex-extra libxml2-utils
- wget -qO- http://www.cmake.org/files/v3.1/cmake-3.1.0-Linux-x86_64.tar.gz | tar xvz
script: script:
- ./configure --with-doxywizard - mkdir build
- cd build
- ../cmake-3.1.0-Linux-x86_64/bin/cmake -G "Unix Makefiles" -Dbuild_doc=ON -Dbuild_wizard=ON ..
- make - make
- make docs - make docs
- make test - make tests
Doxygen uses cmake (http://www.cmake.org/) to build executables for various platforms.
It's required at least cmake version 3.0.
The first step is to create a build directory where the output should be stored.
Doxygen can be fully build outside of the source tree.
The second step is to invoke cmake from within the build directory with the desired generator.
For Linux/Unix systems do the following
mkdir build
cd build
cmake -G "Unix Makefiles" path/to/root/of/doxygen/source/tree
make
This also works for MacOSX, but if XCode is installed you can also generate an XCode project file
cmake -G XCode path/to/root/of/doxygen/source/tree
For Windows one can generate a Visual Studio project using
cmake -G "Visual Studio 12 2013" path\to\root\of\doxygen\source\tree
(this is for Visual Studio 12, there are typically also generators for other versions of
Visual Studio or other compiler environments like MinGW)
Doxygen's cmake configuration provides a number of options:
- build_wizard Build the GUI frontend for doxygen.
- build_app Example showing how to embed doxygen in an application.
- build_xmlparser Example showing how to parse doxygen's XML output.
- build_search Build external search tools (doxysearch and doxyindexer).
- build_doc Build user manual.
- use_sqlite3 Add support for sqlite3 output [experimental].
- use_libclang Add support for libclang parsing.
- win_static Link with /MT in stead of /MD on windows.
- english_only Only compile in support for the English language.
An option can be turned on, by adding -D<option>=ON as a command line option, this can be
done when generating the initial build files, but also afterwards, i.e. to enable building
of the documentation after an initial cmake -G run, do
cmake -Dbuild_doc=ON path/to/root/of/doxygen/source/tree
To turn the option off use
cmake -Dbuild_doc=OFF path/to/root/of/doxygen/source/tree
To see the current value is of the various options, you can run
cmake -L path/to/root/of/doxygen/source/tree
The build target for building the documentation is 'docs' and the build target for
the regression tests is 'tests'
# vim:ts=4:sw=4:expandtab:autoindent:
#
# Copyright (C) 1997-2015 by Dimitri van Heesch.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby
# granted. No representations are made about the suitability of this software
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# input used in their production; they are not affected by this license.
cmake_minimum_required(VERSION 2.8.12)
project(doxygen)
option(build_wizard "Build the GUI frontend for doxygen." OFF)
option(build_app "Example showing how to embed doxygen in an application." OFF)
option(build_xmlparser "Example showing how to parse doxygen's XML output." OFF)
option(build_search "Build external search tools (doxysearch and doxyindexer)" OFF)
option(build_doc "Build user manual" OFF)
option(use_sqlite3 "Add support for sqlite3 output [experimental]." OFF)
option(use_libclang "Add support for libclang parsing." OFF)
option(win_static "Link with /MT in stead of /MD on windows" OFF)
option(english_only "Only compile in support for the English language" OFF)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
set(SOURCE "${CMAKE_SOURCE_DIR}")
include(version)
set(sqlite3 "0" CACHE INTERNAL "used in settings.h")
set(clang "0" CACHE INTERNAL "used in settings.h")
if (use_sqlite3)
set(sqlite3 "1" CACHE INTERNAL "used in settings.h")
endif()
if (use_libclang)
set(clang "1" CACHE INTERNAL "used in settings.h")
find_package(LibClang REQUIRED)
endif()
if (${CMAKE_SYSTEM} MATCHES "Darwin")
set(CMAKE_CXX_FLAGS "-Wno-deprecated-register -mmacosx-version-min=10.5 ${CMAKE_CXX_FLAGS}")
find_library(CORESERVICES_LIB CoreServices)
set(EXTRA_LIBS ${CORESERVICES_LIB})
endif()
if (WIN32)
set(ICONV_DIR "${CMAKE_SOURCE_DIR}/winbuild")
set(CMAKE_REQUIRED_DEFINITIONS "-DLIBICONV_STATIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") # needed for language.cpp on 64bit
add_definitions(-DLIBICONV_STATIC -D_CRT_SECURE_NO_WARNINGS)
endif()
find_program(DOT NAMES dot)
find_package(PythonInterp REQUIRED)
find_package(FLEX REQUIRED)
find_package(BISON REQUIRED)
find_package(Threads)
if (sqlite3)
find_package(SQLite3 REQUIRED)
endif()
find_package(Iconv REQUIRED)
include_directories(${ICONV_INCLUDE_DIR})
#set(DOXYDOCS ${CMAKE_SOURCE_DIR}/doc CACHE INTERNAL "Path to doxygen docs")
set(DOC_INSTALL_DIR "share/doc/packages/doxygen" CACHE STRING "Relative path where to install the documentation")
set(EXAMPLE_DIR ${CMAKE_SOURCE_DIR}/examples)
set(DOXYDOCS ${PROJECT_BINARY_DIR}/doc)
set(ENV{DOXYGEN_DOCDIR} ${DOXYDOCS})
set(GENERATED_SRC "${CMAKE_BINARY_DIR}/generated_src" CACHE INTERNAL "Stores generated files")
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(CUSTOM_INCLUDE_DIR "" CACHE FILEPATH "Extra include path")
set(CUSTOM_LINK_DIR "" CACHE FILEPATH "Extra library path")
# place binaries for all build types in the same directory, so we know where to find it
# when running tests or generating docs
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${EXECUTABLE_OUTPUT_PATH})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${EXECUTABLE_OUTPUT_PATH})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${EXECUTABLE_OUTPUT_PATH})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${EXECUTABLE_OUTPUT_PATH})
# gather lang codes for translation
file(GLOB lang_files RELATIVE "${CMAKE_SOURCE_DIR}/src" "${CMAKE_SOURCE_DIR}/src/translator_??.h")
set(lcodes "")
foreach (_lang ${lang_files})
string(REGEX REPLACE "translator_(.*).h" "\\1" _lang_code ${_lang})
string(TOUPPER ${_lang_code} lang_code)
list(APPEND lcodes "${lang_code}")
endforeach()
if (english_only) # user only wants English
set(lcodes "ENONLY")
endif()
set(LANG_CODES ${lcodes} CACHE STRING "List of language codes for which translations should be compiled in")
if (${CUSTOM_INCLUDE_DIR})
include_directories(${CUSTOM_INCLUDE_DIR})
endif()
if (${CUSTOM_LINK_DIR})
link_directories(${CUSTOM_LINK_DIR})
endif()
if (win_static)
set(CompilerFlags
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELWITHDEBINFO)
foreach(CompilerFlag ${CompilerFlags})
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
endforeach()
endif()
add_subdirectory(libmd5)
add_subdirectory(qtools)
add_subdirectory(vhdlparser)
add_subdirectory(src)
add_subdirectory(examples)
add_subdirectory(doc)
add_subdirectory(addon/doxmlparser)
add_subdirectory(addon/doxyapp)
add_subdirectory(addon/doxysearch)
add_subdirectory(addon/doxywizard)
enable_testing()
add_subdirectory(testing)
1.8.11
../src/doxmlintf.h
\ No newline at end of file
../src/doxmlintf.h
\ No newline at end of file
all clean depend: Makefile.doxmlparser
$(MAKE) -f Makefile.doxmlparser $@
distclean: clean
$(RM) -rf Makefile.doxmlparser doxmlparser.pro Makefile obj
realclean: distclean
tmake:
$(ENV) $(PERL) $(TMAKE) doxmlparser.pro >Makefile.doxmlparser
Makefile.doxmlparser: doxmlparser.pro
$(ENV) $(PERL) $(TMAKE) doxmlparser.pro >Makefile.doxmlparser
install:
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
TEMPLATE = lib.t
CONFIG = console staticlib warn_on $extraopts
HEADERS = basehandler.h mainhandler.h \
compoundhandler.h sectionhandler.h \
memberhandler.h paramhandler.h \
dochandler.h linkedtexthandler.h \
debug.h graphhandler.h stringimpl.h \
loamhandler.h
SOURCES = mainhandler.cpp \
compoundhandler.cpp sectionhandler.cpp \
memberhandler.cpp paramhandler.cpp \
dochandler.cpp linkedtexthandler.cpp \
basehandler.cpp debug.cpp graphhandler.cpp \
loamhandler.cpp
unix:LIBS += -L../../../lib -lqtools
win32:INCLUDEPATH += .
win32-mingw:LIBS += -L../../../lib -lqtools
win32-msvc:LIBS += qtools.lib shell32.lib
win32-msvc:TMAKE_LFLAGS += /LIBPATH:....\\..\lib
win32-borland:LIBS += qtools.lib doxycfg.lib shell32.lib
win32-borland:TMAKE_LFLAGS += -L..\..\..\lib
win32:TMAKE_CXXFLAGS += -DQT_NODLL
DESTDIR = ../../../lib
OBJECTS_DIR = ../../../objects/doxmlparser
TARGET = doxmlparser
INCLUDEPATH += ../../../qtools ../include
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* $Id$ * $Id$
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
if (build_app)
find_package(Iconv)
include_directories(
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/qtools
${ICONV_INCLUDE_DIR}
)
add_executable(doxyapp
doxyapp.cpp
)
target_link_libraries(doxyapp
_doxygen
qtools
md5
doxycfg
vhdlparser
${ICONV_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${SQLITE3_LIBRARIES}
${EXTRA_LIBS}
)
install(TARGETS doxyapp DESTINATION bin)
endif()
all clean depend distclean: Makefile.doxyapp
$(MAKE) -f Makefile.doxyapp $@
distclean: clean
$(RM) -rf Makefile doxyapp.pro Makefile.doxyapp
realclean: distclean
tmake:
$(ENV) $(PERL) "$(TMAKE)" doxyapp.pro >Makefile.doxyapp
strip:
strip doxyapp
Makefile.doxyapp: doxyapp.pro
$(ENV) $(PERL) "$(TMAKE)" doxyapp.pro >Makefile.doxyapp
install:
/****************************************************************************** /******************************************************************************
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -26,7 +26,8 @@ ...@@ -26,7 +26,8 @@
*/ */
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <qfile.h>
#include <qdir.h>
#include "doxygen.h" #include "doxygen.h"
#include "outputgen.h" #include "outputgen.h"
#include "parserintf.h" #include "parserintf.h"
...@@ -308,10 +309,10 @@ int main(int argc,char **argv) ...@@ -308,10 +309,10 @@ int main(int argc,char **argv)
} }
// remove temporary files // remove temporary files
if (!Doxygen::objDBFileName.isEmpty()) unlink(Doxygen::objDBFileName); if (!Doxygen::objDBFileName.isEmpty()) QFile::remove(Doxygen::objDBFileName);
if (!Doxygen::entryDBFileName.isEmpty()) unlink(Doxygen::entryDBFileName); if (!Doxygen::entryDBFileName.isEmpty()) QFile::remove(Doxygen::entryDBFileName);
// clean up after us // clean up after us
rmdir("/tmp/doxygen"); QDir().rmdir("/tmp/doxygen");
while (1) while (1)
{ {
......
TEMPLATE = app.t
CONFIG = console warn_on debug
HEADERS =
SOURCES = doxyapp.cpp
LIBS += -L../../lib -ldoxygen -lqtools -lmd5 -ldoxycfg -lpthread -liconv
DESTDIR =
OBJECTS_DIR = ../../objects/doxyapp
TARGET = ../../bin/doxyapp
INCLUDEPATH += ../../qtools ../../src
DEPENDPATH += ../../src
TARGETDEPS = ../../lib/libdoxygen.a
This diff is collapsed.
if (build_search)
find_package(Xapian REQUIRED)
find_package(ZLIB REQUIRED)
if (WIN32)
set(WIN_EXTRA_LIBS "uuid.lib rpcrt4.lib ws2_32.lib")
endif()
include_directories(
${CMAKE_SOURCE_DIR}/qtools
${XAPIAN_INCLUDE_DIR}
${ZLIB_INCLUDE_DIRS}
)
add_executable(doxyindexer
doxyindexer.cpp
)
target_link_libraries(doxyindexer
${XAPIAN_LIBRARIES}
${ZLIB_LIBRARIES}
${WIN_EXTRA_LIBS}
qtools
)
add_executable(doxysearch.cgi
doxysearch.cpp
)
target_link_libraries(doxysearch.cgi
${XAPIAN_LIBRARIES}
${ZLIB_LIBRARIES}
${WIN_EXTRA_LIBS}
)
install(TARGETS doxyindexer doxysearch.cgi DESTINATION bin)
endif()
all clean depend: Makefile.doxysearch Makefile.doxyindexer
$(MAKE) -f Makefile.doxysearch $@
$(MAKE) -f Makefile.doxyindexer $@
distclean: clean
$(RM) -rf Makefile doxysearch.pro Makefile.doxysearch
$(RM) -rf Makefile doxyindexer.pro Makefile.doxyindexer
tmake:
$(ENV) $(PERL) "$(TMAKE)" doxysearch.pro >Makefile.doxysearch
$(ENV) $(PERL) "$(TMAKE)" doxyindexer.pro >Makefile.doxyindexer
strip:
strip doxysearch
Makefile.doxysearch: doxysearch.pro
$(ENV) $(PERL) "$(TMAKE)" doxysearch.pro >Makefile.doxysearch
Makefile.doxyindexer: doxyindexer.pro
$(ENV) $(PERL) "$(TMAKE)" doxyindexer.pro >Makefile.doxyindexer
install:
$(INSTTOOL) -d $(INSTALL)/bin
$(INSTTOOL) -m 755 ../../bin/doxysearch.cgi $(INSTALL)/bin
$(INSTTOOL) -m 755 ../../bin/doxyindexer $(INSTALL)/bin
$(INSTTOOL) -d $(INSTALL)/$(MAN1DIR)
cat ../../doc/doxyindexer.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxyindexer.1
$(INSTTOOL) -m 644 doxyindexer.1 $(INSTALL)/$(MAN1DIR)/doxyindexer.1
rm doxyindexer.1
cat ../../doc/doxysearch.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxysearch.1
$(INSTTOOL) -m 644 doxysearch.1 $(INSTALL)/$(MAN1DIR)/doxysearch.1
rm doxysearch.1
/****************************************************************************** /******************************************************************************
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
TEMPLATE = app.t
CONFIG = console warn_on static release
HEADERS =
SOURCES = doxyindexer.cpp
LIBS += -L../../lib -lxapian -lqtools
DESTDIR =
OBJECTS_DIR = ../../objects/doxyindexer
TARGET = ../../bin/doxyindexer
INCLUDEPATH += ../../qtools
DEPENDPATH +=
TARGETDEPS =
/****************************************************************************** /******************************************************************************
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
TEMPLATE = app.t
CONFIG = console warn_on debug cgi
HEADERS =
SOURCES = doxysearch.cpp
LIBS += -lxapian
DESTDIR =
OBJECTS_DIR = ../../objects/doxysearch
TARGET = ../../bin/doxysearch.cgi
INCLUDEPATH +=
DEPENDPATH +=
TARGETDEPS =
if (build_wizard)
include_directories(
.
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/qtools
${GENERATED_SRC}
)
set(GENERATED_SRC_WIZARD ${GENERATED_SRC}/doxywizard)
file(MAKE_DIRECTORY ${GENERATED_SRC_WIZARD})
add_definitions(-DQT_ARCH_X86_64 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DUNICODE)
set(QT_USE_QTXML TRUE)
find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
# generate settings.h
file(GENERATE OUTPUT ${GENERATED_SRC_WIZARD}/settings.h
CONTENT "#ifndef SETTINGS_H
#define SETTINGS_H
#define USE_SQLITE3 ${sqlite3}
#define USE_LIBCLANG ${clang}
#define IS_SUPPORTED(x) \\
((USE_SQLITE3 && strcmp(\"USE_SQLITE3\",(x))==0) || \\
(USE_LIBCLANG && strcmp(\"USE_LIBCLANG\",(x))==0) || \\
0)
#endif" )
set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERATED 1)
# generate version.cpp
file(GENERATE OUTPUT ${GENERATED_SRC_WIZARD}/version.cpp
CONTENT "char versionString[]=\"${VERSION}\";"
)
set_source_files_properties(${GENERATED_SRC_WIZARD}/version.cpp PROPERTIES GENERATED 1)
# generate configdoc.cpp
add_custom_command(
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -wiz ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp
OUTPUT ${GENERATED_SRC_WIZARD}/configdoc.cpp
)
set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GENERATED 1)
FLEX_TARGET(config_doxyw config_doxyw.l ${GENERATED_SRC_WIZARD}/config_doxyw.cpp COMPILE_FLAGS "-Pconfig_doxywYY")
QT4_WRAP_CPP(doxywizard_MOC
doxywizard.h
expert.h
helplabel.h
inputint.h
inputbool.h
inputstring.h
inputstrlist.h
wizard.h
)
QT4_ADD_RESOURCES(doxywizard_RESOURCES_RCC doxywizard.qrc)
add_executable(doxywizard
doxywizard.cpp
expert.cpp
wizard.cpp
inputbool.cpp
inputstring.cpp
inputint.cpp
inputstrlist.cpp
${GENERATED_SRC_WIZARD}/settings.h
${GENERATED_SRC_WIZARD}/version.cpp
${GENERATED_SRC_WIZARD}/config_doxyw.cpp
${GENERATED_SRC_WIZARD}/configdoc.cpp
${doxywizard_MOC}
${doxywizard_RESOURCES_RCC}
)
target_link_libraries(doxywizard
${QT_LIBRARIES}
)
install(TARGETS doxywizard DESTINATION bin)
endif()
#
#
#
# Copyright (C) 1997-2014 by Dimitri van Heesch.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby
# granted. No representations are made about the suitability of this software
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
QMAKE=$(QTDIR)/bin/qmake $(MKSPECS)
INCBUFSIZE=$(PYTHON) ../../src/increasebuffer.py
all: Makefile.doxywizard
$(MAKE) -f Makefile.doxywizard LEX=$(LEX) PYTHON=$(PYTHON) INCBUFSIZE="$(INCBUFSIZE)"
Makefile.doxywizard: doxywizard.pro
$(QMAKE) doxywizard.pro -o Makefile.doxywizard
qmake:
$(QMAKE) doxywizard.pro -o Makefile.doxywizard
clean: Makefile.doxywizard
$(MAKE) -f Makefile.doxywizard clean
distclean: Makefile.doxywizard
$(MAKE) -f Makefile.doxywizard distclean
$(RM) Makefile.doxywizard
install:
$(INSTTOOL) -d $(INSTALL)/bin
$(INSTTOOL) -m 755 ../../bin/doxywizard $(INSTALL)/bin
$(INSTTOOL) -d $(INSTALL)/$(MAN1DIR)
cat ../../doc/doxywizard.1 | sed -e "s/DATE/$(DATE)/g" -e "s/VERSION/$(VERSION)/g" > doxywizard.1
$(INSTTOOL) -m 644 doxywizard.1 $(INSTALL)/$(MAN1DIR)/doxywizard.1
rm doxywizard.1
FORCE:
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* $Id: config_templ.l,v 1.8 2001/01/01 10:15:16 root Exp $ * $Id: config_templ.l,v 1.8 2001/01/01 10:15:16 root Exp $
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
* *
*/ */
%option never-interactive
%{ %{
/* /*
...@@ -21,6 +22,8 @@ ...@@ -21,6 +22,8 @@
#include "input.h" #include "input.h"
#include <QtCore> #include <QtCore>
#define YY_NO_UNISTD_H 1
#define MAX_INCLUDE_DEPTH 10 #define MAX_INCLUDE_DEPTH 10
...@@ -71,18 +74,25 @@ static int yyread(char *buf,int maxSize) ...@@ -71,18 +74,25 @@ static int yyread(char *buf,int maxSize)
} }
} }
static QString warning_str = QString::fromAscii("warning: ");
static QString error_str = QString::fromAscii("error: ");
void config_err(const char *fmt, ...) void config_err(const char *fmt, ...)
{ {
QString msg = error_str;
msg.append(QString::fromAscii(fmt));
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
vfprintf(stderr, fmt, args); vfprintf(stderr, qPrintable(msg), args);
va_end(args); va_end(args);
} }
void config_warn(const char *fmt, ...) void config_warn(const char *fmt, ...)
{ {
QString msg = warning_str;
msg.append(QString::fromAscii(fmt));
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
vfprintf(stderr, fmt, args); vfprintf(stderr, qPrintable(msg), args);
va_end(args); va_end(args);
} }
...@@ -111,7 +121,7 @@ static FILE *tryPath(const QString &path,const QString &fileName) ...@@ -111,7 +121,7 @@ static FILE *tryPath(const QString &path,const QString &fileName)
{ {
FILE *f = fopen(absName.toLocal8Bit(),"r"); FILE *f = fopen(absName.toLocal8Bit(),"r");
if (f==NULL) if (f==NULL)
config_err("Error: could not open file %s for reading\n",absName.toLatin1().data()); config_err("could not open file %s for reading\n",qPrintable(absName));
else else
return f; return f;
} }
...@@ -141,7 +151,7 @@ static void readIncludeFile(const QString &incName) ...@@ -141,7 +151,7 @@ static void readIncludeFile(const QString &incName)
{ {
if (g_includeDepth==MAX_INCLUDE_DEPTH) if (g_includeDepth==MAX_INCLUDE_DEPTH)
{ {
config_err("Error: maximum include depth (%d) reached, %s is not included. Aborting...\n", config_err("maximum include depth (%d) reached, %s is not included. Aborting...\n",
MAX_INCLUDE_DEPTH,qPrintable(incName)); MAX_INCLUDE_DEPTH,qPrintable(incName));
exit(1); exit(1);
} }
...@@ -162,7 +172,7 @@ static void readIncludeFile(const QString &incName) ...@@ -162,7 +172,7 @@ static void readIncludeFile(const QString &incName)
// For debugging // For debugging
#if SHOW_INCLUDES #if SHOW_INCLUDES
for (i=0;i<includeStack.count();i++) msg(" "); for (i=0;i<includeStack.count();i++) msg(" ");
msg("@INCLUDE = %s: parsing...\n",inc.toLatin1().data()); msg("@INCLUDE = %s: parsing...\n",qPrintable(inc));
#endif #endif
// store the state of the old file // store the state of the old file
...@@ -180,7 +190,7 @@ static void readIncludeFile(const QString &incName) ...@@ -180,7 +190,7 @@ static void readIncludeFile(const QString &incName)
} }
else else
{ {
config_err("Error: @INCLUDE = %s: not found!\n",inc.toLatin1().data()); config_err("@INCLUDE = %s: not found!\n",qPrintable(inc));
exit(1); exit(1);
} }
} }
...@@ -210,7 +220,7 @@ static void readIncludeFile(const QString &incName) ...@@ -210,7 +220,7 @@ static void readIncludeFile(const QString &incName)
g_curOption = g_options->value(cmd); g_curOption = g_options->value(cmd);
if (g_curOption==0) // oops not known if (g_curOption==0) // oops not known
{ {
config_err("Warning: ignoring unsupported tag `%s' at line %d, file %s\n", config_warn("ignoring unsupported tag `%s' at line %d, file %s\n",
qPrintable(cmd),yylineno,qPrintable(g_yyFileName)); qPrintable(cmd),yylineno,qPrintable(g_yyFileName));
BEGIN(SkipInvalid); BEGIN(SkipInvalid);
} }
...@@ -235,7 +245,7 @@ static void readIncludeFile(const QString &incName) ...@@ -235,7 +245,7 @@ static void readIncludeFile(const QString &incName)
BEGIN(GetString); BEGIN(GetString);
break; break;
case Input::Obsolete: case Input::Obsolete:
config_err("Warning: Tag `%s' at line %d of file %s has become obsolete.\n" config_warn("Tag `%s' at line %d of file %s has become obsolete.\n"
"To avoid this warning please update your configuration " "To avoid this warning please update your configuration "
"file using \"doxygen -u\"\n", qPrintable(cmd), "file using \"doxygen -u\"\n", qPrintable(cmd),
yylineno,qPrintable(g_yyFileName)); yylineno,qPrintable(g_yyFileName));
...@@ -249,7 +259,7 @@ static void readIncludeFile(const QString &incName) ...@@ -249,7 +259,7 @@ static void readIncludeFile(const QString &incName)
g_curOption = g_options->value(cmd); g_curOption = g_options->value(cmd);
if (g_curOption==0) // oops not known if (g_curOption==0) // oops not known
{ {
config_err("Warning: ignoring unsupported tag `%s' at line %d, file %s\n", config_warn("ignoring unsupported tag `%s' at line %d, file %s\n",
yytext,yylineno,qPrintable(g_yyFileName)); yytext,yylineno,qPrintable(g_yyFileName));
BEGIN(SkipInvalid); BEGIN(SkipInvalid);
} }
...@@ -265,12 +275,12 @@ static void readIncludeFile(const QString &incName) ...@@ -265,12 +275,12 @@ static void readIncludeFile(const QString &incName)
case Input::String: case Input::String:
case Input::Int: case Input::Int:
case Input::Bool: case Input::Bool:
config_err("Warning: operator += not supported for `%s'. Ignoring line at line %d, file %s\n", config_warn("operator += not supported for `%s'. Ignoring line at line %d, file %s\n",
yytext,yylineno,qPrintable(g_yyFileName)); yytext,yylineno,qPrintable(g_yyFileName));
BEGIN(SkipInvalid); BEGIN(SkipInvalid);
break; break;
case Input::Obsolete: case Input::Obsolete:
config_err("Warning: Tag `%s' at line %d of file %s has become obsolete.\n" config_warn("Tag `%s' at line %d of file %s has become obsolete.\n"
"To avoid this warning please update your configuration " "To avoid this warning please update your configuration "
"file using \"doxygen -u\"\n", "file using \"doxygen -u\"\n",
qPrintable(cmd),yylineno,qPrintable(g_yyFileName)); qPrintable(cmd),yylineno,qPrintable(g_yyFileName));
...@@ -307,12 +317,12 @@ static void readIncludeFile(const QString &incName) ...@@ -307,12 +317,12 @@ static void readIncludeFile(const QString &incName)
} }
} }
<Start>[a-z_A-Z0-9]+ { config_err("Warning: ignoring unknown tag `%s' at line %d, file %s\n",yytext,yylineno,qPrintable(g_yyFileName)); } <Start>[a-z_A-Z0-9]+ { config_warn("ignoring unknown tag `%s' at line %d, file %s\n",yytext,yylineno,qPrintable(g_yyFileName)); }
<GetString,SkipInvalid>\n { BEGIN(Start); } <GetString,SkipInvalid>\n { BEGIN(Start); }
<GetStrList>\n { <GetStrList>\n {
if (!g_elemStr.isEmpty()) if (!g_elemStr.isEmpty())
{ {
//printf("elemStr1=`%s'\n",elemStr.toLatin1().data()); //printf("elemStr1=`%s'\n",qPrintable(elemStr));
*g_arg = QVariant(g_arg->toStringList() << g_elemStr); *g_arg = QVariant(g_arg->toStringList() << g_elemStr);
} }
BEGIN(Start); BEGIN(Start);
...@@ -320,7 +330,7 @@ static void readIncludeFile(const QString &incName) ...@@ -320,7 +330,7 @@ static void readIncludeFile(const QString &incName)
<GetStrList>[ \t]+ { <GetStrList>[ \t]+ {
if (!g_elemStr.isEmpty()) if (!g_elemStr.isEmpty())
{ {
//printf("elemStr2=`%s'\n",elemStr.toLatin1().data()); //printf("elemStr2=`%s'\n",qPrintable(elemStr));
*g_arg = QVariant(g_arg->toStringList() << g_elemStr); *g_arg = QVariant(g_arg->toStringList() << g_elemStr);
} }
g_elemStr = QString(); g_elemStr = QString();
...@@ -336,7 +346,7 @@ static void readIncludeFile(const QString &incName) ...@@ -336,7 +346,7 @@ static void readIncludeFile(const QString &incName)
<GetQuotedString>"\""|"\n" { <GetQuotedString>"\""|"\n" {
// we add a bogus space to signal that the string was quoted. This space will be stripped later on. // we add a bogus space to signal that the string was quoted. This space will be stripped later on.
g_tmpString+=" "; g_tmpString+=" ";
//printf("Quoted String = `%s'\n",tmpString.toLatin1().data()); //printf("Quoted String = `%s'\n",qPrintable(tmpString));
if (g_lastState==GetString) if (g_lastState==GetString)
{ {
*g_arg = g_codec->toUnicode(g_tmpString); *g_arg = g_codec->toUnicode(g_tmpString);
...@@ -348,7 +358,7 @@ static void readIncludeFile(const QString &incName) ...@@ -348,7 +358,7 @@ static void readIncludeFile(const QString &incName)
} }
if (*yytext=='\n') if (*yytext=='\n')
{ {
config_err("Warning: Missing end quote (\") on line %d, file %s\n",yylineno, config_warn("Missing end quote (\") on line %d, file %s\n",yylineno,
qPrintable(g_yyFileName)); qPrintable(g_yyFileName));
} }
BEGIN(g_lastState); BEGIN(g_lastState);
...@@ -377,11 +387,11 @@ static void substEnvVarsInString(QString &s) ...@@ -377,11 +387,11 @@ static void substEnvVarsInString(QString &s)
if (s.isEmpty()) return; if (s.isEmpty()) return;
int p=0; int p=0;
int i,l; int i,l;
//printf("substEnvVarInString(%s) start\n",s.toLatin1().data()); //printf("substEnvVarInString(%s) start\n",qPrintable(s));
while ((i=re.indexIn(s,p))!=-1) while ((i=re.indexIn(s,p))!=-1)
{ {
l = re.matchedLength(); l = re.matchedLength();
//printf("Found environment var s.mid(%d,%d)=`%s'\n",i+2,l-3,s.mid(i+2,l-3).toLatin1().data()); //printf("Found environment var s.mid(%d,%d)=`%s'\n",i+2,l-3,qPrintable(s.mid(i+2,l-3)));
QString env=g_codec->toUnicode(getenv(s.mid(i+2,l-3).toLatin1())); QString env=g_codec->toUnicode(getenv(s.mid(i+2,l-3).toLatin1()));
substEnvVarsInString(env); // recursively expand variables if needed. substEnvVarsInString(env); // recursively expand variables if needed.
s = s.left(i)+env+s.right(s.length()-i-l); s = s.left(i)+env+s.right(s.length()-i-l);
...@@ -389,7 +399,7 @@ static void substEnvVarsInString(QString &s) ...@@ -389,7 +399,7 @@ static void substEnvVarsInString(QString &s)
} }
s=s.trimmed(); // to strip the bogus space that was added when an argument s=s.trimmed(); // to strip the bogus space that was added when an argument
// has quotes // has quotes
//printf("substEnvVarInString(%s) end\n",s.toLatin1().data()); //printf("substEnvVarInString(%s) end\n",qPrintable(s));
} }
static void substEnvVarsInStrList(QStringList &sl) static void substEnvVarsInStrList(QStringList &sl)
...@@ -404,7 +414,7 @@ static void substEnvVarsInStrList(QStringList &sl) ...@@ -404,7 +414,7 @@ static void substEnvVarsInStrList(QStringList &sl)
// here we strip the quote again // here we strip the quote again
substEnvVarsInString(result); substEnvVarsInString(result);
//printf("Result %s was quoted=%d\n",result.toLatin1().data(),wasQuoted); //printf("Result %s was quoted=%d\n",qPrintable(result),wasQuoted);
if (!wasQuoted) /* as a result of the expansion, a single string if (!wasQuoted) /* as a result of the expansion, a single string
may have expanded into a list, which we'll may have expanded into a list, which we'll
......
...@@ -193,7 +193,7 @@ void MainWindow::about() ...@@ -193,7 +193,7 @@ void MainWindow::about()
t << QString::fromAscii("<qt><center>A tool to configure and run doxygen version ")+ t << QString::fromAscii("<qt><center>A tool to configure and run doxygen version ")+
QString::fromAscii(versionString)+ QString::fromAscii(versionString)+
QString::fromAscii(" on your source files.</center><p><br>" QString::fromAscii(" on your source files.</center><p><br>"
"<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2014</center><p>" "<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2015</center><p>"
"</qt>"); "</qt>");
QMessageBox::about(this,tr("Doxygen GUI"),msg); QMessageBox::about(this,tr("Doxygen GUI"),msg);
} }
......
######################################################################
# Automatically generated by qmake (2.01a) zo okt 19 12:50:02 2008
######################################################################
TEMPLATE = app
DESTDIR = ../../bin
TARGET =
DEPENDPATH += .
INCLUDEPATH += . ../../generated_src/doxywizard
QT += xml
CONFIG += $extraopts
OBJECTS_DIR = ../../objects/doxywizard
MOC_DIR = ../../moc/doxywizard
RCC_DIR = ../../rcc/doxywizard
DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII
macx-g++ {
CONFIG += x86 x86_64
}
# Input
HEADERS += doxywizard.h version.h expert.h config.h helplabel.h \
inputbool.h inputstring.h inputint.h inputstrlist.h wizard.h docintf.h
SOURCES += doxywizard.cpp expert.cpp wizard.cpp \
inputbool.cpp inputstring.cpp inputint.cpp inputstrlist.cpp
RESOURCES += doxywizard.qrc
win32:RC_FILE += doxywizard.rc
config.target = ../../generated_src/doxywizard/config_doxyw.cpp
config.commands = $(LEX) -Pconfig_doxywYY -t ../../addon/doxywizard/config_doxyw.l | $(PYTHON) ../../src/increasebuffer.py >../../generated_src/doxywizard/$*.cpp
config.depends = ../../addon/doxywizard/config_doxyw.l ../../src/increasebuffer.py
configdoc.target = ../../generated_src/doxywizard/configdoc.cpp
configdoc.commands = $(PYTHON) ../../src/configgen.py -wiz ../../src/config.xml > ../../generated_src/doxywizard/configdoc.cpp
configdoc.depends = ../../src/config.xml ../../src/configgen.py
version.target = ../../generated_src/doxywizard/version.cpp
version.commands = cd ../../src;$(PYTHON) version.py
version.depends = ../../configure
QMAKE_EXTRA_TARGETS += configdoc config version
GENERATED_SOURCES += $$configdoc.target $$config.target $$version.target
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
# vim:ts=4:sw=4:expandtab:autoindent:
#
# The MIT License
#
# Copyright (c) 2008, 2009 Flusspferd contributors (see "CONTRIBUTORS" or
# http://flusspferd.org/contributors.txt)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
Include(CheckFunctionExists)
include(CheckCXXSourceCompiles)
if(ICONV_INCLUDE_DIR)
set(ICONV_FIND_QUIETLY TRUE)
endif()
find_path(ICONV_INCLUDE_DIR iconv.h
HINTS
${CMAKE_PREFIX_PATH}
${ICONV_DIR}
$ENV{ICONV_DIR}
PATH_SUFFIXES include
)
if(NOT ICONV_INCLUDE_DIR STREQUAL "ICONV_INCLUDE_DIR-NOTFOUND")
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
check_function_exists(iconv_open ICONV_IN_GLIBC)
endif()
if(NOT ICONV_IN_GLIBC)
if (CMAKE_CL_64)
find_library(ICONV_LIBRARY
NAMES iconv64
HINTS
${CMAKE_PREFIX_PATH}
${ICONV_DIR}
$ENV{ICONV_DIR}
PATH_SUFFIXES lib64 lib
)
else()
find_library(ICONV_LIBRARY
NAMES iconv
HINTS
${CMAKE_PREFIX_PATH}
${ICONV_DIR}
$ENV{ICONV_DIR}
PATH_SUFFIXES lib64 lib
)
endif()
set(ICONV_TEST ${ICONV_LIBRARY})
else()
set(ICONV_TEST "In glibc")
endif()
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY})
check_cxx_source_compiles(
"#include <iconv.h>
int main() {
iconv(iconv_t(-1), 0, 0, 0, 0);
}"
ICONV_COMPILES)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ICONV DEFAULT_MSG ICONV_TEST ICONV_INCLUDE_DIR ICONV_COMPILES)
if(ICONV_FOUND)
set(ICONV_LIBRARIES ${ICONV_LIBRARY})
else(ICONV_FOUND)
set(ICONV_LIBRARIES)
endif(ICONV_FOUND)
if(ICONV_FOUND)
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
if (NOT DEFINED ICONV_ACCEPTS_NONCONST_INPUT)
# Display a useful message first time we come through here
message(STATUS "One (and only one) of the ICONV_ACCEPTS_... tests must pass")
endif()
check_cxx_source_compiles(
"#include <iconv.h>
int main() {
char *p = 0;
iconv(iconv_t(-1), &p, 0, 0, 0);
}"
ICONV_ACCEPTS_NONCONST_INPUT)
check_cxx_source_compiles(
"#include <iconv.h>
int main() {
char const *p = 0;
iconv(iconv_t(-1), &p, 0, 0, 0);
}"
ICONV_ACCEPTS_CONST_INPUT)
if (ICONV_LIBRARY)
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY})
list(REMOVE_DUPLICATES CMAKE_REQUIRED_LIBRARIES)
endif()
endif()
if(NOT ICONV_ACCEPTS_CONST_INPUT AND NOT ICONV_ACCEPTS_NONCONST_INPUT)
MESSAGE(FATAL_ERROR "Unable to determine iconv() signature")
elseif(ICONV_ACCEPTS_CONST_INPUT AND ICONV_ACCEPTS_NONCONST_INPUT)
MESSAGE(FATAL_ERROR "Unable to determine iconv() signature - both test cases passed!")
endif()
mark_as_advanced(ICONV_LIBRARY ICONV_INCLUDE_DIR)
if (NOT CLANG_ROOT)
set(CLANG_ROOT $ENV{CLANG_ROOT})
endif ()
if (NOT LLVM_CONFIG)
set(LLVM_CONFIG $ENV{LLVM_CONFIG})
if (NOT LLVM_CONFIG)
set(llvm_config_names llvm-config)
foreach(minor RANGE 9 1)
list(APPEND llvm_config_names "llvm-config3${minor}" "llvm-config-3.${minor}" "llvm-config-mp-3.${minor}")
endforeach ()
find_program(LLVM_CONFIG NAMES ${llvm_config_names})
endif ()
endif ()
if (LLVM_CONFIG)
message(STATUS "llvm-config found at: ${LLVM_CONFIG}")
else ()
message(FATAL_ERROR "Could NOT find llvm-config executable.")
endif ()
if (NOT EXISTS ${CLANG_INCLUDEDIR})
execute_process(COMMAND ${LLVM_CONFIG} --includedir OUTPUT_VARIABLE CLANG_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
if (NOT EXISTS ${CLANG_INCLUDEDIR})
message(FATAL_ERROR "Could NOT find clang includedir. You can fix this by setting CLANG_INCLUDEDIR in your shell or as a cmake variable.")
endif ()
endif ()
if (NOT EXISTS ${CLANG_LIBDIR})
execute_process(COMMAND ${LLVM_CONFIG} --libdir OUTPUT_VARIABLE CLANG_LIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
if (NOT EXISTS ${CLANG_LIBDIR})
message(FATAL_ERROR "Could NOT find clang libdir. You can fix this by setting CLANG_LIBDIR in your shell or as a cmake variable.")
endif ()
endif ()
if (NOT CLANG_LIBS)
find_library(CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT NAMES clang libclang ${CLANG_ROOT}/lib ${CLANG_LIBDIR} NO_DEFAULT_PATH)
if (NOT EXISTS ${CLANG_CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT})
find_library(CLANG_LIBS NAMES clang libclang)
if (NOT EXISTS ${CLANG_LIBS})
set (CLANG_LIBS "-L${CLANG_LIBDIR}" "-lclang" "-Wl,-rpath,${CLANG_LIBDIR}")
endif ()
else ()
set(CLANG_LIBS "${CLANG_LIB_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT}")
endif ()
endif ()
execute_process(COMMAND ${LLVM_CONFIG} --version OUTPUT_VARIABLE CLANG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
message("-- Using Clang ${CLANG_VERSION} from ${CLANG_LIBDIR} with LIBS ${CLANG_LIBS} and CXXFLAGS ${CLANG_CXXFLAGS}")
# - Try to find Sqlite3
# Once done this will define
#
# SQLITE3_FOUND - system has Sqlite3
# SQLITE3_INCLUDE_DIRS - the Sqlite3 include directory
# SQLITE3_LIBRARIES - Link these to use Sqlite3
# SQLITE3_DEFINITIONS - Compiler switches required for using Sqlite3
#
# Copyright (c) 2008 Andreas Schneider <mail@cynapses.org>
#
# Redistribution and use is allowed according to the terms of the New
# BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
if (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS)
# in cache already
set(SQLITE3_FOUND TRUE)
else (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS)
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
include(UsePkgConfig)
pkgconfig(sqlite3 _SQLITE3_INCLUDEDIR _SQLITE3_LIBDIR _SQLITE3_LDFLAGS _SQLITE3_CFLAGS)
else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_SQLITE3 sqlite3)
endif (PKG_CONFIG_FOUND)
endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
find_path(SQLITE3_INCLUDE_DIR
NAMES
sqlite3.h
PATHS
${_SQLITE3_INCLUDEDIR}
/usr/include
/usr/local/include
/opt/local/include
/sw/include
)
find_library(SQLITE3_LIBRARY
NAMES
sqlite3
PATHS
${_SQLITE3_LIBDIR}
/usr/lib
/usr/local/lib
/opt/local/lib
/sw/lib
)
if (SQLITE3_LIBRARY)
set(SQLITE3_FOUND TRUE)
endif (SQLITE3_LIBRARY)
set(SQLITE3_INCLUDE_DIRS
${SQLITE3_INCLUDE_DIR}
)
if (SQLITE3_FOUND)
set(SQLITE3_LIBRARIES
${SQLITE3_LIBRARIES}
${SQLITE3_LIBRARY}
)
endif (SQLITE3_FOUND)
if (SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES)
set(SQLITE3_FOUND TRUE)
endif (SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES)
if (SQLITE3_FOUND)
if (NOT Sqlite3_FIND_QUIETLY)
message(STATUS "Found Sqlite3: ${SQLITE3_LIBRARIES}")
endif (NOT Sqlite3_FIND_QUIETLY)
else (SQLITE3_FOUND)
if (Sqlite3_FIND_REQUIRED)
message(FATAL_ERROR "Could not find Sqlite3")
endif (Sqlite3_FIND_REQUIRED)
endif (SQLITE3_FOUND)
# show the SQLITE3_INCLUDE_DIRS and SQLITE3_LIBRARIES variables only in the advanced view
mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES)
endif (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS)
# Find Xapian search engine library
#
# XAPIAN_FOUND - system has Xapian
# XAPIAN_INCLUDE_DIR - the Xapian include directory
# XAPIAN_LIBRARIES - the libraries needed to use Xapian
#
# Copyright © 2010 Harald Sitter <apachelogger@ubuntu.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if(XAPIAN_INCLUDE_DIR AND XAPIAN_LIBRARIES)
# Already in cache, be silent
set(Xapian_FIND_QUIETLY TRUE)
endif(XAPIAN_INCLUDE_DIR AND XAPIAN_LIBRARIES)
FIND_PATH(XAPIAN_INCLUDE_DIR xapian/version.h)
FIND_LIBRARY(XAPIAN_LIBRARIES NAMES xapian)
IF(XAPIAN_INCLUDE_DIR AND XAPIAN_LIBRARIES)
SET(XAPIAN_FOUND TRUE)
ELSE(XAPIAN_INCLUDE_DIR AND XAPIAN_LIBRARIES)
SET(XAPIAN_FOUND FALSE)
ENDIF(XAPIAN_INCLUDE_DIR AND XAPIAN_LIBRARIES)
IF(XAPIAN_FOUND)
IF(NOT Xapian_FIND_QUIETLY)
MESSAGE(STATUS "Found Xapian: ${XAPIAN_LIBRARIES}")
ENDIF(NOT Xapian_FIND_QUIETLY)
ELSE(XAPIAN_FOUND)
IF(Xapian_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Xapian")
ENDIF(Xapian_FIND_REQUIRED)
IF(NOT Xapian_FIND_QUIETLY)
MESSAGE(STATUS "Could not find Xapian")
ENDIF(NOT Xapian_FIND_QUIETLY)
ENDIF(XAPIAN_FOUND)
# show the XAPIAN_INCLUDE_DIR and XAPIAN_LIBRARIES variables only in the advanced view
MARK_AS_ADVANCED(XAPIAN_INCLUDE_DIR XAPIAN_LIBRARIES)
if(${CMAKE_ARGC} GREATER 1)
if ("${CMAKE_ARGV3}" STREQUAL "ENONLY")
message("#define ENGLISH_ONLY")
else()
math(EXPR UPTO ${CMAKE_ARGC}-1)
foreach(i RANGE 3 ${UPTO})
message("#define LANG_${CMAKE_ARGV${i}}")
endforeach()
endif()
endif()
include(${SOURCE}/cmake/version.cmake)
find_program(PYTHON NAMES python)
execute_process(
COMMAND ${PYTHON} ${CMAKE_SOURCE_DIR}/translator.py
)
file (STRINGS "${SOURCE}/VERSION" VERSION)
set(ENV{VERSION} "${VERSION}")
mailto.txt *.bak
\ No newline at end of file mailto.txt
if (build_doc)
find_program(EPSTOPDF NAMES epstopdf )
find_program(SED NAMES sed )
find_program(MAKE NAMES make gmake nmake )
file(GLOB DOC_FILES "*")
file(GLOB LANG_FILES "${CMAKE_SOURCE_DIR}/src/translator_??.h")
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/man)
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/src)
file(COPY ${CMAKE_SOURCE_DIR}/src/translator.h DESTINATION ${PROJECT_BINARY_DIR}/src)
file(COPY ${CMAKE_SOURCE_DIR}/src/translator_adapter.h DESTINATION ${PROJECT_BINARY_DIR}/src)
file(COPY ${LANG_FILES} DESTINATION ${PROJECT_BINARY_DIR}/src)
file(COPY ${CMAKE_SOURCE_DIR}/VERSION DESTINATION ${PROJECT_BINARY_DIR})
# copy all doc files
add_custom_target(copy_docs)
foreach(doc_file ${DOC_FILES})
add_custom_command(TARGET copy_docs PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E
copy ${doc_file} ${DOXYDOCS})
endforeach()
add_custom_target(docs
COMMENT "Generating documentation in ${DOXYDOCS}"
COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen
COMMAND ${CMAKE_COMMAND} -E remove_directory ../latex/refman.tex
COMMAND ${CMAKE_COMMAND} -E copy doxygen_logo.gif ../html
COMMAND ${CMAKE_COMMAND} -E copy doxygen_logo_low.gif ../html
COMMAND ${CMAKE_COMMAND} -E copy Makefile.latex ../latex/Makefile
COMMAND ${SED} -e "s/\$VERSION/${VERSION}/g" doxygen_manual.tex > ../latex/doxygen_manual.tex
COMMAND ${SED} -e "s/\$VERSION/${VERSION}/g" doxygen.sty > ../latex/doxygen.sty
COMMAND ${EPSTOPDF} doxygen_logo.eps --outfile=../latex/doxygen_logo.pdf
COMMAND ${MAKE} -C ../latex > latex_out.txt
DEPENDS doxygen copy_docs ${PROJECT_BINARY_DIR}/doc/language.doc config.doc examples
"${PROJECT_BINARY_DIR}/man/doxygen.1"
"${PROJECT_BINARY_DIR}/man/doxywizard.1"
"${PROJECT_BINARY_DIR}/man/doxysearch.1"
"${PROJECT_BINARY_DIR}/man/doxyindexer.1"
WORKING_DIRECTORY ${DOXYDOCS}
VERBATIM
)
# language.doc
add_custom_command(
COMMAND ${CMAKE_COMMAND} "-DSOURCE=${CMAKE_SOURCE_DIR}" -P ${CMAKE_SOURCE_DIR}/cmake/run_translator.cmake
DEPENDS ${DOXYDOCS}/translator.py
DEPENDS maintainers.txt language.tpl translator.py
OUTPUT ${PROJECT_BINARY_DIR}/doc/language.doc
WORKING_DIRECTORY ${DOXYDOCS}
)
set_source_files_properties(${DOXYDOCS}/language.doc PROPERTIES GENERATED 1)
# config.doc
add_custom_command(
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -doc ${CMAKE_SOURCE_DIR}/src/config.xml > config.doc
DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
OUTPUT config.doc
WORKING_DIRECTORY ${DOXYDOCS}
)
set_source_files_properties(${DOXYDOCS}/config.doc PROPERTIES GENERATED 1)
string(TIMESTAMP TODAY "%d-%m-%Y")
add_custom_command(
COMMAND ${SED} -e "s/DATE/${TODAY}/g" -e "s/VERSION/${VERSION}/g" doxygen.1 > "${PROJECT_BINARY_DIR}/man/doxygen.1"
OUTPUT "${PROJECT_BINARY_DIR}/man/doxygen.1"
)
add_custom_command(
COMMAND ${SED} -e "s/DATE/${TODAY}/g" -e "s/VERSION/${VERSION}/g" doxywizard.1 > "${PROJECT_BINARY_DIR}/man/doxywizard.1"
OUTPUT "${PROJECT_BINARY_DIR}/man/doxywizard.1"
)
add_custom_command(
COMMAND ${SED} -e "s/DATE/${TODAY}/g" -e "s/VERSION/${VERSION}/g" doxysearch.1 > "${PROJECT_BINARY_DIR}/man/doxysearch.1"
OUTPUT "${PROJECT_BINARY_DIR}/man/doxysearch.1"
)
add_custom_command(
COMMAND ${SED} -e "s/DATE/${TODAY}/g" -e "s/VERSION/${VERSION}/g" doxyindexer.1 > "${PROJECT_BINARY_DIR}/man/doxyindexer.1"
OUTPUT "${PROJECT_BINARY_DIR}/man/doxyindexer.1"
)
install(FILES
"${PROJECT_BINARY_DIR}/man/doxygen.1"
"${PROJECT_BINARY_DIR}/man/doxywizard.1"
"${PROJECT_BINARY_DIR}/man/doxysearch.1"
"${PROJECT_BINARY_DIR}/man/doxyindexer.1"
DESTINATION man/man1
)
install(FILES
"${PROJECT_BINARY_DIR}/latex/doxygen_manual.pdf"
DESTINATION "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}"
)
install(DIRECTORY
"${PROJECT_BINARY_DIR}/html"
DESTINATION "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}"
)
endif()
...@@ -53,3 +53,4 @@ STRIP_CODE_COMMENTS = NO ...@@ -53,3 +53,4 @@ STRIP_CODE_COMMENTS = NO
HTML_STYLESHEET = doxygen_manual.css HTML_STYLESHEET = doxygen_manual.css
ALIASES = LaTeX="\f$\mbox{\LaTeX}\f$" ALIASES = LaTeX="\f$\mbox{\LaTeX}\f$"
ALIASES += TeX="\f$\mbox{\TeX}\f$" ALIASES += TeX="\f$\mbox{\TeX}\f$"
LATEX_BATCHMODE = YES
#
#
#
# Copyright (C) 1997-2014 by Dimitri van Heesch.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby
# granted. No representations are made about the suitability of this software
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# input used in their production; they are not affected by this license.
all: language config.doc FORCE
DOXYGEN_DOCDIR=$(DOXYDOCS); \
export DOXYGEN_DOCDIR; \
VERSION=$(VERSION) ; \
export VERSION; \
"$(DOXYGEN)/bin/doxygen"
@rm -f ../latex/refman.tex
@cp doxygen_logo*.gif ../html
@cp Makefile.latex ../latex/Makefile
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >../latex/doxygen_manual.tex
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >../latex/doxygen.sty
@epstopdf doxygen_logo.eps --outfile=../latex/doxygen_logo.pdf
clean:
rm -rf ../html ../latex *.bak
language: language.doc
language.doc: $(wildcard ../src/translator*.h) maintainers.txt language.tpl translator.py
$(PYTHON) translator.py
config.doc: ../src/config.xml ../src/configgen.py
$(PYTHON) ../src/configgen.py -doc ../src/config.xml > config.doc
FORCE:
# #
# #
# #
# Copyright (C) 1997-2014 by Dimitri van Heesch. # Copyright (C) 1997-2015 by Dimitri van Heesch.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby # documentation under the terms of the GNU General Public License is hereby
......
#
#
#
# Copyright (C) 1997-2014 by Dimitri van Heesch.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby
# granted. No representations are made about the suitability of this software
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# input used in their production; they are not affected by this license.
all: language config.doc FORCE
@xcopy /s /q /i ..\examples ..\html\examples
set DOXYGEN_DOCDIR=. & \
set VERSION=$(VERSION) & \
$(DOXYGEN)\bin\doxygen
@del ..\latex\refman.tex
@copy doxygen_logo*.gif ..\html
@copy Makefile.latex ..\latex\Makefile
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >..\latex\doxygen_manual.tex
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >..\latex\doxygen.sty
@epstopdf doxygen_logo.eps --outfile=..\latex\doxygen_logo.pdf
clean:
del /s /q ..\html ..\latex
del translator_report.txt *.bak
language: language.doc
language.doc: maintainers.txt language.tpl translator.py
set DOXYGEN_DOCDIR=. & set VERSION=$(VERSION) & python translator.py
config.doc: ..\src\config.xml ..\src\configgen.py
python ..\src\configgen.py -doc ..\src\config.xml > config.doc
FORCE:
#
#
#
# Copyright (C) 1997-2014 by Dimitri van Heesch.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby
# granted. No representations are made about the suitability of this software
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# input used in their production; they are not affected by this license.
all: language config.doc FORCE
@xcopy /s /q /i ..\examples ..\html\examples
set DOXYGEN_DOCDIR=.
set VERSION=$(VERSION)
$(DOXYGEN)\bin\doxygen
@del ..\latex\refman.tex
@copy doxygen_logo*.gif ..\html
@copy Makefile.latex ..\latex\Makefile
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >..\latex\doxygen_manual.tex
@sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >..\latex\doxygen.sty
@epstopdf doxygen_logo.eps --outfile=..\latex\doxygen_logo.pdf
clean:
del /s /q ..\html ..\latex
del translator_report.txt *.bak
language: language.doc
language.doc: maintainers.txt language.tpl translator.py
set DOXYGEN_DOCDIR=.
set VERSION=$(VERSION)
python translator.py
config.doc: ../src/config.xml ../src/configgen.py
python ../src/configgen.py -doc ../src/config.xml > config.doc
FORCE:
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
\par Example: \par Example:
\verbinclude autolink.cpp \verbinclude autolink.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/autolink/html/index.html">here</a> Click <a href="examples/autolink/html/index.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen. for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly \endhtmlonly
...@@ -128,7 +128,7 @@ typedef struct StructName TypeName ...@@ -128,7 +128,7 @@ typedef struct StructName TypeName
\par Example: \par Example:
\verbinclude restypedef.cpp \verbinclude restypedef.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/restypedef/html/restypedef_8cpp.html">here</a> Click <a href="examples/restypedef/html/restypedef_8cpp.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen. for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly \endhtmlonly
......
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -49,8 +49,8 @@ documentation: ...@@ -49,8 +49,8 @@ documentation:
\refitem cmdbrief \\brief \refitem cmdbrief \\brief
\refitem cmdbug \\bug \refitem cmdbug \\bug
\refitem cmdc \\c \refitem cmdc \\c
\refitem cmdcallgraph \\callgraph
\refitem cmdcallergraph \\callergraph \refitem cmdcallergraph \\callergraph
\refitem cmdcallgraph \\callgraph
\refitem cmdcategory \\category \refitem cmdcategory \\category
\refitem cmdcite \\cite \refitem cmdcite \\cite
\refitem cmdclass \\class \refitem cmdclass \\class
...@@ -104,6 +104,8 @@ documentation: ...@@ -104,6 +104,8 @@ documentation:
\refitem cmdfile \\file \refitem cmdfile \\file
\refitem cmdfn \\fn \refitem cmdfn \\fn
\refitem cmdheaderfile \\headerfile \refitem cmdheaderfile \\headerfile
\refitem cmdhidecallergraph \\hidecallergraph
\refitem cmdhidecallgraph \\hidecallgraph
\refitem cmdhideinitializer \\hideinitializer \refitem cmdhideinitializer \\hideinitializer
\refitem cmdhtmlinclude \\htmlinclude \refitem cmdhtmlinclude \\htmlinclude
\refitem cmdhtmlonly \\htmlonly \refitem cmdhtmlonly \\htmlonly
...@@ -273,7 +275,26 @@ Structural indicators ...@@ -273,7 +275,26 @@ Structural indicators
\note The completeness (and correctness) of the call graph depends on the \note The completeness (and correctness) of the call graph depends on the
doxygen code parser which is not perfect. doxygen code parser which is not perfect.
\sa section \ref cmdcallergraph "\\callergraph". \sa section \ref cmdcallergraph "\\callergraph",
section \ref cmdhidecallgraph "\\hidecallgraph",
section \ref cmdhidecallergraph "\\hidecallergraph" and
option \ref cfg_call_graph "CALL_GRAPH"
<hr>
\section cmdhidecallgraph \\hidecallgraph
\addindex \\hidecallgraph
When this command is put in a comment block of a function or method
and then doxygen will not generate a call graph for that function. The
call graph will not be generated regardless of the value of
\ref cfg_call_graph "CALL_GRAPH".
\note The completeness (and correctness) of the call graph depends on the
doxygen code parser which is not perfect.
\sa section \ref cmdcallergraph "\\callergraph",
section \ref cmdcallgraph "\\callgraph",
section \ref cmdhidecallergraph "\\hidecallergraph" and
option \ref cfg_call_graph "CALL_GRAPH"
<hr> <hr>
\section cmdcallergraph \\callergraph \section cmdcallergraph \\callergraph
...@@ -287,7 +308,26 @@ Structural indicators ...@@ -287,7 +308,26 @@ Structural indicators
\note The completeness (and correctness) of the caller graph depends on the \note The completeness (and correctness) of the caller graph depends on the
doxygen code parser which is not perfect. doxygen code parser which is not perfect.
\sa section \ref cmdcallgraph "\\callgraph". \sa section \ref cmdcallgraph "\\callgraph",
section \ref cmdhidecallgraph "\\hidecallgraph",
section \ref cmdhidecallergraph "\\hidecallergraph" and
option \ref cfg_caller_graph "CALLER_GRAPH"
<hr>
\section cmdhidecallergraph \\hidecallergraph
\addindex \\hidecallergraph
When this command is put in a comment block of a function or method
and then doxygen will not generate a caller graph for that function. The
caller graph will not be generated regardless of the value of
\ref cfg_caller_graph "CALLER_GRAPH".
\note The completeness (and correctness) of the caller graph depends on the
doxygen code parser which is not perfect.
\sa section \ref cmdcallergraph "\\callergraph",
section \ref cmdcallgraph "\\callgraph",
section \ref cmdhidecallgraph "\\hidecallgraph" and
option \ref cfg_caller_graph "CALLER_GRAPH"
<hr> <hr>
\section cmdcategory \\category <name> [<header-file>] [<header-name>] \section cmdcategory \\category <name> [<header-file>] [<header-name>]
...@@ -320,7 +360,7 @@ Structural indicators ...@@ -320,7 +360,7 @@ Structural indicators
\par Example: \par Example:
\verbinclude class.h \verbinclude class.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/class/html/index.html">here</a> Click <a href="examples/class/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -334,7 +374,7 @@ Structural indicators ...@@ -334,7 +374,7 @@ Structural indicators
\par Example: \par Example:
\verbinclude define.h \verbinclude define.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/define/html/define_8h.html">here</a> Click <a href="examples/define/html/define_8h.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -382,7 +422,7 @@ Structural indicators ...@@ -382,7 +422,7 @@ Structural indicators
\par Example: \par Example:
\verbinclude enum.h \verbinclude enum.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/enum/html/class_test.html">here</a> Click <a href="examples/enum/html/class_test.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -413,7 +453,7 @@ Structural indicators ...@@ -413,7 +453,7 @@ Structural indicators
Where the example file \c example_test.cpp looks as follows: Where the example file \c example_test.cpp looks as follows:
\verbinclude example_test.cpp \verbinclude example_test.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/example/html/examples.html">here</a> Click <a href="examples/example/html/examples.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -439,7 +479,7 @@ Structural indicators ...@@ -439,7 +479,7 @@ Structural indicators
The file \c manual.c in the example directory shows how to use this command. The file \c manual.c in the example directory shows how to use this command.
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> Click <a href="examples/manual/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -463,7 +503,7 @@ Structural indicators ...@@ -463,7 +503,7 @@ Structural indicators
\par Example: \par Example:
\verbinclude file.h \verbinclude file.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/file/html/file_8h.html">here</a> Click <a href="examples/file/html/file_8h.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -497,7 +537,7 @@ Structural indicators ...@@ -497,7 +537,7 @@ Structural indicators
\par Example: \par Example:
\verbinclude func.h \verbinclude func.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/func/html/class_test.html">here</a> Click <a href="examples/func/html/class_test.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -579,7 +619,7 @@ Structural indicators ...@@ -579,7 +619,7 @@ Structural indicators
The file \c manual.c in the example directory shows how to use this command. The file \c manual.c in the example directory shows how to use this command.
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> Click <a href="examples/manual/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -679,7 +719,7 @@ Structural indicators ...@@ -679,7 +719,7 @@ Structural indicators
The file \c manual.c in the example directory shows how to use this command. The file \c manual.c in the example directory shows how to use this command.
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> Click <a href="examples/manual/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -747,7 +787,7 @@ Structural indicators ...@@ -747,7 +787,7 @@ Structural indicators
\par Example: \par Example:
\verbinclude examples/overload.cpp \verbinclude examples/overload.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/overload/html/class_test.html">here</a> Click <a href="examples/overload/html/class_test.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -771,7 +811,7 @@ Structural indicators ...@@ -771,7 +811,7 @@ Structural indicators
\par Example: \par Example:
\verbinclude page.doc \verbinclude page.doc
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/page/html/pages.html">here</a> Click <a href="examples/page/html/pages.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -927,7 +967,7 @@ Structural indicators ...@@ -927,7 +967,7 @@ Structural indicators
\par Example: \par Example:
\verbinclude relates.cpp \verbinclude relates.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/relates/html/class_string.html">here</a> Click <a href="examples/relates/html/class_string.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -1078,7 +1118,7 @@ Section indicators ...@@ -1078,7 +1118,7 @@ Section indicators
\par Example: \par Example:
\verbinclude author.cpp \verbinclude author.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/author/html/class_some_nice_class.html">here</a> Click <a href="examples/author/html/class_some_nice_class.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -1421,7 +1461,7 @@ ALIASES = "english=\if english" \ ...@@ -1421,7 +1461,7 @@ ALIASES = "english=\if english" \
\par Example: \par Example:
\verbinclude par.cpp \verbinclude par.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/par/html/class_test.html">here</a> Click <a href="examples/par/html/class_test.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -2027,7 +2067,7 @@ Commands for displaying examples ...@@ -2027,7 +2067,7 @@ Commands for displaying examples
Where the example file \c example_test.cpp looks as follows: Where the example file \c example_test.cpp looks as follows:
\verbinclude example_test.cpp \verbinclude example_test.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/include/html/example.html">here</a> Click <a href="examples/include/html/example.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -3190,7 +3230,7 @@ class Receiver ...@@ -3190,7 +3230,7 @@ class Receiver
\addindex \\\. \addindex \\\.
This command writes a dot (`.`) to the output. This can be useful to This command writes a dot (`.`) to the output. This can be useful to
prevent ending a brief description when JAVADOC_AUTOBRIEF is enabled prevent ending a brief description when \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" is enabled
or to prevent starting a numbered list when the dot follows a number at or to prevent starting a numbered list when the dot follows a number at
the start of a line. the start of a line.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -117,9 +117,9 @@ This will create 3 files: ...@@ -117,9 +117,9 @@ This will create 3 files:
You should edit these files and then reference them from the config file. You should edit these files and then reference them from the config file.
- \ref cfg_html_header "HTML_HEADER" = \c header.html - \ref cfg_html_header "HTML_HEADER" = \c header.html
- \ref cfg_html_footer "HTML_FOOTER" = \c footer.html - \ref cfg_html_footer "HTML_FOOTER" = \c footer.html
- \ref cfg_html_stylesheet "HTML_STYLESHEET" = \c customdoxygen.css <b>&larr;obsolete</b> - \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" = \c my_customdoxygen.css
\note it is not longer recommended to use HTML_STYLESHEET this way, \note it is not longer recommended to use \ref cfg_html_stylesheet "HTML_STYLESHEET",
as it make it difficult to upgrade to a newer version of doxygen. Use as it make it difficult to upgrade to a newer version of doxygen. Use
\ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" instead. \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" instead.
......
/*! \page dbusxml DBus XML output format
\addindex dbusxml
<p>Doxygen can generate documentation for DBus XML files. This way
DBus interfaces can be annotated with doxygen style comments, and
without writing custom XML parsers. Doxygen extracts its text from
all XML comments starting with '*' or '!'. An additional '<' can be
used to assign the documentation string to the previous entity instead
of the one following the comment.
Note that before the parsing of DBus XML file works one has to
assign the .xml extension to the DBus XML parser using the
following configuration option:
\verbatim
EXTENSION_MAPPING = xml=dbusxml
\endverbatim
\section dbusxml_supported Supported XML elements and attributes
<p>The following DBus XML elemets can be annotated:
<ul>
<li><b>interface</b>
<li><b>method</b> or <b>signal</b>
<li><b>arg</b>
<li><b>property</b>
</ul>
Additional elements are supported. These are available once
the xmlns "http://psiamp.org/dtd/doxygen_dbusxml.dtd" is
available.
<ul>
<li><b>namespace</b>: This can be used to group other more of the
additional elemets. This element requires a <b>name</b> attribute.
<li><b>enum</b> is used to define enums. <b>value</b> element is
then used to define the individual values in the enum. This element
requires the <b>name</b> and <b>type</b> attributes. A
optional <b>named-type</b> attribute is allowed, referrencing typed
previously defined by one of the additional elements. A enum name
can be used anywhere a type is required using the <b>named-type</b>
attribute.
<li><b>flagset</b> is used to define sets of flags. Required and
optional attributes are identical to the ones used by <b>enum</b>.
While <b>enum</b>s assume the values to be consecutive, while
a <b>flagset</b> is values suitable for flags. A flagset name
can be used anywhere a type is required using the <b>named-type</b>
attribute.
<li><b>struct</b> is used to define structures. A <b>name</b>
attribute is required.
<li><b>member</b> is used to define members of <b>structs</b>. It
is valid inside <b>struct</b> elements. This
element requires <b>name</b> and <b>type</b> attributes. In
addition to (or even instead of) the <b>type</b> attribute a
<b>named-type</b> attribute may be used to reference types defined
by <b>enum</b>, <b>flagset</b> or <b>struct</b>.
\section dbusxml_example Example
<pre>
<?xml version="1.0" ?>
<!-- Comment -->
<!--*< File comment -->
<node name="/SomeNode" xmlns:dx="http://psiamp.org/dtd/doxygen_dbusxml.dtd">
<!--* test struct outside a namespace and interface -->
<dx:struct name="StructOutsideNamespace">
<!--* member 1 -->
<dx:member name="member1" type="s"/>
<!--* complex member 1 -->
<dx:member name="complexMember1" type="(ssu)"/>
</dx:struct>
<!--* Test flag set -->
<dx:flagset name="flagset">
<!--* Flag 1 of flagset. -->
<dx:value name="FLAG1"/>
</dx:flagset>
<!--* namespace comment -->
<dx:namespace name="SomeNamespace">
<!--* struct inside a namespace -->
<dx:struct name="StructInNamespace">
<!--* member 2 -->
<dx:member name="member2" type="s"/>
</dx:struct>
</dx:namespace>
<!--* Documentation on the interface -->
<interface name="nl.stack.doxygen.test.interface">
<!--* Test Enum documentation -->
<dx:enum name="TestEnum">
<!--* key 1 with value 13 -->
<dx:value name="KEY1" value="13"/>
<!--* key 2 without a value -->
<dx:value name="KEY2"/>
</dx:enum>
<!--* struct inside a interface -->
<dx:struct name="StructInInterface">
<!--* member 3 -->
<dx:member name="member3" type="s"/>
<!--* Struct in a struct -->
<dx:struct name="StructInAStruct">
<!--* member4 -->
<dx:member name="member4" type="s"/>
</dx:struct>
<!--* struct member -->
<dx:member name="structMembor" type="(s)" named-type="StructInAStruct"/>
</dx:struct>
<!--* Document method
Some extended documentation for the method.
@param[in] input blah.
@param[out] output blub
-->
<method name="method">
<arg direction="in" name="input" type="(s(s))" named-type="::nl::stack::doxygen::test::interface::StructInInterface"/>
<arg direction="out" type="v" name="output"/>
</method>
<signal name="signal">
<!--*< Documentation for signal.
@param parameter some parameter.
-->
<arg name="parameter" type="s"/>
</signal>
<!--* property documentation -->
<property name="property" type="s" access="readwrite"/>
<!--* property documentation read-only -->
<property name="propertyRead" type="s" access="read"/>
<!--* property documentation write-only -->
<property name="propertyWrite" type="s" access="write"/>
</interface>
</node>
</pre>
*/
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -52,10 +52,14 @@ ...@@ -52,10 +52,14 @@
</ul> </ul>
<li>if \ref cfg_call_graph "CALL_GRAPH" is set to YES, a <li>if \ref cfg_call_graph "CALL_GRAPH" is set to YES, a
graphical call graph is drawn for each function showing the graphical call graph is drawn for each function showing the
functions that the function directly or indirectly calls. functions that the function directly or indirectly calls
(see also section \ref cmdcallgraph "\\callgraph" and
section \ref cmdhidecallgraph "\\hidecallgraph").
<li>if \ref cfg_caller_graph "CALLER_GRAPH" is set to YES, a <li>if \ref cfg_caller_graph "CALLER_GRAPH" is set to YES, a
graphical caller graph is drawn for each function showing the graphical caller graph is drawn for each function showing the
functions that the function is directly or indirectly called by. functions that the function is directly or indirectly called by
(see also section \ref cmdcallergraph "\\callergraph" and
section \ref cmdhidecallergraph "\\hidecallergraph").
</ul> </ul>
Using a \ref customize "layout file" you can determine which of the Using a \ref customize "layout file" you can determine which of the
...@@ -134,7 +138,7 @@ that doxygen can generate: ...@@ -134,7 +138,7 @@ that doxygen can generate:
\verbinclude diagrams_e.h \verbinclude diagrams_e.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/diagrams/html/index.html">here</a> Click <a href="examples/diagrams/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen<br/> for the corresponding HTML documentation that is generated by doxygen<br/>
(<code>EXTRACT_ALL</code> = <code>YES</code> is used here). (<code>EXTRACT_ALL</code> = <code>YES</code> is used here).
\endhtmlonly \endhtmlonly
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -259,7 +259,7 @@ located in front of the block instead of after the block. ...@@ -259,7 +259,7 @@ located in front of the block instead of after the block.
Here is an example of the use of these comment blocks: Here is an example of the use of these comment blocks:
\include afterdoc.h \include afterdoc.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/afterdoc/html/class_test.html">here</a> Click <a href="examples/afterdoc/html/class_test.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -275,7 +275,7 @@ Here is an example of the use of these comment blocks: ...@@ -275,7 +275,7 @@ Here is an example of the use of these comment blocks:
Here is an example of a documented piece of C++ code using the Qt style: Here is an example of a documented piece of C++ code using the Qt style:
\include qtstyle.cpp \include qtstyle.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/qtstyle/html/class_test.html">here</a> Click <a href="examples/qtstyle/html/class_test.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -305,7 +305,7 @@ Here is the same piece of code as shown above, this time documented using the ...@@ -305,7 +305,7 @@ Here is the same piece of code as shown above, this time documented using the
JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES: JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES:
\include jdstyle.cpp \include jdstyle.cpp
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/jdstyle/html/class_test.html">here</a> Click <a href="examples/jdstyle/html/class_test.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -381,7 +381,7 @@ Here is an example of a C header named \c structcmd.h that is documented ...@@ -381,7 +381,7 @@ Here is an example of a C header named \c structcmd.h that is documented
using structural commands: using structural commands:
\include structcmd.h \include structcmd.h
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/structcmd/html/structcmd_8h.html">here</a> Click <a href="examples/structcmd/html/structcmd_8h.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -421,7 +421,7 @@ and assume they have to be represented in a preformatted way. ...@@ -421,7 +421,7 @@ and assume they have to be represented in a preformatted way.
\include docstring.py \include docstring.py
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/docstring/html/index.html">here</a> Click <a href="examples/docstring/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -437,7 +437,7 @@ Here is the same example again but now using doxygen style comments: ...@@ -437,7 +437,7 @@ Here is the same example again but now using doxygen style comments:
\include pyexample.py \include pyexample.py
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/pyexample/html/index.html">here</a> Click <a href="examples/pyexample/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -462,7 +462,7 @@ Here is an example VHDL file with doxygen comments: ...@@ -462,7 +462,7 @@ Here is an example VHDL file with doxygen comments:
\include mux.vhdl \include mux.vhdl
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/mux/html/index.html">here</a> Click <a href="examples/mux/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
...@@ -571,7 +571,7 @@ Following is an example using doxygen style comments: ...@@ -571,7 +571,7 @@ Following is an example using doxygen style comments:
\include tclexample.tcl \include tclexample.tcl
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/tclexample/html/index.html">here</a> Click <a href="examples/tclexample/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly \endhtmlonly
......
...@@ -45,6 +45,6 @@ doxygen \fB\-e\fR rtf extensionsFile ...@@ -45,6 +45,6 @@ doxygen \fB\-e\fR rtf extensionsFile
If \fB\-s\fR is specified the comments in the config file will be omitted. If \fB\-s\fR is specified the comments in the config file will be omitted.
If configName is omitted `Doxyfile' will be used as a default. If configName is omitted `Doxyfile' will be used as a default.
.SH AUTHOR .SH AUTHOR
Doxygen version VERSION, Copyright Dimitri van Heesch 1997-2014 Doxygen version VERSION, Copyright Dimitri van Heesch 1997-2015
.SH SEE ALSO .SH SEE ALSO
doxywizard(1). doxywizard(1).
% %
% %
% %
% Copyright (C) 1997-2014 by Dimitri van Heesch. % Copyright (C) 1997-2015 by Dimitri van Heesch.
% %
% Permission to use, copy, modify, and distribute this software and its % Permission to use, copy, modify, and distribute this software and its
% documentation under the terms of the GNU General Public License is hereby % documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
/****************************************************************************** /******************************************************************************
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -63,7 +63,7 @@ PREDEFINED = MY_MACRO()= ...@@ -63,7 +63,7 @@ PREDEFINED = MY_MACRO()=
manual for more information. manual for more information.
</ol> </ol>
\section faq_extract_allWhen I set EXTRACT_ALL to NO none of my functions are shown in the documentation. \section faq_extract_all When I set EXTRACT_ALL to NO none of my functions are shown in the documentation.
In order for global functions, variables, enums, typedefs, and defines In order for global functions, variables, enums, typedefs, and defines
to be documented you should document the file in which these commands are to be documented you should document the file in which these commands are
...@@ -77,6 +77,19 @@ block containing the \ref cmddefgroup "\\defgroup" command. ...@@ -77,6 +77,19 @@ block containing the \ref cmddefgroup "\\defgroup" command.
For member functions or functions that are part of a namespace you should For member functions or functions that are part of a namespace you should
document either the class or namespace. document either the class or namespace.
\section faq_ext_mapping My file with a custom extension is not parsed (properly) (anymore).
Doxygen only parses files that are specified as input (via the \ref cfg_input "INPUT" tag)
and that match a specified extension (mentioned in \ref cfg_file_patterns "FILE_PATTERNS")
The list of files is then reduced by excluding files listed as \ref cfg_exclude "EXCLUDE" or
files that match the patterns set by \ref cfg_exclude_patterns "EXCLUDE_PATTERNS".
In the past doxygen parsed all files with an unknown extension as C files which could lead to
undesired results. Since version 1.8.8, doxygen requires that you specify a mapping that tells
for a certain file extension, which parser to use.
This mapping is specified using the \ref cfg_extension_mapping "EXTENSION_MAPPING" tag.
If no mapping is specified the file's contents will be ignored.
\section faq_code How can I make doxygen ignore some code fragment? \section faq_code How can I make doxygen ignore some code fragment?
The new and easiest way is to add one comment block The new and easiest way is to add one comment block
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -118,7 +118,7 @@ The third part provides information for developers: ...@@ -118,7 +118,7 @@ The third part provides information for developers:
\addindex license \addindex license
\addindex GPL \addindex GPL
Copyright &copy; 1997-2014 by Copyright &copy; 1997-2015 by
<a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.<p> <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.<p>
Permission to use, copy, modify, and distribute this software and its Permission to use, copy, modify, and distribute this software and its
......
This diff is collapsed.
...@@ -5,7 +5,7 @@ change the language.doc, make the changes here and inside maintainers.txt. ...@@ -5,7 +5,7 @@ change the language.doc, make the changes here and inside maintainers.txt.
/****************************************************************************** /******************************************************************************
* %(editnote)s * %(editnote)s
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -390,6 +390,12 @@ int func(int a,int b) { return a*b; } ...@@ -390,6 +390,12 @@ int func(int a,int b) { return a*b; }
The curly braces and dot are optional by the way. The curly braces and dot are optional by the way.
Another way to denote fenced code blocks is to use 3 or more backticks (```):
```
also a fenced code block
```
\subsection md_header_id Header Id Attributes \subsection md_header_id Header Id Attributes
Standard Markdown has no support for labeling headers, which Standard Markdown has no support for labeling headers, which
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
......
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2014 by Dimitri van Heesch. * Copyright (C) 1997-2015 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
\section knowproblems Known Problems \section knowproblems Known Problems
<ul> <ul>
<li>If you have problems building doxygen from sources, please
read \ref unix_problems "this section" first.
<li>Doxygen is <em>not</em> a real compiler, it is only a lexical scanner. <li>Doxygen is <em>not</em> a real compiler, it is only a lexical scanner.
This means that it can and will not detect errors in your source code. This means that it can and will not detect errors in your source code.
<li>Doxygen has a build in preprocessor, but this works slightly different than <li>Doxygen has a build in preprocessor, but this works slightly different than
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
File mode changed from 100755 to 100644
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
File mode changed from 100755 to 100644
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment