diff --git a/nodelet/CMakeLists.txt b/nodelet/CMakeLists.txt index a08e0ab6..8425efcc 100644 --- a/nodelet/CMakeLists.txt +++ b/nodelet/CMakeLists.txt @@ -50,4 +50,5 @@ install(TARGETS nodelet ) install(DIRECTORY cmake DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + USE_SOURCE_PERMISSIONS ) diff --git a/nodelet/cmake/nodelet-extras.cmake b/nodelet/cmake/nodelet-extras.cmake index 45133bcf..cb423c38 100644 --- a/nodelet/cmake/nodelet-extras.cmake +++ b/nodelet/cmake/nodelet-extras.cmake @@ -44,12 +44,9 @@ macro(nodelet_add_executable node_name nodelet_name) # Generate single nodelet executable set(NODE_NAME ${node_name}) set(NODELET_NAME ${nodelet_name}) - configure_file(${_nodelet_SOURCE_DIR}/cmake/standalone_nodelet_exe.cpp.in - ${node_name}.cpp @ONLY) - add_executable(${node_name}_exe ${node_name}.cpp) - set_target_properties(${node_name}_exe PROPERTIES OUTPUT_NAME ${node_name}) - # Additional linking should be conducted in each package - target_link_libraries(${node_name}_exe ${catkin_LIBRARIES} ${BOOST_LIBRARIES}) - # Generate list of targets to use at installation - list(APPEND ${PROJECT_NAME}_nodelet_exe_targets ${node_name}_exe) + configure_file(${_nodelet_SOURCE_DIR}/cmake/standalone_nodelet_exe.in ${node_name} @ONLY) + file(COPY ${CMAKE_CURRENT_BINARY_DIR}/${node_name} + DESTINATION ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_BIN_DESTINATION}) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${node_name} + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) endmacro() diff --git a/nodelet/cmake/standalone_nodelet_exe.cpp.in b/nodelet/cmake/standalone_nodelet_exe.cpp.in deleted file mode 100644 index a133038e..00000000 --- a/nodelet/cmake/standalone_nodelet_exe.cpp.in +++ /dev/null @@ -1,50 +0,0 @@ -/********************************************************************* -* Software License Agreement (BSD License) -* -* Copyright (c) 2016, Kentaro Wada. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. -* * Neither the name of the Kentaro Wada nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*********************************************************************/ - -#include -#include - -int main(int argc, char **argv) -{ - ros::init(argc, argv, "@NODE_NAME@"); - - nodelet::Loader manager(true); - nodelet::M_string remappings; - nodelet::V_string my_argv; - - manager.load(ros::this_node::getName(), "@NODELET_NAME@", remappings, my_argv); - - ros::spin(); - return 0; -} diff --git a/nodelet/cmake/standalone_nodelet_exe.in b/nodelet/cmake/standalone_nodelet_exe.in new file mode 100755 index 00000000..cf7f2015 --- /dev/null +++ b/nodelet/cmake/standalone_nodelet_exe.in @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +###################################################################### +# Software License Agreement (BSD License) +# +# Copyright (c) 2016, Kentaro Wada. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the Kentaro Wada nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +###################################################################### + +# Default node name is "@NODE_NAME@", +# but it is reconfigured by argument afterward. +rosrun nodelet nodelet standalone @NODELET_NAME@ __name:=@NODE_NAME@ "$@"