"
)
+ target_compile_features(${PROJECT_NAME}-core INTERFACE "cxx_std_${CMAKE_CXX_STANDARD}")
# --------------
@@ -311,16 +314,6 @@ if (${ARILES_ENABLE_CORE})
# --------------
- # --------------
- # cpput
- # --------------
- set(CPPUT_EMBEDDED ON CACHE BOOL "" FORCE)
- set(CPPUT_EMBEDDED_ID "ARILES2" CACHE STRING "" FORCE)
- set(CPPUT_EMBEDDED_COPY_TO_DIR "${ARILES_CORE_BUILD_INCLUDES}/${PROJECT_NAME}/internal/" CACHE STRING "" FORCE)
- set(CPPUT_SELECT_HEADERS "config.h;exception.h;visibility.h;misc.h;trace.h" CACHE STRING "" FORCE)
- add_subdirectory(cpput)
- # --------------
-
list(APPEND DEB_ARCHIVE_FILES "./include" "./extra_adapters")
diff --git a/ariles/Makefile b/ariles/Makefile
index 89e12737..0e5490cd 100644
--- a/ariles/Makefile
+++ b/ariles/Makefile
@@ -1,5 +1,5 @@
APT_INSTALL?=env DEBIAN_FRONTEND=noninteractive apt --yes --no-install-recommends install
-MAKE_FLAGS?=-j7
+MAKE_FLAGS?=-j14
CMAKE_DIR=./cmake/
@@ -140,9 +140,14 @@ test-ros: clean
${MAKE} build-tests TC=${TC} TYPE=Debug OPTIONS=ros TARGETS="${TARGETS}" EXTRA_CMAKE_PARAM="${EXTRA_CMAKE_PARAM}"
+test-ros2: clean
+ #${MAKE} build-tests TC=${TC} TYPE=Debug OPTIONS=default TARGETS="${TARGETS}" EXTRA_CMAKE_PARAM="${EXTRA_CMAKE_PARAM}"
+ ${MAKE} build-tests TC=${TC} TYPE=Debug OPTIONS=ros2 TARGETS="${TARGETS}" EXTRA_CMAKE_PARAM="${EXTRA_CMAKE_PARAM}"
+
+
test-noros: clean
- ${MAKE} build-tests TC=${TC} TYPE=Debug OPTIONS=cpp11_on_noros TARGETS="${TARGETS}" EXTRA_CMAKE_PARAM="${EXTRA_CMAKE_PARAM}"
- ${MAKE} clangcheck SCANBUILD=scan-build11 OPTIONS=cpp11_on_noros_tidy
+ ${MAKE} build-tests TC=${TC} TYPE=Debug OPTIONS=noros TARGETS="${TARGETS}" EXTRA_CMAKE_PARAM="${EXTRA_CMAKE_PARAM}"
+ ${MAKE} clangcheck SCANBUILD=scan-build18 OPTIONS=noros_tidy
${MAKE} cppcheck
${MAKE} spell
@@ -152,18 +157,21 @@ test-noros: clean
#----------------------------------------------
addutils:
- git remote add --no-tags cmakeut https://github.com/asherikov/cmakeut
- git remote add --no-tags cpput https://github.com/asherikov/cpput
+ -git remote add --no-tags cmakeut https://github.com/asherikov/cmakeut
+ -git remote add --no-tags cpput https://github.com/asherikov/cpput
-updateutils:
+updateutils: addutils
git fetch --all
- git show remotes/cmakeut/master:cmake/FindEigen3.cmake > cmake/FindEigen3.cmake
- git show remotes/cmakeut/master:cmake/cmakeut_compiler_flags.cmake > cmake/cmakeut_compiler_flags.cmake
- git show remotes/cmakeut/master:cmake/cmakeut_dump_variables.cmake > cmake/cmakeut_dump_variables.cmake
- git show remotes/cmakeut/master:cmake/cmakeut_list_filenames.cmake > cmake/cmakeut_list_filenames.cmake
- git rm --ignore-unmatch -rf cpput
- git read-tree --prefix=cpput -u cpput/master
- git rm --ignore-unmatch -rf cpput/package.xml
+ git show remotes/cmakeut/master:cmake/FindEigen3.cmake > cmake/FindEigen3.cmake
+ git show remotes/cmakeut/master:cmake/cmakeut_compiler_flags.cmake > cmake/cmakeut_compiler_flags.cmake
+ git show remotes/cmakeut/master:cmake/cmakeut_dump_variables.cmake > cmake/cmakeut_dump_variables.cmake
+ git show remotes/cmakeut/master:cmake/cmakeut_list_filenames.cmake > cmake/cmakeut_list_filenames.cmake
+ #
+ git show remotes/cpput/master:include/cpput/exception.h > include/ariles2/internal/exception.h
+ git show remotes/cpput/master:include/cpput/visibility.h > include/ariles2/internal/visibility.h
+ git show remotes/cpput/master:include/cpput/misc.h > include/ariles2/internal/misc.h
+ git show remotes/cpput/master:include/cpput/trace.h > include/ariles2/internal/trace.h
+ git show remotes/cpput/master:include/cpput/concat.h > include/ariles2/internal/concat.h
update:
@@ -179,27 +187,25 @@ dox: doxclean clean
install-ros:
- sh -c "echo \"deb http://packages.ros.org/ros/ubuntu ${UBUNTU_DISTRO} main\" > /etc/apt/sources.list.d/ros-latest.list"
- sh -c "apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 \
- || apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 \
- || apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654"
- sh -c "apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key 6B05F25D762E3157 \
- || apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key 6B05F25D762E3157 \
- || apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key 6B05F25D762E3157"
- apt update -qq
- ${APT_INSTALL} dpkg
- ${APT_INSTALL} ros-${ROS_DISTRO}-ros-base
+ wget -qO- https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo tee /etc/apt/trusted.gpg.d/ros.asc
${MAKE} install-ros-${ROS_DISTRO}
+ ${APT_INSTALL} dpkg
+ ${APT_INSTALL} python3-rosdep python3-rosinstall python3-rosinstall-generator build-essential
bash -c 'source /opt/ros/${ROS_DISTRO}/setup.bash; rosdep init'
+ rosdep update
-install-ros-%:
- ${APT_INSTALL} python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
+install-ros-noetic:
+ sh -c 'test -f /etc/apt/sources.list.d/ros-latest.list \
+ || (echo "deb http://packages.ros.org/ros/ubuntu ${UBUNTU_DISTRO} main" > /etc/apt/sources.list.d/ros-latest.list)'
+ apt update -qq
+ ${APT_INSTALL} ros-${ROS_DISTRO}-ros-base
-install-ros-melodic: install-ros-kinetic
- #
+install-ros-humble:
+ sh -c 'test -f /etc/apt/sources.list.d/ros2-latest.list \
+ || (echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main ${UBUNTU_DISTRO} main" > /etc/apt/sources.list.d/ros2-latest.list)'
+ apt update -qq
+ ${APT_INSTALL} ros-${ROS_DISTRO}-rclcpp
-install-ros-kinetic:
- ${APT_INSTALL} python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
install-deps:
${APT_INSTALL} cmake libboost-all-dev libeigen3-dev
@@ -209,7 +215,7 @@ install-deps:
format:
- ${FIND_ARILES_SOURCES} | grep -v "better_enum.h" | xargs clang-format-12 -verbose -i
+ ${FIND_ARILES_SOURCES} | grep -v "better_enum.h" | xargs clang-format15 -verbose -i
cppcheck:
# --inconclusive
@@ -231,6 +237,7 @@ cppcheck:
--suppress=unknownMacro \
--suppress=constStatement \
--suppress=unsignedLessThanZero \
+ --suppress=duplInheritedMember \
-i build \
-i tests/api_v2/regression_test_230.cpp \
3>&1 1>&2 2>&3 | tee cppcheck.err
@@ -264,7 +271,6 @@ clangcheck:
-enable-checker core.uninitialized.UndefReturn \
-enable-checker cplusplus.InnerPointer \
-enable-checker cplusplus.Move \
- -enable-checker cplusplus.NewDelete \
-enable-checker cplusplus.NewDeleteLeaks \
-enable-checker deadcode.DeadStores \
-enable-checker nullability.NullPassedToNonnull \
@@ -277,7 +283,6 @@ clangcheck:
-enable-checker optin.performance.GCDAntipattern \
-enable-checker optin.performance.Padding \
-enable-checker optin.portability.UnixAPI \
- -enable-checker optin.cplusplus.VirtualCall \
-enable-checker security.FloatLoopCounter \
-enable-checker security.insecureAPI.DeprecatedOrUnsafeBufferHandling \
-enable-checker security.insecureAPI.UncheckedReturn \
@@ -297,6 +302,8 @@ clangcheck:
-enable-checker valist.Uninitialized \
-enable-checker valist.Unterminated \
${MAKE} build TC=${TC} TYPE=${TYPE} OPTIONS=${OPTIONS} TARGETS="${TARGETS}" EXTRA_CMAKE_PARAM="-DBUILD_SHARED_LIBS=OFF ${EXTRA_CMAKE_PARAM}"
+# -enable-checker cplusplus.NewDelete
+# -enable-checker optin.cplusplus.VirtualCall
spell_interactive:
${MAKE} spell SPELL_XARGS_ARG=-o
@@ -308,35 +315,4 @@ spell:
| grep -v "./extra_visitors/rapidjson/src/istreamwrapper.h" \
| xargs ${SPELL_XARGS_ARG} scspell --use-builtin-base-dict --override-dictionary ./qa/scspell.dict
-travis-apt-clean:
- -sudo rm -f \
- /etc/apt/sources.list.d/cassandra.list \
- /etc/apt/sources.list.d/cassandra.list.save \
- /etc/apt/sources.list.d/heroku-toolbelt.list \
- /etc/apt/sources.list.d/heroku-toolbelt.list.save \
- /etc/apt/sources.list.d/chris-lea-redis-server.list \
- /etc/apt/sources.list.d/chris-lea-redis-server.list.save \
- /etc/apt/sources.list.d/mongodb-3.4.list \
- /etc/apt/sources.list.d/mongodb-3.4.list.save \
- /etc/apt/sources.list.d/computology_apt-backport.list \
- /etc/apt/sources.list.d/computology_apt-backport.list.save \
- /etc/apt/sources.list.d/openjdk-r-java-ppa.list \
- /etc/apt/sources.list.d/openjdk-r-java-ppa.list.save \
- /etc/apt/sources.list.d/couchdb.list \
- /etc/apt/sources.list.d/couchdb.list.save \
- /etc/apt/sources.list.d/pgdg.list \
- /etc/apt/sources.list.d/pgdg.list.save \
- /etc/apt/sources.list.d/pollinate.list \
- /etc/apt/sources.list.d/pollinate.list.save \
- /etc/apt/sources.list.d/github_git-lfs.list \
- /etc/apt/sources.list.d/github_git-lfs.list.save \
- /etc/apt/sources.list.d/rabbitmq_rabbitmq-server.list \
- /etc/apt/sources.list.d/rabbitmq_rabbitmq-server.list.save \
- /etc/apt/sources.list.d/git-ppa.list \
- /etc/apt/sources.list.d/git-ppa.list.save \
- /etc/apt/sources.list.d/webupd8team-java-ppa.list \
- /etc/apt/sources.list.d/webupd8team-java-ppa.list.save \
- /etc/apt/sources.list.d/google-chrome.list \
- /etc/apt/sources.list.d/google-chrome.list.save
-
.PHONY: clean cmake build
diff --git a/ariles/README.md b/ariles/README.md
index e1ae250e..1cc0e6ae 100644
--- a/ariles/README.md
+++ b/ariles/README.md
@@ -9,7 +9,7 @@ Ariles
pkg_catkin_2
- (ROS/catkin package)
+ (ROS/ROS2 packages)
|
pkg_freebsd_2
@@ -66,10 +66,10 @@ Contents
Links
=====
-* Documentation (Doxygen): https://asherikov.github.io/ariles/2/
-* GitHub: https://github.com/asherikov/ariles
-* Legacy 1.x.x version: https://github.com/asherikov/ariles/tree/head_1
- (migration guide https://asherikov.github.io/ariles/2/md_doc_migration_1to2.html)
+* Documentation (Doxygen):
+* GitHub:
+* Legacy 1.x.x version:
+ (migration guide )
@@ -79,8 +79,9 @@ Introduction
Loosely speaking, `ariles` is a C++ reflection library, i.e., it provides
meta-programming APIs for implementation of class visitors (processors). It
also provides a number of (de)serializers based on these APIs, e.g., `YAML`,
-`JSON`, `XML`, `ROS` parameter server; and serialization wrappers for some
-types, e.g., `STL` containers, smart pointers, `Eigen` matrices, etc.
+`JSON`, `XML`, `ROS` parameter server, `ROS2` parameters; and serialization
+wrappers for some types, e.g., `STL` containers, smart pointers, `Eigen`
+matrices, etc.
@@ -151,7 +152,10 @@ ariles2::apply("config.yaml", configurable);
ariles2::apply(nh, configurable, "/some_namespace/");
```
-See demo for more exaples: https://asherikov.github.io/ariles/2/DEMO.html
+Note that ROS/ROS2 packages are available in a separate branch
+.
+
+See demo for more exaples:
[`./tests/api_v2/demo_api_v2.cpp`]
@@ -164,30 +168,37 @@ Visitors
representation formats, in particular:
* `YAML` via `yaml-cpp`:
- https://asherikov.github.io/ariles/2/group__yaml__cpp.html.
+ .
* `msgpack` via `msgpack-c`:
- https://asherikov.github.io/ariles/2/group__msgpack.html.
+ .
* `JSON` via `RapidJSON`, with optional Jsonnet preprocessing:
- https://asherikov.github.io/ariles/2/group__rapidjson.html and
- https://asherikov.github.io/ariles/2/group__jsonnet.html.
+ and
+ .
* `XML` via `PugiXML`:
- https://asherikov.github.io/ariles/2/group__pugixml.html
+
* `Octave` script, output only, no dependencies:
- https://asherikov.github.io/ariles/2/group__octave.html
+
* `ROS` parameter server, via standard `ROS` libs:
- https://asherikov.github.io/ariles/2/group__ros.html
+
* A set of flattened key-value pairs, output only, no dependencies:
- https://asherikov.github.io/ariles/2/group__namevalue.html
+
* `graphviz` dot files for diagram generation:
- https://asherikov.github.io/ariles/2/group__graphviz.html
+
+* `ROS2` parameters, via standard `rclcpp` lib:
+ `ROS2`
+ parameters is not designed to fully reflect yaml structure as explained here
+ , so while `ariles` can dump and read
+ anything, there are certain workarounds in place that are described in more
+ details in the `ROS2` demo [`./tests/api_v2/demo_api_v2_ros2.cpp`]
+ .
There are also a few utility visitors, e.g.,
@@ -197,7 +208,7 @@ There are also a few utility visitors, e.g.,
The complete list of modules is available at
-https://asherikov.github.io/ariles/2/modules.html
+
@@ -211,7 +222,7 @@ Supported data types
* Some STL classes (WIP): `std::string`, `std::vector`, `std::map`, `std::pair`, `std::shared_ptr`, `std::unique_ptr`.
* `Eigen` types: matrices, transforms, quaternions.
* `Boost` classes: `boost::optional`, `boost::movelib::unique_ptr`. `boost::shared_ptr`.
-* Better enums -> https://github.com/aantron/better-enums.
+* Better enums -> .
@@ -222,8 +233,8 @@ Dependencies and compilation
Dependencies
------------
-- `cmake` >= 3.0
-- `C++11` compatible compiler
+- `cmake` >= 3.1
+- `C++17` compatible compiler
- `boost`
Visitors and corresponding dependencies can be enabled or disabled via cmake
@@ -234,7 +245,7 @@ Compilation with catkin
-----------------------
An example catkin package is provided in `pkg_catkin_2` branch of the main
-repository -> https://github.com/asherikov/ariles/tree/pkg_catkin_2.
+repository -> .
@@ -242,24 +253,26 @@ repository -> https://github.com/asherikov/ariles/tree/pkg_catkin_2.
Related software
================
-* https://github.com/PickNikRobotics/rosparam_shortcuts: a set of wrapper
+* : a set of wrapper
functions to read individual parameters from ROS parameter server. This tool
serves pretty much the same purpose as `ariles2::rosparam::Reader`, but its
functionality is more limited.
-* https://billyquith.github.io/ponder/: C++14 reflection library, supports
+* : C++14 reflection library, supports
serialization to XML and JSON. Unlike `ariles` it is more focused on
reflection per se rather than applications, for example, it allows to set
value by string name of a class member, handles class methods, etc. `Ponder`
does not rely as much on preprocessor macro, but is more verbose.
-* https://github.com/bytemaster/boost_reflect: discontinued C++ reflection
+* : discontinued C++ reflection
library, similar to `ponder`. Partially inspired `ariles` 2.x.x API.
-* https://github.com/apolukhin/magic_get (aka `pfr`): C++14 library providing
+* (aka `pfr`): C++14 library providing
tuple like methods for aggregate initializable structures. Addresses a
somewhat different but related problem.
* Serialization libraries, e.g., `boost::serialization`,
- https://github.com/USCiLab/cereal.
+ .
+* A library with similar functionality in C++17
+ .
diff --git a/ariles/cmake/cmakeut_compiler_flags.cmake b/ariles/cmake/cmakeut_compiler_flags.cmake
index b4ad550b..f4640668 100644
--- a/ariles/cmake/cmakeut_compiler_flags.cmake
+++ b/ariles/cmake/cmakeut_compiler_flags.cmake
@@ -59,7 +59,7 @@ function(cmakeut_compiler_flags STANDARD)
if (CMAKEUT_CLANG_TIDY)
- find_program(CLANG_TIDY_EXECUTABLE NAMES clang-tidy clang-tidy-12 clang-tidy-14 REQUIRED)
+ find_program(CLANG_TIDY_EXECUTABLE NAMES clang-tidy clang-tidy18 clang-tidy15 clang-tidy-14 clang-tidy-12 REQUIRED)
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE};-warnings-as-errors=*;-checks=*")
@@ -74,7 +74,7 @@ function(cmakeut_compiler_flags STANDARD)
# member variables can be public/protected
set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes")
# member initialization in constructors -- false positives
- set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-cppcoreguidelines-pro-type-member-init,-hicpp-member-init")
+ set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-cppcoreguidelines-pro-type-member-init,-hicpp-member-init,-cppcoreguidelines-prefer-member-initializer")
# default member initialization scatters initializations -- initialization must be done via constructors
set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-modernize-use-default-member-init")
# calling virtual functions from desctructors is well defined and generally safe
@@ -91,6 +91,8 @@ function(cmakeut_compiler_flags STANDARD)
set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-hicpp-no-array-decay")
# long functions are ok
set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-google-readability-function-size,-readability-function-size,-hicpp-function-size")
+ # do not enforce nested namespace concatenation
+ set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-modernize-concat-nested-namespaces")
# overly restrictive fuchsia stuff
@@ -100,6 +102,13 @@ function(cmakeut_compiler_flags STANDARD)
# llvmlibc stuff
set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-llvmlibc-*")
+ # noisy
+ set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-altera-unroll-loops,-altera-id-dependent-backward-branch,-readability-identifier-length,-misc-include-cleaner")
+ # false positives?
+ set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-bugprone-exception-escape,-clang-analyzer-cplusplus.NewDelete")
+ # may be later
+ set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},-cppcoreguidelines-avoid-const-or-ref-data-members")
+
set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY},${CMAKEUT_CLANG_TIDY_EXTRA_IGNORES}")
# might be useful too
@@ -115,22 +124,5 @@ function(cmakeut_compiler_flags STANDARD)
set(CXX_GENERIC "-std=${STANDARD} ${CXX_WARNINGS} ${CXX_OTHER} ${CXX_SANITIZERS}")
- if ("${STANDARD}" STREQUAL "c++11")
-
- # -Wsuggest-override -Wsuggest-final-methods
- set (CMAKEUT_CXX_FLAGS "${CXX_GENERIC}" PARENT_SCOPE)
-
- elseif ("${STANDARD}" STREQUAL "c++03")
-
- set (CMAKEUT_CXX_FLAGS "${CXX_GENERIC}" PARENT_SCOPE)
-
- elseif ("${STANDARD}" STREQUAL "c++98")
-
- set (CMAKEUT_CXX_FLAGS "${CXX_GENERIC}" PARENT_SCOPE)
-
- else()
-
- message(FATAL_ERROR "Unknown standard")
-
- endif()
+ set (CMAKEUT_CXX_FLAGS "${CXX_GENERIC}" PARENT_SCOPE)
endfunction()
diff --git a/ariles/cmake/options_deb_packages_bionic.cmake b/ariles/cmake/options_deb_packages_bionic.cmake
index e4152a5e..36d64ae0 100644
--- a/ariles/cmake/options_deb_packages_bionic.cmake
+++ b/ariles/cmake/options_deb_packages_bionic.cmake
@@ -5,3 +5,4 @@ set(ARILES_BUILD_REGRESSION_TESTS "OFF" CACHE STRING "")
set(ARILES_VISITORS_DEFAULT_MODE "ON" CACHE STRING "")
set(ARILES_VISITOR_rosparam "$ENV{ROS_DISTRO}" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_deb_packages_focal.cmake b/ariles/cmake/options_deb_packages_focal.cmake
index 9b43f264..9be67f94 100644
--- a/ariles/cmake/options_deb_packages_focal.cmake
+++ b/ariles/cmake/options_deb_packages_focal.cmake
@@ -6,3 +6,4 @@ set(ARILES_BUILD_REGRESSION_TESTS "OFF" CACHE STRING "")
set(ARILES_VISITORS_DEFAULT_MODE "ON" CACHE STRING "")
set(ARILES_VISITOR_rosparam "$ENV{ROS_DISTRO}" CACHE STRING "")
set(ARILES_VISITOR_msgpack "OFF" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_deb_packages_jammy.cmake b/ariles/cmake/options_deb_packages_jammy.cmake
index 280aca58..5a4ca904 100644
--- a/ariles/cmake/options_deb_packages_jammy.cmake
+++ b/ariles/cmake/options_deb_packages_jammy.cmake
@@ -5,3 +5,4 @@ set(ARILES_BUILD_REGRESSION_TESTS "OFF" CACHE STRING "")
set(ARILES_VISITORS_DEFAULT_MODE "ON" CACHE STRING "")
set(ARILES_VISITOR_rosparam "OFF" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "$ENV{ROS_DISTRO}" CACHE STRING "")
diff --git a/ariles/cmake/options_deb_packages_xenial.cmake b/ariles/cmake/options_deb_packages_xenial.cmake
index 45ea3d67..09b8983a 100644
--- a/ariles/cmake/options_deb_packages_xenial.cmake
+++ b/ariles/cmake/options_deb_packages_xenial.cmake
@@ -6,3 +6,4 @@ set(ARILES_VISITORS_DEFAULT_MODE "ON" CACHE STRING "")
set(ARILES_VISITOR_rosparam "$ENV{ROS_DISTRO}" CACHE STRING "")
set(ARILES_VISITOR_jsonnet "OFF" CACHE STRING "")
set(ARILES_VISITOR_msgpack "OFF" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_default.cmake b/ariles/cmake/options_default.cmake
index f9483459..344c225a 100644
--- a/ariles/cmake/options_default.cmake
+++ b/ariles/cmake/options_default.cmake
@@ -1 +1 @@
-set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
+#set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
diff --git a/ariles/cmake/options_noros.cmake b/ariles/cmake/options_noros.cmake
index 024a3db0..10feaa62 100644
--- a/ariles/cmake/options_noros.cmake
+++ b/ariles/cmake/options_noros.cmake
@@ -1,4 +1,4 @@
-set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
+#set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
set(ARILES_VISITOR_graphviz "ON" CACHE STRING "")
set(ARILES_VISITOR_pugixml "ON" CACHE STRING "")
@@ -7,3 +7,4 @@ set(ARILES_VISITOR_jsonnet "ON" CACHE STRING "")
set(ARILES_VISITOR_msgpack "ON" CACHE STRING "")
set(ARILES_VISITOR_yaml_cpp "ON" CACHE STRING "")
set(ARILES_VISITOR_rosparam "OFF" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_noros_tidy.cmake b/ariles/cmake/options_noros_tidy.cmake
index 0d036799..3a2492b8 100644
--- a/ariles/cmake/options_noros_tidy.cmake
+++ b/ariles/cmake/options_noros_tidy.cmake
@@ -1,4 +1,4 @@
-set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
+#set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
set(ARILES_CPP_CLANG_TIDY "ON" CACHE STRING "")
set(ARILES_VISITOR_graphviz "ON" CACHE STRING "")
@@ -8,3 +8,4 @@ set(ARILES_VISITOR_jsonnet "ON" CACHE STRING "")
set(ARILES_VISITOR_msgpack "ON" CACHE STRING "")
set(ARILES_VISITOR_yaml_cpp "ON" CACHE STRING "")
set(ARILES_VISITOR_rosparam "OFF" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_noros_xenial.cmake b/ariles/cmake/options_noros_xenial.cmake
index e735c7b6..58e279e0 100644
--- a/ariles/cmake/options_noros_xenial.cmake
+++ b/ariles/cmake/options_noros_xenial.cmake
@@ -1,7 +1,7 @@
#- rapidjson-dev # not found
#- libmsgpack-dev # version is too old
-set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
+#set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
set(ARILES_VISITOR_graphviz "ON" CACHE STRING "")
set(ARILES_VISITOR_pugixml "ON" CACHE STRING "")
@@ -10,3 +10,4 @@ set(ARILES_VISITOR_jsonnet "OFF" CACHE STRING "")
set(ARILES_VISITOR_msgpack "OFF" CACHE STRING "")
set(ARILES_VISITOR_yaml_cpp "ON" CACHE STRING "")
set(ARILES_VISITOR_rosparam "OFF" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_ros.cmake b/ariles/cmake/options_ros.cmake
index f7489f45..a68315aa 100644
--- a/ariles/cmake/options_ros.cmake
+++ b/ariles/cmake/options_ros.cmake
@@ -1,6 +1,7 @@
-set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
+#set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
set(ARILES_VISITOR_msgpack "OFF" CACHE STRING "")
set(ARILES_VISITOR_pugixml "OFF" CACHE STRING "")
set(ARILES_VISITOR_rapidjson "OFF" CACHE STRING "")
set(ARILES_VISITOR_jsonnet "OFF" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_ros2.cmake b/ariles/cmake/options_ros2.cmake
new file mode 100644
index 00000000..5fb46b7a
--- /dev/null
+++ b/ariles/cmake/options_ros2.cmake
@@ -0,0 +1,7 @@
+#set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
+
+set(ARILES_VISITOR_msgpack "OFF" CACHE STRING "")
+set(ARILES_VISITOR_pugixml "OFF" CACHE STRING "")
+set(ARILES_VISITOR_rapidjson "OFF" CACHE STRING "")
+set(ARILES_VISITOR_jsonnet "OFF" CACHE STRING "")
+set(ARILES_VISITOR_rosparam "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_ros2_tidy.cmake b/ariles/cmake/options_ros2_tidy.cmake
new file mode 100644
index 00000000..b0fb455d
--- /dev/null
+++ b/ariles/cmake/options_ros2_tidy.cmake
@@ -0,0 +1,8 @@
+#set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
+set(ARILES_CPP_CLANG_TIDY "ON" CACHE STRING "")
+
+set(ARILES_VISITOR_msgpack "OFF" CACHE STRING "")
+set(ARILES_VISITOR_pugixml "OFF" CACHE STRING "")
+set(ARILES_VISITOR_rapidjson "OFF" CACHE STRING "")
+set(ARILES_VISITOR_jsonnet "OFF" CACHE STRING "")
+set(ARILES_VISITOR_rosparam "OFF" CACHE STRING "")
diff --git a/ariles/cmake/options_ros_tidy.cmake b/ariles/cmake/options_ros_tidy.cmake
index f007d4ed..c4a017fa 100644
--- a/ariles/cmake/options_ros_tidy.cmake
+++ b/ariles/cmake/options_ros_tidy.cmake
@@ -1,7 +1,8 @@
-set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
+#set(ARILES_CPP_SANITIZERS "ON" CACHE STRING "")
set(ARILES_CPP_CLANG_TIDY "ON" CACHE STRING "")
set(ARILES_VISITOR_msgpack "OFF" CACHE STRING "")
set(ARILES_VISITOR_pugixml "OFF" CACHE STRING "")
set(ARILES_VISITOR_rapidjson "OFF" CACHE STRING "")
set(ARILES_VISITOR_jsonnet "OFF" CACHE STRING "")
+set(ARILES_VISITOR_ros2param "OFF" CACHE STRING "")
diff --git a/ariles/cpput/.gitignore b/ariles/cpput/.gitignore
deleted file mode 100644
index d40a8d47..00000000
--- a/ariles/cpput/.gitignore
+++ /dev/null
@@ -1,27 +0,0 @@
-build
-include/cpput/config.h
-include/cpput/deprecation.h
-include/cpput/exception.h
-include/cpput/flags.h
-include/cpput/floating_point_utils.h
-include/cpput/location.h
-include/cpput/math_utils.h
-include/cpput/misc.h
-include/cpput/print_backtrace.h
-include/cpput/timer.h
-include/cpput/trace.h
-include/cpput/traits.h
-include/cpput/visibility.h
-include/cpput/cpput_config.h
-include/cpput/cpput_deprecation.h
-include/cpput/cpput_exception.h
-include/cpput/cpput_flags.h
-include/cpput/cpput_floating_point_utils.h
-include/cpput/cpput_location.h
-include/cpput/cpput_math_utils.h
-include/cpput/cpput_misc.h
-include/cpput/cpput_print_backtrace.h
-include/cpput/cpput_timer.h
-include/cpput/cpput_visibility.h
-include/cpput/cpput_trace.h
-include/cpput/cpput_traits.h
diff --git a/ariles/cpput/.gitmodules b/ariles/cpput/.gitmodules
deleted file mode 100644
index e69de29b..00000000
diff --git a/ariles/cpput/.travis.yml b/ariles/cpput/.travis.yml
deleted file mode 100644
index 859795d8..00000000
--- a/ariles/cpput/.travis.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-language: cpp
-
-notifications:
- email:
- recipients:
- - asherikov@yandex.com
- on_success: always
- on_failure: always
-
-compiler:
- - clang
- - gcc
-
-os: linux
-dist: bionic
-
-addons:
- apt:
- update: true
- packages:
- - libboost-all-dev
- - libeigen3-dev
-
-script:
- - git submodule update --init
- - make test
diff --git a/ariles/cpput/CMakeLists.txt b/ariles/cpput/CMakeLists.txt
deleted file mode 100644
index 1f4e969a..00000000
--- a/ariles/cpput/CMakeLists.txt
+++ /dev/null
@@ -1,156 +0,0 @@
-# General parameters
-cmake_minimum_required (VERSION 3.0.0)
-project(cpput VERSION 1.1.1)
-
-
-# --------------
-# Options
-# --------------
-set(CMAKE_VERBOSE_MAKEFILE ON)
-option(CPPUT_EMBEDDED "Embedded in another project" OFF)
-option(CPPUT_BUILD_TESTS "Build tests" ON)
-set(CPPUT_EMBEDDED_ID "" CACHE STRING "Overrides header guards, namespace (does not apply to 3rdparty headers).")
-set(CPPUT_EMBEDDED_COPY_TO_DIR "" CACHE STRING "Installation destination.")
-set(CPPUT_SELECT_HEADERS "" CACHE STRING "Selection a subset of headers for installation.")
-# --------------
-
-
-# --------------
-# Process options
-# --------------
-set(CPPUT_ID "CPPUT")
-if (CPPUT_EMBEDDED)
- set(CPPUT_BUILD_TESTS OFF)
- if(CPPUT_EMBEDDED_ID)
- set(CPPUT_ID "${CPPUT_EMBEDDED_ID}")
- endif()
- if(NOT CPPUT_EMBEDDED_COPY_TO_DIR)
- message(FATAL_ERROR "CPPUT_EMBEDDED_COPY_TO_DIR must be set with CPPUT_EMBEDDED=ON")
- endif()
-else()
- if (CPPUT_EMBEDDED_ID OR CPPUT_EMBEDDED_COPY_TO_DIR)
- message(WARNING "CPPUT_EMBEDDED_ID and CPPUT_EMBEDDED_COPY_TO_DIR ignored since CPPUT_EMBEDDED=OFF")
- endif()
-endif()
-
-string(TOLOWER "${CPPUT_ID}" CPPUT_ID_LOWER_CASE)
-
-set(CPPUT_HEADER_DIR "${PROJECT_SOURCE_DIR}/include/cpput")
-set(CPPUT_OUTPUT_HEADER_DIR "${PROJECT_BINARY_DIR}/include/cpput")
-# --------------
-
-
-# --------------
-# Packaging & installation paths
-# --------------
-if (NOT CPPUT_EMBEDDED)
- include(CMakePackageConfigHelpers)
- set(CPPUT_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/share/cpput/")
- set(CPPUT_INCLUDES "${CMAKE_INSTALL_PREFIX}/include")
-
- configure_package_config_file( "cmake/cpputConfig.cmake.in"
- "${PROJECT_BINARY_DIR}/cpputConfig.cmake"
- INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/share/cpput/"
- NO_SET_AND_CHECK_MACRO
- NO_CHECK_REQUIRED_COMPONENTS_MACRO)
-
- write_basic_package_version_file(
- ${PROJECT_BINARY_DIR}/cpputConfigVersion.cmake
- VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
- COMPATIBILITY SameMajorVersion)
-endif()
-
-
-if (NOT CPPUT_EMBEDDED)
- set(CPPUT_INCLUDE_INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${CPPUT_ID_LOWER_CASE})
-endif()
-# --------------
-
-
-# --------------
-# Load cmake modules
-# --------------
-include(CMakeParseArguments)
-list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/")
-# --------------
-
-
-# --------------
-# Configure headers
-# --------------
-include(cmakeut_list_filenames)
-include(cmakeut_detect_func_macro)
-cmakeut_detect_func_macro()
-
-execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory
- "${CPPUT_HEADER_DIR}"
- "${CPPUT_OUTPUT_HEADER_DIR}"
-)
-cmakeut_list_filenames("${CPPUT_OUTPUT_HEADER_DIR}/" "CPPUT_HEADERS")
-foreach (CPPUT_HEADER ${CPPUT_HEADERS})
- if (${CPPUT_HEADER} MATCHES ".h.in\$")
- string(REPLACE ".h.in" ".h" CPPUT_HEADER_NO_SUFFIX "${CPPUT_HEADER}")
- message(STATUS "Configuring header ${CPPUT_OUTPUT_HEADER_DIR}/${CPPUT_HEADER} -> ${CPPUT_OUTPUT_HEADER_DIR}/${CPPUT_HEADER_NO_SUFFIX}")
- configure_file( "${CPPUT_OUTPUT_HEADER_DIR}/${CPPUT_HEADER}"
- "${CPPUT_OUTPUT_HEADER_DIR}/${CPPUT_HEADER_NO_SUFFIX}")
- endif()
-endforeach()
-
-include_directories ("${CPPUT_OUTPUT_HEADER_DIR}/../")
-# --------------
-
-
-# --------------
-# tests
-# --------------
-if(CPPUT_BUILD_TESTS)
- enable_testing()
- add_subdirectory("${PROJECT_SOURCE_DIR}/test")
-endif()
-# --------------
-
-
-# --------------
-# Install
-# --------------
-if (CPPUT_EMBEDDED)
- if (NOT CPPUT_SELECT_HEADERS)
- cmakeut_list_filenames("${CPPUT_OUTPUT_HEADER_DIR}/" "CPPUT_HEADERS")
- foreach (CPPUT_HEADER ${CPPUT_HEADERS})
- if (NOT ${CPPUT_HEADER} MATCHES ".h.in\$" AND NOT ${CPPUT_HEADER} MATCHES "all.h")
- list(APPEND CPPUT_SELECT_HEADERS "${CPPUT_HEADER}")
- endif()
- endforeach()
- endif()
-
- if (CPPUT_SELECT_HEADERS)
- foreach (CPPUT_HEADER ${CPPUT_SELECT_HEADERS})
- if (CPPUT_HEADER)
- file( COPY "${CPPUT_OUTPUT_HEADER_DIR}/${CPPUT_HEADER}"
- DESTINATION "${PROJECT_BINARY_DIR}/")
- file( RENAME "${PROJECT_BINARY_DIR}/${CPPUT_HEADER}"
- "${CPPUT_EMBEDDED_COPY_TO_DIR}/cpput_${CPPUT_HEADER}")
- endif()
- endforeach()
- endif()
-else()
- install (FILES "${PROJECT_BINARY_DIR}/cpputConfig.cmake"
- DESTINATION "${CPPUT_INSTALL_PATH}/")
-
- install (FILES "${PROJECT_BINARY_DIR}/cpputConfigVersion.cmake"
- DESTINATION "${CPPUT_INSTALL_PATH}/")
-
- if (CPPUT_SELECT_HEADERS)
- foreach (CPPUT_HEADER ${CPPUT_SELECT_HEADERS})
- if (CPPUT_HEADER)
- install (FILES "${CPPUT_OUTPUT_HEADER_DIR}/${CPPUT_HEADER}"
- DESTINATION "${CPPUT_INCLUDE_INSTALL_DESTINATION}/")
- endif()
- endforeach()
- else()
- install (DIRECTORY "${CPPUT_OUTPUT_HEADER_DIR}/"
- DESTINATION "${CPPUT_INCLUDE_INSTALL_DESTINATION}"
- FILES_MATCHING PATTERN "*.h")
- endif()
-endif()
-# --------------
diff --git a/ariles/cpput/Makefile b/ariles/cpput/Makefile
deleted file mode 100644
index dabe8266..00000000
--- a/ariles/cpput/Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-BUILD_DIR?=build
-MAKE_FLAGS?=-j1
-
-INCLUDE_DIR=include/cpput/
-
-default:
- @grep -v "^ " Makefile | grep -v "^$$"
-
-clean:
- rm -Rf ${BUILD_DIR}
- ls ${INCLUDE_DIR}/*.in | sed 's/\.in$$//g' | xargs rm -f
- ls ${INCLUDE_DIR}/*.in | sed 's/\.in$$//g' | sed 's=${INCLUDE_DIR}/=${INCLUDE_DIR}/cpput_=' | xargs rm -f
-
-build:
- mkdir -p ${BUILD_DIR}
- cd ${BUILD_DIR}; cmake ..
- cd ${BUILD_DIR}; make ${MAKE_FLAGS}
-
-test: build
- cd build; ${MAKE} ${MAKE_FLAGS} test
-
-
-addutils:
- git remote add cmakeut https://github.com/asherikov/cmakeut
- git remote add better_enums https://github.com/aantron/better-enums
- git remote add popl https://github.com/badaix/popl
- git remote add safe_int https://github.com/dcleblanc/SafeInt
- git remote add backward https://github.com/bombela/backward-cpp
-
-updateutils:
- git fetch --all
- git show remotes/cmakeut/master:cmake/cmakeut_add_cpp_test.cmake > cmake/cmakeut_add_cpp_test.cmake
- git show remotes/cmakeut/master:cmake/cmakeut_compiler_flags.cmake > cmake/cmakeut_compiler_flags.cmake
- git show remotes/cmakeut/master:cmake/cmakeut_detect_func_macro.cmake > cmake/cmakeut_detect_func_macro.cmake
- git show remotes/cmakeut/master:cmake/cmakeut_list_filenames.cmake > cmake/cmakeut_list_filenames.cmake
- git show remotes/better_enums/master:enum.h > ${INCLUDE_DIR}/better_enum.h
- git show remotes/popl/master:include/popl.hpp > ${INCLUDE_DIR}/popl.h
- git show remotes/safe_int/master:SafeInt.hpp > ${INCLUDE_DIR}/safe_int.h
- git show remotes/backward/master:backward.hpp > ${INCLUDE_DIR}/backward.h
- ${MAKE} allheader
-
-allheader:
- echo "#ifndef H_CPPUT_ALL" > ${INCLUDE_DIR}/all.h
- echo "#define H_CPPUT_ALL" >> ${INCLUDE_DIR}/all.h
- cd ${INCLUDE_DIR}; ls *.h | grep -v "all.h" | sed 's/^\(.*\)/#include "\1"/' >> all.h
- cd ${INCLUDE_DIR}; ls *.h.in | grep -v "all.h" | sed 's/\.in$$//g' | sed 's/^\(.*\)/#include "\1"/' >> all.h
- echo "#endif" >> ${INCLUDE_DIR}/all.h
- cat ${INCLUDE_DIR}/all.h
-
-gitignore:
- echo "build" > .gitignore
- ls ${INCLUDE_DIR}*.in | sed 's/\.in$$//g' >> .gitignore
- ls ${INCLUDE_DIR}*.in | sed 's/\.in$$//g' | sed 's=${INCLUDE_DIR}=${INCLUDE_DIR}cpput_=' >> .gitignore
-
-.PHONY: build test 3rdparty
diff --git a/ariles/cpput/README.md b/ariles/cpput/README.md
deleted file mode 100644
index 9a762394..00000000
--- a/ariles/cpput/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-Travis CI: https://travis-ci.org/asherikov/cpput [![Build Status](https://travis-ci.org/asherikov/cpput.svg?branch=master)](https://travis-ci.org/asherikov/cpput)
-
-This repo contains C++ utilities from various sources, all satisfy the
-following conditions:
-
-- permissive licences (Apache, BSD, MIT, etc), see comments in the headers;
-- all utilities are header only;
-- no external dependencies.
-
-Utilities may require C++11 support.
-
-Third party utils (likely to be outdated):
-- `backward-cpp` -- https://github.com/bombela/backward-cpp
-- `better_enums` -- http://github.com/aantron/better-enums
-- `popl` -- https://github.com/badaix/popl
-- `print_backtrace` -- https://panthema.net/2008/0901-stacktrace-demangled/
-- `SafeInt` -- https://github.com/dcleblanc/SafeInt
diff --git a/ariles/cpput/cmake/cmakeut_add_cpp_test.cmake b/ariles/cpput/cmake/cmakeut_add_cpp_test.cmake
deleted file mode 100644
index bdb5b3d7..00000000
--- a/ariles/cpput/cmake/cmakeut_add_cpp_test.cmake
+++ /dev/null
@@ -1,18 +0,0 @@
-function(cmakeut_add_cpp_test TEST_NAME)
-
- #set(options OPTION0)
- set(oneValueArgs WORKING_DIRECTORY)
- set(multiValueArgs LIBS DEPENDS FLAGS)
- cmake_parse_arguments("CMAKEUT" "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
-
- set(TGT_NAME "${PROJECT_NAME}_${TEST_NAME}")
- add_executable(${TGT_NAME} "./${TEST_NAME}.cpp")
- set_target_properties(${TGT_NAME} PROPERTIES COMPILE_FLAGS "${CMAKEUT_FLAGS}" OUTPUT_NAME ${TEST_NAME})
-
- target_link_libraries(${TGT_NAME} "${CMAKEUT_LIBS}")
- if (CMAKEUT_DEPENDS)
- add_dependencies(${TGT_NAME} "${CMAKEUT_DEPENDS}")
- endif()
- add_test(NAME ${TGT_NAME} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME} WORKING_DIRECTORY ${CMAKEUT_WORKING_DIRECTORY})
-
-endfunction(cmakeut_add_cpp_test)
diff --git a/ariles/cpput/cmake/cmakeut_compiler_flags.cmake b/ariles/cpput/cmake/cmakeut_compiler_flags.cmake
deleted file mode 100644
index ff884be4..00000000
--- a/ariles/cpput/cmake/cmakeut_compiler_flags.cmake
+++ /dev/null
@@ -1,82 +0,0 @@
-function(cmakeut_compiler_flags STANDARD)
- set (CXX_WARNINGS "-Wall -Wextra -Wshadow -Werror -pedantic-errors")
- # --save-temps
- set (CXX_OTHER "-fPIC")
-
- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-
- if (NOT CMAKE_CXX_COMPILER_VERSION OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0)
- # workaround for clang50
- set(CXX_WARNINGS "${CXX_WARNINGS} -Wno-error=unused-command-line-argument")
- endif()
- set(CXX_WARNINGS "${CXX_WARNINGS} -Werror=extra-tokens")
-
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-
- # using GCC
- set(CXX_WARNINGS "${CXX_WARNINGS}")
-
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
-
- # using Intel C++
-
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
-
- # using Visual Studio C++
-
- endif()
-
-
- set(CXX_SANITIZERS "")
- if(CMAKEUT_CPP_SANITIZERS)
- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-
- if ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
- # -fsanitize=address segfaults on boost UTF.
- set(CXX_SANITIZERS "-fsanitize=undefined")
- else()
- set(CXX_SANITIZERS "-fsanitize=address -fsanitize=undefined")
- endif()
-
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-
- if (NOT CMAKE_CXX_COMPILER_VERSION OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
- message(WARNING "GCC version is unknown or too old. Disabling sanitizers.")
- else()
- set(CXX_SANITIZERS "-fsanitize=address -fsanitize=undefined -fsanitize-undefined-trap-on-error")
- endif()
-
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
-
- # using Intel C++
-
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
-
- # using Visual Studio C++
-
- endif()
- endif()
-
-
- set(CXX_GENERIC "-std=${STANDARD} ${CXX_WARNINGS} ${CXX_OTHER} ${CXX_SANITIZERS}")
-
-
- if ("${STANDARD}" STREQUAL "c++11")
-
- # -Wsuggest-override -Wsuggest-final-methods
- set (CMAKEUT_CXX_FLAGS "${CXX_GENERIC}" PARENT_SCOPE)
-
- elseif ("${STANDARD}" STREQUAL "c++03")
-
- set (CMAKEUT_CXX_FLAGS "${CXX_GENERIC}" PARENT_SCOPE)
-
- elseif ("${STANDARD}" STREQUAL "c++98")
-
- set (CMAKEUT_CXX_FLAGS "${CXX_GENERIC}" PARENT_SCOPE)
-
- else()
-
- message(FATAL_ERROR "Unknown standard")
-
- endif()
-endfunction()
diff --git a/ariles/cpput/cmake/cmakeut_detect_func_macro.cmake b/ariles/cpput/cmake/cmakeut_detect_func_macro.cmake
deleted file mode 100644
index 59c6635d..00000000
--- a/ariles/cpput/cmake/cmakeut_detect_func_macro.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-function(cmakeut_detect_func_macro)
- include (CheckCXXSourceCompiles)
-
- CHECK_CXX_SOURCE_COMPILES("
- #include
- int main(void)
- {
- std::cout << __func__ << std::endl;
- return 0;
- }"
- CMAKEUT_COMPILER_SUPPORTS_FUNC_)
-
- CHECK_CXX_SOURCE_COMPILES("
- #include
- int main(void)
- {
- std::cout << __FUNCTION__ << std::endl;
- return 0;
- }"
- CMAKEUT_COMPILER_SUPPORTS_FUNCTION_)
-endfunction()
diff --git a/ariles/cpput/cmake/cmakeut_list_filenames.cmake b/ariles/cpput/cmake/cmakeut_list_filenames.cmake
deleted file mode 100644
index 4cbba6be..00000000
--- a/ariles/cpput/cmake/cmakeut_list_filenames.cmake
+++ /dev/null
@@ -1,24 +0,0 @@
-# List filenames (all intermediate directories are stripped) in the given
-# directory.
-# This is equivalent to 'file(GLOB ... RELATIVE ... ...)', but behaves more
-# consistently with different versions of cmake.
-#
-function(cmakeut_list_filenames DIR LISTNAME)
- set(options DIRS_WITH_CMAKELISTS)
- cmake_parse_arguments("CMAKEUT" "${options}" "" "" ${ARGN})
-
- file(GLOB FILENAMES_TMP "${DIR}/*")
-
- set (FILENAMES "")
- foreach(FILENAME_TMP ${FILENAMES_TMP})
- if(CMAKEUT_DIRS_WITH_CMAKELISTS)
- if (NOT EXISTS "${FILENAME_TMP}/CMakeLists.txt")
- continue()
- endif()
- endif()
- get_filename_component(FILENAME_TMP ${FILENAME_TMP} NAME)
- list(APPEND FILENAMES ${FILENAME_TMP})
- endforeach(FILENAME_TMP)
-
- set(${LISTNAME} "${FILENAMES}" PARENT_SCOPE)
-endfunction()
diff --git a/ariles/cpput/cmake/cpputConfig.cmake.in b/ariles/cpput/cmake/cpputConfig.cmake.in
deleted file mode 100644
index 4b6ff1f4..00000000
--- a/ariles/cpput/cmake/cpputConfig.cmake.in
+++ /dev/null
@@ -1,7 +0,0 @@
-set (cpput_VERSION @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@)
-
-@PACKAGE_INIT@
-
-set (cpput_LIBRARIES "")
-set (cpput_INCLUDE_DIRS "@CPPUT_INCLUDES@")
-set (cpput_LIBRARY_DIRS "")
diff --git a/ariles/cpput/include/cpput/all.h b/ariles/cpput/include/cpput/all.h
deleted file mode 100644
index 1749d020..00000000
--- a/ariles/cpput/include/cpput/all.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef H_CPPUT_ALL
-#define H_CPPUT_ALL
-#include "backward.h"
-#include "better_enum.h"
-#include "popl.h"
-#include "safe_int.h"
-#include "config.h"
-#include "deprecation.h"
-#include "exception.h"
-#include "flags.h"
-#include "floating_point_utils.h"
-#include "location.h"
-#include "math_utils.h"
-#include "misc.h"
-#include "print_backtrace.h"
-#include "timer.h"
-#include "trace.h"
-#include "traits.h"
-#include "visibility.h"
-#endif
diff --git a/ariles/cpput/include/cpput/backward.h b/ariles/cpput/include/cpput/backward.h
deleted file mode 100644
index 8fba93dd..00000000
--- a/ariles/cpput/include/cpput/backward.h
+++ /dev/null
@@ -1,4173 +0,0 @@
-/*
- * backward.hpp
- * Copyright 2013 Google Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef H_6B9572DA_A64B_49E6_B234_051480991C89
-#define H_6B9572DA_A64B_49E6_B234_051480991C89
-
-#ifndef __cplusplus
-#error "It's not going to compile without a C++ compiler..."
-#endif
-
-#if defined(BACKWARD_CXX11)
-#elif defined(BACKWARD_CXX98)
-#else
-#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
-#define BACKWARD_CXX11
-#define BACKWARD_ATLEAST_CXX11
-#define BACKWARD_ATLEAST_CXX98
-#else
-#define BACKWARD_CXX98
-#define BACKWARD_ATLEAST_CXX98
-#endif
-#endif
-
-// You can define one of the following (or leave it to the auto-detection):
-//
-// #define BACKWARD_SYSTEM_LINUX
-// - specialization for linux
-//
-// #define BACKWARD_SYSTEM_DARWIN
-// - specialization for Mac OS X 10.5 and later.
-//
-// #define BACKWARD_SYSTEM_UNKNOWN
-// - placebo implementation, does nothing.
-//
-#if defined(BACKWARD_SYSTEM_LINUX)
-#elif defined(BACKWARD_SYSTEM_DARWIN)
-#elif defined(BACKWARD_SYSTEM_UNKNOWN)
-#elif defined(BACKWARD_SYSTEM_WINDOWS)
-#else
-#if defined(__linux) || defined(__linux__)
-#define BACKWARD_SYSTEM_LINUX
-#elif defined(__APPLE__)
-#define BACKWARD_SYSTEM_DARWIN
-#elif defined(_WIN32)
-#define BACKWARD_SYSTEM_WINDOWS
-#else
-#define BACKWARD_SYSTEM_UNKNOWN
-#endif
-#endif
-
-#define NOINLINE __attribute__((noinline))
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#if defined(BACKWARD_SYSTEM_LINUX)
-
-// On linux, backtrace can back-trace or "walk" the stack using the following
-// libraries:
-//
-// #define BACKWARD_HAS_UNWIND 1
-// - unwind comes from libgcc, but I saw an equivalent inside clang itself.
-// - with unwind, the stacktrace is as accurate as it can possibly be, since
-// this is used by the C++ runtine in gcc/clang for stack unwinding on
-// exception.
-// - normally libgcc is already linked to your program by default.
-//
-// #define BACKWARD_HAS_BACKTRACE == 1
-// - backtrace seems to be a little bit more portable than libunwind, but on
-// linux, it uses unwind anyway, but abstract away a tiny information that is
-// sadly really important in order to get perfectly accurate stack traces.
-// - backtrace is part of the (e)glib library.
-//
-// The default is:
-// #define BACKWARD_HAS_UNWIND == 1
-//
-// Note that only one of the define should be set to 1 at a time.
-//
-#if BACKWARD_HAS_UNWIND == 1
-#elif BACKWARD_HAS_BACKTRACE == 1
-#else
-#undef BACKWARD_HAS_UNWIND
-#define BACKWARD_HAS_UNWIND 1
-#undef BACKWARD_HAS_BACKTRACE
-#define BACKWARD_HAS_BACKTRACE 0
-#endif
-
-// On linux, backward can extract detailed information about a stack trace
-// using one of the following libraries:
-//
-// #define BACKWARD_HAS_DW 1
-// - libdw gives you the most juicy details out of your stack traces:
-// - object filename
-// - function name
-// - source filename
-// - line and column numbers
-// - source code snippet (assuming the file is accessible)
-// - variables name and values (if not optimized out)
-// - You need to link with the lib "dw":
-// - apt-get install libdw-dev
-// - g++/clang++ -ldw ...
-//
-// #define BACKWARD_HAS_BFD 1
-// - With libbfd, you get a fair amount of details:
-// - object filename
-// - function name
-// - source filename
-// - line numbers
-// - source code snippet (assuming the file is accessible)
-// - You need to link with the lib "bfd":
-// - apt-get install binutils-dev
-// - g++/clang++ -lbfd ...
-//
-// #define BACKWARD_HAS_DWARF 1
-// - libdwarf gives you the most juicy details out of your stack traces:
-// - object filename
-// - function name
-// - source filename
-// - line and column numbers
-// - source code snippet (assuming the file is accessible)
-// - variables name and values (if not optimized out)
-// - You need to link with the lib "dwarf":
-// - apt-get install libdwarf-dev
-// - g++/clang++ -ldwarf ...
-//
-// #define BACKWARD_HAS_BACKTRACE_SYMBOL 1
-// - backtrace provides minimal details for a stack trace:
-// - object filename
-// - function name
-// - backtrace is part of the (e)glib library.
-//
-// The default is:
-// #define BACKWARD_HAS_BACKTRACE_SYMBOL == 1
-//
-// Note that only one of the define should be set to 1 at a time.
-//
-#if BACKWARD_HAS_DW == 1
-#elif BACKWARD_HAS_BFD == 1
-#elif BACKWARD_HAS_DWARF == 1
-#elif BACKWARD_HAS_BACKTRACE_SYMBOL == 1
-#else
-#undef BACKWARD_HAS_DW
-#define BACKWARD_HAS_DW 0
-#undef BACKWARD_HAS_BFD
-#define BACKWARD_HAS_BFD 0
-#undef BACKWARD_HAS_DWARF
-#define BACKWARD_HAS_DWARF 0
-#undef BACKWARD_HAS_BACKTRACE_SYMBOL
-#define BACKWARD_HAS_BACKTRACE_SYMBOL 1
-#endif
-
-#include
-#include
-#ifdef __ANDROID__
-// Old Android API levels define _Unwind_Ptr in both link.h and
-// unwind.h Rename the one in link.h as we are not going to be using
-// it
-#define _Unwind_Ptr _Unwind_Ptr_Custom
-#include
-#undef _Unwind_Ptr
-#else
-#include
-#endif
-#include
-#include
-#include
-#include
-
-#if BACKWARD_HAS_BFD == 1
-// NOTE: defining PACKAGE{,_VERSION} is required before including
-// bfd.h on some platforms, see also:
-// https://sourceware.org/bugzilla/show_bug.cgi?id=14243
-#ifndef PACKAGE
-#define PACKAGE
-#endif
-#ifndef PACKAGE_VERSION
-#define PACKAGE_VERSION
-#endif
-#include
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#include
-#undef _GNU_SOURCE
-#else
-#include
-#endif
-#endif
-
-#if BACKWARD_HAS_DW == 1
-#include
-#include
-#include
-#endif
-
-#if BACKWARD_HAS_DWARF == 1
-#include
-#include
-#include
-#include
-#include |