Complete generation of API doc
- Use README.md for main page - Add install target for API doc - Improve some doc comments
This commit is contained in:
parent
c7c64e0784
commit
d28d477ffe
|
@ -82,6 +82,10 @@ if(MINGW)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(DOC_FILES
|
||||||
|
README.md
|
||||||
|
)
|
||||||
|
|
||||||
# required to include CMake modules from own project directory
|
# required to include CMake modules from own project directory
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" "${CMAKE_MODULE_PATH}")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" "${CMAKE_MODULE_PATH}")
|
||||||
|
|
||||||
|
|
|
@ -656,6 +656,7 @@ void ArgumentParser::parseArgs(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
* \class HelpArgument
|
||||||
* \brief The HelpArgument class prints help information for an argument parser
|
* \brief The HelpArgument class prints help information for an argument parser
|
||||||
* when present (--help, -h).
|
* when present (--help, -h).
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -4,7 +4,7 @@ namespace ApplicationUtilities {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \class ApplicationUtilities::Failure
|
* \class ApplicationUtilities::Failure
|
||||||
* \brief The exception that is thrown by an ArgumentParser when a parsing error occurs.
|
* \brief The Failure class is thrown by an ArgumentParser when a parsing error occurs.
|
||||||
*
|
*
|
||||||
* \sa ApplicationUtilities::ArgumentParser
|
* \sa ApplicationUtilities::ArgumentParser
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,6 +2,15 @@
|
||||||
|
|
||||||
namespace ApplicationUtilities {
|
namespace ApplicationUtilities {
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \class FakeQtConfigArguments
|
||||||
|
* \brief The FakeQtConfigArguments class provides arguments for the Qt GUI used when
|
||||||
|
* the application hasn't been built with Qt GUI support.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Constructs new fake Qt-config arguments.
|
||||||
|
*/
|
||||||
FakeQtConfigArguments::FakeQtConfigArguments() :
|
FakeQtConfigArguments::FakeQtConfigArguments() :
|
||||||
m_qtWidgetsGuiArg("qt-widgets-gui", "g", "shows a Qt widgets based graphical user interface (the application has not been built with Qt widgets support)"),
|
m_qtWidgetsGuiArg("qt-widgets-gui", "g", "shows a Qt widgets based graphical user interface (the application has not been built with Qt widgets support)"),
|
||||||
m_qtQuickGuiArg("qt-quick-gui", "q", "shows a Qt quick based graphical user interface (the application has not been built with Qt quick support)")
|
m_qtQuickGuiArg("qt-quick-gui", "q", "shows a Qt quick based graphical user interface (the application has not been built with Qt quick support)")
|
||||||
|
|
|
@ -20,16 +20,25 @@ private:
|
||||||
Argument m_qtQuickGuiArg;
|
Argument m_qtQuickGuiArg;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Returns the argument to show the Qt-widgets-based GUI.
|
||||||
|
*/
|
||||||
inline Argument &FakeQtConfigArguments::qtWidgetsGuiArg()
|
inline Argument &FakeQtConfigArguments::qtWidgetsGuiArg()
|
||||||
{
|
{
|
||||||
return m_qtWidgetsGuiArg;
|
return m_qtWidgetsGuiArg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Returns the argument to show the Qt-quick-based GUI.
|
||||||
|
*/
|
||||||
inline Argument &FakeQtConfigArguments::qtQuickGuiArg()
|
inline Argument &FakeQtConfigArguments::qtQuickGuiArg()
|
||||||
{
|
{
|
||||||
return m_qtQuickGuiArg;
|
return m_qtQuickGuiArg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Returns whether at least one of the arguments is present.
|
||||||
|
*/
|
||||||
inline bool FakeQtConfigArguments::areQtGuiArgsPresent() const
|
inline bool FakeQtConfigArguments::areQtGuiArgsPresent() const
|
||||||
{
|
{
|
||||||
return m_qtWidgetsGuiArg.isPresent() || m_qtQuickGuiArg.isPresent();
|
return m_qtWidgetsGuiArg.isPresent() || m_qtQuickGuiArg.isPresent();
|
||||||
|
@ -38,7 +47,7 @@ inline bool FakeQtConfigArguments::areQtGuiArgsPresent() const
|
||||||
} // namespace ApplicationUtilities
|
} // namespace ApplicationUtilities
|
||||||
|
|
||||||
#ifndef QT_CONFIG_ARGUMENTS
|
#ifndef QT_CONFIG_ARGUMENTS
|
||||||
#define QT_CONFIG_ARGUMENTS ApplicationUtilities::FakeQtConfigArguments
|
# define QT_CONFIG_ARGUMENTS ApplicationUtilities::FakeQtConfigArguments
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // APPLICATIONUTILITIES_FAKEQTCONFIGARGUMENTS_H
|
#endif // APPLICATIONUTILITIES_FAKEQTCONFIGARGUMENTS_H
|
||||||
|
|
|
@ -5,49 +5,47 @@ find_template_file("doxygen" CPP_UTILITIES DOXYGEN_TEMPLATE_FILE)
|
||||||
# find executables
|
# find executables
|
||||||
find_program(DOXYGEN_BIN doxygen)
|
find_program(DOXYGEN_BIN doxygen)
|
||||||
find_program(PERL_BIN perl)
|
find_program(PERL_BIN perl)
|
||||||
|
find_program(DIA_BIN dia)
|
||||||
|
find_program(DOT_BIN dot)
|
||||||
if(NOT DOXYGEN_BIN)
|
if(NOT DOXYGEN_BIN)
|
||||||
message(WARNING "Doxygen not found, unable to add target for generating API documentation.")
|
message(WARNING "Doxygen not found, unable to add target for generating API documentation.")
|
||||||
endif()
|
|
||||||
|
|
||||||
# load cached configuration and other variables
|
else()
|
||||||
set(DOXY_LANGUAGE "English" CACHE STRING "specifies language of the API documentation generated with Doxygen")
|
# load cached configuration and other variables
|
||||||
set(DOXY_CUSTOM_CONFIG "" CACHE STRING "specifies extra options for Doxygen")
|
set(DOXY_LANGUAGE "English" CACHE STRING "specifies language of the API documentation generated with Doxygen")
|
||||||
set(META_DOXY_NUMBER 1)
|
set(DOXY_CUSTOM_CONFIG "" CACHE STRING "specifies extra options for Doxygen")
|
||||||
set(META_DOXY_LANGUAGE "${DOC_LANGUAGE}")
|
set(DOXY_NUMBER 1)
|
||||||
set(DOXY_INPUT_FILES ${HEADER_FILES} ${SRC_FILES} ${TEST_HEADER_FILES} ${TEST_SRC_FILES} ${WIDGETS_HEADER_FILES} ${WIDGETS_SRC_FILES} ${QML_HEADER_FILES} ${QML_SRC_FILES})
|
set(DOXY_INPUT_FILES ${HEADER_FILES} ${SRC_FILES} ${TEST_HEADER_FILES} ${TEST_SRC_FILES} ${WIDGETS_HEADER_FILES} ${WIDGETS_SRC_FILES} ${QML_HEADER_FILES} ${QML_SRC_FILES})
|
||||||
set(DOXY_OUTPUT_FILES "")
|
set(DOXY_PATH_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/")
|
||||||
|
list(GET DOC_FILES 0 DOXY_MAIN_PAGE_FILE)
|
||||||
|
set(DOXY_MAIN_PAGE_FILE "${DOXY_PATH_PREFIX}${DOXY_MAIN_PAGE_FILE}")
|
||||||
|
|
||||||
# convert DOXY_INPUT_FILES to whitespace-separated list
|
# convert DOXY_INPUT_FILES to whitespace-separated list
|
||||||
include(ListToString)
|
include(ListToString)
|
||||||
list_to_string(" " "${CMAKE_CURRENT_SOURCE_DIR}/" "${DOXY_INPUT_FILES}" DOXY_INPUT_FILES_WHITESPACE_SEPARATED)
|
list_to_string(" " "\"${DOXY_PATH_PREFIX}" "\"" "${DOXY_INPUT_FILES}" DOXY_INPUT_FILES_WHITESPACE_SEPARATED)
|
||||||
message("string: ${DOXY_INPUT_FILES_WHITESPACE_SEPARATED}")
|
|
||||||
|
|
||||||
# generate Doxygen configuration
|
# generate Doxygen configuration
|
||||||
configure_file(
|
configure_file(
|
||||||
"${DOXYGEN_TEMPLATE_FILE}"
|
"${DOXYGEN_TEMPLATE_FILE}"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/doxygen.config"
|
"${CMAKE_CURRENT_BINARY_DIR}/doxygen.config"
|
||||||
)
|
|
||||||
|
|
||||||
# add target for generating API documentation
|
|
||||||
add_custom_target(${META_PROJECT_NAME}_apidoc
|
|
||||||
COMMAND "${DOXYGEN_BIN}" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.config"
|
|
||||||
SOURCES ${DOXY_INPUT_FILES}
|
|
||||||
)
|
|
||||||
|
|
||||||
# add install target for API documentation
|
|
||||||
# TODO
|
|
||||||
|
|
||||||
foreach(API_DOC_OUTPUT_FILE ${API_DOC_OUTPUT_FILES})
|
|
||||||
get_filename_component(API_DOC_OUTPUT_DIR ${API_DOC_OUTPUT_FILE} DIRECTORY)
|
|
||||||
install(
|
|
||||||
FILES ${API_DOC_OUTPUT_FILE}
|
|
||||||
DESTINATION share/${META_PROJECT_NAME}/${API_DOC_OUTPUT_DIR}
|
|
||||||
COMPONENT cmake-modules
|
|
||||||
)
|
)
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if(NOT TARGET install-api-doc)
|
# add target for generating API documentation
|
||||||
add_custom_target(install-api-doc
|
add_custom_target(${META_PROJECT_NAME}_apidoc
|
||||||
COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=api-doc -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
|
COMMAND "${DOXYGEN_BIN}" "${CMAKE_CURRENT_BINARY_DIR}/doxygen.config"
|
||||||
|
SOURCES ${DOXY_INPUT_FILES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# add install target for API documentation
|
||||||
|
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/api-doc"
|
||||||
|
DESTINATION "share/${META_PROJECT_NAME}"
|
||||||
|
COMPONENT api-doc
|
||||||
|
)
|
||||||
|
|
||||||
|
if(NOT TARGET install-api-doc)
|
||||||
|
add_custom_target(install-api-doc
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=api-doc -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
if(NOT DEFINED LIST_TO_STRING_EXISTS)
|
if(NOT DEFINED LIST_TO_STRING_EXISTS)
|
||||||
set(LIST_TO_STRING_EXISTS true)
|
set(LIST_TO_STRING_EXISTS true)
|
||||||
function(list_to_string separator prefix input_list output_string_var)
|
function(list_to_string separator prefix suffix input_list output_string_var)
|
||||||
set(res "")
|
set(res "")
|
||||||
# get list length
|
# get list length
|
||||||
list(LENGTH input_list list_length)
|
list(LENGTH input_list list_length)
|
||||||
|
@ -14,7 +14,7 @@ if(NOT DEFINED LIST_TO_STRING_EXISTS)
|
||||||
list(GET input_list ${index} item_value)
|
list(GET input_list ${index} item_value)
|
||||||
if(NOT item_value STREQUAL "")
|
if(NOT item_value STREQUAL "")
|
||||||
# .. and append non-empty value to output string
|
# .. and append non-empty value to output string
|
||||||
set(res "${res}${prefix}${item_value}")
|
set(res "${res}${prefix}${item_value}${suffix}")
|
||||||
# append separator if current element is NOT the last one.
|
# append separator if current element is NOT the last one.
|
||||||
if(NOT index EQUAL last_element_index)
|
if(NOT index EQUAL last_element_index)
|
||||||
set(res "${res}${separator}")
|
set(res "${res}${separator}")
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
DOXYFILE_ENCODING = UTF-8
|
DOXYFILE_ENCODING = UTF-8
|
||||||
PROJECT_NAME = "@META_APP_NAME@"
|
PROJECT_NAME = "@META_APP_NAME@"
|
||||||
PROJECT_NUMBER = "@META_DOXY_NUMBER@"
|
PROJECT_NUMBER = "@DOXY_NUMBER@"
|
||||||
PROJECT_BRIEF = "@META_APP_DESCRIPTION@"
|
PROJECT_BRIEF = "@META_APP_DESCRIPTION@"
|
||||||
PROJECT_LOGO = "@META_DOXY_LOGO@"
|
PROJECT_LOGO = "@DOXY_LOGO@"
|
||||||
OUTPUT_DIRECTORY = "@CMAKE_CURRENT_BINARY_DIR@/api-doc"
|
OUTPUT_DIRECTORY = "@CMAKE_CURRENT_BINARY_DIR@/api-doc"
|
||||||
CREATE_SUBDIRS = NO
|
CREATE_SUBDIRS = NO
|
||||||
ALLOW_UNICODE_NAMES = NO
|
ALLOW_UNICODE_NAMES = NO
|
||||||
OUTPUT_LANGUAGE = "@META_DOXY_LANGUAGE@"
|
OUTPUT_LANGUAGE = "@DOXY_LANGUAGE@"
|
||||||
BRIEF_MEMBER_DESC = YES
|
BRIEF_MEMBER_DESC = YES
|
||||||
REPEAT_BRIEF = YES
|
REPEAT_BRIEF = YES
|
||||||
ABBREVIATE_BRIEF =
|
ABBREVIATE_BRIEF =
|
||||||
ALWAYS_DETAILED_SEC = NO
|
ALWAYS_DETAILED_SEC = NO
|
||||||
INLINE_INHERITED_MEMB = NO
|
INLINE_INHERITED_MEMB = NO
|
||||||
FULL_PATH_NAMES = YES
|
FULL_PATH_NAMES = YES
|
||||||
STRIP_FROM_PATH =
|
STRIP_FROM_PATH = "@DOXY_PATH_PREFIX@"
|
||||||
STRIP_FROM_INC_PATH =
|
STRIP_FROM_INC_PATH =
|
||||||
SHORT_NAMES = NO
|
SHORT_NAMES = NO
|
||||||
JAVADOC_AUTOBRIEF = NO
|
JAVADOC_AUTOBRIEF = NO
|
||||||
|
@ -84,7 +84,7 @@ WARN_IF_DOC_ERROR = YES
|
||||||
WARN_NO_PARAMDOC = NO
|
WARN_NO_PARAMDOC = NO
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
WARN_FORMAT = "$file:$line: $text"
|
||||||
WARN_LOGFILE =
|
WARN_LOGFILE =
|
||||||
INPUT = @DOXY_INPUT_FILES_WHITESPACE_SEPARATED@
|
INPUT = "@DOXY_MAIN_PAGE_FILE@" @DOXY_INPUT_FILES_WHITESPACE_SEPARATED@
|
||||||
INPUT_ENCODING = UTF-8
|
INPUT_ENCODING = UTF-8
|
||||||
FILE_PATTERNS =
|
FILE_PATTERNS =
|
||||||
RECURSIVE = NO
|
RECURSIVE = NO
|
||||||
|
@ -100,7 +100,7 @@ INPUT_FILTER =
|
||||||
FILTER_PATTERNS =
|
FILTER_PATTERNS =
|
||||||
FILTER_SOURCE_FILES = NO
|
FILTER_SOURCE_FILES = NO
|
||||||
FILTER_SOURCE_PATTERNS =
|
FILTER_SOURCE_PATTERNS =
|
||||||
USE_MDFILE_AS_MAINPAGE =
|
USE_MDFILE_AS_MAINPAGE = "@DOXY_MAIN_PAGE_FILE@"
|
||||||
SOURCE_BROWSER = YES
|
SOURCE_BROWSER = YES
|
||||||
INLINE_SOURCES = NO
|
INLINE_SOURCES = NO
|
||||||
STRIP_CODE_COMMENTS = YES
|
STRIP_CODE_COMMENTS = YES
|
||||||
|
@ -131,7 +131,7 @@ GENERATE_DOCSET = NO
|
||||||
DOCSET_FEEDNAME = "Doxygen generated docs"
|
DOCSET_FEEDNAME = "Doxygen generated docs"
|
||||||
DOCSET_BUNDLE_ID = org.doxygen.Project
|
DOCSET_BUNDLE_ID = org.doxygen.Project
|
||||||
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
|
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
|
||||||
DOCSET_PUBLISHER_NAME = Publisher
|
DOCSET_PUBLISHER_NAME = "@META_APP_AUTHOR@"
|
||||||
GENERATE_HTMLHELP = NO
|
GENERATE_HTMLHELP = NO
|
||||||
CHM_FILE =
|
CHM_FILE =
|
||||||
HHC_LOCATION =
|
HHC_LOCATION =
|
||||||
|
@ -222,7 +222,7 @@ EXTERNAL_PAGES = YES
|
||||||
PERL_PATH = @PERL_BIN@
|
PERL_PATH = @PERL_BIN@
|
||||||
CLASS_DIAGRAMS = YES
|
CLASS_DIAGRAMS = YES
|
||||||
MSCGEN_PATH =
|
MSCGEN_PATH =
|
||||||
DIA_PATH =
|
DIA_PATH = @DIA_BIN@
|
||||||
HIDE_UNDOC_RELATIONS = YES
|
HIDE_UNDOC_RELATIONS = YES
|
||||||
HAVE_DOT = YES
|
HAVE_DOT = YES
|
||||||
DOT_NUM_THREADS = 4
|
DOT_NUM_THREADS = 4
|
||||||
|
@ -243,7 +243,7 @@ GRAPHICAL_HIERARCHY = YES
|
||||||
DIRECTORY_GRAPH = YES
|
DIRECTORY_GRAPH = YES
|
||||||
DOT_IMAGE_FORMAT = svg
|
DOT_IMAGE_FORMAT = svg
|
||||||
INTERACTIVE_SVG = YES
|
INTERACTIVE_SVG = YES
|
||||||
DOT_PATH =
|
DOT_PATH = @DOT_BIN@
|
||||||
DOTFILE_DIRS =
|
DOTFILE_DIRS =
|
||||||
MSCFILE_DIRS =
|
MSCFILE_DIRS =
|
||||||
DIAFILE_DIRS =
|
DIAFILE_DIRS =
|
||||||
|
|
|
@ -6,6 +6,11 @@ using namespace std;
|
||||||
|
|
||||||
namespace IoUtilities {
|
namespace IoUtilities {
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \class IniFile
|
||||||
|
* \brief The IniFile class parses and makes INI files.
|
||||||
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Parses all data from the specified \a inputStream.
|
* \brief Parses all data from the specified \a inputStream.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -31,7 +31,7 @@ inline IniFile::IniFile()
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the data of the file.
|
* \brief Returns the data of the file.
|
||||||
*
|
* \remarks
|
||||||
* - The returned pairs represent the [scope names] and the contained "key = value"-pairs.
|
* - The returned pairs represent the [scope names] and the contained "key = value"-pairs.
|
||||||
* - The data might be modified and then saved using the make() method.
|
* - The data might be modified and then saved using the make() method.
|
||||||
*/
|
*/
|
||||||
|
@ -42,8 +42,7 @@ inline std::vector<std::pair<std::string, std::multimap<std::string, std::string
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the data of the file.
|
* \brief Returns the data of the file.
|
||||||
*
|
* \remarks The returned pairs represent the [scope names] and the contained "key = value"-pairs.
|
||||||
* - The returned pairs represent the [scope names] and the contained "key = value"-pairs.
|
|
||||||
*/
|
*/
|
||||||
inline const std::vector<std::pair<std::string, std::multimap<std::string, std::string> > > &IniFile::data() const
|
inline const std::vector<std::pair<std::string, std::multimap<std::string, std::string> > > &IniFile::data() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \namespace MiscUtilities
|
* \namespace RandomUtilities
|
||||||
* \brief Contains miscellaneous utility functions.
|
* \brief Contains utility functions for generating random character sequences.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace RandomUtilities {
|
namespace RandomUtilities {
|
||||||
|
|
|
@ -14,6 +14,9 @@ using namespace ChronoUtilities;
|
||||||
|
|
||||||
using namespace CPPUNIT_NS;
|
using namespace CPPUNIT_NS;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief The ChronoTests class tests classes and methods of the ChronoUtilities namespace.
|
||||||
|
*/
|
||||||
class ChronoTests : public TestFixture
|
class ChronoTests : public TestFixture
|
||||||
{
|
{
|
||||||
CPPUNIT_TEST_SUITE(ChronoTests);
|
CPPUNIT_TEST_SUITE(ChronoTests);
|
||||||
|
|
|
@ -14,6 +14,9 @@ using namespace ConversionUtilities;
|
||||||
|
|
||||||
using namespace CPPUNIT_NS;
|
using namespace CPPUNIT_NS;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief The ConversionTests class tests classes and methods of the ConversionUtilities namespace.
|
||||||
|
*/
|
||||||
class ConversionTests : public TestFixture
|
class ConversionTests : public TestFixture
|
||||||
{
|
{
|
||||||
CPPUNIT_TEST_SUITE(ConversionTests);
|
CPPUNIT_TEST_SUITE(ConversionTests);
|
||||||
|
|
|
@ -18,6 +18,9 @@ using namespace IoUtilities;
|
||||||
|
|
||||||
using namespace CPPUNIT_NS;
|
using namespace CPPUNIT_NS;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief The IoTests class tests classes and methods of the IoUtilities namespace.
|
||||||
|
*/
|
||||||
class IoTests : public TestFixture
|
class IoTests : public TestFixture
|
||||||
{
|
{
|
||||||
CPPUNIT_TEST_SUITE(IoTests);
|
CPPUNIT_TEST_SUITE(IoTests);
|
||||||
|
|
|
@ -14,6 +14,9 @@ using namespace std;
|
||||||
using namespace ApplicationUtilities;
|
using namespace ApplicationUtilities;
|
||||||
using namespace ConversionUtilities;
|
using namespace ConversionUtilities;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Contains classes and functions utilizing creating of test applications.
|
||||||
|
*/
|
||||||
namespace TestUtilities {
|
namespace TestUtilities {
|
||||||
|
|
||||||
TestApplication *TestApplication::m_instance = nullptr;
|
TestApplication *TestApplication::m_instance = nullptr;
|
||||||
|
|
Loading…
Reference in New Issue