[ros-users] rosmake --dist?

Daniel Stonier d.stonier at gmail.com
Mon May 31 23:19:28 UTC 2010


One way to do it is to make use of ROS_NOBUILD in all the dependant
packages (do an rosmake --mark-installed on all its dependencies).

I've got a non-ros (i.e. no usage of ros api) suite of packages
building within the ros build environment with the usual install,
uninstall targets running like this. For that build environment I
typically do the following:

- Checkout ros
- Checkout my repo
- Run "rosmake --mark-installed `rosstack contents ros`"

This builds all ros core packages and adds ROS_NOBUILD to each one -
probably a bit of overkill to actually build them all, but once its
done, every rosmake call only acts on the suite of libraries I'm
building.

Be nice if rosmake had two features to make this a bit more convenient:

1) Didn't bring in any ros core dependencies when there are none
explicitly stated in the manifest.
2) Skipped (without error) rosmake --target=xxx for any dependency
which didn't have a target for xxx.


On 1 June 2010 04:55, Bill Morris <morris at ee.ccny.cuny.edu> wrote:
> If I add this to CMakeLists.txt
>
> add_custom_target(distclean rm -r ${PROJECT_SOURCE_DIR}/bin
>  COMMAND rm -r ${PROJECT_SOURCE_DIR}/build
>  COMMAND rm -r ${PROJECT_SOURCE_DIR}/CMakeFiles
>  COMMAND rm ${PROJECT_SOURCE_DIR}/CMakeCache.txt
>  COMMAND rm ${PROJECT_SOURCE_DIR}/cmake_install.cmake
>  COMMAND rm ${PROJECT_SOURCE_DIR}/Makefile
>  COMMAND perl -e 'print qq|include \\x24\(shell rospack find mk
> \)/cmake.mk|' > ${PROJECT_SOURCE_DIR}/Makefile
>  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
>  COMMENT "Preparing for distribution")
>
> This does not work...
> $ rosmake --target=distclean my_pkg
>
> [rosmake-1] >>> xmlrpcpp >>> [ make distclean ]
> [ rosmake ] All 1 lines
> {-------------------------------------------------------------------------------
> -------------------------------------------------------------------------------}
> [rosmake-1] <<< xmlrpcpp <<< [SKIP] No rule to make target distclean
> [ rosmake ] Halting due to failure in package xmlrpcpp.
>
>
> This does not work either...
> $ rosmake -r --target=distclean my_pkg
>
> [rosmake-1] >>> my_pkg >>> [ make distclean ]
> [ rosmake ] All 1 lines
> {-------------------------------------------------------------------------------
> -------------------------------------------------------------------------------}
> [rosmake-1] <<< my_pkg <<< [SKIP] No rule to make target distclean
>
>
> This seems to work
> $ cmake CMakeLists.txt &&  make distclean
>
> Is there a better way to do this?
>
> On Sun, 2010-05-30 at 23:39 -0400, Bill Morris wrote:
>> Is there anything that prepares a package for check-in to version
>> control?
>>
>> I would like a build target like $ rosmake --dist package_name that
>> removes
>>
>> bin/
>> build/
>> CMakeCache.txt
>> CMakeFiles
>> cmake_install.cmake
>>
>> and sets the contents of Makefile to
>> "include $(shell rospack find mk)/cmake.mk"
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>



-- 
Phone : +82-10-5400-3296 (010-5400-3296)
Home: http://snorriheim.dnsdojo.com/
Yujin Robot: http://www.yujinrobot.com/
Embedded Control Libraries: http://snorriheim.dnsdojo.com/redmine/wiki/ecl



More information about the ros-users mailing list