clips_vendor package from clips_vendor repoclips_vendor |
|
Package Summary
Tags | No category tags. |
Version | 6.4.3 |
License | MIT-0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/carologistics/clips_vendor.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-11-24 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Tarik Viehmann
- Tim Wendt
Authors
clips_vendor
Wrapper around clips (https://clipsrules.net/) for usage with ROS 2. Replaces the make-based original build system by cmake and builds dynamic libraries for flexible usage.
Contains core implementation, cli and optionally also the clipsjni applications and demos as well as the given examples from the svn source repository (https://svn.code.sf.net/p/clipsrules/code).
Note that clips can be both compiled with c and c++.
Here, the main application and library libclips.so is built using c++.
A c shared library libclips_c.so is also provided (and used by the clipsjni applications).
Furthermore, a namespaced version libclips_ns.so is supplied, which wraps the original files with namespace clips {}
to minimize conflicts with other libraries and projects.
As clips is written as as a C project there are no namespaces and a lot of preprocessor macros involved, which require some careful considerations. Make sure to read the Known Issues to avoid some of the related pitfalls.
Build Instructions
The optional features are controlled via CMake variables:
- BUILD_WITH_JAVA_EXAMPLES
- BUILD_WITH_CLIPS_EXAMPLES
Per default these examples will not be added, to build them from source, simply pass the corresponding cmake args as shown below:
colcon build --cmake-args -DBUILD_WITH_JAVA_EXAMPLES=true -DBUILD_WITH_CLIPS_EXAMPLES=true
Usage
CLI
Simply run clips
:
clips
Shared Libraries
in CMake:
find_package(clips_vendor)
find_package(clips)
...
target_link_libraries(<target> PUBLIC Clips::libclips) # when using c++ compiled library
target_link_libraries(<target> PUBLIC ClipsC::libclips_c) # when using c compiled library
target_link_libraries(<target> PUBLIC ClipsNS::libclips_ns) # wen using namespaced c++ library
in C++:
#include<clips/clips.h> // when using libclips
extern C {
#include<clips/clips.h> // when using libclips_c
}
#include<clips_ns/clips.h> // when using libclips_ns
Optional java Examples
The following commands should be available in your path after sourcing:
clips-animal-deme
clips-auto-demo
clips-ide
clips-router-demo
clips-sudoku-demo
clips-wine-demo
Optional CLIPS Examples
The example files will be located at the installation destination under opt/clips_vendor/examples
.
Known Issues
Clashes with other Libraries
As libclips and libclips_c contain unnamespaced definitions of structs and functions, it is recommended to use libclips_ns
instead, to prevent accidental clashes with other libraries.
Regardless of the chosen clips library, inside of CLIPS headers there are a #define
macros that might interfere with other libraries.
For example, LHS
and RHS
macros interfere with template identifiers in boost/function_types/property_tags.hpp
.
In these cases, undefine the macros after including the clips.h
header.
Mixing of Macros and Enums in libclips_ns
Another issue is the mixing of typedef and enums when working with the namespaced version of the library.
Looking at this snippet from constant.h
:
typedef enum
{
FLOAT_BIT = (1 << 0),
INTEGER_BIT = (1 << 1),
// ...
} CLIPSType;
#define NUMBER_BITS (INTEGER_BIT | FLOAT_BIT)
With namespace wrapping, the “unscoped” enum requires the usage of a namespace to reference the values, e.g., clips::FLOAT_BIT
.
However, the macro NUMBER_BITS
expands to just (INTEGER_BIT | FLOAT_BIT)
which is only valid when the expansion is wrapped in the namespace
In this scenario it is necessary to use using namespace clips;
before using the NUMBER_BITS
. In particular, clips::NUMBER_BITS
is not valid, neither is just using NUMBER_BITS
without having declared the usage of namespace clips.
Changelog for package clips_vendor
6.4.3 (2024-11-21)
- CMakeLists: fetch zip from github Soruceforge snapshots are created on-demand and downloading through CMake will fail if the snapshot is not existing already. these snapshots are also not persistent and are deleted regularly. Hence downloading directly from sourceforge is not working reliably. To prevent the issue just store the snapshot on github. We could instead pull the changes from the latest available download, but this has no clear revision attached to it and is also not kept up-to-date.
- buildsys: patch missing char *cast
- project: switch from svn to source zip
- package.xml: add Tim as second maintainer to prepare release
- license: clear up distinction between source and vendor package license As per the discussion of https://github.com/ros/rosdistro/pull/43450. Also, update the version to reflect the added license.txt, see: https://sourceforge.net/p/clipsrules/discussion/776945/thread/f3176d3efe/#e913
- patches: compile libclips with c++ and offer separate libclips_c for c
- project: add initial commit for a clips vendor package using cmake The idea is to use the svn source and patch it to a cmake buildsys which then can be seamlessly used with ament_vendor(). The original buildsys is just plain make with in-source builds and without proper shared libraries. Hence quite a bit of work is required to modernize the clips buildsys. Currently this build uses the svn directly, but does not fix any commit version, which should be fixed to specific releases in the future.
- Contributors: Tarik Viehmann, Tim Wendt
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged clips_vendor at Robotics Stack Exchange
clips_vendor package from clips_vendor repoclips_vendor |
|
Package Summary
Tags | No category tags. |
Version | 6.4.3 |
License | MIT-0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/carologistics/clips_vendor.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-11-24 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Tarik Viehmann
- Tim Wendt
Authors
clips_vendor
Wrapper around clips (https://clipsrules.net/) for usage with ROS 2. Replaces the make-based original build system by cmake and builds dynamic libraries for flexible usage.
Contains core implementation, cli and optionally also the clipsjni applications and demos as well as the given examples from the svn source repository (https://svn.code.sf.net/p/clipsrules/code).
Note that clips can be both compiled with c and c++.
Here, the main application and library libclips.so is built using c++.
A c shared library libclips_c.so is also provided (and used by the clipsjni applications).
Furthermore, a namespaced version libclips_ns.so is supplied, which wraps the original files with namespace clips {}
to minimize conflicts with other libraries and projects.
As clips is written as as a C project there are no namespaces and a lot of preprocessor macros involved, which require some careful considerations. Make sure to read the Known Issues to avoid some of the related pitfalls.
Build Instructions
The optional features are controlled via CMake variables:
- BUILD_WITH_JAVA_EXAMPLES
- BUILD_WITH_CLIPS_EXAMPLES
Per default these examples will not be added, to build them from source, simply pass the corresponding cmake args as shown below:
colcon build --cmake-args -DBUILD_WITH_JAVA_EXAMPLES=true -DBUILD_WITH_CLIPS_EXAMPLES=true
Usage
CLI
Simply run clips
:
clips
Shared Libraries
in CMake:
find_package(clips_vendor)
find_package(clips)
...
target_link_libraries(<target> PUBLIC Clips::libclips) # when using c++ compiled library
target_link_libraries(<target> PUBLIC ClipsC::libclips_c) # when using c compiled library
target_link_libraries(<target> PUBLIC ClipsNS::libclips_ns) # wen using namespaced c++ library
in C++:
#include<clips/clips.h> // when using libclips
extern C {
#include<clips/clips.h> // when using libclips_c
}
#include<clips_ns/clips.h> // when using libclips_ns
Optional java Examples
The following commands should be available in your path after sourcing:
clips-animal-deme
clips-auto-demo
clips-ide
clips-router-demo
clips-sudoku-demo
clips-wine-demo
Optional CLIPS Examples
The example files will be located at the installation destination under opt/clips_vendor/examples
.
Known Issues
Clashes with other Libraries
As libclips and libclips_c contain unnamespaced definitions of structs and functions, it is recommended to use libclips_ns
instead, to prevent accidental clashes with other libraries.
Regardless of the chosen clips library, inside of CLIPS headers there are a #define
macros that might interfere with other libraries.
For example, LHS
and RHS
macros interfere with template identifiers in boost/function_types/property_tags.hpp
.
In these cases, undefine the macros after including the clips.h
header.
Mixing of Macros and Enums in libclips_ns
Another issue is the mixing of typedef and enums when working with the namespaced version of the library.
Looking at this snippet from constant.h
:
typedef enum
{
FLOAT_BIT = (1 << 0),
INTEGER_BIT = (1 << 1),
// ...
} CLIPSType;
#define NUMBER_BITS (INTEGER_BIT | FLOAT_BIT)
With namespace wrapping, the “unscoped” enum requires the usage of a namespace to reference the values, e.g., clips::FLOAT_BIT
.
However, the macro NUMBER_BITS
expands to just (INTEGER_BIT | FLOAT_BIT)
which is only valid when the expansion is wrapped in the namespace
In this scenario it is necessary to use using namespace clips;
before using the NUMBER_BITS
. In particular, clips::NUMBER_BITS
is not valid, neither is just using NUMBER_BITS
without having declared the usage of namespace clips.
Changelog for package clips_vendor
6.4.3 (2024-11-21)
- CMakeLists: fetch zip from github Soruceforge snapshots are created on-demand and downloading through CMake will fail if the snapshot is not existing already. these snapshots are also not persistent and are deleted regularly. Hence downloading directly from sourceforge is not working reliably. To prevent the issue just store the snapshot on github. We could instead pull the changes from the latest available download, but this has no clear revision attached to it and is also not kept up-to-date.
- buildsys: patch missing char *cast
- project: switch from svn to source zip
- package.xml: add Tim as second maintainer to prepare release
- license: clear up distinction between source and vendor package license As per the discussion of https://github.com/ros/rosdistro/pull/43450. Also, update the version to reflect the added license.txt, see: https://sourceforge.net/p/clipsrules/discussion/776945/thread/f3176d3efe/#e913
- patches: compile libclips with c++ and offer separate libclips_c for c
- project: add initial commit for a clips vendor package using cmake The idea is to use the svn source and patch it to a cmake buildsys which then can be seamlessly used with ament_vendor(). The original buildsys is just plain make with in-source builds and without proper shared libraries. Hence quite a bit of work is required to modernize the clips buildsys. Currently this build uses the svn directly, but does not fix any commit version, which should be fixed to specific releases in the future.
- Contributors: Tarik Viehmann, Tim Wendt
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged clips_vendor at Robotics Stack Exchange
clips_vendor package from clips_vendor repoclips_vendor |
|
Package Summary
Tags | No category tags. |
Version | 6.4.3 |
License | MIT-0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/carologistics/clips_vendor.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-11-24 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Tarik Viehmann
- Tim Wendt
Authors
clips_vendor
Wrapper around clips (https://clipsrules.net/) for usage with ROS 2. Replaces the make-based original build system by cmake and builds dynamic libraries for flexible usage.
Contains core implementation, cli and optionally also the clipsjni applications and demos as well as the given examples from the svn source repository (https://svn.code.sf.net/p/clipsrules/code).
Note that clips can be both compiled with c and c++.
Here, the main application and library libclips.so is built using c++.
A c shared library libclips_c.so is also provided (and used by the clipsjni applications).
Furthermore, a namespaced version libclips_ns.so is supplied, which wraps the original files with namespace clips {}
to minimize conflicts with other libraries and projects.
As clips is written as as a C project there are no namespaces and a lot of preprocessor macros involved, which require some careful considerations. Make sure to read the Known Issues to avoid some of the related pitfalls.
Build Instructions
The optional features are controlled via CMake variables:
- BUILD_WITH_JAVA_EXAMPLES
- BUILD_WITH_CLIPS_EXAMPLES
Per default these examples will not be added, to build them from source, simply pass the corresponding cmake args as shown below:
colcon build --cmake-args -DBUILD_WITH_JAVA_EXAMPLES=true -DBUILD_WITH_CLIPS_EXAMPLES=true
Usage
CLI
Simply run clips
:
clips
Shared Libraries
in CMake:
find_package(clips_vendor)
find_package(clips)
...
target_link_libraries(<target> PUBLIC Clips::libclips) # when using c++ compiled library
target_link_libraries(<target> PUBLIC ClipsC::libclips_c) # when using c compiled library
target_link_libraries(<target> PUBLIC ClipsNS::libclips_ns) # wen using namespaced c++ library
in C++:
#include<clips/clips.h> // when using libclips
extern C {
#include<clips/clips.h> // when using libclips_c
}
#include<clips_ns/clips.h> // when using libclips_ns
Optional java Examples
The following commands should be available in your path after sourcing:
clips-animal-deme
clips-auto-demo
clips-ide
clips-router-demo
clips-sudoku-demo
clips-wine-demo
Optional CLIPS Examples
The example files will be located at the installation destination under opt/clips_vendor/examples
.
Known Issues
Clashes with other Libraries
As libclips and libclips_c contain unnamespaced definitions of structs and functions, it is recommended to use libclips_ns
instead, to prevent accidental clashes with other libraries.
Regardless of the chosen clips library, inside of CLIPS headers there are a #define
macros that might interfere with other libraries.
For example, LHS
and RHS
macros interfere with template identifiers in boost/function_types/property_tags.hpp
.
In these cases, undefine the macros after including the clips.h
header.
Mixing of Macros and Enums in libclips_ns
Another issue is the mixing of typedef and enums when working with the namespaced version of the library.
Looking at this snippet from constant.h
:
typedef enum
{
FLOAT_BIT = (1 << 0),
INTEGER_BIT = (1 << 1),
// ...
} CLIPSType;
#define NUMBER_BITS (INTEGER_BIT | FLOAT_BIT)
With namespace wrapping, the “unscoped” enum requires the usage of a namespace to reference the values, e.g., clips::FLOAT_BIT
.
However, the macro NUMBER_BITS
expands to just (INTEGER_BIT | FLOAT_BIT)
which is only valid when the expansion is wrapped in the namespace
In this scenario it is necessary to use using namespace clips;
before using the NUMBER_BITS
. In particular, clips::NUMBER_BITS
is not valid, neither is just using NUMBER_BITS
without having declared the usage of namespace clips.
Changelog for package clips_vendor
6.4.3 (2024-11-21)
- CMakeLists: fetch zip from github Soruceforge snapshots are created on-demand and downloading through CMake will fail if the snapshot is not existing already. these snapshots are also not persistent and are deleted regularly. Hence downloading directly from sourceforge is not working reliably. To prevent the issue just store the snapshot on github. We could instead pull the changes from the latest available download, but this has no clear revision attached to it and is also not kept up-to-date.
- buildsys: patch missing char *cast
- project: switch from svn to source zip
- package.xml: add Tim as second maintainer to prepare release
- license: clear up distinction between source and vendor package license As per the discussion of https://github.com/ros/rosdistro/pull/43450. Also, update the version to reflect the added license.txt, see: https://sourceforge.net/p/clipsrules/discussion/776945/thread/f3176d3efe/#e913
- patches: compile libclips with c++ and offer separate libclips_c for c
- project: add initial commit for a clips vendor package using cmake The idea is to use the svn source and patch it to a cmake buildsys which then can be seamlessly used with ament_vendor(). The original buildsys is just plain make with in-source builds and without proper shared libraries. Hence quite a bit of work is required to modernize the clips buildsys. Currently this build uses the svn directly, but does not fix any commit version, which should be fixed to specific releases in the future.
- Contributors: Tarik Viehmann, Tim Wendt