--- /dev/null
+# ---------------------------------
+#
+# Unless you are an experimented cmake user,
+# have a look at :
+# http://www.creatis.insa-lyon.fr/creatools/GettingStarted_creaTools
+# before starting.
+#
+# ---------------------------------
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+###################################
+PROJECT( bbtkGEditor )
+###################################
+
+#==================================
+# The project version
+SET(PROJECT_MAJOR_VERSION 1)
+SET(PROJECT_MINOR_VERSION 0)
+SET(PROJECT_BUILD_VERSION 0)
+
+SET(PROJECT_VERSION "${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_BUILD_VERSION}")
+SET(PROJECT_VERSION_DATE "30/09/2009")
+#ADD_DEFINITIONS( -DPROJECT_VERSION=${PROJECT_VERSION} )
+#ADD_DEFINITIONS( -DPROJECT_VERSION_DATE=${PROJECT_VERSION_DATE} )
+
+#==================================
+
+#==================================
+# Find crea (mandatory, to use macros)
+SET(CREA_VERBOSE_CMAKE TRUE)
+FIND_PACKAGE(crea REQUIRED)
+IF (crea_FOUND)
+ INCLUDE(${crea_USE_FILE})
+ENDIF(crea_FOUND)
+#==================================
+
+#==================================
+FIND_PACKAGE(creaMaracasVisu REQUIRED)
+IF (creaMaracasVisu_FOUND)
+ INCLUDE(${creaMaracasVisu_USE_FILE})
+ENDIF(creaMaracasVisu_FOUND)
+#==================================
+
+
+#==================================
+# Find and use the Black Box Toolkit
+# Search BBTK
+FIND_PACKAGE(BBTK REQUIRED)
+MARK_AS_ADVANCED(BBTK_DIR)
+# If bbtk found
+IF(BBTK_FOUND)
+ INCLUDE(${BBTK_USE_FILE})
+ENDIF(BBTK_FOUND)
+#==================================
+
+
+
+
+#==================================
+# Do not allow to build inside the source tree
+CREA_PREVENT_IN_SOURCE_BUILD()
+#==================================
+
+#==================================
+# Libraries/tools used
+
+# Note : Set USE_CREA to ON
+# if you need to LINK against crea
+# (and not only use its macros)
+SET(USE_CREA OFF)
+
+SET(USE_GDCM OFF)
+SET(USE_GDCM_VTK OFF)
+SET(USE_GDCM2 OFF)
+SET(USE_WXWIDGETS ON)
+SET(USE_KWWIDGETS OFF)
+SET(USE_VTK ON)
+SET(USE_ITK OFF)
+SET(USE_BOOST OFF)
+
+# Note : Set USE_DOXYGEN to ON
+# if you think you will ask, some day,
+# for Doxygen generation
+#SET(USE_DOXYGEN OFF)
+
+# Note : Set USE_LATEX to ON, USE_TTH to ON
+# if you think you will ask, some day,
+# for doc generation using your own latex documents
+#SET(USE_LATEX OFF)
+#SET(USE_TTH OFF)
+
+CREA_FIND_AND_USE_LIBRARIES()
+#==================================
+
+#==================================
+# Where to put executables and libs
+SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
+SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
+MARK_AS_ADVANCED(
+ CMAKE_BACKWARDS_COMPATIBILITY
+ EXECUTABLE_OUTPUT_PATH
+ LIBRARY_OUTPUT_PATH
+ )
+
+#==================================
+
+ SET(LIBNAME $(bbtkGEditor))
+ INCLUDE_DIRECTORIES(
+ ${PROJECT_BINARY_DIR}
+
+ # // if the previous one is not enough : (JPRx)
+ # Add here the directories holding the .h you need
+
+ # ${PROJECT_SOURCE_DIR}/lib/_YOUR_OWN_LIBRARY_SOURCE_DIRECTORY_
+
+ )
+#==================================
+
+
+#----------------------------------------------------------------------------
+INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UserRootCMakeLists.cmake)
+
+#==================================
+# Where to generate documentation
+# (desperate try; JPR)
+
+SET(BBTK_DOC_BUILD_PATH
+ ${PROJECT_BINARY_DIR}/doc
+ )
+#==================================
+
+# Subdirs
+SUBDIRS(lib)
+SUBDIRS(appli)
+SUBDIRS(doc)
+SUBDIRS(install)
+#==================================
--- /dev/null
+CeCILL-B FREE SOFTWARE LICENSE AGREEMENT
+
+
+ Notice
+
+This Agreement is a Free Software license agreement that is the result
+of discussions between its authors in order to ensure compliance with
+the two main principles guiding its drafting:
+
+ * firstly, compliance with the principles governing the distribution
+ of Free Software: access to source code, broad rights granted to
+ users,
+ * secondly, the election of a governing law, French law, with which
+ it is conformant, both as regards the law of torts and
+ intellectual property law, and the protection that it offers to
+ both authors and holders of the economic rights over software.
+
+The authors of the CeCILL-B (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
+license are:
+
+Commissariat à l'Energie Atomique - CEA, a public scientific, technical
+and industrial research establishment, having its principal place of
+business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
+
+Centre National de la Recherche Scientifique - CNRS, a public scientific
+and technological establishment, having its principal place of business
+at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
+
+Institut National de Recherche en Informatique et en Automatique -
+INRIA, a public scientific and technological establishment, having its
+principal place of business at Domaine de Voluceau, Rocquencourt, BP
+105, 78153 Le Chesnay cedex, France.
+
+
+ Preamble
+
+This Agreement is an open source software license intended to give users
+significant freedom to modify and redistribute the software licensed
+hereunder.
+
+The exercising of this freedom is conditional upon a strong obligation
+of giving credits for everybody that distributes a software
+incorporating a software ruled by the current license so as all
+contributions to be properly identified and acknowledged.
+
+In consideration of access to the source code and the rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty and the software's author, the holder of the
+economic rights, and the successive licensors only have limited liability.
+
+In this respect, the risks associated with loading, using, modifying
+and/or developing or reproducing the software by the user are brought to
+the user's attention, given its Free Software status, which may make it
+complicated to use, with the result that its use is reserved for
+developers and experienced professionals having in-depth computer
+knowledge. Users are therefore encouraged to load and test the
+suitability of the software as regards their requirements in conditions
+enabling the security of their systems and/or data to be ensured and,
+more generally, to use and operate it in the same conditions of
+security. This Agreement may be freely reproduced and published,
+provided it is not altered, and that no provisions are either added or
+removed herefrom.
+
+This Agreement may apply to any or all software for which the holder of
+the economic rights decides to submit the use thereof to its provisions.
+
+
+ Article 1 - DEFINITIONS
+
+For the purpose of this Agreement, when the following expressions
+commence with a capital letter, they shall have the following meaning:
+
+Agreement: means this license agreement, and its possible subsequent
+versions and annexes.
+
+Software: means the software in its Object Code and/or Source Code form
+and, where applicable, its documentation, "as is" when the Licensee
+accepts the Agreement.
+
+Initial Software: means the Software in its Source Code and possibly its
+Object Code form and, where applicable, its documentation, "as is" when
+it is first distributed under the terms and conditions of the Agreement.
+
+Modified Software: means the Software modified by at least one
+Contribution.
+
+Source Code: means all the Software's instructions and program lines to
+which access is required so as to modify the Software.
+
+Object Code: means the binary files originating from the compilation of
+the Source Code.
+
+Holder: means the holder(s) of the economic rights over the Initial
+Software.
+
+Licensee: means the Software user(s) having accepted the Agreement.
+
+Contributor: means a Licensee having made at least one Contribution.
+
+Licensor: means the Holder, or any other individual or legal entity, who
+distributes the Software under the Agreement.
+
+Contribution: means any or all modifications, corrections, translations,
+adaptations and/or new functions integrated into the Software by any or
+all Contributors, as well as any or all Internal Modules.
+
+Module: means a set of sources files including their documentation that
+enables supplementary functions or services in addition to those offered
+by the Software.
+
+External Module: means any or all Modules, not derived from the
+Software, so that this Module and the Software run in separate address
+spaces, with one calling the other when they are run.
+
+Internal Module: means any or all Module, connected to the Software so
+that they both execute in the same address space.
+
+Parties: mean both the Licensee and the Licensor.
+
+These expressions may be used both in singular and plural form.
+
+
+ Article 2 - PURPOSE
+
+The purpose of the Agreement is the grant by the Licensor to the
+Licensee of a non-exclusive, transferable and worldwide license for the
+Software as set forth in Article 5 hereinafter for the whole term of the
+protection granted by the rights over said Software.
+
+
+ Article 3 - ACCEPTANCE
+
+3.1 The Licensee shall be deemed as having accepted the terms and
+conditions of this Agreement upon the occurrence of the first of the
+following events:
+
+ * (i) loading the Software by any or all means, notably, by
+ downloading from a remote server, or by loading from a physical
+ medium;
+ * (ii) the first time the Licensee exercises any of the rights
+ granted hereunder.
+
+3.2 One copy of the Agreement, containing a notice relating to the
+characteristics of the Software, to the limited warranty, and to the
+fact that its use is restricted to experienced users has been provided
+to the Licensee prior to its acceptance as set forth in Article 3.1
+hereinabove, and the Licensee hereby acknowledges that it has read and
+understood it.
+
+
+ Article 4 - EFFECTIVE DATE AND TERM
+
+
+ 4.1 EFFECTIVE DATE
+
+The Agreement shall become effective on the date when it is accepted by
+the Licensee as set forth in Article 3.1.
+
+
+ 4.2 TERM
+
+The Agreement shall remain in force for the entire legal term of
+protection of the economic rights over the Software.
+
+
+ Article 5 - SCOPE OF RIGHTS GRANTED
+
+The Licensor hereby grants to the Licensee, who accepts, the following
+rights over the Software for any or all use, and for the term of the
+Agreement, on the basis of the terms and conditions set forth hereinafter.
+
+Besides, if the Licensor owns or comes to own one or more patents
+protecting all or part of the functions of the Software or of its
+components, the Licensor undertakes not to enforce the rights granted by
+these patents against successive Licensees using, exploiting or
+modifying the Software. If these patents are transferred, the Licensor
+undertakes to have the transferees subscribe to the obligations set
+forth in this paragraph.
+
+
+ 5.1 RIGHT OF USE
+
+The Licensee is authorized to use the Software, without any limitation
+as to its fields of application, with it being hereinafter specified
+that this comprises:
+
+ 1. permanent or temporary reproduction of all or part of the Software
+ by any or all means and in any or all form.
+
+ 2. loading, displaying, running, or storing the Software on any or
+ all medium.
+
+ 3. entitlement to observe, study or test its operation so as to
+ determine the ideas and principles behind any or all constituent
+ elements of said Software. This shall apply when the Licensee
+ carries out any or all loading, displaying, running, transmission
+ or storage operation as regards the Software, that it is entitled
+ to carry out hereunder.
+
+
+ 5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
+
+The right to make Contributions includes the right to translate, adapt,
+arrange, or make any or all modifications to the Software, and the right
+to reproduce the resulting software.
+
+The Licensee is authorized to make any or all Contributions to the
+Software provided that it includes an explicit notice that it is the
+author of said Contribution and indicates the date of the creation thereof.
+
+
+ 5.3 RIGHT OF DISTRIBUTION
+
+In particular, the right of distribution includes the right to publish,
+transmit and communicate the Software to the general public on any or
+all medium, and by any or all means, and the right to market, either in
+consideration of a fee, or free of charge, one or more copies of the
+Software by any means.
+
+The Licensee is further authorized to distribute copies of the modified
+or unmodified Software to third parties according to the terms and
+conditions set forth hereinafter.
+
+
+ 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
+
+The Licensee is authorized to distribute true copies of the Software in
+Source Code or Object Code form, provided that said distribution
+complies with all the provisions of the Agreement and is accompanied by:
+
+ 1. a copy of the Agreement,
+
+ 2. a notice relating to the limitation of both the Licensor's
+ warranty and liability as set forth in Articles 8 and 9,
+
+and that, in the event that only the Object Code of the Software is
+redistributed, the Licensee allows effective access to the full Source
+Code of the Software at a minimum during the entire period of its
+distribution of the Software, it being understood that the additional
+cost of acquiring the Source Code shall not exceed the cost of
+transferring the data.
+
+
+ 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
+
+If the Licensee makes any Contribution to the Software, the resulting
+Modified Software may be distributed under a license agreement other
+than this Agreement subject to compliance with the provisions of Article
+5.3.4.
+
+
+ 5.3.3 DISTRIBUTION OF EXTERNAL MODULES
+
+When the Licensee has developed an External Module, the terms and
+conditions of this Agreement do not apply to said External Module, that
+may be distributed under a separate license agreement.
+
+
+ 5.3.4 CREDITS
+
+Any Licensee who may distribute a Modified Software hereby expressly
+agrees to:
+
+ 1. indicate in the related documentation that it is based on the
+ Software licensed hereunder, and reproduce the intellectual
+ property notice for the Software,
+
+ 2. ensure that written indications of the Software intended use,
+ intellectual property notice and license hereunder are included in
+ easily accessible format from the Modified Software interface,
+
+ 3. mention, on a freely accessible website describing the Modified
+ Software, at least throughout the distribution term thereof, that
+ it is based on the Software licensed hereunder, and reproduce the
+ Software intellectual property notice,
+
+ 4. where it is distributed to a third party that may distribute a
+ Modified Software without having to make its source code
+ available, make its best efforts to ensure that said third party
+ agrees to comply with the obligations set forth in this Article .
+
+If the Software, whether or not modified, is distributed with an
+External Module designed for use in connection with the Software, the
+Licensee shall submit said External Module to the foregoing obligations.
+
+
+ 5.3.5 COMPATIBILITY WITH THE CeCILL AND CeCILL-C LICENSES
+
+Where a Modified Software contains a Contribution subject to the CeCILL
+license, the provisions set forth in Article 5.3.4 shall be optional.
+
+A Modified Software may be distributed under the CeCILL-C license. In
+such a case the provisions set forth in Article 5.3.4 shall be optional.
+
+
+ Article 6 - INTELLECTUAL PROPERTY
+
+
+ 6.1 OVER THE INITIAL SOFTWARE
+
+The Holder owns the economic rights over the Initial Software. Any or
+all use of the Initial Software is subject to compliance with the terms
+and conditions under which the Holder has elected to distribute its work
+and no one shall be entitled to modify the terms and conditions for the
+distribution of said Initial Software.
+
+The Holder undertakes that the Initial Software will remain ruled at
+least by this Agreement, for the duration set forth in Article 4.2.
+
+
+ 6.2 OVER THE CONTRIBUTIONS
+
+The Licensee who develops a Contribution is the owner of the
+intellectual property rights over this Contribution as defined by
+applicable law.
+
+
+ 6.3 OVER THE EXTERNAL MODULES
+
+The Licensee who develops an External Module is the owner of the
+intellectual property rights over this External Module as defined by
+applicable law and is free to choose the type of agreement that shall
+govern its distribution.
+
+
+ 6.4 JOINT PROVISIONS
+
+The Licensee expressly undertakes:
+
+ 1. not to remove, or modify, in any manner, the intellectual property
+ notices attached to the Software;
+
+ 2. to reproduce said notices, in an identical manner, in the copies
+ of the Software modified or not.
+
+The Licensee undertakes not to directly or indirectly infringe the
+intellectual property rights of the Holder and/or Contributors on the
+Software and to take, where applicable, vis-à-vis its staff, any and all
+measures required to ensure respect of said intellectual property rights
+of the Holder and/or Contributors.
+
+
+ Article 7 - RELATED SERVICES
+
+7.1 Under no circumstances shall the Agreement oblige the Licensor to
+provide technical assistance or maintenance services for the Software.
+
+However, the Licensor is entitled to offer this type of services. The
+terms and conditions of such technical assistance, and/or such
+maintenance, shall be set forth in a separate instrument. Only the
+Licensor offering said maintenance and/or technical assistance services
+shall incur liability therefor.
+
+7.2 Similarly, any Licensor is entitled to offer to its licensees, under
+its sole responsibility, a warranty, that shall only be binding upon
+itself, for the redistribution of the Software and/or the Modified
+Software, under terms and conditions that it is free to decide. Said
+warranty, and the financial terms and conditions of its application,
+shall be subject of a separate instrument executed between the Licensor
+and the Licensee.
+
+
+ Article 8 - LIABILITY
+
+8.1 Subject to the provisions of Article 8.2, the Licensee shall be
+entitled to claim compensation for any direct loss it may have suffered
+from the Software as a result of a fault on the part of the relevant
+Licensor, subject to providing evidence thereof.
+
+8.2 The Licensor's liability is limited to the commitments made under
+this Agreement and shall not be incurred as a result of in particular:
+(i) loss due the Licensee's total or partial failure to fulfill its
+obligations, (ii) direct or consequential loss that is suffered by the
+Licensee due to the use or performance of the Software, and (iii) more
+generally, any consequential loss. In particular the Parties expressly
+agree that any or all pecuniary or business loss (i.e. loss of data,
+loss of profits, operating loss, loss of customers or orders,
+opportunity cost, any disturbance to business activities) or any or all
+legal proceedings instituted against the Licensee by a third party,
+shall constitute consequential loss and shall not provide entitlement to
+any or all compensation from the Licensor.
+
+
+ Article 9 - WARRANTY
+
+9.1 The Licensee acknowledges that the scientific and technical
+state-of-the-art when the Software was distributed did not enable all
+possible uses to be tested and verified, nor for the presence of
+possible defects to be detected. In this respect, the Licensee's
+attention has been drawn to the risks associated with loading, using,
+modifying and/or developing and reproducing the Software which are
+reserved for experienced users.
+
+The Licensee shall be responsible for verifying, by any or all means,
+the suitability of the product for its requirements, its good working
+order, and for ensuring that it shall not cause damage to either persons
+or properties.
+
+9.2 The Licensor hereby represents, in good faith, that it is entitled
+to grant all the rights over the Software (including in particular the
+rights set forth in Article 5).
+
+9.3 The Licensee acknowledges that the Software is supplied "as is" by
+the Licensor without any other express or tacit warranty, other than
+that provided for in Article 9.2 and, in particular, without any warranty
+as to its commercial value, its secured, safe, innovative or relevant
+nature.
+
+Specifically, the Licensor does not warrant that the Software is free
+from any error, that it will operate without interruption, that it will
+be compatible with the Licensee's own equipment and software
+configuration, nor that it will meet the Licensee's requirements.
+
+9.4 The Licensor does not either expressly or tacitly warrant that the
+Software does not infringe any third party intellectual property right
+relating to a patent, software or any other property right. Therefore,
+the Licensor disclaims any and all liability towards the Licensee
+arising out of any or all proceedings for infringement that may be
+instituted in respect of the use, modification and redistribution of the
+Software. Nevertheless, should such proceedings be instituted against
+the Licensee, the Licensor shall provide it with technical and legal
+assistance for its defense. Such technical and legal assistance shall be
+decided on a case-by-case basis between the relevant Licensor and the
+Licensee pursuant to a memorandum of understanding. The Licensor
+disclaims any and all liability as regards the Licensee's use of the
+name of the Software. No warranty is given as regards the existence of
+prior rights over the name of the Software or as regards the existence
+of a trademark.
+
+
+ Article 10 - TERMINATION
+
+10.1 In the event of a breach by the Licensee of its obligations
+hereunder, the Licensor may automatically terminate this Agreement
+thirty (30) days after notice has been sent to the Licensee and has
+remained ineffective.
+
+10.2 A Licensee whose Agreement is terminated shall no longer be
+authorized to use, modify or distribute the Software. However, any
+licenses that it may have granted prior to termination of the Agreement
+shall remain valid subject to their having been granted in compliance
+with the terms and conditions hereof.
+
+
+ Article 11 - MISCELLANEOUS
+
+
+ 11.1 EXCUSABLE EVENTS
+
+Neither Party shall be liable for any or all delay, or failure to
+perform the Agreement, that may be attributable to an event of force
+majeure, an act of God or an outside cause, such as defective
+functioning or interruptions of the electricity or telecommunications
+networks, network paralysis following a virus attack, intervention by
+government authorities, natural disasters, water damage, earthquakes,
+fire, explosions, strikes and labor unrest, war, etc.
+
+11.2 Any failure by either Party, on one or more occasions, to invoke
+one or more of the provisions hereof, shall under no circumstances be
+interpreted as being a waiver by the interested Party of its right to
+invoke said provision(s) subsequently.
+
+11.3 The Agreement cancels and replaces any or all previous agreements,
+whether written or oral, between the Parties and having the same
+purpose, and constitutes the entirety of the agreement between said
+Parties concerning said purpose. No supplement or modification to the
+terms and conditions hereof shall be effective as between the Parties
+unless it is made in writing and signed by their duly authorized
+representatives.
+
+11.4 In the event that one or more of the provisions hereof were to
+conflict with a current or future applicable act or legislative text,
+said act or legislative text shall prevail, and the Parties shall make
+the necessary amendments so as to comply with said act or legislative
+text. All other provisions shall remain effective. Similarly, invalidity
+of a provision of the Agreement, for any reason whatsoever, shall not
+cause the Agreement as a whole to be invalid.
+
+
+ 11.5 LANGUAGE
+
+The Agreement is drafted in both French and English and both versions
+are deemed authentic.
+
+
+ Article 12 - NEW VERSIONS OF THE AGREEMENT
+
+12.1 Any person is authorized to duplicate and distribute copies of this
+Agreement.
+
+12.2 So as to ensure coherence, the wording of this Agreement is
+protected and may only be modified by the authors of the License, who
+reserve the right to periodically publish updates or new versions of the
+Agreement, each with a separate number. These subsequent versions may
+address new issues encountered by Free Software.
+
+12.3 Any Software distributed under a given version of the Agreement may
+only be subsequently distributed under the same version of the Agreement
+or a subsequent version.
+
+
+ Article 13 - GOVERNING LAW AND JURISDICTION
+
+13.1 The Agreement is governed by French law. The Parties agree to
+endeavor to seek an amicable solution to any disagreements or disputes
+that may arise during the performance of the Agreement.
+
+13.2 Failing an amicable solution within two (2) months as from their
+occurrence, and unless emergency proceedings are necessary, the
+disagreements or disputes shall be referred to the Paris Courts having
+jurisdiction, by the more diligent Party.
+
+
+Version 1.0 dated 2006-09-05.
--- /dev/null
+<your Module>
+(c) CREATIS 2009
\ No newline at end of file
--- /dev/null
+# Add a SUBDIRS command for each of your applications
+# SUBDIRS(MyApp1)
+SUBDIRS(bbEditor)
--- /dev/null
+#OPTION(BUILD_bbi_GRAPHICAL "Build bbi in graphical mode (requires wxWidgets)" OFF)
+#SWITCH_ON_IF_ALL_BUILD(BUILD_bbi_GRAPHICAL)
+#IF (BUILD_bbi_GRAPHICAL)
+# SET(USE_WXWIDGETS ON CACHE BOOL "Use WxWidgets" FORCE)
+#ENDIF (BUILD_bbi_GRAPHICAL)
+
+
+SET(SOURCES
+ bbEditor
+ )
+
+INCLUDE_DIRECTORIES(../../lib/EditorGraphicBBS/bbsWxGUIEditorGraphic)
+
+IF(BBTK_USE_WXWIDGETS AND WIN32)
+ ADD_EXECUTABLE(bbEditor WIN32 ${SOURCES})
+ SET_TARGET_PROPERTIES(bbEditor PROPERTIES LINK_FLAGS /subsystem:console )
+ELSE(BBTK_USE_WXWIDGETS AND WIN32)
+ ADD_EXECUTABLE(bbEditor MACOSX_BUNDLE ${SOURCES} )
+ENDIF(BBTK_USE_WXWIDGETS AND WIN32)
+
+
+TARGET_LINK_LIBRARIES(bbEditor
+ bbsWxGUIEditorGraphic
+ ${VTK_LIBRARIES}
+ ${WXWIDGETS_LIBRARIES}
+ ${creaMaracasVisu_LIBRARIES}
+ ${BBTK_LIBRARIES}
+ )
+
+INSTALL_TARGETS(/bin/ bbEditor)
--- /dev/null
+#ifdef _USE_WXWIDGETS_
+
+//==========================================================================
+// WITH WX
+//==========================================================================
+
+#include "bbtkwxGUIEditorGraphicBBS.h"
+
+#include <wx/cmdline.h>
+#include <wx/app.h>
+
+
+class wxBBEditorApp : public wxApp
+{
+public:
+ bool OnInit( );
+ int OnExit() { return true; }
+
+};
+
+IMPLEMENT_APP(wxBBEditorApp);
+
+
+
+
+// ----------------------------------------------------------------------------
+// The `main program' equivalent, creating the windows and returning the
+// main frame
+bool wxBBEditorApp::OnInit( )
+{
+ wxApp::OnInit();
+#ifdef __WXGTK__
+ //See http://www.wxwindows.org/faqgtk.htm#locale
+ setlocale(LC_NUMERIC, "C");
+#endif
+
+ bbtk::wxGUIEditorGraphicBBS *iegbbs;
+ iegbbs = new bbtk::wxGUIEditorGraphicBBS(NULL);
+ SetTopWindow(iegbbs);
+ iegbbs->Show(true);
+
+ return true;
+}
+
+
+#if defined(_WIN32)
+
+// How to have a Console and wxWidgets
+// http://www.wxwidgets.org/wiki/index.php/MSVC_Setup_Guide
+// In Visual C++ 6 (7 should be similar), to create an application that is both a console application
+// (cout's to the console are visible) and has a wxWidgets GUI,
+// you need to use the linker option "/subsystem:console" and the following code:
+int main(int argc, char* argv[])
+{
+ return WinMain(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), SW_SHOWNORMAL);
+}
+
+#endif // defined(_WIN32)
+
+
+#else
+//==========================================================================
+// WITHOUT WX
+//==========================================================================
+#include <iostream>
+int main(int argc, char* argv[])
+{
+ std::cout << "bbStudio was not compiled with wxWidgets : ciao !" <<std::endl;
+ return 0;
+}
+
+// EOF
+#endif //#ifdef _USE_WXWIDGETS_
+
+
+
--- /dev/null
+#----------------------------------------------------------------------------
+# SET THE NAME OF YOUR EXECUTABLE
+# Replace 'MyExe' by the name you want to give your executable.
+# (a good policy is to give the executable the same name that the directory)
+
+#########################
+SET ( EXE_NAME MyExe )
+#########################
+
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# EXECUTABLE SOURCES (TO BE COMPILED)
+# EITHER LIST ALL .cxx, *.cpp, *.cc IN CURRENT DIR USING NEXT LINE:
+
+FILE(GLOB ${EXE_NAME}_SOURCES *.cxx *.cpp *.cc)
+
+# OR MANUALLY LIST YOUR FILES WITH NEXT COMMAND (WITHOUT EXTENSION)
+# SET ( ${EXE_NAME}_SOURCES
+#
+# )
+#----------------------------------------------------------------------------
+
+INCLUDE_DIRECTORIES (
+
+# Add here the directories holding th extra .h files you need
+# e.g.
+# ../../lib/<my_library_I_just_created>
+
+)
+
+#----------------------------------------------------------------------------
+# DEPENDENCIES (LIBRARIES TO LINK WITH)
+SET ( ${EXE_NAME}_LINK_LIBRARIES
+ # ${crea_LIBRARIES}
+ # ${WXWIDGETS_LIBRARIES}
+ # ${KWWidgets_LIBRARIES}
+ # ${VTK_LIBRARIES}
+ # ${ITK_LIBRARIES}
+ # ${GDCM_LIBRARIES}
+ # ${BOOST_LIBRARIES}
+
+ # Add here those agmonst the various (?) PROJECT LIBRARIES
+ # you need for the current executable
+ # (If you created only one Library, don't forget it !...)
+
+ )
+
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# CREATES AND INSTALLS THE EXE
+# Set to ON if your appli has a GUI (to build as a Win32 app on windows)
+SET(${EXE_NAME}_HAS_GUI OFF)
+# Set to ON if your appli has a GUI but you also want a msdos console on windows
+SET(${EXE_NAME}_CONSOLE OFF)
+CREA_ADD_EXECUTABLE( ${EXE_NAME} )
+#----------------------------------------------------------------------------
+
+
--- /dev/null
+#-----------------------------------------------------------------------------
+# If --BUILD_ALL is set to ON then all options
+# for which the macro SWITCH_ON_IF_BUILD_ALL have been used are set to ON
+# The -- prepended to the options ensure that it will appear as the
+# first option when running ccmake/CMakeSetup
+#IF (BBTK_CORE_PACKAGE)
+ OPTION(--BUILD_ALL "Build all ?" OFF)
+ #OPTION(--SET_BUILD_ALL_OFF "Build all ?" OFF)
+ #MARK_AS_ADVANCED(--SET_BUILD_ALL_OFF)
+
+ MACRO(SWITCH_ON_IF_BUILD_ALL VAR)
+ #OPTION(--${VAR}_SET_BUILD_ALL_OFF "Build all ?" OFF)
+ #MARK_AS_ADVANCED(--${VAR}_SET_BUILD_ALL_OFF)
+ IF (--BUILD_ALL)
+ # IF (--${VAR}_SET_BUILD_ALL_OFF)
+ # MESSAGE(ERROR "${VAR} -> Build All OFF")
+ # SET(--BUILD_ALL OFF CACHE BOOL "Build all ?" FORCE)
+ # SET(--${VAR}_SET_BUILD_ALL_OFF OFF CACHE BOOL "" FORCE)
+ # ELSE (--${VAR}_SET_BUILD_ALL_OFF)
+ SET(${VAR} ON CACHE BOOL "Forced to ON by --BUILD_ALL" FORCE)
+ # SET(--${VAR}_SET_BUILD_ALL_OFF ON CACHE BOOL "" FORCE)
+ # MESSAGE(ERROR "Build All -> ${VAR}")
+ # ENDIF (--${VAR}_SET_BUILD_ALL_OFF)
+ ENDIF(--BUILD_ALL)
+ ENDMACRO(SWITCH_ON_IF_BUILD_ALL)
+#ELSE (BBTK_CORE_PACKAGE)
+ # MACRO(SWITCH_ON_IF_BUILD_ALL VAR)
+ # ENDMACRO(SWITCH_ON_IF_BUILD_ALL)
+#ENDIF (BBTK_CORE_PACKAGE)
+#-----------------------------------------------------------------------------
--- /dev/null
+
+
+MACRO(USER_BUILD_DOXYGEN_DOC NAME INPUT DOC_RELATIVE_INSTALL_PATH PREDEFINED)
+
+ #--------------------------------------------------------------------------
+ SET(USE_DOXYGEN ON CACHE BOOL "" FORCE)
+
+ # Name
+ SET(DOXYGEN_PROJECT_NAME "${NAME}")
+
+ # Inputs
+ #STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT "${INPUT}")
+
+ # Output dirs
+ SET(DOXYGEN_HTML_OUTPUT ".")
+ SET(DOXYGEN_OUTPUT "${${PROJECT_NAME}_DOXYGEN_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}")
+ STRING(REGEX REPLACE " " "~" DOXYGEN_OUTPUT "${DOXYGEN_OUTPUT}")
+
+
+ IF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+ FILE(MAKE_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+ ENDIF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+
+ # Doc exclude
+ SET(DOXYGEN_EXCLUDE "")
+ STRING(REGEX REPLACE ";" " " DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE}")
+
+ # Log file name
+ SET(DOXYGEN_LOGFILE "${CMAKE_CURRENT_BINARY_DIR}/doxygen.log")
+
+ # Predefined symbols
+ STRING(REGEX REPLACE ";" " " DOXYGEN_DOC_PREDEFINED "${PREDEFINED}")
+
+ #---------------------------------------------------------------------------
+ # DOT verification
+ IF(DOT)
+ GET_FILENAME_COMPONENT(DOXYGEN_DOT_PATH ${DOT} PATH)
+ SET(DOXYGEN_HAVE_DOT "YES")
+ ELSE(DOT)
+ SET(DOXYGEN_DOT_PATH "")
+ SET(DOXYGEN_HAVE_DOT "NO")
+ ENDIF(DOT)
+
+ #---------------------------------------------------------------------------
+ # Create file and project
+ CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.txt.in
+ ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
+ @ONLY IMMEDIATE
+ )
+
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html
+ COMMAND
+ ${DOXYGEN}
+ ARGS
+ ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
+ # DEPENDS bbtk bbi
+ )
+
+ ADD_CUSTOM_TARGET(doxygen_${NAME} ALL
+ DEPENDS ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html
+ )
+
+ INSTALL(
+ DIRECTORY
+ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}
+ DESTINATION
+ ${${PROJECT_NAME}_DOXYGEN_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}
+ )
+ #--------------------------------------------------------------------------
+#message("user build doxygen , doxygen output = ${DOXYGEN_OUTPUT}")
+ENDMACRO(USER_BUILD_DOXYGEN_DOC)
--- /dev/null
+
+
+MACRO(USER_BUILD_HTML_DOC_FROM_LATEX TEX_FILE OUTPUT_REL_PATH)
+ # Need tth
+ SET(USE_TTH ON CACHE BOOL "" FORCE)
+ # Construct absolute build path
+ SET(BUILD_PATH ${${PROJECT_NAME}_DOC_BUILD_PATH}/${OUTPUT_REL_PATH})
+ #-------------------------------------------------------------------------
+ IF(WIN32)
+ SET(TTH_EXECUTABLE "${TTH_EXECUTABLE}/tth.exe")
+ ENDIF(WIN32)
+
+ #message("MACRO(USER_BUILD_HTML_DOC_FROM_LATEX TEX_FILE OUTPUT_REL_PATH) TTH_EXECUTABLE ${TTH_EXECUTABLE}")
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${BUILD_PATH}/${TEX_FILE}.html
+ COMMAND
+ # tth
+ ${TTH_EXECUTABLE}
+ ARGS
+ -e2 ${BUILD_PATH}/${TEX_FILE}.tex 2>tth.log
+ # DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${TEX_FILE}.pdf
+ )
+ ADD_CUSTOM_TARGET(${TEX_FILE}.html ALL
+ DEPENDS ${BUILD_PATH}/${TEX_FILE}.html
+ )
+ # Install
+ INSTALL(
+ FILES ${BUILD_PATH}/${TEX_FILE}.html
+ DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${OUTPUT_REL_PATH}
+ )
+ #-------------------------------------------------------------------------
+
+ENDMACRO(USER_BUILD_HTML_DOC_FROM_LATEX)
--- /dev/null
+
+
+MACRO(USER_BUILD_LATEX_DOC TEX_FILE OUTPUT_REL_PATH)
+ # Need LaTeX
+ SET(USE_LATEX ON CACHE BOOL "" FORCE)
+ # Construct absolute build path
+ SET(BUILD_PATH ${${PROJECT_NAME}_DOC_BUILD_PATH}/${OUTPUT_REL_PATH})
+ #MESSAGE(STATUS "Tex file : ${TEX_FILE}")
+ #---------------------------------------------------------------------------
+ CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/${TEX_FILE}.tex
+ ${BUILD_PATH}/${TEX_FILE}.tex
+ COPYONLY
+ )
+ CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex
+ ${BUILD_PATH}/config.tex
+ @ONLY
+ )
+ CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex
+ ${CMAKE_CURRENT_BINARY_DIR}/config.tex
+ @ONLY
+ )
+ #---------------------------------------------------------------------------
+ FILE(TO_NATIVE_PATH ${BUILD_PATH} THE_BUILD_PATH)
+
+ # Have to run latex twice to get references, toc, etc.
+ #message("ADD_CUSTOM_COMMAND(OUTPUT ${BUILD_PATH}/${TEX_FILE}.aux MACRO(USER_BUILD_LATEX_DOC")
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${BUILD_PATH}/${TEX_FILE}.aux
+ COMMAND
+ # latex
+ cd ${THE_BUILD_PATH} && ${LATEX_COMPILER}
+ ARGS
+ -interaction=batchmode ${BUILD_PATH}/${TEX_FILE} -output-directory=${BUILD_PATH}/
+
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/${TEX_FILE}.tex
+ ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex
+ )
+
+#message("LATEX_COMPILER = ${LATEX_COMPILER}")
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${BUILD_PATH}/${TEX_FILE}.pdf
+ COMMAND
+ # latex
+ cd ${THE_BUILD_PATH} && ${LATEX_COMPILER}
+ ARGS
+ -interaction=batchmode ${BUILD_PATH}/${TEX_FILE} -output-directory=${BUILD_PATH}/
+
+ DEPENDS ${BUILD_PATH}/${TEX_FILE}.aux
+ )
+
+ # pdf target
+ ADD_CUSTOM_TARGET(${TEX_FILE}.pdf ALL
+ DEPENDS ${BUILD_PATH}/${TEX_FILE}.pdf)
+
+ # Install
+ INSTALL(
+ FILES ${BUILD_PATH}/${TEX_FILE}.pdf
+ DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${OUTPUT_REL_PATH}
+ )
+
+ENDMACRO(USER_BUILD_LATEX_DOC)
--- /dev/null
+
+
+#-----------------------------------------------------------------------------
+# store documentation and scripts **RELATIVE** paths
+# from build tree root or install tree root
+# (different on win/lin)
+IF(WIN32)
+ # A trick to install in root install dir (problem when empty path given)
+ SET(${PROJECT_NAME}_SHARE_REL_PATH "bin/..")
+ SET(${PROJECT_NAME}_DOC_REL_PATH doc)
+ELSE(WIN32)
+ SET(${PROJECT_NAME}_SHARE_REL_PATH share/${PROJECT_NAME})
+ SET(${PROJECT_NAME}_DOC_REL_PATH share/${PROJECT_NAME}/doc)
+ENDIF(WIN32)
+
+MESSAGE(STATUS "* SHARE_REL_PATH =${${PROJECT_NAME}_SHARE_REL_PATH}")
+MESSAGE(STATUS "* DOC_REL_PATH =${${PROJECT_NAME}_DOC_REL_PATH}")
+MESSAGE(STATUS "* BBS_REL_PATH =${${PROJECT_NAME}_BBS_REL_PATH}")
+MESSAGE(STATUS "* DATA_REL_PATH =${${PROJECT_NAME}_DATA_REL_PATH}")
+MESSAGE(STATUS "===============================================")
+
+#-----------------------------------------------------------------------------
--- /dev/null
+#-----------------------------------------------------------------------------
+# messages compilation options
+OPTION ( BUILD_${PROJECT_NAME}_DOC "Build documentation for ${PROJECT_NAME}." OFF)
+SWITCH_ON_IF_BUILD_ALL(BUILD_${PROJECT_NAME}_DOC)
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC)
+
+ OPTION(BUILD_${PROJECT_NAME}_DOC_PACKAGE
+ "Build ${PROJECT_NAME} packages documentation (bbi+dot)." ON)
+ OPTION(BUILD_${PROJECT_NAME}_DOC_DOXYGEN
+ "Build doxygen documentation (doxygen)." ON)
+ OPTION(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF
+ "Build ${PROJECT_NAME} Guides', PDF format (latex)." ON)
+ OPTION(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML
+ "Build ${PROJECT_NAME} Guides', HTML format (latex+tth)." ON)
+
+ELSE(BUILD_${PROJECT_NAME}_DOC)
+
+ IF(BUILD_${PROJECT_NAME}_DOC_PACKAGE)
+ SET(BUILD_${PROJECT_NAME}_DOC_PACKAGE OFF CACHE BOOL
+ "Build ${PROJECT_NAME} packages documentation (bbdoc+dot)." FORCE)
+ ENDIF(BUILD_${PROJECT_NAME}_DOC_PACKAGE)
+ IF(BUILD_${PROJECT_NAME}_DOC_DOXYGEN)
+ SET(BUILD_${PROJECT_NAME}_DOC_DOXYGEN OFF CACHE BOOL
+ "Build doxygen documentation. (doxygen)" FORCE)
+ ENDIF(BUILD_${PROJECT_NAME}_DOC_DOXYGEN)
+
+ IF(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF)
+ SET(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OFF CACHE BOOL
+ "Build ${PROJECT_NAME} Guides', PDF format (latex)." FORCE)
+ ENDIF(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF)
+
+ IF(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+ SET(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML OFF CACHE BOOL
+ "Build ${PROJECT_NAME} Guides', HTML format (latex tth)." FORCE)
+ ENDIF(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+
+ENDIF(BUILD_${PROJECT_NAME}_DOC)
+#-----------------------------------------------------------------------------
--- /dev/null
+#========================================================================
+# MACRO WHICH COPIES ALL IMAGES (png, jpg, gif)
+# FROM SOURCE TREE TO DOC BUILD TREE
+# AND INSTALL THEM IN BBTK DOC TREE
+MACRO(USER_DOC_INSTALL_IMAGES DOC_RELATIVE_INSTALL_PATH)
+ MESSAGE(STATUS "* Copying png,jpg,tif images in ${BBTK_DOC_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}")
+ FILE(GLOB PNG_IMAGES "*.png")
+ FILE(GLOB JPG_IMAGES "*.jpg")
+ FILE(GLOB TIF_IMAGES "*.tif")
+ SET(IMAGES
+ ${PNG_IMAGES}
+ ${JPG_IMAGES}
+ ${TIF_IMAGES}
+ )
+# MESSAGE(ERROR ${IMAGES} )
+ FOREACH(image ${IMAGES})
+ GET_FILENAME_COMPONENT(filename "${image}" NAME)
+ CONFIGURE_FILE(
+ ${image}
+ ${${PROJECT_NAME}_DOC_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}/${filename}
+ COPYONLY
+ )
+
+ # IF (WIN32)
+# CONFIGURE_FILE(
+# ${image}
+# ${CMAKE_CURRENT_BINARY_DIR}/${filename}
+# COPYONLY
+# )
+# ENDIF(WIN32)
+ # MESSAGE(ERROR "${image} (${filename}) in : ${PROJECT_BINARY_DIR}/${BBTK_DOC_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}/${filename}")
+ ENDFOREACH(image)
+ INSTALL(
+ FILES ${IMAGES}
+ DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}
+ )
+ENDMACRO(USER_DOC_INSTALL_IMAGES)
\ No newline at end of file
--- /dev/null
+
+INCLUDE(cmake/UserMacros.cmake)
+INCLUDE(cmake/UserConfig.cmake)
+INCLUDE(cmake/UserSetDeducedPaths.cmake)
+INCLUDE(cmake/UserBuildAllOption.cmake)
+INCLUDE(cmake/UserDefineOptions.cmake)
\ No newline at end of file
--- /dev/null
+MESSAGE(STATUS "===============================================")
+MESSAGE(STATUS "Setting up deduced pathes:")
+# Black box docs relative path
+SET(${PROJECT_NAME}_BBDOC_REL_PATH ${${PROJECT_NAME}_DOC_REL_PATH}/bbdoc)
+# Doxygen docs relative path
+SET(${PROJECT_NAME}_DOXYGEN_REL_PATH ${${PROJECT_NAME}_DOC_REL_PATH}/doxygen)
+
+MESSAGE(STATUS "* BBTK_BBDOC_REL_PATH =${BBTK_BBDOC_REL_PATH}")
+MESSAGE(STATUS "* BBTK_DOXYGEN_REL_PATH =${BBTK_DOXYGEN_REL_PATH}")
+
+# Now compute BUILD TREE **ABSOLUTE PATHS**
+SET(${PROJECT_NAME}_DOC_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DOC_REL_PATH})
+SET(${PROJECT_NAME}_BBDOC_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_BBDOC_REL_PATH})
+SET(${PROJECT_NAME}_DOXYGEN_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DOXYGEN_REL_PATH})
+SET(${PROJECT_NAME}_BBS_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_BBS_REL_PATH})
+SET(${PROJECT_NAME}_DATA_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DATA_REL_PATH})
+
+#SET(BBTK_DOC_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DOC_REL_PATH})
+#SET(BBTK_BBDOC_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_BBDOC_REL_PATH})
+#SET(BBTK_DOXYGEN_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DOXYGEN_REL_PATH})
+#SET(BBTK_BBS_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_BBS_REL_PATH})
+#SET(BBTK_DATA_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DATA_REL_PATH})
+
+# LG 22/10/08 : REMOVED THE **ABSOLUTE INSTALL PATH**
+# was buggy when packaging
+# consequences :
+# 1) generated packages are NOT relocatables
+# 2) they must be installed at the same prefix than bbtk
+SET(${PROJECT_NAME}_DOC_INSTALL_PATH ${${PROJECT_NAME}_DOC_REL_PATH})
+SET(${PROJECT_NAME}_BBDOC_INSTALL_PATH ${${PROJECT_NAME}_BBDOC_REL_PATH})
+SET(${PROJECT_NAME}_DOXYGEN_INSTALL_PATH ${${PROJECT_NAME}_DOXYGEN_REL_PATH})
+SET(${PROJECT_NAME}_BBS_INSTALL_PATH ${${PROJECT_NAME}_BBS_REL_PATH})
+SET(${PROJECT_NAME}_DATA_INSTALL_PATH ${${PROJECT_NAME}_DATA_REL_PATH})
+
+
+
+
+# Create build directories if necessary
+CREA_MKDIR(${${PROJECT_NAME}_DOC_BUILD_PATH})
+CREA_MKDIR(${${PROJECT_NAME}_BBDOC_BUILD_PATH})
+CREA_MKDIR(${${PROJECT_NAME}_DOXYGEN_BUILD_PATH})
+CREA_MKDIR(${${PROJECT_NAME}_BBS_BUILD_PATH})
+CREA_MKDIR(${${PROJECT_NAME}_DATA_BUILD_PATH})
+
+#-----------------------------------------------------------------------------
+SET (EXECUTABLE_OUTPUT_PATH
+ ${PROJECT_BINARY_DIR}/${EXECUTABLE_OUTPUT_REL_PATH})
+SET (LIBRARY_OUTPUT_PATH
+ ${PROJECT_BINARY_DIR}/${LIBRARY_OUTPUT_REL_PATH})
+#-----------------------------------------------------------------------------
+MESSAGE(STATUS "* EXECUTABLE_OUTPUT_PATH=${EXECUTABLE_OUTPUT_PATH}")
+MESSAGE(STATUS "* LIBRARY_OUTPUT_PATH =${LIBRARY_OUTPUT_PATH}")
+
+#-----------------------------------------------------------------------------
+# Today CMakeCreateFindPackage is copied in BBTK_CMAKE_DIR
+# When installed as a separate project will have to find it with FIND_PACKAGE
+SET(CMakeCreateFindPackage_DIR ${${PROJECT_NAME}_CMAKE_DIR})
+#-----------------------------------------------------------------------------
+
+
+MESSAGE(STATUS "===============================================")
+
--- /dev/null
+
+
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_DOXYGEN)
+ INCLUDE(../cmake/UserBuildDoxygenDoc.cmake)
+ SUBDIRS(UserDoxygen)
+ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_DOXYGEN)
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF)
+ INCLUDE(../cmake/UserBuildLatexDoc.cmake)
+ELSE(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+ MACRO(USER_BUILD_LATEX_DOC TEX_FILE)
+ ENDMACRO(USER_BUILD_LATEX_DOC)
+ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF)
+#-----------------------------------------------------------------------------
+
+
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+ INCLUDE(../cmake/UserBuildHtmlDocFromLatex.cmake)
+ELSE(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+ MACRO(USER_BUILD_HTML_DOC_FROM_LATEX SOURCE)
+ ENDMACRO(USER_BUILD_HTML_DOC_FROM_LATEX)
+ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+#-----------------------------------------------------------------------------
+
+
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OR BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+ SUBDIRS(UserDocumentation)
+ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OR BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+#-----------------------------------------------------------------------------
+# Web site
+IF(BUILD_${PROJECT_NAME}_DOC)
+ # Configure main page index.html for build tree
+ CONFIGURE_FILE(
+ index.html.in
+ ${${PROJECT_NAME}_DOC_BUILD_PATH}/index.html
+ @ONLY
+ )
+ # Install it
+ INSTALL(
+ FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/index.html
+ DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}
+ )
+ # Configure main page index-no-frame.html for build tree
+ CONFIGURE_FILE(
+ index-no-frame.html.in
+ ${${PROJECT_NAME}_DOC_BUILD_PATH}/index-no-frame.html
+ @ONLY
+ )
+ # Install it
+ INSTALL(
+ FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/index-no-frame.html
+ DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}
+ )
+ # Configure help_contents.html for build tree
+ CONFIGURE_FILE(
+ help_contents.html.in
+ ${${PROJECT_NAME}_DOC_BUILD_PATH}/help_contents.html
+ @ONLY
+ )
+ # Install it
+ INSTALL(
+ FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/help_contents.html
+ DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}
+ )
+
+ # Recurse it bbtkWebSite dir
+ SUBDIRS(template_WebSite)
+
+
+
+ENDIF(BUILD_${PROJECT_NAME}_DOC)
+#-----------------------------------------------------------------------------
+
--- /dev/null
+* config.tex : input file for all latex guides (user's, package dev's ...)
+* help_contents.html.in : home page of bbStudio help
+* index.html.in : home page of online doc (frame)
+* index-no-frame.html.in : home page of online doc (without frame)
+
--- /dev/null
+After builing ALL :
+
+cd in the build tree
+cd share/doc
+rsync -rtvO . tux:/var/www/html/software/creatools/bbtk/v0_9_0/ --perms --chmod=Dg+s,ug+w
--- /dev/null
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "Configuring bbtk Package Developers' Guide build ")
+USER_DOC_INSTALL_IMAGES(UserDocumentation)
+USER_BUILD_LATEX_DOC(UserDocumentation UserDocumentation)
+USER_BUILD_HTML_DOC_FROM_LATEX(UserDocumentation UserDocumentation)
+MESSAGE(STATUS "=======================================")
--- /dev/null
+
+% ==========================================
+\documentclass[11pt,final,a4paper]{article}
+\input{config.tex}
+\begin{document}
+\UserDocumentGuide[User Documentation Guide]
+\newpage
+% ==========================================
+
+% ==========================================
+\section{Introduction}
+% ==========================================
+Introductory paragraph to the content of the document
+% ==========================================
+% ==========================================
+\section{Objectives}
+% ==========================================
+\subsection{General Objective}
+% ==========================================
+\begin{itemize}
+\item{\bf Objective 1} General description of the
+objectives
+\end{itemize}
+% ==========================================
+% ==========================================
+\subsection{Specific Objectives}
+% ==========================================
+\begin{itemize}
+\item{\bf Objective 1} Detail description of the
+objective
+\item{\bf Objective n} Detail description of the
+objective
+\end{itemize}
+% ==========================================
+\section{Scope and Vision}
+% ==========================================
+Scope and vision of the system to analyze
+What is the reaching point of the system?
+% ==========================================
+\section{General Description}
+% ==========================================
+General description of the whole module
+% ==========================================
+\section{Requirements List}
+% ==========================================
+\begin{itemize}
+\item{\bf Req1} Description of the
+requirement
+\item{\bf Reqn} Description of the
+requirement
+\end{itemize}
+% ==========================================
+\section{Analysis and design of the requirements}
+% ==========================================
+% ==========================================
+\subsection{Req1}
+% ==========================================
+Detailed description of each req
+% ==========================================
+\subsection{Reqn}
+% ==========================================
+% ==========================================
+\section{Glosary}
+% ==========================================
+% ==========================================
+\section{Anexes}
+% ==========================================
+
+\end{document}
+
--- /dev/null
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "Configuring user doxygen doc")
+
+CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/CodingStyle.html
+ ${CMAKE_CURRENT_BINARY_DIR}/CodingStyle.html
+ IMMEDIATE
+ )
+CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/DoxyMainPage.txt.in
+ ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt
+ @ONLY IMMEDIATE
+ )
+
+SET(INPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt
+ ${PROJECT_SOURCE_DIR}/lib
+ ${PROJECT_SOURCE_DIR}/appli
+ )
+
+INCLUDE(../../cmake/UserBuildDoxygenDoc.cmake)
+USER_BUILD_DOXYGEN_DOC(
+ "${PROJECT_NAME}"
+ "${INPUT}"
+ "${PROJECT_NAME}"
+ "${DOXYGEN_DOC_PREDEFINED}"
+ )
+
+MESSAGE(STATUS "=======================================")
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+ <meta http-equiv="Content-Type"
+ content="text/html;charset=iso-8859-1"><title>bbtk Developpers</title></head>
+
+<body>
+
+<!--#######################################################################-->
+<h1>bbtk coding style (and other religious/agnostic beliefs)</h1>
+<hr size="1"><address style=""></address>
+
+<pre>* Introduction:
+ The following coding style intends to ease the work of developpers
+ themselves but also of users who will study, maintain, fix, and extend
+ the code. Any bread crumbs that you can drop in the way of explanatory
+ names and comments will go a long way towards helping other readers and
+ developers.
+ Keep in mind that to a large extent the structure of code directly
+ expresses its implementation.
+
+* Language:
+ - C++ (for the kernel) and Python (for the wrappers).
+ - all the names (variables, members, methods, functions) and comments
+ should be based on English. Documentation, guides, web site and other
+ informations should be in English.
+ Make sure you use correct (basic) English and complete, grammatically
+ correct sentences for comments and documentation.
+
+* General layout:
+ - Each line of code should take no more than 79 characters. Break the code
+ across multiple lines as necessary.
+ - Methods and functions should keep a reasonable number of lines when
+ possible (a typical editor displays 50 lines). Avoid code duplication.
+ Always prefer creating a new method or function to duplication.
+ A high indentation level generally suggests the need for a new
+ method or function.
+ - All the code should be properly indented. The appropriate indentation
+ level is TWO spaces for each level of indentation. DO NOT USE TABS.
+ Set up your editor to insert spaces. Using tabs may look good in your
+ editor but will wreak havoc in others, or in external tools (e.g. side
+ by side diffs).
+ - The declaration of variables within classes, methods, and functions
+ should be one declaration per line. Provide them with default values
+ and don't rely on compilers for default initialization.
+
+* Naming conventions:
+ - Generalities:
+ In general, names are constructed by using case change to indicate
+ separate words, as in ImageDataSize (standing for "image data size").
+ Underscores are not used. Variable names are choosen carefully with the
+ intention to convey the meaning behind the code. Names are generally
+ spelled out; use of abbreviations is discouraged.
+ [Note: abbreviation are allowable when in common use, and should be in
+ uppercase as in LUT or RGBA.]
+ While this does result in long names, it self-documents the code.
+ - Naming Files:
+ Files should have the same name as the class, with a "bbtk" prepended.
+ Header files are named .h, while implementation files are named either
+ .cxx or .txx, depending on whether they are implementations of templated
+ classes. For example, the class bbtk::BlackBox is declared and defined
+ in the files bbtkBlackBox.h and bbtkBlackBox.cxx.
+ - Naming Class Data Members, Methods, and Functions:
+ Class data members (aka Attributes) are named beginning with a lower case 'm'
+ (m as 'member'!) followed by capital letter as in mGroupPixel, in order not
+ be confused with methods names.
+ Global functions and class methods, either static or class members, are
+ named beginning with a capital letter, as in GetImageDataSize().
+ - Naming Local Variables:
+ Local variables begin in lowercase. There is more flexibility in the
+ naming of local variables although they still should convey some
+ semantics.
+ - Naming function parameters:
+ Function parameters begin in lowercase. There is more flexibility in the
+ naming of function parameters although they still should convey some
+ semantics.
+
+* Classes:
+ - Don't use the inline keyword when defining an inline function
+ within a class definition.
+ (Any method defined within a .h file is ipso facto considered as 'inline'.
+ Dont write useless stuff!)
+ - As stated in the "Naming conventions" section, class data members
+ named beginning with a lower case 'm' followed by capital letter
+ as in mGroupPixel.
+ But the parameter names of method should be named with a lowercase
+ letter (in order to distinguish at a glance data members, from parameters
+ and also to avoid potential collisions with data members):
+ void A::SetGroupPixel( int groupPixel )
+ {
+ mGroupPixel = groupPixel;
+ }
+ - Don't use trailing ';' in inline function definition.
+ use :
+ void A::SetGroupPixel( int groupPixel ){mGroupPixel = groupPixel;}
+ NOT
+ void A::SetGroupPixel( int groupPixel ){mGroupPixel = groupPixel;};
+ - Do not repeat the 'virtual' keyword when overriding virtual base methods
+ in declaration of subclasses:
+ class A
+ {
+ virtual void foo(...);
+ };
+ class B : public bbtk::A
+ {
+ void foo(...); // and NOT: virtual void foo(...);
+ };
+
+ (when the keyword 'virtual' is used at the parent level, it's propagated
+ for all the child classes)
+
+ - In declaration of subclasses, always preprend the class name with 'bbtk::'
+ in order not to confuse Umbrello ( OpenSource UML diagram generator)
+ class A
+ {
+ ...
+ };
+ class B : public bbtk::A // and NOT: class B: public A
+ {
+ ...
+ };
+ - The public, protected, private declarations should be at the
+ same indent level as the class. Use :
+ class A
+ {
+ public:
+ void bar(...);
+ protected:
+ void foo(...);
+ private:
+ void pff(...);
+ };
+
+ - The Data members should be declared at the end of the class declaration :
+ class A
+ {
+ public:
+ void bar(...);
+ protected:
+ void foo(...);
+ private:
+ void pff(...);
+
+ // --- Data members
+
+ public:
+ int mPublicCounter;
+ protected:
+ int mProtectedCounter;
+ private:
+ int mPrivateCounter;
+ };
+
+ - Method and functions devoided of arguments should not use the void
+ notation. Use :
+ SomeType Header::GetPixelData()
+ and not
+ SomeType Header::GetPixelData(void)
+
+* Use of braces:
+ - Braces must be used to delimit the scope of an if, for, while, switch, or
+ other control structure. Braces are placed on a line by themselves, and
+ at the same indentation level as the control structure to which they
+ belong:
+ for (i=0; * i<3; i++)
+ {
+ ...
+ }
+ and NOT :
+ for (i=0; * i<3; i++) {
+ ...
+ }
+ or when using an if:
+ if ( condition )
+ {
+ ...
+ }
+ else if ( other condition )
+ {
+ ...
+ }
+ else
+ {
+ ....
+ }
+ and NOT :
+ if ( condition ) {
+ ...
+ } else if ( other condition ) {
+ ...
+ } else {
+ ....
+ }
+ You can choose to use braces on a line with a code block when
+ the block consists of a single line:
+ if ( condition ) { foo=1; }
+ else if ( condition2 ) { foo=3; }
+ else { return; }
+ or
+ for (i=0; i<3; ++i) {x[i]=0.0;}
+ Methods and functions should follow the same usage of braces:
+ void File::ParsePixelData()
+ {
+ ...
+ }
+
+* Special layout:
+ - Avoid code mixed with comments on a single line. Instead, prepend the
+ logical blocks of code with the concerned comments.
+ - Use parentheses around conditions e.g. with an if statement:
+ if ( someLocalVariable == 2 ) { ... }
+ - Add spaces around parentheses, or braces. Use
+ if ( someLocalVariable == 2 ) { mClassMember += 1; }
+ and not
+ if (someLocalVariable == 2) {mClassMember += 1;}
+ - Add spaces around each side of the assignement operator, and
+ around binary operators used in boolean expression. Use
+ someLocalVariable = mClassMember * 2;
+ if ( someLocalVariable == 2 || mClassMember == 2 ) ...
+ and not
+ someLocalVariable=mClassMember*2;
+ if ( someLocalVariable==2||mClassMember==2 ) ...
+
+* Miscelaneous:
+ - Don't use underscores. Don't use tabs. Don't use control characters
+ like ^M. Anyhow, cvs is configured to reject such commits.
+ - Comments should be in C++ style ("// ...", two slashes, per line). Don't
+ use C style comments ("/* ... */").
+ - The last line of a file should terminate with "\n".
+ - Returned arguments of methods and functions should not be wrapped with
+ parentheses. Use
+ return iter->second;
+ but do not use
+ return ( iter->second );
+
+* Debugging and Verbose modes:
+ Never use std::cout. Instead use the bbtkMessage, bbtkDebugMessage, bbtkWarning or bbtkError macros and their variants. Example:
+ #include "bbtkMessageManager.h"
+ ...
+ {
+ bbtkDebugMessageInc("MyClass",9,"Local function name: entering.");
+ ...
+ bbtkDecTab("MyClass",9);
+ }
+ will send the message to std::cout when the Debug messages are compiled
+ and the Message Level for the category of messages "MyClass" is greater than 9.
+
+* Documentation:
+ The Doxygen open-source system is used to generate on-line documentation.
+ Doxygen requires the embedding of simple comments in the code which is in
+ turn extracted and formatted into documentation. See :
+ http://www.stack.nl/~dimitri/doxygen/
+ for more information about Doxygen.
+ - Documenting a class:
+ Classes should be documented using the class and brief doxygen commands,
+ followed by the detailed class description:
+ /**
+ * \class Header
+ * \brief Header acts as container of Dicom elements of an image.
+ *
+ * Detailed description of the class is provided here
+ * ...
+ */
+ The key here is that the comment starts with /**, each subsequent line has
+ an aligned *, and the comment block terminates with a */.
+ - Documenting class members and inline methods:
+ All the members and the inline methods should be documented within
+ the class declaration ( .h file) as shown in the following example:
+ class Header
+ {
+ /// True when parsing was successfull. False otherwise.
+ bool mReadable = false;
+
+ /// \brief The number of lines of the image as interpreted from
+ /// the various elements encountered at header parsing.
+ int mNumberOfLines = -1;
+
+ /// Predicate implemented as accessor around \ref mReadable.
+ bool IsReadable() { return mReadable; }
+ };
+ - Documenting a Method:
+ Methods should be documented using the following comment block style
+ as shown in the following example:
+
+ /**
+ * \brief Within the Dicom Elements (parsed with the public and private
+ * dictionaries), look for the element value representation of
+ * a given tag.
+ * @param group Group number of the searched tag.
+ * @param elem Element number of the searched tag.
+ * @return Corresponding element value representation when it exists,
+ * and the string "bbtk::Unfound" otherwise.
+ */
+ std::string Document::GetEntryByNumber(guint16 group, guint16 elem)
+ {
+ ...
+ }
+
+* External includes and C style:
+ - Only the C++ standard library and the STL includes should be used.
+ When including don't use the .h extension (use #include <iostream>
+ instead of #include <iostream.h>).
+ Note: include the stl header AFTER the bbtk ones (otherwise pragma
+ warnings won't work).
+ - Don't use the C standard library. Don't include stdio.h, ctype.h...
+ Don't use printf(), sprinf(), FILE*...
+ - Don't use the NULL notation (neither as macro, nor as const int NULL=0).
+ A pointer that doesn't refer to an object should simply be defined as
+ DataPointer *myDataPointer = 0;
+
+* Basic types:
+ - Assume T is a given type. When declaring or defining with the
+ "pointer to T" notation, the * character must be adjacent to
+ the variable and not the type. That is use
+ T *foo = 0;
+ and not
+ T* foo = 0;
+ nor
+ T * foo = 0;
+ - Assume T is a given type. When declaring or defining with the
+ "reference to T" notation, the & character must be adjacent to
+ the variable and not the type. That is use :
+ T &foo = 0;
+ and not
+ T& foo = 0;
+
+ (Doxygen will not have any longer to correct)
+
+ - Always define a typedef for a new type and be consistent in usage.
+ Use :
+ typedef Header *HeaderPointer;
+ HeaderPointer myHeaderPointer;
+
+ - One notorious counter example for non using C style inclusion concerns
+ exact-width integers (since there seem to be no equivalent for C++).
+ When using exact-width integers use the typedef names defined by
+ the Basic ISO C99: 7.18 Integer types i.e.
+ int8_t int16_t int32_t int64_t (signed integers)
+ and
+ uint8_t uint16_t uint32_t uint64_t (unsigned integers).
+ Conversion table is then:
+ unsigned char -> uint8_t;
+ unsigned short -> uint16_t;
+ unsigned int -> uint32_t;
+ unsigned long -> uint32_t;
+ unsigned long long -> uint64_t;
+ (signed) char -> int8_t;
+ short -> int16_t;
+ int -> int32_t;
+ long -> int32_t;
+ long long -> int64_t;
+ Hence do not use declarations like "unsigned int".
+ With g++, accessing those typedef is achieved by the following
+ #include < stdint.h >
+</iostream.h></iostream></pre>
+
+
+<!--#######################################################################-->
+<hr size="1"><address style=""></address>
+
+</body></html>
--- /dev/null
+/**
+ * \mainpage bbtk documentation
+
+\htmlonly
+
+"A black box is any system in which only the input and output characteristics are of interest - without regard to its internal mechanism or structure" (from <A href="http://en.wikipedia.org/wiki/Black_box_%28disambiguation%29" > wikipedia </A>)
+
+<li>
+<A href="../CodingStyle.html"> Coding Style </A>
+</li>
+
+\endhtmlonly
+
+
+
+
+
+
+ */
--- /dev/null
+# Doxyfile 1.5.5
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = @DOXYGEN_PROJECT_NAME@
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = @PROJECT_VERSION@
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = @DOXYGEN_OUTPUT@
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
+# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
+# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,
+# and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE = @DOXYGEN_LOGFILE@
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = @DOXYGEN_INPUT@
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS = *.h \
+ *.cxx \
+ *.txx
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE = @DOXYGEN_EXCLUDE@
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS = *.cxx
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = YES
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code. Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 3
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = @DOXYGEN_HTML_OUTPUT@
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+
+GENERATE_DOCSET = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED = @DOXYGEN_DOC_PREDEFINED@
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = @DOXYGEN_HAVE_DOT@
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH = YES
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH = "@DOXYGEN_DOT_PATH@"
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is enabled by default, which results in a transparent
+# background. Warning: Depending on the platform used, enabling this option
+# may lead to badly anti-aliased labels on the edges of a graph (i.e. they
+# become hard to read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
--- /dev/null
+% ==========================================
+\newif\ifpdf
+\ifx\pdfoutput\undefined \pdffalse % we are not running PDFLaTeX
+\else
+\pdfoutput=1 \pdftrue % we are running PDFLaTeX
+\fi
+% ==========================================
+\usepackage[a4paper,textwidth=14cm]{geometry}
+\usepackage[latin1]{inputenc}
+\usepackage{varioref}
+\usepackage{url}
+\usepackage{multicol}
+\usepackage{colortbl}
+%\usepackage[active]{srcltx}
+\usepackage{color}
+\usepackage[english]{babel}
+%\usepackage{picins}
+%\usepackage{fancyhdr}
+%\usepackage{picins}
+\usepackage{xspace}
+% ==========================================
+%%% Math
+\usepackage{amsmath,amsfonts,amssymb}
+\usepackage{bm}
+\usepackage{theorem}
+\usepackage{stmaryrd}
+
+% ==========================================
+%%% Graphics
+\usepackage{graphics}
+\ifpdf
+\usepackage[pdftex]{graphicx}
+\else
+\usepackage[ps2pdf]{graphicx}
+\fi
+\graphicspath{{figs/}}
+
+% ==========================================
+% bib
+\usepackage{natbib}
+%\bibliographystyle{abbrvnat}
+\bibliographystyle{plainnat}
+
+%\bibliographystyle{plain}
+
+% http://merkel.zoneo.net/Latex/natbib.php?lang=fr
+
+% ==========================================
+%% PDF configuration
+% http://www.p-joeckel.de/pdflatex/)
+% http://ringlord.com/publications/latex-pdf-howto/
+
+%%%% Options of pdflatex
+\ifpdf
+\DeclareGraphicsExtensions{.pdf,.jpg,.mps,.png,.eps}
+\usepackage[pdftex, %
+ bookmarks = true,% % Signets
+ bookmarksnumbered = true,% % Signets numérotés
+ pdfpagemode = None,% % Signets/vignettes fermé à l'ouverture
+ pdfstartview = FitH,% % La page prend toute la largeur
+ pdfpagelayout = SinglePage,% Vue par page
+ colorlinks = true,% % Liens en couleur
+ urlcolor = magenta,% % Couleur des liens externes
+ pdfborder = {0 0 0}% % Style de bordure : ici, pas de bordure
+ ]{hyperref}% % Utilisation de HyperTeX
+%\usepackage[pdftex,bookmarks,pagebackref]{hyperref}
+\pdfadjustspacing=1
+
+%%%% Options for latex + dvips -Ppdf + ps2pdf
+\else
+\DeclareGraphicsExtensions{.eps,.ps}
+\usepackage[ps2pdf,bookmarks,pagebackref]{hyperref}
+\fi
+
+%%%% Commun options
+\hypersetup{
+ linktocpage,%
+ %%------------- Color Links ------------------------------
+ colorlinks=true,%
+ linkcolor=myred,%
+ citecolor=mydarkblue,%
+ urlcolor=myblue,%
+ menucolor=red,%
+ %%------------- Doc Info ---------------------------------
+ pdftitle={The Black Box Toolkit},%
+ pdfauthor={},%
+ %%------------ Doc View ----------------------------------}
+ pdfhighlight=/P,%
+ bookmarksopen=false,%
+ plainpages=false,
+ pdfpagemode=None}
+
+\hyperbaseurl{http://www.creatis.insa-lyon.fr/creatools/}
+
+\definecolor{myblue}{rgb}{0,0,0.7}
+\definecolor{myred}{rgb}{0.7,0,0}
+\definecolor{mygreen}{rgb}{0,0.7,0}
+\definecolor{mydarkblue}{rgb}{0,0,0.5}
+
+% ==========================================
+\def\UserProyectVersion{@PROJECT_VERSION@}
+\def\UserProyectVersionDate{@PROJECT_VERSION_DATE@}
+\def\todo{\scriptsize\fbox{\bf TODO !!}\normalsize}
+\def\x{\bm{x}}
+\def\UserProyect{{\xspace}$\texttt{@PROYECT_NAME@}$ }
+
+\def\bb{{\xspace}$\texttt{bb}$ }
+%\def\bbp{{\xspace}$\texttt{bbp}$\xspace}
+
+\def\cmake{{\xspace}$\texttt{cmake}$ }
+
+\def\C{{\xspace}$\texttt{C}$ }
+\def\CPP{{\xspace}$\texttt{C++}$ }
+
+\def\xml{{\xspace}$\texttt{xml}$ }
+
+
+\def\lin{{\xspace}\textit{Linux} }
+\def\win{{\xspace}\textit{Windows} }
+
+
+\def\UserDocumentGuide [#1]{
+\begin{center}
+{\Large \UserProyect}
+\vspace{1cm}
+
+{\Huge #1}
+\vspace{1cm}
+
+\UserProyect version \UserProyectVersion \hspace{2mm}(\UserProyectVersionDate)
+\vspace{0.5cm}
+
+Generated on : \today
+\vspace{0.5cm}
+
+Eduardo D\'avila, Jean-Pierre Roux, Juan Carlos Prieto
+\vspace{0.3cm}
+
+CREATIS-LRMN, Centre de Recherche en Imagerie M\'edicale \\
+CNRS UMR 5220, INSERM U620, INSA Lyon, Universit\'e Claude-Bernard Lyon 1
+
+\end{center}
+\tableofcontents
+\listoftables
+\listoffigures
+}
+
+% ==========================================
+%%% mode: latex
+%%% TeX-master: "UserProyectUsersGuide"
+%%% End:
+
+\newcounter{Ctrfile}
+%% env
+\newenvironment{file}[1]
+{
+\bigskip\hrule\smallskip
+\stepcounter{Ctrfile}
+\textbf{File #1}
+%\hspace{0.2cm}\arabic{Ctrfile}\hfill \textbf{#1}
+\smallskip\hrule\medskip
+%\algocaption{#1}
+}
+{
+\hrule\smallskip
+\hfill\textbf{End of file}
+\smallskip\hrule
+\bigskip
+}
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>Help Contents - User Proyect @BBTK_VERSION@ </title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<H1>Help Contents</H1>
+
+<a href="http://www.creatis.insa-lyon.fr/software/public/creatools/bbtk/v0_9_2/doc/" target="information">BBTK Doc</a><br>
+
+</body>
+</html>
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="refresh" content="0; url=bbtkWebSite/menu.html" />
+<title>Redirection</title>
+<meta name="robots" content="noindex,follow" />
+</head>
+
+<body>
+<p><a href="template_WebSite/menu.html">Redirection</a></p>
+</body>
+</html>
--- /dev/null
+
+<html>
+<head>
+<title>User Project</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<frameset cols="100,499" rows="*">
+ <frame src="template_WebSite/menu.html">
+ <frame name="information" src="template_WebSite/home.html">
+</frameset>
+<noframes>
+<body bgcolor="#FFFFFF" text="#000000">
+</body>
+</noframes>
+</html>
--- /dev/null
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "Configuring User html doc")
+
+# Configure & install images
+USER_DOC_INSTALL_IMAGES(template_WebSite)
+
+# Configure html pages for build tree and install
+FILE(GLOB HTML_PAGES "." "*.html")
+FOREACH(page ${HTML_PAGES})
+ GET_FILENAME_COMPONENT(filename "${page}" NAME)
+ CONFIGURE_FILE(
+ ${page}
+ ${${PROJECT_NAME}_DOC_BUILD_PATH}/template_WebSite/${filename}
+ @ONLY
+ )
+ # Install
+ INSTALL(
+ FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/template_WebSite/${filename}
+ DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/template_WebSite
+ )
+ENDFOREACH(page)
+
+
+MESSAGE(STATUS "=======================================")
--- /dev/null
+* menu.html : the menu used by ../index.html.in and ../index-no-frame
+* home.html : the home page used by ../index.html.in and ../index-no-frame
+* install.html : install instructions
+* download.html : download instructions (obsolete)
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Home</title>
+</head>
+<body>
+<div style="text-align: center;">
+<big><span style="font-weight: bold;">
+User Project documentation<br>
+</big></span><br>
+
+<div style="text-align: left;">Follow <a
+ href="./install.html">this link</a> User Install Instructions<br>
+<br>
+Read the <a href="../bbtkUsersGuide/bbtkUsersGuide.html">users' guide</a> if you
+want to learn how to use bbtk development environnement (bbStudio) and
+how to write black box scripts.<br>
+<br>
+Read the <a
+ href="../bbtkPackageDevelopersGuide/bbtkPackageDevelopersGuide.html">package
+developers' guide</a> to learn how to create your own black boxes and
+packages.<br>
+<br>
+Developers might also be interested in <a
+ href="../doxygen/bbtk/main.html">doxygen documentation</a> of the
+source code of bbtk library.<br>
+<br>
+The boxes lists contain the boxes of bbtk <a
+ href="../bbdoc/index-package.html">core packages</a> (std,wx,vtk...)
+for current version.<br>
+<br>
+All this documentation is also available from bbStudio.<br>
+<br>
+<br>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>User Project Documentation</title>
+</head>
+<body>
+<div style="text-align: center;"><big> build instructions</big><br>
+<div style="text-align: left;">
+<ol id="mozToc">
+<!--mozToc h1 1 h2 2 h3 3 h4 4 h5 5 h6 6-->
+ <li><a href="#mozTocId820435">Linux</a>
+ <ol>
+ <li><a href="#mozTocId745245">Requirements</a></li>
+ <li><a href="#mozTocId775505">Known working configurations</a></li>
+ <li><a href="#mozTocId410988">Install from sources</a></li>
+ </ol>
+ </li>
+ <li><a href="#mozTocId777026">Windows </a>
+ <ol>
+ <li><a href="#mozTocId761363">Requirements</a></li>
+ <li><a href="#mozTocId681503">Known working configurations</a></li>
+ <li><a href="#mozTocId618885">Steps </a></li>
+ </ol>
+ </li>
+ <li><a href="#mozTocId915759">CMake build options</a></li>
+</ol>
+<hr style="width: 100%; height: 2px;"></div>
+</div>
+<h1><a class="mozTocH2" name="mozTocId820435"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Linux</span></small></small></big></big></big></h1>
+<h2><a class="mozTocH3" name="mozTocId745245"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Requirements</span></small></small></big></big></big></h2>
+<ul>
+ <li><span style="font-weight: normal;">cmake >= 2.4.6</span></li>
+ <li>crea >= 0.2.0<br>
+ <span style="font-weight: normal;"></span></li>
+ <li><span style="font-weight: normal;">wxWidgets >=
+2.6.3</span><span style="font-weight: normal;"> </span></li>
+ <li><span style="font-weight: normal;">optional : <br>
+ </span></li>
+ <ul>
+ <li><span style="font-weight: normal;">L<sub>a</sub>T<sub>e</sub>X
+to generate the pdf guides</span><br>
+ <span style="font-weight: normal;"></span></li>
+ <li><span style="font-weight: normal;">tth to generate the html
+guides<br>
+ </span></li>
+ <li><span style="font-weight: normal;">itk to compile packages itk,
+itkvtk</span></li>
+ <li><span style="font-weight: normal;">vtk to compile package vtk,
+wxvtk</span></li>
+ <li><span style="font-weight: normal;">doxygen to build the sources
+documentation</span></li>
+ <li><span style="font-weight: normal;">graphviz/dot to generate the
+packages doc with pipeline graphs<br>
+ </span></li>
+ <ul>
+ </ul>
+ </ul>
+</ul>
+<big><big><big><small><small></small></small></big></big></big>
+<h2><a class="mozTocH3" name="mozTocId775505"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Known working configurations</span></small></small></big></big></big></h2>
+<big><big><big><small><small><span style="font-weight: normal;"> <small>
+- gcc: <br>
+ 4.3.0 (Fedora Core 9)<br>
+</small></span></small></small></big></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+4.2.0 (OpenSuse 10.3)<br style="font-weight: normal;">
+</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+4.1.2 20070925 (Red Hat 4.1.2-33)<br>
+</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"> </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"> 4.1.2
+20070626 (Red Hat 4.1.2-13)<br>
+</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+ 4.1.1 20070105 (Red Hat 4.1.1-51)</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+ 4.0.2 20051125 (Red Hat 4.0.2-8)</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"> </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+- cmake: </span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">
+ 2.4-patch 6</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">
+- wxGTK-devel: </span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"> </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+2.8.6</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"> </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+2.6.3</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"> </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+- InsightToolkit:</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">
+ 3.4</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+ 3.2</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+ 2.8.1-5</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">
+- vtk:</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">
+ 5.0.3-1</span></small></small></big></big><big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></big><br>
+<h2><a class="mozTocH3" name="mozTocId410988"></a><big><span
+ style="font-weight: normal;">Install from sources<span
+ style="font-weight: bold;"></span></span></big></h2>
+<span style="font-weight: normal;"> Uncompress the
+archive or checkout the source from the cvs repository<br>
+ In the parent folder of the bbtk sources type :<br>
+ > mkdir bbtkbin; cd bbtkbin<br>
+ > ccmake ../bbtk<br>
+ <span style="font-style: italic;">Check the desired
+options. See </span><a style="font-style: italic;"
+ href="#mozTocId915759">CMake build options</a><span
+ style="font-style: italic;"> for a description. <br>
+<br>
+</span></span><span style="font-weight: normal;"><span
+ style="font-weight: bold;"><span style="color: rgb(204, 102, 0);">==>
+IMPORTANT NOTE </span>:</span><br>
+<br>
+</span><span style="font-weight: normal;"><span
+ style="font-style: italic;"></span><span style="font-style: italic;">
+Type 'c' <span style="color: rgb(204, 102, 0);">many
+times</span> until no area is flagged with a '*' and three times more
+then type 'g', to generate.</span><br>
+ > make<br>
+ > sudo make install<br>
+ Enjoy !<br>
+<br>
+</span>
+<h2><a class="mozTocH3" name="mozTocId410988"></a><big><span
+ style="font-weight: normal;">Uninstall<br>
+</span></big></h2>
+ You can run <span style="font-style: italic;">bbtk-uninstall.sh</span>
+as root.<br>
+<span style="font-weight: bold;"> WARNING : </span><br
+ style="font-weight: bold;">
+ This is a brute force **UNSAFE**
+uninstaller which removes all files and folders starting with 'bb' in :<br>
+ INSTALL-PREFIX/bin <br>
+ INSTALL-PREFIX/lib <br>
+ INSTALL-PREFIX/include<br>
+ INSTALL-PREFIX/share/bbtk<br>
+ However it lists the files found and prompts you
+before proceeding...<br>
+<br>
+<br>
+<hr style="width: 100%; height: 2px;">
+<h1><a class="mozTocH2" name="mozTocId777026"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Windows </span></small></small></big></big></big></h1>
+<big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>
+<h2><a class="mozTocH3" name="mozTocId761363"></a><big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></big><big><big><big><small><small><span
+ style="font-weight: normal;">Requirements</span></small></small></big></big></big></h2>
+<h3>Mandatory</h3>
+<ul>
+ <li><big><span style="font-weight: normal;"><small>.net V7</small> <small>to
+compile the kernel and the packages</small></span></big><br>
+ <big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">CMake
+2.4 patch 6</span></small></small></big></big><big
+ style="font-weight: normal;"><big><big><small><small><small> to
+generate the project file for .net</small></small></small></big></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">wxWidgets-2.8.5
+to
+build graphical interface boxes</span></small></small></big></big></li>
+</ul>
+<h3><big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>Optional</h3>
+<ul>
+ <li><big><big><small><small><span style="font-weight: normal;">VTK
+5.0.3 source to build vtk boxes </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">InsightToolkit-3.4.0
+to build itk boxes</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">Miktex
+(TeX compiler
+and TeX-Pdf
+translation tool) to build documentations</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">TTH (TeX
+to HTML translation
+tool) to build html documentations</span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">Doxygen
+to build the
+code documentations</span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">Graphviz
+to generate the
+graphs in doxygen doc and black box pipelines graphs</span></small></small></big></big>
+ <br>
+ </li>
+</ul>
+<big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>
+<h2><a class="mozTocH2" name="mozTocId681503"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Known working configurations</span></small></small></big></big></big></h2>
+<ul style="font-weight: bold;">
+ <li><big><big><small><small><span style="font-weight: normal;">.net V7<br>
+ </span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">cmake</span></small></small></big></big></li>
+ <ul>
+ <li><big><big><small><small><span style="font-weight: normal;">2.4
+patch 6</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ </ul>
+ <li><big><big><small><small><span style="font-weight: normal;">wxWidgets</span></small></small></big></big></li>
+ <ul>
+ <li><big><big><small><small><span style="font-weight: normal;">2.8.5</span></small></small></big></big></li>
+ </ul>
+ <li><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">InsightToolkit</span></small></small></big></big></li>
+ <ul>
+ <li><big style="font-weight: normal;"><big><small><small><span
+ style="font-weight: normal;">3.4.0</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ </ul>
+ <li><big><big><small><small><span style="font-weight: normal;">vtk</span></small></small></big></big></li>
+ <ul>
+ <li><big><big><small><small><span style="font-weight: normal;">5.0.3</span></small></small></big></big><small><span
+ style="font-weight: bold;">
+ </span></small><br>
+ </li>
+ </ul>
+</ul>
+<big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>
+<h2><a class="mozTocH2" name="mozTocId618885"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Steps<br>
+</span></small></small></big></big></big></h2>
+<big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>
+<big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big>
+<ul>
+ <ul>
+ <li><big><big><small><small><span style="font-weight: normal;">Uncompress
+the sources in <span style="font-style: italic;">yourSourceDirectory</span>
+or checkout the source from the cvs </span></small></small></big></big><span
+ style="font-weight: normal;"></span></li>
+ <li><big><big><small><small><span style="font-weight: normal;">Create
+the build folder </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"><span style="font-style: italic;">yourSourceDirectory</span>\bin</span></small></small></big></big><span
+ style="font-weight: normal;"></span></li>
+ <li><span style="font-weight: normal;">Drag and drop the file </span><big><big><small><small><span
+ style="font-weight: normal;"><span style="font-style: italic;">yourSourceDirectory</span></span></small></small></big></big><span
+ style="font-weight: normal;">\CMakeLists.txt on the CMakeSetup icon</span><big
+ style="font-weight: bold;"><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ <ul>
+ <li><big style="font-weight: bold;"><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><span
+ style="font-weight: normal;">Check the desired
+options for the build. See </span><a style="font-weight: normal;"
+ href="install.html#mozTocId915759">CMake build options</a><span
+ style="font-weight: normal;"> for a description</span></li>
+ <li><span style="font-weight: normal;"><br>
+ </span></li>
+ </ul>
+ <li><big><big><small><small><span style="font-weight: normal;"><span
+ style="font-weight: bold;">To build with WxWidgets</span> : the .ddl
+must be accessible; either their names are in system PATH variable,
+either copy
+them in the current bin directory (bin/Debug or bin/Release, depending
+whether you compiled in Debug or Release mode) </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;"><span
+ style="font-weight: bold;">To build with VTK</span> : </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">the .ddl must be accessible; either their
+names are in system PATH variable, either copy
+them in the current bin directory (bin/Debug or bin/Release, depending
+whether you compiled in Debug or Release mode)</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;"><span
+ style="font-weight: bold;">To
+build with ITK</span> : </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">the .ddl must be accessible; either their
+names are in system PATH variable, either copy
+them in the current bin directory (bin/Debug or bin/Release, depending
+whether you compiled in Debug or Release mode)</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">Open
+the solution created by cmake : </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"><span style="font-style: italic;">ourSourceDirectory</span>\bin</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">\BBTK.sln and build
+the entire solution.</span></small></small></big></big></li>
+ <ul>
+ <li><big><big><small><small><span style="font-weight: normal;">If
+you get dll error messages close the message(s) and after it's
+done, rebuild the complete solution.</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+ <li><big><big><small><small><span style="font-weight: normal;">If
+you get package intallation messages for missing and required
+files like <span style="font-style: italic;">fileName.sty</span>,
+install them all.</span></small></small></big></big></li>
+ <li style="font-weight: normal;">The packages correspond to
+on-line complements that the MikTex program
+needs to build the BBTK documentation.</li>
+ </ul>
+ </ul>
+</ul>
+Enjoy !<br>
+<div style="text-align: left;">
+<hr style="width: 100%; height: 2px;"></div>
+<div style="text-align: left;">
+<h1><a class="mozTocH1" name="mozTocId915759"></a>CMake build options</h1>
+<span style="font-weight: normal;">The options in grey only appear if
+the last non grey option is set to
+ON (e.g. itk_IMAGE_DIM_2 and the following ones in grey only appear if
+BUILD_BBTK_PACKAGE_itk is ON).<br>
+The variables in dark grey and italics are NOT options but are
+automatically set by cmake according to the options selected. In
+particular the variables 'USE_<span style="font-style: italic;">something</span>'
+indicate the dependencies on external libraries or utilities.<br
+ style="font-weight: normal;">
+</span><span style="font-weight: normal;">Advanced options are not
+shown
+here... </span><br>
+<br>
+<table style="width: 1274px; height: 1762px;" border="1" cellpadding="2"
+ cellspacing="2">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">Option</span><br>
+ </td>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">Explaination</span><br>
+ </td>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">Default</span></td>
+ </tr>
+ <tr>
+ <td>--BUILD_ALL<br>
+ </td>
+ <td>Set to ON to build all the components of the toolkit<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BBTK_COMPILE_DEBUG_MESSAGES</td>
+ <td style="vertical-align: top;">Compile debug messages in bbtk ?<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BBTK_COMPILE_ERROR_MESSAGES</td>
+ <td style="vertical-align: top;">Compile error messages in bbtk ?<br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BBTK_COMPILE_MESSAGES</td>
+ <td style="vertical-align: top;">Compile normal messages in bbtk ?<br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BBTK_COMPILE_WARNING_MESSAGES</td>
+ <td style="vertical-align: top;">Compile warning messages in bbtk
+?<br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BBTK_USE_SHIPPED_BOOST<br>
+ </td>
+ <td style="vertical-align: top;">Use the boost C++ library
+provided with bbtk ?<br>
+If not set you need to have boost installed <br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BBTK_USE_WXWIDGETS<br>
+ </td>
+ <td style="vertical-align: top;">Build with the wxWidgets library
+? <br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td>BUILD_APPLICATIONS<br>
+ </td>
+ <td> Build bbtk applications : development studio (bbStudio),
+interpreter
+(bbi), xml to C++ code (bbfy), etc. ?<br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td>BUILD_BBS_APPLI_BINARIES<br>
+ </td>
+ <td>Build executables for all bbs applications of all packages ?<br>
+If set will compile all bbs of folder appli of all packages, using bbc<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_DOC<br>
+ </td>
+ <td style="vertical-align: top;">Build bbtk documentations ?<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">BUILD_BBTK_DOC_DOXYGEN<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">Build
+doxygen documentation for bbtk kernel?<br>
+Requires doxygen<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">BUILD_BBTK_DOC_GUIDES_HTML<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">Build
+html versions of the guides ?<br>
+Requires latex, pdftex, tth<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">BUILD_BBTK_DOC_GUIDES_PDF<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">Build
+pdf versions of the guides ?<br>
+Requires latex, pdftex<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">BUILD_BBTK_DOC_PACKAGE<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">Build
+packages html documentations ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_demo<br>
+ </td>
+ <td style="vertical-align: top;">Build the package 'demo' ?<br>
+Requires : itk, vtk<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td>BUILD_BBTK_PACKAGE_itk<br>
+ </td>
+ <td>Build the package 'itk' ?<br>
+Requires : itk<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"> BUILD_BBTK_PACKAGE_itkvtk<br>
+ </td>
+ <td style="vertical-align: top;">Build the package 'itkvtk ?<br>
+Requires : itk, vtk<br>
+ </td>
+ <td style="vertical-align: top;">OFF</td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_std<br>
+ </td>
+ <td style="vertical-align: top;">Build the package 'std' ?</td>
+ <td style="vertical-align: top;">ON</td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_toolsbbtk<br>
+ </td>
+ <td style="vertical-align: top;">Build the package 'toolsbbtk' ?</td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_vtk <br>
+ </td>
+ <td style="vertical-align: top;">Build the package 'vtk' ?<br>
+Requires : vtk<br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_wx<br>
+ </td>
+ <td style="vertical-align: top;">Build the package 'wx' ?<br>
+Requires : wxWidgets<br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_wxvtk<br>
+ </td>
+ <td style="vertical-align: top;">Build the package 'wxvtk' ?<br>
+Requires : wxWidgets, vtk<br>
+ </td>
+ <td style="vertical-align: top;">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_DIM_2<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of dimension 2 ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_DIM_3</td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of dimension 3 ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_DIM_4 </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of dimension 4 ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_TYPE_CHAR<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type char ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_TYPE_DOUBLE</td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type double ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_TYPE_FLOAT<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type float ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_TYPE_INT<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type int ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_TYPE_SHORT<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type short ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_TYPE_UCHAR<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type unsigned char ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_TYPE_UINT<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type unsigned int ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">
+itk_IMAGE_TYPE_USHORT<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type unsigned short ?<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_demo</td>
+ <td style="vertical-align: top;">Build the package 'demo' ?<br>
+Requires : <span style="font-weight: bold;">ALL</span> the other
+packages<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td>BUILD_BBTK_PACKAGE_itkvtk<br>
+ </td>
+ <td>Build the package 'itkvtk' ?<br>
+Requires : itk, vtk<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td>BUILD_BBTK_PACKAGE_std<br>
+ </td>
+ <td>Build the package 'std ? </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_toolsbbtk</td>
+ <td style="vertical-align: top;">Build the package 'toolsbbtk' ?</td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td>BUILD_BBTK_PACKAGE_vtk<br>
+ </td>
+ <td>Build the package 'vtk' ?<br>
+Requires : vtk<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td>BUILD_BBTK_PACKAGE_wx<br>
+ </td>
+ <td>Build the package 'wx' ?<br>
+Requires : wxWidgets<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td>BUILD_BBTK_PACKAGE_wxvtk<br>
+ </td>
+ <td>Build the package 'wxvtk' ?<br>
+Requires : wxWidgets, vtk<br>
+ </td>
+ <td style="vertical-align: top;">OFF<br>
+ </td>
+ </tr>
+ <tr>
+ <td>CMAKE_BUILD_TYPE<br>
+ </td>
+ <td>Set to "Debug" or "Release" <br>
+ </td>
+ <td style="vertical-align: top;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td>CMAKE_INSTALL_PREFIX<br>
+ </td>
+ <td> Set the install folder<br>
+ </td>
+ <td style="vertical-align: top;">/usr/local<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">EXECUTABLE_OUTPUT_PATH<br>
+ </td>
+ <td style="vertical-align: top;">Single output directory for
+building all the executables<br>
+ </td>
+ <td style="vertical-align: top;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">LIBRARY_OUTPUT_PATH</td>
+ <td style="vertical-align: top;">Single output directory for
+building all the libraries</td>
+ <td style="vertical-align: top;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_BOOST<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when boost C++ library is needed with the choices made<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_DOXYGEN<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when doxygen is needed with the choices made</td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_ITK<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when ITK library is needed with the choices made</td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_LATEX<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when LaTeX is needed with the choices made</td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_TTH<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when tth is needed with the choices made</td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_VTK<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when VTK library is needed with the choices made</td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_WXWIDGETS<br>
+ </td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when wxWidgets library is needed with the choices made</td>
+ <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Home</title>
+</head>
+<body>
+<div style="text-align: center;">
+<big><span style="font-weight: bold;">
+User Project documentation<br>
+</big></span><br>
+
+<div style="text-align: left;">Follow <a
+ href="./install.html" target="information">this link</a> User Install Instructions<br>
+<br>
+Read the <a href="../UserDocumentation/UserDocumentation.html" target="information">users' guide</a> To find out more about this application.<br>
+<br>
+Or read read the pdf file with the documentation <a
+ href="../UserDocumentation/UserDocumentation.pdf" target="information"> (pdf) </a> <br>
+<br>
+The futures developers in this project might be also interested in the <a
+ href="../doxygen/index.html" target="information">doxygen documentation</a> of the
+source code of bbtk library.<br>
+
+<br>
+<br>
+</div>
+</body>
+</html>
--- /dev/null
+#-----------------------------------------------------------------------------
+# CPACK+NSIS PACKAGING
+#-----------------------------------------------------------------------------
+
+#---Documentation-------------
+#http://www.cmake.org/Wiki/CMake:Packaging_With_CPack
+#http://www.cmake.org/Wiki/CMake:CPackConfiguration
+#http://www.cmake.org/Wiki/CMake:Install_Commands
+
+
+INCLUDE(InstallRequiredSystemLibraries)
+
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME} - CREATIS-LRMN")
+SET(CPACK_PACKAGE_VENDOR "CREATIS")
+SET(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.txt")
+SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
+SET(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_MAJOR_VERSION})
+SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_MINOR_VERSION})
+SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_BUILD_VERSION})
+
+
+#SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools\\\\${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
+
+
+
+IF(WIN32)
+ SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools\\\\${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
+ELSE(WIN32)
+ SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools/${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
+ENDIF(WIN32)
+
+
+
+IF(WIN32 AND NOT UNIX)
+ # There is a bug in NSI that does not handle full unix paths properly. Make
+ # sure there is at least one set of four (4) backlasshes.
+#EED SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/kernel/install/gnome/bbi-icon2.bmp")
+# SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/BBI_EXE.exe")
+ SET(CPACK_NSIS_DISPLAY_NAME ${PROJECT_NAME})
+ SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/site/creatools/${PROJECT_NAME}")
+ SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/site/creatools/${PROJECT_NAME}")
+ SET(CPACK_NSIS_CONTACT "info-dev@creatis.insa-lyon.fr")
+ SET(CPACK_NSIS_MODIFY_PATH ON)
+
+ SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
+ # NSIS code ..
+ ")
+
+ SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
+ # NSIS code ...
+ ")
+
+
+
+ELSE(WIN32 AND NOT UNIX)
+# SET(CPACK_STRIP_FILES "bin/bbi")
+ SET(CPACK_SOURCE_STRIP_FILES "")
+ENDIF(WIN32 AND NOT UNIX)
+#SET(CPACK_PACKAGE_EXECUTABLES "TestWxGimmickDialog" "Gimmick!")
+
+
+INCLUDE(CPack)
+
+
+
+
+IF(EXWIN32)
+
+OPTION(STANDALONE_INSTALLER_${PROJECT_NAME} "Install and add to installer all dlls needed, including from external toolkits (wx,itk,vtk)?" OFF)
+
+IF(BBTK_STANDALONE_INSTALLER)
+ STRING(REGEX REPLACE "\\\\" "/" WINDIR "$ENV{WINDIR}")
+# INSTALL( FILES ${WINDIR}/system32/msvcp71d.dll DESTINATION bin/ )
+# INSTALL( FILES ${WINDIR}/system32/msvcr71d.dll DESTINATION bin/ )
+
+ IF(USE_VTK)
+ SET(VTK_BIN_DIR ${VTK_DIR}/../../bin )
+
+ FILE(GLOB LST_FILE_VTKDLL "${VTK_BIN_DIR}/*.dll")
+ FOREACH( iLST ${LST_FILE_VTKDLL} )
+ INSTALL(
+ FILES ${iLST}
+ DESTINATION bin/
+ )
+ ENDFOREACH(iLST)
+ ENDIF(USE_VTK)
+
+ IF(USE_ITK)
+ INSTALL( FILES ${ITK_DIR}/bin/ITKCommon.dll DESTINATION bin/ )
+ ENDIF(USE_ITK)
+
+ IF(USE_WXWIDGETS)
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_xrc_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_richtext_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_qa_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_media_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_html_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_gl_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_core_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_aui_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_adv_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxbase28d_xml_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxbase28d_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxbase28d_odbc_vc_custom.dll DESTINATION bin/ )
+ INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxbase28d_net_vc_custom.dll DESTINATION bin/ )
+ ENDIF(USE_WXWIDGETS)
+ENDIF(BBTK_STANDALONE_INSTALLER)
+
+## Use ...
+
+
+ENDIF(EXWIN32)
--- /dev/null
+# Add a SUBDIRS command for each of your libraries
+# SUBDIRS(MyLib1)
+SUBDIRS(EditorGraphicBBS)
+
--- /dev/null
+SUBDIRS(bbsKernelEditorGraphic)
+SUBDIRS(bbsVtkGUIEditorGraphic)
+SUBDIRS(bbsWxGUIEditorGraphic)
\ No newline at end of file
--- /dev/null
+#
\ No newline at end of file
--- /dev/null
+#
\ No newline at end of file
--- /dev/null
+
+
+FILE(GLOB bbsWxGUIEditorGraphic_CXX_SOURCES "." "*.cxx")
+FILE(GLOB bbsWxGUIEditorGraphic_H_SOURCES "." "*.h")
+
+INCLUDE_DIRECTORIES(../bbsKernelEditorGraphic)
+INCLUDE_DIRECTORIES(../bbsVtkGUIEditorGraphic)
+
+ADD_LIBRARY(bbsWxGUIEditorGraphic
+ ${bbsWxGUIEditorGraphic_CXX_SOURCES}
+ ${bbsWxGUIEditorGraphic_H_SOURCES} )
+
+#TARGET_LINK_LIBRARIES(bbsWxGUIEditorGraphic bbtk )
--- /dev/null
+/*=========================================================================
+ Program: bbtk
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+* This software is governed by the CeCILL-B license under French law and
+* abiding by the rules of distribution of free software. You can use,
+* modify and/ or redistribute the software under the terms of the CeCILL-B
+* license as circulated by CEA, CNRS and INRIA at the following URL
+* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+* or in the file LICENSE.txt.
+*
+* As a counterpart to the access to the source code and rights to copy,
+* modify and redistribute granted by the license, users are provided only
+* with a limited warranty and the software's author, the holder of the
+* economic rights, and the successive licensors have only limited
+* liability.
+*
+* The fact that you are presently reading this means that you have had
+* knowledge of the CeCILL-B license and that you accept its terms.
+* ------------------------------------------------------------------------ */
+
+/**
+ * \file
+ * \brief Class bbtk::WxInterfaceEditorGraphicBBS .
+ */
+
+
+
+#include "bbtkwxGUIEditorGraphicBBS.h"
+#include "bbtkwxGUIEditorGraphicContainer.h"
+
+#include <bbtkWxGUIPackageBrowser2.h>
+
+
+namespace bbtk
+{
+
+
+ //=========================================================================
+ wxGUIEditorGraphicBBS::wxGUIEditorGraphicBBS(wxFrame *parent)
+ : wxFrame(parent, -1, _T("bbEditor"),wxDefaultPosition, wxSize(1200,800))
+ {
+ m_mgr.SetManagedWindow(this);
+ editorgraphiccontainer = new wxGUIEditorGraphicContainer(this);
+
+ wxPanel *mWxGUIGrapphicEditorPanel = new wxPanel(this,-1);
+ wxPanel *mWxGUIBoxBrowserPanel = new wxPanel(this,-1);
+ wxPanel *mWxGUIConfigurationGraphicEditorPanel = new wxPanel(this,-1);
+
+ mWxGUIGrapphicEditorPanel->SetBackgroundColour( wxColor(255,0,0) );
+ mWxGUIBoxBrowserPanel->SetBackgroundColour( wxColor(0,255,0) );
+ mWxGUIConfigurationGraphicEditorPanel->SetBackgroundColour( wxColor(255,0,255) );
+
+ //
+ m_mgr.AddPane(mWxGUIGrapphicEditorPanel,
+ wxAuiPaneInfo().Name(wxT("graphic_editor_content"))
+ .Caption(wxT("Graphic editor"))
+ .MinimizeButton(true)
+ .MaximizeButton(true)
+ .Center()
+ .MinSize(wxSize(100,100))
+ );
+
+ m_mgr.AddPane(mWxGUIBoxBrowserPanel,
+ wxAuiPaneInfo().Name(wxT("box_browser_content"))
+ .Caption(wxT("Box browser"))
+ .MinimizeButton(true)
+ .MaximizeButton(true)
+ .Right()
+ .Layer(2)
+ .MinSize(wxSize(400,100))
+ );
+
+ m_mgr.AddPane(mWxGUIConfigurationGraphicEditorPanel,
+ wxAuiPaneInfo().Name(wxT("configuration_graphic_editor_content"))
+ .Caption(wxT("Messages"))
+ .MinimizeButton(true)
+ .MaximizeButton(true)
+ .Bottom()
+ .MinSize(wxSize(100,100))
+ );
+
+ SetAutoLayout(true);
+ Layout();
+ m_mgr.Update();
+
+ WxGUIPackageBrowser2 *bb= new WxGUIPackageBrowser2(this);
+
+ }
+
+ //=========================================================================
+ wxGUIEditorGraphicBBS::~wxGUIEditorGraphicBBS()
+ {
+ delete editorgraphiccontainer;
+ m_mgr.UnInit();
+ }
+ //=========================================================================
+
+
+
+} // EO namespace bbtk
+
+// EOF
+
--- /dev/null
+/*=========================================================================
+ Program: bbtk
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+* This software is governed by the CeCILL-B license under French law and
+* abiding by the rules of distribution of free software. You can use,
+* modify and/ or redistribute the software under the terms of the CeCILL-B
+* license as circulated by CEA, CNRS and INRIA at the following URL
+* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+* or in the file LICENSE.txt.
+*
+* As a counterpart to the access to the source code and rights to copy,
+* modify and redistribute granted by the license, users are provided only
+* with a limited warranty and the software's author, the holder of the
+* economic rights, and the successive licensors have only limited
+* liability.
+*
+* The fact that you are presently reading this means that you have had
+* knowledge of the CeCILL-B license and that you accept its terms.
+* ------------------------------------------------------------------------ */
+
+
+
+/**
+ * \file
+ * \brief Class bbtk::BlackBox : abstract black-box interface.
+ */
+
+/**
+ * \class bbtk::WxGUIEditorGraphicBBS
+ * \brief
+ */
+
+#ifndef __WxGUIEditorGraphicBBS_h__
+#define __WxGUIEditorGraphicBBS_h__
+
+#include <wx/frame.h>
+#include <wx/aui/aui.h>
+
+
+namespace bbtk
+{
+
+ class wxGUIEditorGraphicContainer;
+
+ class wxGUIEditorGraphicBBS : public wxFrame
+ {
+ public:
+ wxGUIEditorGraphicBBS(wxFrame *parent );
+ ~wxGUIEditorGraphicBBS();
+ private:
+ wxAuiManager m_mgr;
+ wxGUIEditorGraphicContainer *editorgraphiccontainer;
+
+ protected:
+
+ };
+
+
+}
+// namespace bbtk
+#endif
+
--- /dev/null
+/*=========================================================================
+ Program: bbtk
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+* This software is governed by the CeCILL-B license under French law and
+* abiding by the rules of distribution of free software. You can use,
+* modify and/ or redistribute the software under the terms of the CeCILL-B
+* license as circulated by CEA, CNRS and INRIA at the following URL
+* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+* or in the file LICENSE.txt.
+*
+* As a counterpart to the access to the source code and rights to copy,
+* modify and redistribute granted by the license, users are provided only
+* with a limited warranty and the software's author, the holder of the
+* economic rights, and the successive licensors have only limited
+* liability.
+*
+* The fact that you are presently reading this means that you have had
+* knowledge of the CeCILL-B license and that you accept its terms.
+* ------------------------------------------------------------------------ */
+
+/**
+ * \file
+ * \brief Class bbtk::wxGUIEditorGraphicContainer .
+ */
+
+
+#include "bbtkwxGUIEditorGraphicContainer.h"
+
+namespace bbtk
+{
+
+
+ //=========================================================================
+ wxGUIEditorGraphicContainer::wxGUIEditorGraphicContainer(wxWindow *parent )
+ {
+ }
+
+ //=========================================================================
+ wxGUIEditorGraphicContainer::~ wxGUIEditorGraphicContainer()
+ {
+ }
+ //=========================================================================
+
+
+
+} // EO namespace bbtk
+
+// EOF
+
--- /dev/null
+/*=========================================================================
+ Program: bbtk
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+* This software is governed by the CeCILL-B license under French law and
+* abiding by the rules of distribution of free software. You can use,
+* modify and/ or redistribute the software under the terms of the CeCILL-B
+* license as circulated by CEA, CNRS and INRIA at the following URL
+* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+* or in the file LICENSE.txt.
+*
+* As a counterpart to the access to the source code and rights to copy,
+* modify and redistribute granted by the license, users are provided only
+* with a limited warranty and the software's author, the holder of the
+* economic rights, and the successive licensors have only limited
+* liability.
+*
+* The fact that you are presently reading this means that you have had
+* knowledge of the CeCILL-B license and that you accept its terms.
+* ------------------------------------------------------------------------ */
+
+
+
+/**
+ * \file
+ * \brief Class bbtk::wxGUIEditorGraphicContainer .
+ */
+
+/**
+ * \class bbtk::wxGUIEditorGraphicContainer
+ * \brief
+ */
+
+#ifndef __wxGUIEditorGraphicContainer_h__
+#define __wxGUIEditorGraphicContainer_h__
+
+#include <wx/window.h>
+
+namespace bbtk
+{
+
+
+ class wxGUIEditorGraphicContainer
+ {
+ public:
+ wxGUIEditorGraphicContainer( wxWindow *parent );
+ ~wxGUIEditorGraphicContainer();
+ private:
+
+ protected:
+
+ };
+
+
+}
+// namespace bbtk
+#endif
+
--- /dev/null
+#----------------------------------------------------------------------------
+# SET THE NAME OF YOUR LIBRARY
+# (Replace 'MyLib' by your own library name)
+
+#############################
+SET ( LIBRARY_NAME MyLib )
+#############################
+
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# CREATES A USER OPTION IN CMAKE
+OPTION ( BUILD_${LIBRARY_NAME} "Build ${LIBRARY_NAME} library ?" ON)
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+IF ( BUILD_${LIBRARY_NAME} )
+#----------------------------------------------------------------------------
+
+ #----------------------------------------------------------------------------
+ # BUILD LIBRARY
+ #----------------------------------------------------------------------------
+
+ #----------------------------------------------------------------------------
+ # LIBRARY HEADERS (TO BE INSTALLED)
+ # EITHER LIST ALL .h, *.txx IN CURRENT DIR USING NEXT LINE:
+
+ FILE(GLOB ${LIBRARY_NAME}_HEADERS "*.h" "*.txx")
+
+ # OR MANUALLY LIST YOUR HEADERS WITH NEXT COMMAND
+ # SET ( ${LIBRARY_NAME}_HEADERS
+ #
+ # )
+ #----------------------------------------------------------------------------
+
+ #----------------------------------------------------------------------------
+ # LIBRARY SOURCES (TO BE COMPILED)
+ # EITHER LIST ALL .cxx, *.cpp, *.cc IN CURRENT DIR USING NEXT LINE:
+
+ FILE(GLOB ${LIBRARY_NAME}_SOURCES *.cxx *.cpp *.cc)
+
+ # OR MANUALLY LIST YOUR FILES WITH NEXT COMMAND (WITHOUT EXTENSION)
+ # SET ( ${LIBRARY_NAME}_SOURCES
+ #
+ # )
+ #----------------------------------------------------------------------------
+
+ #----------------------------------------------------------------------------
+ # LIBRARY DEPENDENCIES (LIBRARIES TO LINK WITH)
+ #
+ # Uncomment the Libraries you need
+ #
+ SET ( ${LIBRARY_NAME}_LINK_LIBRARIES
+ # ${crea_LIBRARIES}
+ # ${WXWIDGETS_LIBRARIES}
+ # ${KWWidgets_LIBRARIES}
+ # ${VTK_LIBRARIES}
+ # ${ITK_LIBRARIES}
+ # ${GDCM_LIBRARIES}
+ # ${BOOST_LIBRARIES}
+
+ # If this library must link against other libraries
+ # Add here any extra Library you need
+
+ )
+ #----------------------------------------------------------------------------
+
+ #----------------------------------------------------------------------------
+ # MACRO WHICH DOES ALL THE JOB : BUILD AND INSTALL
+
+ # The default is to create a Dynamic Library.
+ # if you need to create a static library
+ # comment out the following line :
+
+ CREA_ADD_LIBRARY( ${LIBRARY_NAME} )
+
+ # and uncomment the 2 lines hereafter:
+
+ # ADD_LIBRARY(${LIBRARY_NAME} STATIC ${${LIBRARY_NAME}_SOURCES})
+ # TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${${LIBRARY_NAME}_LINK_LIBRARIES} )
+
+ #
+ #----------------------------------------------------------------------------
+
+ #---------------------------------------------------------------------------
+ENDIF ( BUILD_${LIBRARY_NAME} )
--- /dev/null
+
+#ifndef _$PROJECT_NAME$SYSTEM_H_
+#define _$PROJECT_NAME$SYSTEM_H_
+
+
+// Windoze related troubles (as usual)
+
+//-----------------------------------------------------------------------------
+
+#if defined(_WIN32)
+ #ifdef $PROJECT_NAME$_EXPORT_SYMBOLS
+ #define $PROJECT_NAME$_EXPORT __declspec( dllexport )
+#else
+ #define $PROJECT_NAME$_EXPORT __declspec( dllimport )
+ #endif
+ #define $PROJECT_NAME$_CDECL __cdecl
+#else
+ #define $PROJECT_NAME$_EXPORT
+ #define $PROJECT_NAME$_CDECL
+#endif // defined(_WIN32)
+
+#ifdef __BORLANDC__
+ #include <mem.h>
+#endif
+
+#endif
--- /dev/null
+
+#ifndef _$PROJECT_NAME$SYSTEM_H_
+#define _$PROJECT_NAME$SYSTEM_H_
+
+
+// Windoze related troubles (as usual)
+
+//-----------------------------------------------------------------------------
+
+#if defined(_WIN32)
+ #ifdef $PROJECT_NAME$_EXPORT_SYMBOLS
+ #define $PROJECT_NAME$_EXPORT __declspec( dllexport )
+#else
+ #define $PROJECT_NAME$_EXPORT __declspec( dllimport )
+ #endif
+ #define $PROJECT_NAME$_CDECL __cdecl
+#else
+ #define $PROJECT_NAME$_EXPORT
+ #define $PROJECT_NAME$_CDECL
+#endif // defined(_WIN32)
+
+#ifdef __BORLANDC__
+ #include <mem.h>
+#endif
+
+#endif