Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • cberge/dynamic-graph
  • ostasse/dynamic-graph
  • gsaurel/dynamic-graph
  • stack-of-tasks/dynamic-graph
4 results
Show changes
Commits on Source (623)
# pre-commit run -a (Guilhem Saurel, 2022-07-27)
e9a222fb0a1f236e534e21c66cb623fd8d25b8d6
# pre-commit: details (Guilhem Saurel, 2022-04-14)
1c0f3cc1048a8b2a8206510a51a237b2f1e68a34
# pre-commit run -a (Guilhem Saurel, 2022-03-30)
0c1e6fb50735d4d6cc93e15d3bef202392d47c5b
# clang format defaults + pre-commit (Guilhem Saurel, 2022-03-30)
b6fc5d81e645a84fa8f4d656371adfb27c2b2b23
# [value] Clang format. (Olivier Stasse, 2022-01-09)
b852eef0d56de04ae91a43b1ddbd837ec69ddbe6
# linters: fix clang-check-12 (Guilhem Saurel, 2021-09-14)
ca1b2fc51540b4fcb2cd0b4fccaa33b02738af41
# reformat for clang-format-12 (Guilhem Saurel, 2021-09-07)
ed5899076b7b11c16d9517295e3826dd9b9d80d2
# format (Guilhem Saurel, 2020-11-13)
c54add29f80f6bcd1d05ca741d472491cf74c180
# format (Guilhem Saurel, 2020-07-22)
f4def3bfeaf0f9c9a6d5c5eb01c3a3b2fbb04b2f
# clang format. (Olivier Stasse, 2020-02-03)
70864112c87365af645f0404f881edf36c1ec734
# [clang] Update format. (Olivier Stasse, 2019-08-26)
384b2078e4962d762db4293bf3396be17df4e5c7
# [clang-format] Comply to Google style. (Olivier Stasse, 2019-08-20)
df48199dd436ba8341ae93c7b1f87eb30d0f457a
_build*
.~
compile_commands.json
include: http://rainboard.laas.fr/project/dynamic-graph/.gitlab-ci.yml
[submodule "jrl-cmakemodules"]
path = jrl-cmakemodules
url = git://github.com/jrl-umi3218/jrl-cmakemodules.git
[submodule "cmake"] [submodule "cmake"]
path = cmake path = cmake
url = git://github.com/jrl-umi3218/jrl-cmakemodules.git url = https://github.com/jrl-umi3218/jrl-cmakemodules.git
ci:
autoupdate_branch: 'devel'
repos:
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v14.0.6
hooks:
- id: clang-format
args: [--style=Google]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-executables-have-shebangs
- id: check-json
- id: check-merge-conflict
- id: check-symlinks
- id: check-toml
- id: check-yaml
- id: debug-statements
- id: destroyed-symlinks
- id: detect-private-key
- id: end-of-file-fixer
- id: fix-byte-order-marker
- id: mixed-line-ending
- id: trailing-whitespace
- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
# Copyright 2010, Olivier Stasse, JRL, CNRS/AIST cmake_minimum_required(VERSION 3.1)
#
# This file is part of dynamic-graph. # Project properties
# dynamic-graph is free software: you can redistribute it and/or set(PROJECT_ORG stack-of-tasks)
# modify it under the terms of the GNU Lesser General Public License set(PROJECT_NAME dynamic-graph)
# as published by the Free Software Foundation, either version 3 of set(PROJECT_DESCRIPTION "Dynamic graph library")
# the License, or (at your option) any later version. set(PROJECT_URL "https://github.com/${PROJECT_ORG}/${PROJECT_NAME}")
#
# dynamic-graph is distributed in the hope that it will be useful, but # Project options
# WITHOUT ANY WARRANTY; without even the implied warranty of option(SUFFIX_SO_VERSION "Suffix library name with its version" ON)
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Lesser Public License for more details. You should have # Project configuration
# received a copy of the GNU Lesser General Public License along with set(PROJECT_USE_CMAKE_EXPORT TRUE)
# dynamic-graph. If not, see <http://www.gnu.org/licenses/>. set(CUSTOM_HEADER_DIR ${PROJECT_NAME})
set(CXX_DISABLE_WERROR TRUE)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# Doxygen setup
INCLUDE(cmake/base.cmake) set(DOXYGEN_USE_MATHJAX YES)
set(DOXYGEN_USE_TEMPLATE_CSS YES)
SET(PROJECT_NAME dynamic-graph)
SET(PROJECT_VERSION 1.0.0.99) # JRL-cmakemodule setup
SET(PROJECT_DESCRIPTION "Dynamic graph library") include(cmake/base.cmake)
SET(PROJECT_URL "http://github.com/jrl-umi3218/dynamic-graph") include(cmake/boost.cmake)
SET(CUSTOM_HEADER_DIR "${PROJECT_NAME}") # Project definition
compute_project_args(PROJECT_ARGS LANGUAGES CXX)
# Defines paths. project(${PROJECT_NAME} ${PROJECT_ARGS})
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) check_minimal_cxx_standard(14 ENFORCE)
# Disable -Werror on Unix for now. include(cmake/pthread.cmake) # needs to be included after the CXX definition
SET(CXX_DISABLE_WERROR True)
# Project dependencies
SETUP_PROJECT() if(BUILD_TESTING)
find_package(Boost REQUIRED COMPONENTS unit_test_framework)
# FIXME: to be changed into lib/dynamic-graph endif()
# to avoid name collision when installing dynamic-graph in /usr. add_project_dependency(Boost REQUIRED COMPONENTS serialization system thread)
SET(PLUGINDIR "lib/plugin") add_project_dependency(Eigen3 REQUIRED)
search_for_pthread()
# Add extra keys to pkg-config file to export the location of the
# plug-in directory in a robust manner. if(Boost_VERSION GREATER 107299 OR Boost_VERSION_MACRO GREATER 107299)
SET(PKG_CONFIG_EXTRA # Silence a warning about a deprecated use of boost bind by boost >= 1.73
"plugindirname=${PLUGINDIR} # without dropping support for boost < 1.73
plugindir=${CMAKE_INSTALL_PREFIX}/${PLUGINDIR}") add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS)
endif()
# Add dependency toward dynamic graph library in pkg-config file.
SET(PKG_CONFIG_LIBS "${PKG_CONFIG_LIBS} ${LIBINCL_KW}dynamic-graph${LIB_EXT}") # Add configuration headers for plug-ins.
generate_configuration_header(${HEADER_DIR} config-tracer.hh DG_TRACER
# Search for Boost. tracer_EXPORTS)
SET(Boost_USE_STATIC_LIBS OFF) generate_configuration_header(${HEADER_DIR} config-tracer-real-time.hh
SET(Boost_USE_MULTITHREAD ON) DG_TRACERREALTIME tracer_real_time_EXPORTS)
FIND_PACKAGE(Boost 1.33 COMPONENTS thread REQUIRED)
SET(PKG_CONFIG_CFLAGS "${PKG_CONFIG_CFLAGS} -I${Boost_INCLUDE_DIR}") # Verbosity level
SET(PKG_CONFIG_LIBS "${PKG_CONFIG_LIBS} ${LIBDIR_KW}${Boost_LIBRARY_DIRS}") if(NOT (\"${CMAKE_VERBOSITY_LEVEL}\" STREQUAL \"\"))
add_definitions(-DVP_DEBUG_MODE=${CMAKE_VERBOSITY_LEVEL} -DVP_DEBUG)
ADD_DEFINITIONS(-DHAVE_LIBBOOST_THREAD) endif(NOT (\"${CMAKE_VERBOSITY_LEVEL}\" STREQUAL \"\"))
# Search for Pthread. # Main Library
INCLUDE(FindThreads) set(${PROJECT_NAME}_HEADERS
IF(UNIX) include/${CUSTOM_HEADER_DIR}/fwd.hh
IF(CMAKE_USE_PTHREADS_INIT) include/${CUSTOM_HEADER_DIR}/debug.h
ADD_DEFINITIONS(-pthread) include/${CUSTOM_HEADER_DIR}/real-time-logger.h
ELSE(CMAKE_USE_PTHREADS_INIT) include/${CUSTOM_HEADER_DIR}/real-time-logger-def.h
MESSAGE(FATAL_ERROR include/${CUSTOM_HEADER_DIR}/dynamic-graph-api.h
"Pthread is required on Unix, but " include/${CUSTOM_HEADER_DIR}/entity.h
${CMAKE_THREAD_LIBS_INIT} " has been detected.") include/${CUSTOM_HEADER_DIR}/factory.h
ENDIF(CMAKE_USE_PTHREADS_INIT) include/${CUSTOM_HEADER_DIR}/pool.h
ELSEIF(WIN32) include/${CUSTOM_HEADER_DIR}/exception-abstract.h
# Nothing to do. include/${CUSTOM_HEADER_DIR}/exception-factory.h
ELSE(UNIX) include/${CUSTOM_HEADER_DIR}/exception-signal.h
MESSAGE(FATAL_ERROR "Thread support for this platform is not implemented.") include/${CUSTOM_HEADER_DIR}/exception-traces.h
ENDIF(UNIX) include/${CUSTOM_HEADER_DIR}/signal.h
include/${CUSTOM_HEADER_DIR}/signal-array.h
# Remove additional warnings. include/${CUSTOM_HEADER_DIR}/signal-base.h
IF(WIN32) include/${CUSTOM_HEADER_DIR}/signal-ptr.h
ADD_DEFINITIONS("/wd4251 /wd4275 /wd4101 /wd4355") include/${CUSTOM_HEADER_DIR}/signal-time-dependent.h
ENDIF(WIN32) include/${CUSTOM_HEADER_DIR}/signal-ptr.t.cpp
include/${CUSTOM_HEADER_DIR}/signal.t.cpp
ADD_SUBDIRECTORY(src) include/${CUSTOM_HEADER_DIR}/time-dependency.h
ADD_SUBDIRECTORY(include) include/${CUSTOM_HEADER_DIR}/time-dependency.t.cpp
ADD_SUBDIRECTORY(tools) # Kept for a brittle backward compatiblity.
ADD_SUBDIRECTORY(doc) include/${CUSTOM_HEADER_DIR}/signal-caster.h
ADD_SUBDIRECTORY(unitTesting) include/${CUSTOM_HEADER_DIR}/signal-cast-helper.h
include/${CUSTOM_HEADER_DIR}/all-signals.h
SETUP_PROJECT_FINALIZE() include/${CUSTOM_HEADER_DIR}/signal-helper.h
include/${CUSTOM_HEADER_DIR}/entity-helper.h
include/${CUSTOM_HEADER_DIR}/tracer.h
include/${CUSTOM_HEADER_DIR}/tracer-real-time.h
include/${CUSTOM_HEADER_DIR}/command.h
include/${CUSTOM_HEADER_DIR}/eigen-io.h
include/${CUSTOM_HEADER_DIR}/linear-algebra.h
include/${CUSTOM_HEADER_DIR}/value.h
include/${CUSTOM_HEADER_DIR}/command-setter.h
include/${CUSTOM_HEADER_DIR}/command-setter.t.cpp
include/${CUSTOM_HEADER_DIR}/command-getter.h
include/${CUSTOM_HEADER_DIR}/command-getter.t.cpp
include/${CUSTOM_HEADER_DIR}/command-direct-getter.h
include/${CUSTOM_HEADER_DIR}/command-direct-setter.h
include/${CUSTOM_HEADER_DIR}/command-bind.h
include/${CUSTOM_HEADER_DIR}/all-commands.h
include/${CUSTOM_HEADER_DIR}/logger.h)
set(${PROJECT_NAME}_SOURCES
src/debug/debug.cpp
src/debug/real-time-logger.cpp
src/debug/logger.cpp
src/dgraph/entity.cpp
src/dgraph/factory.cpp
src/dgraph/pool.cpp
src/exception/exception-abstract.cpp
src/exception/exception-factory.cpp
src/exception/exception-signal.cpp
src/exception/exception-traces.cpp
src/mt/process-list.cpp
src/signal/signal-array.cpp
src/command/value.cpp
src/command/command.cpp)
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES}
${${PROJECT_NAME}_HEADERS})
modernize_target_link_libraries(
${PROJECT_NAME}
SCOPE
PUBLIC
TARGETS
Eigen3::Eigen
INCLUDE_DIRS
${EIGEN3_INCLUDE_DIR})
target_include_directories(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>)
target_link_libraries(${PROJECT_NAME} PUBLIC Boost::serialization Boost::system
Boost::thread)
if(UNIX)
target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS} pthread)
endif(UNIX)
if(SUFFIX_SO_VERSION)
set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})
endif(SUFFIX_SO_VERSION)
install(
TARGETS ${PROJECT_NAME}
EXPORT ${TARGETS_EXPORT_NAME}
DESTINATION lib)
set(DYNAMIC_GRAPH_PLUGINDIR "lib/${PROJECT_NAME}-plugins")
set(PACKAGE_EXTRA_MACROS
"set(DYNAMIC_GRAPH_PLUGINDIR ${DYNAMIC_GRAPH_PLUGINDIR})")
set(PKG_CONFIG_EXTRA "plugindir=${DYNAMIC_GRAPH_PLUGINDIR}")
add_subdirectory(src)
if(BUILD_TESTING)
add_subdirectory(tests)
endif(BUILD_TESTING)
pkg_config_append_libs(${PROJECT_NAME})
install(FILES package.xml DESTINATION share/${PROJECT_NAME})
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
Write in this file the modifications you commit. CHANGELOG
----------------------
[Current]
* remove shell
[v3.0.0]
* Replace jrl-mal with eigen
* Add ostream and isteram operators for Eigen Classes
[v2.5.5]
* Improve Travis support
[v2.5.4]
* Update lib installation path (multiarch portability).
* Allow to access class name of a signal.
* Add Travis and coveralls.io support.
[v2.5.3]
* Synchronize.
* Synchronize.
* Fix -Wcast-qual pulled by -Werror of gcc-4.7
[v2.5.2]
* Update ChangeLog.
* Synchronization
* IVIGIT, added signal-helper (macros to ease the declaration of signals) and entity helper (macros to make the macros of signal-helper possible).
* IVIGIT, added signal-helper (macros to ease the declaration of signals) and entity helper (macros to make the macros of signal-helper possible).
* Fix bug in method PoolStorage::writeGraph.
* Synchronize.
* MacOSX compatibility: avoid dangerous TARGET_LINK_LIBRARIES
* Fix portability issues with Ubuntu 12.04 (64 bits).
* Do not try to delete void*, behavior is undefined.
* Avoid memory loss when calling Value::operator =
* Passing and returning elmt by const reference.
* Add boost::posix_time::ptime as a basic type for signals.
* Add missing include.
* Provide const access to entity map in the pool.
* Add method Entity::getDocString.
* Synchronize.
* Fix build for binutils > 2.22
* Synchronize cmake submodule.
* Added a caster for signal<bool>.
* Added the cmake to compile signal-ptr test.
* Modify the policy for plugin a sigptr in input.
* ivigit.
[v2.5.1]
* Update NEWS.
* Do not hardcode dl, use ${CMAKE_DL_LIBS}.
* Make destructor of TimeDependency virtual.
* Disable a test for mac.
* Revert "Move the definition of some ValueHelper<...>::TypeId to avoid link issues"
* Move the definition of some ValueHelper<...>::TypeId to avoid link issues
* Add missing header inclusion
* Win32: Correct a wrong macro
* Win32: Correct the importation/exportation of symbols
* For compatibility, added a static function to bind the singleton.
[v2.5]
* Entity has no more CLASS_NAME static member.
* Account for the Entity::getClassName becoming pure virtual.
* Pass the getclassName to pure virtual.
* Make package pass tests successfully.
* Cosmetic change.
* SignalCaster class is now a singleton.
* FactoryStorage and PoolStorage are now singletons.
* Add helper macro for entity declaration. Use it when possible.
* Rewrite an error message.
* Win32: Correct a link issue
* A cleaner way to define the suffix of the dynamic libraries according to each OS
* Add missing link directory command (f-kiss).
* Make getClassName method const
* Correct a bug in previous commit.
* Added command 4.
* Problem of automatic typing with templates.
* Add nullptr class.
* Corrected function to inline to avoid multiple symbole definition.
* Added a function to test for the existence of a named entity.
* Code cleaning after rewriting (marginal) of sig-cast. Introduction of a specific tracer behaviour for matrix and vector.
* Corrected a segfault problem in the test pool. The problem at the global level remains. At least, the test passes now.
* Modify the g_caster object with a singleton design.
* Reforge the caster for signals.
* Remove a duplicated command.
* IVIGIT: transfert some code and automatic-code-generation macros from sot-core to dg.
* Added new-style command for the two entities.
* Put back the dirty removal of Florent.
* Revert "Set version number as 1.99."
* Value::operator== does nothing when a = a.
* Do not deregister entity in entity destructor. It is deregistered by the pool.
* Use getClassName() instead of CLASS_NAME in Entity constructor.
* Set version number as 1.99.
* Modify deallocation of poolStorage object in order to fix a memory bug.
* Rename poolStorage::entity -> poolStorage::entityMap.
* Added command 3 params.
* Remove unnecessary virtual keyword.
* Added a function to access directly a given command, with protection.
* Added the command 2 args (what a funny code to write).
* Put back mistakenly removed method pool::getSignal.
* Added all-commnds in the cmake list.
* IVIGIT.
* Clean up: remove interpreter.
* Revert "Add method to interprete a string as a python command in class Interpreter."
* Revert "Link libdynamicgraph.so with libpython"
* Added a bind for commands on std::ostream.
* Added missing include.
* Added an alias for EMPTY_ARG for readibility.
* IVIGIT.
* Add read access to Entity::signalMap.
* IVIGIT.
* Added an helper to get the Value::TypeID directly from the type.
* Link libdynamicgraph.so with libpython
* Corrected a warning uninitialized value.
* Add method to interprete a string as a python command in class Interpreter.
* Add a method returning the list of type names registered for signals.
* Cosmetic changes.
* Make exception messages more explicit.
* When registering a type, store pointer to type_info in a map
* Add cast registerer for maal matrix and vector types
* Make error message more explicit.
* Synchronize cmake submodule
* Add a test to check Value assignment operator.
* Fix Value::operator=.
* Add dependency to jrl-mal
* Command constructor takes a documentation string as input.
* Remove debug output
* Fix double free error
* Remove debug output
* Add support for vector and matrix
* Synchronize
* Fix compilation error messages after rebase
* Re-introduce files in CMakeLists.txt that were lost in rebase
* Fix bug in copy constructor of Value class
* Support more type for command parameters
* Add some documentation
* Make function return values instead of reference to values.
* Fix memory issue and changed class name AnyType -> EitherType.
* Add template getter command
* Fix implementation of command-setter.
* Re-implement value getter in a nicer way.
* Fix several memory errors
* Implement command
[v1.2.1]
* Add install files for building debian package.
* Modify changelog.
* [debian] First round of fixes for binary package generation.
* Win32: Correct a link issue
* A cleaner way to define the suffix of the dynamic libraries according to each OS
* Correct library name for mac and windows in the test for interpreter
* Add missing link_directories command
* Synchronize.
* Add tracer test.
* Fix method documentation in factory.h.
* Comment classes.
* Complete forward declarations list in fwd.hh.
* Remove obsolete documentation.
* Fix warnings detected by clang.
* Update man pages.
* Update dg-shell-plugin to match new dg-shell usage.
* Remove warnings found by Clang.
* Install dynamic-graph scripts.
* Add dynamic-graph scripts.
* Enhance dg-shell.
* Use modern C++ comment style for headers.
* Improve error management in import.
* Enhance import to avoid importing a module twice.
* Enhance import to support plug-in, use Boost.Filesytem.
* Clean code.
* Add tests for plug-in loading/unloading.
* Fix bad exception rethrow.
* Enhance run command error message.
* Clean interpreter test.
* Add tests for interpreter.
* Fix cppcheck errors.
* Make cast registerer more robust.
* Clean signal-caster.h.
* Convert test_signalcast into unit test.
* Convert test_depend example into depend unit test.
* Fix factory test.
* Convert test_pool.cpp example in pool.cpp unit test.
* Test FactoryStorage.
* Make tests more robust.
* Clean and document factoryStorage.
* Make ExceptionAbstract::getCode() const.
* Clean DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN macro.
* Add custom entity test.
* Make DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN more robust.
* Remove wrong comment.
* Enhance Entity test case.
* Add unit test for Entity class.
* Clean unit tests compilation.
[v1.2.0]
* Remove unwanted debug call.
* Synchronize.
* Synchronize
* Synchronize
* Synchronize
* Synchronize
* Synchronize.
* Synchronize
* Add missing SETUP_PROJECT_CPACK.
* Include cpack to geneate 8.04 Ubuntu package.
* Synchronize.
* Synchronize
* Synchronize
* Remove the macro BUILDING_'PKG' and use the one defined by header.cmake instead
* Add missing Boost flags for the projects in tools
* Correct dependencies between projects
* Lighten CMakelists by removing win32 flags (now in cmake)
* Declare boost include directories for proper boost detection. Sometimes, the boost install path is *different* from the default include paths!
* Fix relative path in link_directories.
* Fix warnings.
* Enable -Werror.
* Synchronize.
* Synchronize.
* Small documentation update.
* Synchronize.
* Synchronize.
* Synchronize.
* Fix pedantic, -Wextra warnings.
* Fix GCC warnings.
* Fix visibility management for all plug-ins.
* Synchronize.
* Switch to generic pthread detection macro.
* Synchronize.
* Switch to new Boost detection macro.
* Convert figure to png.
* Convert figure to png.
* Synchronize.
* * Moved entity.png to doc/figures so that it can be found by doxygen (cannot use the svg version because it breaks the layout in my browser - Chrome). * Corrected some doxygen errors.
* Add extra image path for Doxygen documentation.
* Synchronize.
* Synchronize.
* Use generated config.hh header file for symbol visibility management.
* Set CUSTOM_HEADER_DIR in CMakeLists.txt.
* Synchronize.
* Corrected doxygen errors. Complemented documentation on signals.
* Simplify CMakeLists.txt in unitTesting and add copyright header.
* Switch completely to submodule.
* Add doc as root CMake subdirectory, do not always generate the man page.
* Remove unwanted file.
* Switch documentation to submodule.
* Get rid of generated Makefile.
* Get rid of generated documentation.
* More documentation.
* Updated documentation
* Update HEAD Doxygen documentation. Source commit id: 241e52083f7159ba66f2866c931d51efefd5cfba
* Additional doc.
* Update HEAD Doxygen documentation. Source commit id: 241e52083f7159ba66f2866c931d51efefd5cfba
* Update HEAD Doxygen documentation. Source commit id: 241e52083f7159ba66f2866c931d51efefd5cfba
* Force generation of man pages.
* Modified documentation output dir.
* Added cmake submodule.
* Add a method that return the list of entity types registered in factory
* Fix debian/watch file.
* Add Doxygen documentation for HEAD.
* github generated gh-pages branch
* Fixed bad rethrow.
* Fix import directive (default include path was wrong).
* Expanded documentation.
* Work on documentation.
* Remove trailing whitespaces.
* More documentation stubs.
* Added documentation for most classes in dynamicgraph. Updated css.
* [doc] Files generated from templates are located in BUILD_DIR.
* Separated Tracer entity documentation.
* Updated doxygen configuration file; added documentation for entity Tracer.
* Added import functions for scripts to dynamic-graph (from Thomas Moulard)
* Added preliminary documentation on entities exposed by the package.
[v1.1]
[release.1.1]
* Corrected authors file.
* Release 1.1
* Fix man page list in CMakeLists.txt
* Add mailmap file.
* Add man pages to Debian pacakge.
* Add man pages.
* Rename tools dg- instead of sot-.
[release-1-1]
* Add plug-ins to package.
* Increment build number for the Debian package.
* Add missing build requirement in Debian package.
* Remove .sh extension to installed shell scripts.
* Use mktemp to create temporary file in sot-shell-plugin.sh.
* Install binaries in bin directory.
* Fix shell.sh.cmake.
* Add newline at end of file.
* Fix Debian package (main binary pacakge was missing).
* Update project version to 1.0.0.99
* Debianize package.
* Add license header.
* Add LGPL-3 license.
* Rewrite AUTHORS file.
* Rewrite NEWS file.
* Rewrite README using Markdown syntax.
* Remove INSTALL file.
* Rename README into README.md.
* Getting rid of obsolete autogen.sh file.
* Revert "Added libraries rpath."
* Added libraries rpath.
* Removed automatic definition of VP_DEBUG.
* Added more exception catch codes in interpreter. Should now link correctly with boost libraries. Small debug output changes.
* Correct the exception raised by signalTime
* Changed name of the traces file.
* Changed parts of documentation.
* Removed CMAKE_INSTALL_PREFIX in INSTALL directives.
* Re-added shell-functions plugin (exports functions defined in dynamic-graph to the shell).
* Added support for TOOLS exceptions
* Port Olivier's changes in SOT commit eacfd9544ca
* Enabled thread support (was disabled before because HAVE_LIBBOOST_THREAD was not defined)
* Added SignalCaster tests with shared libraries.
* Add message in exception when a signal type is already registered.
* Adding documentation to cmdPlug.
* Make exception message more explicit
* Do not rethrow exception, since boost exceptions derive from std::exception
* Make ExceptionAbstract derive from std::exception.
* Use stringstream to pass values in set/get test.
* Add message in exception
* Make ExceptionAbstract::getStringMessage const
* Added an example of caster construction for type vector (dummy cast, similar to the default one, just for the tuto).
* Made DefaultSignalCaster public (exported). Added boost::ublas::vector example to test_signalcast.
* Use the correct macro for import/export in functions.h
* Put shell functions firmly into dynamicgraph. Removed plugin. Corrected headers inclusion.
* Removed the EXTRA_LIBRARIES.
* Fix compilation of tests
* Win32: Add some definitions to avoid some verbose warnings
* Win32: Correct API name for contiifstream
* Add the missing "int" in "int main (void)"
* The dependency in dl is unix-specific
* Win32: Correct exportation of g_caster
* Win32: Add the exportation of SignalCast
* Add a missing dependency between tracer-RT and tracer
* Win32: typo in the API
* Win32: Correct typo in the macro name for the API
* Add uninstall target to dynamic-graph.
* Changed linking of exceptions and traces.
* Removed default definition of VP_DEBUG_MODE in cmake (already in header).
* Added tracer plugin to source.
* Reinforce the dependant->dependent policy.
* Reinforce the dependant->dependent policy. Merge the florent branch. Makes the test_depend.cpp test works.
* Reintroduce file that mysteriously disappeared in commit 41e11cc3776c29c91ef
* Cosmetic changes
* Move class Contiifstream into namespace dynamicgraph.
* First version for the interpreter-helper.
* Add -DVP_DEBUG in debug mode.
* Corrected typo 'dependant' -> 'dependent'
* Added auto-generated script to start shell with default plugins loaded.
* Migrate code of plugin shell-functions to main library
* Remove trailing white spaces
* Activate debug tracing by configuration option CMAKE_VERBOSITY_LEVEL * src/CMakeLists.txt.
* Fix documentation generation
* Added UNIX guard for inclusion of dynamic load library in CMakeFiles.
* Add detection of boost.
* Removed all using namespace directives from headers. Some minor resulting bugfixes.
* Separated unit tests and tools. Added ADD_TEST cmake command.
* Added README information. Read me! Removed the test test_factory (need to design a new one)
* Re-added shell functions and procedures.
* Removed all 'sot' references.
* Cosmetic change in CMakeLists.txt
* Now only generated documentation if GENERATE_DOC is ON.
* Added forgotten file all-signals.h
* Added forgotten test file test_signalcast.cpp
* Used signal exceptions for the exceptions thrown by SignalCast.
* Forgot to include some code in the last commit.
* Cast: Unit testing
* Bug fixes following the reintroduction of casts in dynamicgraph.
* Implemented dynamic casting facility from signals to std::streams
* Added two unit tests.
* Added a new test (test_pool).
* Changed CMakeLists to cope for the new headers location. Renamed dynamic-graph-API.h to dynamic-graph-api.h in every header file.
* Rename file according to standard
* Added forgotten header dynamic-graph-API.h
* The package name is now dynamic-graph (this still needs to be changed in the git repository). Updated source files to reflect that change. Clarified CMakeLists, explicited cpp source files for libraries.
* Added two unit tests.
* Added documentation, renamed header paths, corrected CMakeLists accordingly.
* Renamed pkg-config definition file to adhere standards.
* Removed dependencies on all other packages.
* Removed debug hack left in the last commit.
* Type in symbol dgDEBUGFLOW resulted in not being able to load shared libraries. Fixed. Preliminary documentation changes. Re-added INSTALL file.
* dynamicGraph now compiles shared libraries.
* Removed SOT reference (<sot/*.h> --> <dynamicGraph/*.h>)
* Changed version number to 1.0.0
* Wrong file added to git repository (corrected).
* Added forgotten files.
* Configured dynamicGraph package and cmake files. Last-minute adjustment to code for SOT separation (SOT Break)
BSD 2-Clause License
Copyright (c) 2019, CNRS
Author: Stack of Tasks Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
New in version 2.5.1 - 2011-12-07
Make destructor of TimeDependency virtual.
Do not hardcode dl, use ${CMAKE_DL_LIBS}.
Win32: Correct the importation/exportation of symbols
Win32: Correct a wrong macro
Add missing header inclusion
Disable a test for mac.
For compatibility, added a static function to bind the singleton.
New in version 2.5 - 2011-06-21
New in version 1.1 - 2010-09-30 New in version 1.1 - 2010-09-30
Configured dynamicGraph package and cmake files. Last-minute adjustment to code for SOT separation (SOT Break) Configured dynamicGraph package and cmake files. Last-minute adjustment to code for SOT separation (SOT Break)
Added forgotten files. Added forgotten files.
...@@ -120,4 +129,3 @@ stasse (3): ...@@ -120,4 +129,3 @@ stasse (3):
Reinforce the dependant->dependent policy. Merge the florent branch. Makes the test_depend.cpp test works. Reinforce the dependant->dependent policy. Merge the florent branch. Makes the test_depend.cpp test works.
Reinforce the dependant->dependent policy. Reinforce the dependant->dependent policy.
Adding documentation to cmdPlug. Adding documentation to cmdPlug.
dynamic-graph dynamic-graph
============= =============
[![Building status](https://gitlab.laas.fr/stack-of-tasks/dynamic-graph/badges/master/pipeline.svg)](https://gitlab.laas.fr/stack-of-tasks/dynamic-graph/commits/master)
[![Coverage report](https://gitlab.laas.fr/stack-of-tasks/dynamic-graph/badges/master/coverage.svg?job=doc-coverage)](http://projects.laas.fr/stack-of-tasks/doc/stack-of-tasks/dynamic-graph/master/coverage/)
[![License](https://img.shields.io/badge/License-BSD%202--Clause-green.svg)](https://opensource.org/licenses/BSD-2-Clause)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/stack-of-tasks/dynamic-graph/master.svg)](https://results.pre-commit.ci/latest/github/stack-of-tasks/dynamic-graph)
This software provides an efficient way to modelize a C++ data-flow. This software provides an efficient way to modelize a C++ data-flow.
A dynamic graph data-flow is composed of: A dynamic graph data-flow is composed of:
- entities (graph nodes) * entities (graph nodes)
- signals (input/output of a graph action) * signals (input/output of a graph action)
Output signals can then be plugged into input signals to data Output signals can then be plugged into input signals to data
transmission. transmission.
...@@ -13,17 +18,139 @@ transmission. ...@@ -13,17 +18,139 @@ transmission.
An efficient caching mechanism avoid useless data recomputation and a An efficient caching mechanism avoid useless data recomputation and a
simple built-in language can be used to control the graph actions. simple built-in language can be used to control the graph actions.
It is released under the [BSD-clause 2](COPYING.LESSER) license.
**Warning:** this repository contains [Git
submodules][git-submodules]. Please clone this repository using the
`git clone --recursive` command. If you already have cloned the
repository, you can run `git submodule init && git submodule update`
to retrieve the submodules.
Documentation
-------------
To get started with this library, please read the [online Doxygen
documentation][doxygen-documentation].
It can also be generated locally by running the `make doc`
command. After the package is installed, the documentation will be
located in the `$prefix/share/doc/dynamic-graph` directoy where
`$prefix` is your installation prefix (`/usr/local` by default).
Getting Help
------------
Support is provided through issues on the github interface.
How can I install dynamic-graph?
--------------------------------
### Installing dependencies
The matrix abstract layer depends on several packages which
have to be available on your machine.
- Libraries:
- [Boost][] (>= 1.40)
- Doxygen
- Eigen3
- pthread
- System tools:
- [CMake][] (>=2.6)
- [pkg-config][]
- usual compilation tools (GCC/G++, make, etc.)
If you are using Ubuntu, these tools are gathered in the `build-essential` package.
### Compiling and installing the package
The manual compilation requires two steps:
1. configuration of the build and generation of the build files
2. compilation of the sources and installation of the package
dynamic-graph uses [CMake][] to generate build files. It is
recommended to create a separate build directory:
```sh
mkdir _build # (1) Create a build directory
cd _build # (2) Go to the newly created build directory
cmake [options] .. # (3) Generate the build files
```
Options which can be passed to CMake are detailed in the next section.
```sh
make # (4) Compile the package
make test # (5) Execute the package tests
make install # (6) Install the package into the prefix (see step 3)
```
### Options
Additional options can be set on the command line through the
following command: `-D<option>=<value>`.
For instance: `cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..` will set
the `CMAKE_BUILD_TYPE` option to the value `RelWithDebInfo`.
Available options are:
- `CMAKE_BUILD_TYPE` set the build profile that should be used (debug,
release, etc.). We recommend `RelWithDebInfo` as it will provide
performances while keeping debugging symbols enabled.
- `CMAKE_INSTALL_PREFIX` set the installation prefix (the directory
where the software will be copied to after it has been compiled).
### Running the test suite
The test suite can be run from your build directory by running:
```sh
make test
```
Please open a ticket if some tests are failing on your computer, it
should not be the case.
Contributing
------------
If you want to contribute, please refer to the
[CONTRIBUTING.md](CONTRIBUTING.md) file
Credits
-------
This package authors are credited in the [AUTHORS](AUTHORS) file.
Available Packages
------------------
* RobotPkg :
http://robotpkg.openrobots.org/robotpkg/motion/dynamic-graph/index.html
Setup
-----
To compile this package, it is recommended to create a separate build [doxygen-documentation]: http://stack-of-tasks.github.io/dynamic-graph/doxygen/HEAD/
directory:
mkdir _build [git-submodules]: http://git-scm.com/book/en/Git-Tools-Submodules
cd _build
cmake [OPTIONS] ..
make install
Please note that CMake produces a `CMakeCache.txt` file which should [Boost]: http://www.boost.org/
be deleted to reconfigure a package from scratch. [CMake]: htttp://www.cmake.org/
[Doxygen]: http://www.stack.nl/~dimitri/doxygen/
[Eigen]: http://eigen.tuxfamily.org/
[Git]: http://git-scm.com/
[Libtool]: https://www.gnu.org/software/libtool/
[RobotPkg]: http://robotpkg.openrobots.org/
[log4cxx]: https://logging.apache.org/log4cxx/
[pkg-config]: http://www.freedesktop.org/wiki/Software/pkg-config/
Subproject commit 0fe8e6ab98f646f0341ec9a0ca29ea90773fb5c8 Subproject commit 47c0cbf0b29433060682377dcb28266e8dc38995
# Template for uninstalling the files
# provided by this package.
#
# This file is coming straight from
# http://www.cmake.org/Wiki/CMake_FAQ
# O. Stasse, JRL, CNRS, 2010
#
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
STRING(REGEX REPLACE "\n" ";" files "${files}")
FOREACH(file ${files})
MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
IF(EXISTS "$ENV{DESTDIR}${file}")
EXEC_PROGRAM(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
IF(NOT "${rm_retval}" STREQUAL 0)
MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
ENDIF(NOT "${rm_retval}" STREQUAL 0)
ELSE(EXISTS "$ENV{DESTDIR}${file}")
MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
ENDIF(EXISTS "$ENV{DESTDIR}${file}")
ENDFOREACH(file)
dynamic-graph (1.0.0.99-3) lucid; urgency=low
* Add plug-ins to libdynamic-graph1.0.0.99.
-- Thomas Moulard <thomas.moulard@gmail.com> Wed, 28 Sep 2010 11:45:00 +0200
dynamic-graph (1.0.0.99-2) lucid; urgency=low
* Add libboost-thread-dev to build requirement.
-- Thomas Moulard <thomas.moulard@gmail.com> Wed, 28 Sep 2010 10:40:00 +0200
dynamic-graph (1.0.0.99-1) lucid; urgency=low
* Initial work.
-- Thomas Moulard <thomas.moulard@gmail.com> Wed, 28 Sep 2010 03:15:00 +0200
7
Source: dynamic-graph
Priority: extra
Maintainer: Thomas Moulard <thomas.moulard@gmail.com>
Build-Depends: debhelper (>= 7.0.50~), cmake (>= 2.6),
doxygen (>= 1.6.3),
pkg-config (>= 0.22),
perl (>= 5.10.1),
libboost-dev (>= 1.33.1),
libboost-thread-dev (>= 1.33.1)
Standards-Version: 3.8.4
#Vcs-Git:
#Vcs-browser:
Section: libs
#Homepage:
Package: libdynamic-graph-dev
Section: libdevel
Architecture: any
Depends: libdynamic-graph1.0.0.99 (= ${binary:Version}), ${misc:Depends}
Suggests: libdynamic-graph-doc
Description: Dynamic graph C++ library development package
The dynamic graph library allows the representation of data-flow in C++.
It provides fast graph evaluation and a simple script language to manipulate
the graph actions.
.
This package contains development files (headers and pkg-config file).
Package: libdynamic-graph1.0.0.99
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Dynamic graph C++ library
The dynamic graph library allows the representation of data-flow in C++.
It provides fast graph evaluation and a simple script language to manipulate
the graph actions.
Package: libdynamic-graph-doc
Section: doc
Architecture: all
Depends: ${misc:Depends}
Suggests: libjrl-mathtools-doc
Description: documentation for the dynamic graph C++ library
The dynamic graph library allows the representation of data-flow in C++.
It provides fast graph evaluation and a simple script language to manipulate
the graph actions.
.
This package contains the Doxygen documentation.
This work was packaged for Debian by:
Thomas Moulard <thomas.moulard@gmail.com> on Wed, 28 Sep 2010 03:13:00 +0200
It was downloaded from <not yet available>
Upstream Author(s):
Thomas Moulard <thomas.moulard@gmail.com>
Copyright:
Copyright (C) 2010 François Bleibel, Olivier Stasse, JRL, CNRS/AIST.
License:
See `/usr/share/common-licenses/LGPL-3'.
The Debian packaging is:
Copyright (C) 2010 Thomas Moulard <thomas.moulard@gmail.com>
and is licensed under the GPL version 3,
see `/usr/share/common-licenses/GPL-3'.
AUTHORS
NEWS
README.md
usr/include/*
usr/lib/lib*.so
usr/lib/pkgconfig/*
Document: dynamic-graph
Title: Debian dynamic-graph Manual
Author: Thomas Moulard <thomas.moulard@gmail.com>
Abstract: Doxygen documentation of dynamic-graph.
Section: Programming
Format: HTML
Index: /usr/share/doc/dynamic-graph/html/index.html
Files: /usr/share/doc/dynamic-graph/html/*.html