Commit graph

19 commits

Author SHA1 Message Date
Jeroen Koekkoek
f4e99f41f6 Fix xsd generation in ddsconf
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2020-06-26 13:10:20 +02:00
Jeroen Koekkoek
9c04099937 Enable CXX for CMake versions less than 3.12
This fixes #546. Thanks @robinlinden.

Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2020-06-19 13:21:10 +02:00
Robin Lindén
8029274fec Allow building without a C++ compiler
Signed-off-by: Robin Lindén <_@robinlinden.eu>
2020-06-12 16:00:19 +02:00
Erik Boasson
364f1ce39c Bump version number to 0.7.0
Signed-off-by: Erik Boasson <eb@ilities.com>
2020-05-11 15:06:40 +02:00
Erik Boasson
96248d1e6d Bump version number in preparation for 0.6.0
Signed-off-by: Erik Boasson <eb@ilities.com>
2020-05-08 10:09:11 +02:00
Dan Rose
17da91409a
Fix and simplify building docs and schemas (#441)
Fix and simplify building docs and schemas

1. Do an in-source build of derived schemas instead of building into build and checking that the files match.
2. Fix paths of installed docs, which were failing on me
3. Consolidate docs into same cmakelists that generates schema files
4. Trang is usually available as an executable, so find it with find_program.
5. Add doc dependencies to package.xml

Signed-off-by: Dan Rose <dan@digilabs.io>
2020-04-02 17:25:16 +02:00
Christophe Bedard
dc57685ac3 Make sure USE_SANITIZER is not empty before foreach
Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>
2020-02-29 18:18:47 +01:00
Dan Rose
e8b0931798
Don't turn on sanitizers for debug builds by default (#408)
Also, allow multiple sanitizers.
Signed-off-by: Dan Rose <dan@digilabs.io>
2020-02-29 08:38:40 +01:00
Erik Boasson
c84c69e551 Bump version number to 0.5 prior to release
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-11-20 12:48:00 +01:00
Scott K Logan
7b428f14b9 Allow BUILD_IDLC to be 'AUTO' based on Maven presence
Signed-off-by: Scott K Logan <logans@cottsay.net>
2019-11-14 09:59:47 +01:00
Scott K Logan
94524bfd76 Set default BUILD_IDLC based on presence of Maven
This will modify the default behavior to select BUILD_IDLC based on
whether Maven is discovered or not.

The behavior when `-DBUILD_IDLC` is specified on the command line remains
unchanged - the build will maintain the current behavior of failing to
configure if `BUILD_IDLC=ON` and Maven was later not found.

This reverts (part of) commit 860a6aadae.

Signed-off-by: Scott K Logan <logans@cottsay.net>
2019-11-14 09:59:47 +01:00
Scott K Logan
a3b35a2aa4 Fix some unreliable STREQUAL calls in CMakeLists.txt
These conditionals may fail if the variable they're checking isn't
defined at all. Adding quotes makes the comparison against an empty
string in this case, which avoids the syntax error.

Signed-off-by: Scott K Logan <logans@cottsay.net>
2019-10-22 15:22:56 +02:00
Dan Rose
960d4f7358 Use PROJECT_NAME instead of CMAKE_PROJECT_NAME
CMAKE_PROJECT_NAME refers to the top-level project name, not the most recent project. So any CMake project that pulls this in as a dependency was in for a nasty surprise.
https://cmake.org/cmake/help/latest/variable/CMAKE_PROJECT_NAME.html

Signed-off-by: Dan Rose <dan@digilabs.io>
2019-10-20 03:28:15 -07:00
Erik Boasson
d429045255 Add option documentation and add XSD
The ``docs/makernc.pl`` perl script can extract the options from the
source code for the configuration processing and turn these into a
GitHub MarkDown document and a RELAX NG Compact form (RNC) description
of the options.  Standard conversion tools can be used to turn the RNC
file into an XSD.

Although they are generated by a mechanical transformation, it is not
(yet) part of the build process, in no small part because there no
proper generation and publishing system has yet been set up for the
documentation.

Now that there is an XSD and a Markdown file for discovering the
options, there is no need to retain the configuration editing tool.  Any
decent editor will do a better job.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-10-10 17:44:39 +02:00
Jeroen Koekkoek
4e741e9137 Synchronize warning flags between Xcode and Clang
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-08-23 12:37:15 +02:00
Jeroen Koekkoek
1200bfd109 Set project name via string literal
Some tools (e.g. colcon) require the project name to be a string literal in
order to extract it. Fix proposed by Dirk Thomas.

Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-08-23 12:37:15 +02:00
Erik Boasson
891fc2b12f Support multiple domains in configuration
Change the structure of the configuration file (in a backwards
compatible manner) to allow specifying configurations for multiple
domains in a file.  (Listing multiple files in CYCLONEDDS_URI was
already supported.)  A configuration specifies an id, with a default of
any, configurations for an incompatible id are ignored.

If the application specifies an id other than DDS_DOMAIN_DEFAULT in the
call to create_participant, then only configuration specifications for
Domain elements with that id or with id "any" will be used.  If the
application does specify DDS_DOMAIN_DEFAULT, then the id will be taken
from the first Domain element that specifies an id.  If none do, the
domain id defaults to 0.  Each applicable domain specification is taken
as a separate source and may override settings made previously.

All settings moved from the top-level CycloneDDS element to the
CycloneDDS/Domain element.  The CycloneDDS/Domain/Id element moved to
become the "id" attribute of CycloneDDS/Domain.  The old locations still
work, with appropriate deprecation warnings.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-08-21 14:16:51 +02:00
Jeroen Koekkoek
b916f0bfb7 Generate documentation using the FindSphinx.cmake module
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2019-07-31 20:12:11 +02:00
Erik Boasson
9cf4b97f1a Reorganize repository
* Move the project top-level CMakeLists.txt to the root of the project;
  this allows building Cyclone as part of ROS2 without any special
  tricks;

* Clean up the build options:

  ENABLE_SSL:    whether to check for and include OpenSSL support if a
                 library can be found (default = ON); this used to be
                 called DDSC_ENABLE_OPENSSL, the old name is deprecated
                 but still works
  BUILD_DOCS:    whether to build docs (default = OFF)
  BUILD_TESTING: whether to build test (default = OFF)

* Collect all documentation into top-level "docs" directory;

* Move the examples to the top-level directory;

* Remove the unused and somewhat misleading pseudo-default
  cyclonedds.xml;

* Remove unused cmake files

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-07-30 10:52:44 +02:00