Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

configure order for dignostics #264

Closed
tkruse opened this issue Nov 26, 2012 · 5 comments
Closed

configure order for dignostics #264

tkruse opened this issue Nov 26, 2012 · 5 comments

Comments

@tkruse
Copy link
Member

tkruse commented Nov 26, 2012

Hi,

trying to build a groovy underlay with diagnostic packages, I got a strange error. Maybe this needs to be fixed in the diagnostics 'stack', since I get no similar behavior from other stacks.. However since the configure step seems to have orderings right, this might also be a catkin bug. Note how early "Scanning dependencies of target test_diagnostic_aggregator" appears. Below are also the package.xmls of diagnostics and test_diagnostc_aggregator I have (should be latest from groovy-devel). Maybe diagnostics meta-package misses build_depend tags (in comparison to other meta-packages), but I think catkin should probably work with it as it is.

$ cmake ../src -DCMAKE_INSTALL_PREFIX=../install
-- Using CATKIN_DEVEL_PREFIX: /home/kruset/groovy_underlay/build/devel
-- Using CMAKE_PREFIX_PATH: /home/kruset/local/ubuntu-amd64/
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- catkin 0.5.52
-- BUILD_SHARED_LIBS is on
WARNING: Package name "langs-dev" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits and underscores.
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing packages in topological order:
-- ~~  - class_loader
-- ~~  - common_msgs
-- ~~  - cpp_common
-- ~~  - diagnostics
-- ~~  - genmsg
-- ~~  - gencpp
-- ~~  - genlisp
-- ~~  - genpy
-- ~~  - langs
-- ~~  - langs-dev
-- ~~  - mk
-- ~~  - ros
-- ~~  - ros_comm
-- ~~  - ros_tutorials
-- ~~  - rosbash
-- ~~  - rosboost_cfg
-- ~~  - rosbuild
-- ~~  - rosclean
-- ~~  - roscpp_core
-- ~~  - roscpp_traits
-- ~~  - roscreate
-- ~~  - rosgraph
-- ~~  - roslang
-- ~~  - rosmake
-- ~~  - rosmaster
-- ~~  - rosmsg
-- ~~  - rospack
-- ~~  - roslib
-- ~~  - rospy
-- ~~  - rosservice
-- ~~  - rostime
-- ~~  - roscpp_serialization
-- ~~  - rosunit
-- ~~  - rosconsole
-- ~~  - pluginlib
-- ~~  - rosconsole_bridge
-- ~~  - rostest
-- ~~  - std_msgs
-- ~~  - actionlib_msgs
-- ~~  - diagnostic_common_diagnostics
-- ~~  - diagnostic_msgs
-- ~~  - geometry_msgs
-- ~~  - nav_msgs
-- ~~  - rosgraph_msgs
-- ~~  - roslaunch
-- ~~  - rosnode
-- ~~  - rosparam
-- ~~  - rospy_tutorials
-- ~~  - rostopic
-- ~~  - roswtf
-- ~~  - sensor_msgs
-- ~~  - shape_msgs
-- ~~  - std_srvs
-- ~~  - stereo_msgs
-- ~~  - test_rosgraph
-- ~~  - test_roslaunch
-- ~~  - test_rosmaster
-- ~~  - trajectory_msgs
-- ~~  - visualization_msgs
-- ~~  - wstool_catkin
-- ~~  - xmlrpcpp
-- ~~  - roscpp
-- ~~  - actionlib
-- ~~  - diagnostic_aggregator
-- ~~  - diagnostic_updater
-- ~~  - message_filters
-- ~~  - roscpp_tutorials
-- ~~  - rosout
-- ~~  - self_test
-- ~~  - test_diagnostic_aggregator
-- ~~  - topic_tools
-- ~~  - rosbag
-- ~~  - diagnostic_analysis
-- ~~  - turtlesim
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

$ make install -j8
Scanning dependencies of target cpp_common
Scanning dependencies of target rospack
Scanning dependencies of target roscpp_serialization
Scanning dependencies of target std_msgs_gencpp
Scanning dependencies of target std_msgs_genlisp
Scanning dependencies of target std_msgs_genpy
Scanning dependencies of target rostime
[  1%] [  1%] [  1%] [  1%] Building CXX object class_loader/CMakeFiles/class_loader.dir/src/multi_library_class_loader.cpp.o
Generating C++ code from std_msgs/Bool.msg
Generating Lisp code from std_msgs/Bool.msg
Generating Python from MSG std_msgs/Bool
[  1%] [  1%] Building CXX object roscpp_core/roscpp_serialization/CMakeFiles/roscpp_serialization.dir/src/serialization.cpp.o
Building CXX object roscpp_core/cpp_common/CMakeFiles/cpp_common.dir/src/debug.cpp.o                                                                          
[  1%] Building CXX object roscpp_core/rostime/CMakeFiles/rostime.dir/src/duration.cpp.o                                                                      
[  1%] Building CXX object rospack/CMakeFiles/rospack.dir/src/rospack.cpp.o                                                                                   
[  1%] Generating Lisp code from std_msgs/Byte.msg
[  1%] Generating Python from MSG std_msgs/Byte
[  1%] [  1%] Generating Lisp code from std_msgs/ByteMultiArray.msg
[  2%] Generating C++ code from std_msgs/Byte.msg
Generating Python from MSG std_msgs/ByteMultiArray
[  2%] [  2%] Generating Lisp code from std_msgs/Char.msg
Generating Python from MSG std_msgs/Char
[  3%] Generating Lisp code from std_msgs/ColorRGBA.msg
[  3%] Generating C++ code from std_msgs/ByteMultiArray.msg
Linking CXX shared library ../../devel/lib/libcpp_common.so
[  3%] Generating Python from MSG std_msgs/ColorRGBA
[  3%] Generating Lisp code from std_msgs/Duration.msg
[  3%] Built target cpp_common
...
[ 21%] [ 21%] Generating C++ code from test_rosmaster/TestArrays.msg
Generating Python code from SRV roscpp_tutorials/TwoInts
Scanning dependencies of target test_diagnostic_aggregator
[ 21%] [ 21%] Generating Python from MSG test_rosmaster/TestString
Built target test_rosmaster_genlisp
[ 22%] Generating Python srv __init__.py for roscpp_tutorials
[ 22%] [ 22%] Building CXX object diagnostics/test_diagnostic_aggregator/CMakeFiles/test_diagnostic_aggregator.dir/src/match_no_analyze_analyzer.cpp.o
Generating C++ code from test_rosmaster/TestPrimitives.msg
[ 22%] Building CXX object diagnostics/test_diagnostic_aggregator/CMakeFiles/test_diagnostic_aggregator.dir/src/fail_init_analyzer.cpp.o
[ 22%] Generating Python code from SRV test_rosmaster/AddTwoInts
[ 22%] [ 22%] Built target roscpp_tutorials_genpy
Scanning dependencies of target topic_tools_genlisp
[ 23%] Building CXX object ros_comm/utilities/xmlrpcpp/CMakeFiles/xmlrpcpp.dir/src/XmlRpcServerMethod.cpp.o
Scanning dependencies of target topic_tools_gencpp
[ 23%] Generating Lisp code from topic_tools/MuxAdd.srv
Generating C++ code from topic_tools/MuxAdd.srv
[ 23%] Generating Python code from SRV test_rosmaster/RossrvA
[ 23%] Generating C++ code from test_rosmaster/TestString.msg
[ 23%] Generating Lisp code from topic_tools/MuxDelete.srv
[ 23%] Building CXX object ros_comm/utilities/xmlrpcpp/CMakeFiles/xmlrpcpp.dir/src/XmlRpcSocket.cpp.o
[ 23%] [ 23%] Generating C++ code from topic_tools/MuxDelete.srv
Generating Python code from SRV test_rosmaster/RossrvB
[ 23%] [ 23%] Generating C++ code from test_rosmaster/AddTwoInts.srv
Generating Lisp code from topic_tools/MuxList.srv
[ 23%] Generating Python msg __init__.py for test_rosmaster
In file included from /home/kruset/groovy_underlay/src/diagnostics/test_diagnostic_aggregator/include/test_diagnostic_aggregator/match_no_analyze_analyzer.h:43:0,
                 from /home/kruset/groovy_underlay/src/diagnostics/test_diagnostic_aggregator/src/match_no_analyze_analyzer.cpp:39:
/home/kruset/groovy_underlay/src/diagnostics/diagnostic_aggregator/include/diagnostic_aggregator/analyzer.h:45:46: fatal error: diagnostic_msgs/DiagnosticStatus.h: No such file or directory
compilation terminated.
[ 23%] In file included from /home/kruset/groovy_underlay/src/diagnostics/test_diagnostic_aggregator/include/test_diagnostic_aggregator/fail_init_analyzer.h:43:0,
                 from /home/kruset/groovy_underlay/src/diagnostics/test_diagnostic_aggregator/src/fail_init_analyzer.cpp:39:
/home/kruset/groovy_underlay/src/diagnostics/diagnostic_aggregator/include/diagnostic_aggregator/analyzer.h:45:46: fatal error: diagnostic_msgs/DiagnosticStatus.h: No such file or directory
compilation terminated.
[ 23%] Building CXX object ros_comm/utilities/xmlrpcpp/CMakeFiles/xmlrpcpp.dir/src/XmlRpcSource.cpp.o
Generating Lisp code from topic_tools/MuxSelect.srv
[ 23%] Generating Python srv __init__.py for test_rosmaster
[ 23%] Built target topic_tools_genlisp
[ 23%] Generating C++ code from topic_tools/MuxList.srv
Scanning dependencies of target topic_tools_genpy
[ 23%] [ 23%] Generating Python code from SRV topic_tools/MuxAdd
Built target test_rosmaster_genpy
[ 23%] [ 23%] Building CXX object ros_comm/utilities/xmlrpcpp/CMakeFiles/xmlrpcpp.dir/src/XmlRpcUtil.cpp.o
Scanning dependencies of target turtlesim_gencpp
[ 23%] Generating Python code from SRV test_rosmaster/RossrvA
[ 23%] Generating C++ code from test_rosmaster/TestString.msg
[ 23%] Generating Lisp code from topic_tools/MuxDelete.srv
[ 23%] Building CXX object ros_comm/utilities/xmlrpcpp/CMakeFiles/xmlrpcpp.dir/src/XmlRpcSocket.cpp.o
[ 23%] [ 23%] Generating C++ code from topic_tools/MuxDelete.srv
Generating Python code from SRV test_rosmaster/RossrvB
[ 23%] [ 23%] Generating C++ code from test_rosmaster/AddTwoInts.srv
Generating Lisp code from topic_tools/MuxList.srv
[ 23%] Generating Python msg __init__.py for test_rosmaster
In file included from /home/kruset/groovy_underlay/src/diagnostics/test_diagnostic_aggregator/include/test_diagnostic_aggregator/match_no_analyze_analyzer.h:43:0,
                 from /home/kruset/groovy_underlay/src/diagnostics/test_diagnostic_aggregator/src/match_no_analyze_analyzer.cpp:39:
/home/kruset/groovy_underlay/src/diagnostics/diagnostic_aggregator/include/diagnostic_aggregator/analyzer.h:45:46: fatal error: diagnostic_msgs/DiagnosticStatus.h: No such file or directory
compilation terminated.
[ 23%] In file included from /home/kruset/groovy_underlay/src/diagnostics/test_diagnostic_aggregator/include/test_diagnostic_aggregator/fail_init_analyzer.h:43:0,
                 from /home/kruset/groovy_underlay/src/diagnostics/test_diagnostic_aggregator/src/fail_init_analyzer.cpp:39:
/home/kruset/groovy_underlay/src/diagnostics/diagnostic_aggregator/include/diagnostic_aggregator/analyzer.h:45:46: fatal error: diagnostic_msgs/DiagnosticStatus.h: No such file or directory
compilation terminated.
[ 23%] Building CXX object ros_comm/utilities/xmlrpcpp/CMakeFiles/xmlrpcpp.dir/src/XmlRpcSource.cpp.o
Generating Lisp code from topic_tools/MuxSelect.srv
[ 23%] Generating Python srv __init__.py for test_rosmaster
[ 23%] Built target topic_tools_genlisp
[...]
Scanning dependencies of target rospackexe
[ 25%] [ 25%] [ 25%] Building CXX object rospack/CMakeFiles/rospackexe.dir/src/rospack_main.cpp.o
Generating Lisp code from turtlesim/Pose.msg
Generating Python from MSG turtlesim/Pose
[ 25%] make[2]: *** [diagnostics/test_diagnostic_aggregator/CMakeFiles/test_diagnostic_aggregator.dir/src/fail_init_analyzer.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Generating Lisp code from turtlesim/Velocity.msg
make[2]: *** [diagnostics/test_diagnostic_aggregator/CMakeFiles/test_diagnostic_aggregator.dir/src/match_no_analyze_analyzer.cpp.o] Error 1
make[1]: *** [diagnostics/test_diagnostic_aggregator/CMakeFiles/test_diagnostic_aggregator.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Scanning dependencies of target rosstackexe
[ 25%] [ 25%] Generating C++ code from turtlesim/SetPen.srv
Generating Python from MSG turtlesim/Velocity
...
make: *** [all] Error 2

diagnostics package xml

<package>
  <name>diagnostics</name>
  <version>1.7.7</version>
  <description>diagnostics</description>
  <author>Kevin Watts</author>
  <author email="brice.rebsamen@gmail.com">Brice Rebsamen</author>
  <maintainer email="brice.rebsamen@gmail.com">Brice Rebsamen</maintainer>

  <license>BSD</license>

  <url type="website">http://www.ros.org/wiki/diagnostics</url>
<!-- <url type="bugtracker"></url> -->

  <author>Kevin Watts</author>

  <run_depend>diagnostic_aggregator</run_depend>
  <run_depend>diagnostic_analysis</run_depend>
  <run_depend>diagnostic_common_diagnostics</run_depend>
  <run_depend>diagnostic_updater</run_depend>
  <run_depend>self_test</run_depend>

  <export>
    <metapackage/>
  </export>
</package>

test_diagnostic_aggregator/package.xml

<package>
  <name>test_diagnostic_aggregator</name>
  <version>1.7.7</version>
  <description>Basic diagnostic_aggregator tests are  in the</description>
  <author>Kevin Watts</author>
  <author email="brice.rebsamen@gmail.com">Brice Rebsamen</author>
  <maintainer email="brice.rebsamen@gmail.com">Brice Rebsamen</maintainer>

  <license>BSD</license>

  <url type="website">http://ros.org/wiki/test_diagnostic_aggregator</url>
<!-- <url type="bugtracker"></url> -->

  <author>Kevin Watts</author>

  <build_depend>diagnostic_aggregator</build_depend>
  <build_depend>diagnostic_msgs</build_depend>
  <build_depend>pluginlib</build_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>

  <run_depend>diagnostic_aggregator</run_depend>
  <run_depend>diagnostic_msgs</run_depend>
  <run_depend>pluginlib</run_depend>
  <run_depend>roscpp</run_depend>
  <run_depend>rospy</run_depend>

  <!-- <test_depend>pluginlib</test_depend> -->
  <!-- <test_depend>diagnostic_msgs</test_depend> -->
  <!-- <test_depend>diagnostic_aggregator</test_depend> -->
  <!-- <test_depend>roscpp</test_depend> -->
  <!-- <test_depend>rospy</test_depend> -->

  <export>
    <diagnostic_aggregator plugin="${prefix}/test_diagnostic_aggregator_plugin.xml"/>
    <architecture_independent/>
  </export>
</package>
@tkruse
Copy link
Member Author

tkruse commented Nov 26, 2012

i realize the logs look awful on github, compilation errors occur around 23%, look for "compilation terminated."

@tkruse
Copy link
Member Author

tkruse commented Nov 26, 2012

Also this is using latest catkin master branch

@tkruse
Copy link
Member Author

tkruse commented Nov 26, 2012

Note this is also strange because calling make without -j8 does not give that error (gives another one due to bug in cmakeLists.txt)

@dirk-thomas
Copy link
Member

This looks like a missing target dependency in CMake. The target which compiles the file match_no_analyze_analyzer.cpp should have an explicit dependency on the diagnostic_msgs message generation target (diagnostic_msgs_gencpp).

The reason is that CMake will build those targets in parallel as it does not know that the compilation of the cpp file include a to-be-generated-header.

@tkruse
Copy link
Member Author

tkruse commented Nov 26, 2012

ok, will open ticket on diagnostic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants