diff --git a/.project b/.project new file mode 100644 index 0000000000000000000000000000000000000000..30e95c1635f8c915aa82405389161a5a74126b92 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>rosjava_tools</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.python.pydev.PyDevBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.python.pydev.pythonNature</nature> + </natures> +</projectDescription> diff --git a/.pydevproject b/.pydevproject new file mode 100644 index 0000000000000000000000000000000000000000..c9648ba1d0173844007c4d1307f8c5b00309cc1b --- /dev/null +++ b/.pydevproject @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?eclipse-pydev version="1.0"?> + +<pydev_project> +<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH"> +<path>/rosjava_tools/src</path> +</pydev_pathproperty> +<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property> +<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property> +</pydev_project> diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..f6973f7ec4f80f30942dbb1a029507732b697eca --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,33 @@ +############################################################################## +# CMake +############################################################################## + +cmake_minimum_required(VERSION 2.8.3) +project(rosjava_tools) + +############################################################################## +# Catkin +############################################################################## + +find_package(catkin REQUIRED) +catkin_package(CFG_EXTRAS rosjava.cmake) + +catkin_python_setup() + +############################################################################## +# Project Settings +############################################################################## + +# Graveyarded for now +#install( +# PROGRAMS +# scripts/android_post_build_script +# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +# ) + +#install(DIRECTORY launch +# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) +# +#install(DIRECTORY param +# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) + diff --git a/cmake/rosjava.cmake.em b/cmake/rosjava.cmake.em new file mode 100644 index 0000000000000000000000000000000000000000..49819f8e92e6559a38311f025098dc96daf25304 --- /dev/null +++ b/cmake/rosjava.cmake.em @@ -0,0 +1,70 @@ +# Scans down directories till it finds the gradle wrapper. +# It sets the following variables +# - ${PROJECT_NAME}_gradle_BINARY +macro(find_gradle) + find_file(${PROJECT_NAME}_gradle_BINARY gradlew + PATHS + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../.. + NO_DEFAULT_PATH + ) + if(NOT ${PROJECT_NAME}_gradle_BINARY) + message(FATAL_ERROR "Could not find the gradle wrapper in this directory or below.") + endif() +endmacro() + +# Scans down directories till it finds the gradle project settings. +# It sets the following variables +# - ${PROJECT_NAME}_gradle_ROOT +macro(find_gradle_repo_root) + find_file(${PROJECT_NAME}_gradle_SETTINGS settings.gradle + PATHS + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../.. + NO_DEFAULT_PATH + ) + if(NOT ${PROJECT_NAME}_gradle_SETTINGS) + message(FATAL_ERROR "Could not find the settings.gradle file in this directory or below.") + endif() + get_filename_component(${PROJECT_NAME}_gradle_ROOT ${${PROJECT_NAME}_gradle_SETTINGS} PATH) +endmacro() + +# Calls the gradle wrapper to compile just the package +# that it is called in. +# Experimental - probably better to leave gradle handle entire repos. +macro(catkin_rosjava_setup task) + find_gradle() + add_custom_target(gradle-${PROJECT_NAME} + ALL + COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${task} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) + catkin_package_xml() + foreach(depends in ${${PROJECT_NAME}_BUILD_DEPENDS}) + if(TARGET gradle-${depends}) + #message(STATUS "Adding dependency gradle-${depends}") + add_dependencies(gradle-${PROJECT_NAME} gradle-${depends}) + endif() + endforeach() +endmacro() + +# Calls the root level gradle wrapper to run the multi-project +# configuration and compile the entire suite. +macro(catkin_rosjava_repo_setup task) + find_gradle() + find_gradle_repo_root() + add_custom_target(gradle-${PROJECT_NAME} + ALL + COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${task} + WORKING_DIRECTORY ${${PROJECT_NAME}_gradle_ROOT} + ) + catkin_package_xml() + foreach(depends in ${${PROJECT_NAME}_BUILD_DEPENDS}) + if(TARGET gradle-${depends}) + #message(STATUS "Adding dependency gradle-${depends}") + add_dependencies(gradle-${PROJECT_NAME} gradle-${depends}) + endif() + endforeach() +endmacro() diff --git a/package.xml b/package.xml new file mode 100644 index 0000000000000000000000000000000000000000..026b2f9e1dcb869e592fc5b6a8e0a662cff83e5e --- /dev/null +++ b/package.xml @@ -0,0 +1,24 @@ +<package> + <name>rosjava_tools</name> + <version>0.1.0</version> + <description> + Simple tools and catkin modules for rosjava development. + </description> + <maintainer email="d.stonier@gmail.com">Daniel Stonier</maintainer> + <license>BSD</license> + <url type="website">http://ros.org/wiki/rosjava_tools</url> + <url type="repository">https://github.com/ros-java/rosjava_tools</url> + <url type="bugtracker">https://github.com/ros-java/rosjava_tools/issues</url> + <author email="d.stonier@gmail.com">Daniel Stonier</author> + + <buildtool_depend>catkin</buildtool_depend> + + <build_depend>rospkg</build_depend> + <build_depend>rospy</build_depend> + <build_depend>java</build_depend> + <build_depend>ant</build_depend> + <run_depend>rospkg</run_depend> + <run_depend>rospy</run_depend> + <run_depend>java</run_depend> + <run_depend>ant</run_depend> +</package> diff --git a/setup.py b/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..e134ddeface3e851bc057bd259327e615bf9809f --- /dev/null +++ b/setup.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python + +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +d = generate_distutils_setup( + packages=['rosjava_tools'], + package_dir={'': 'src'}, + #scripts=['scripts/android_generate_project_properties', + # 'scripts/catkin_init_android_repo', + # 'scripts/catkin_create_android_pkg', + # 'scripts/catkin_create_android_library_pkg' + # ], + #package_data = {'rosjava_tools': [ + # 'gradle/*', + # 'gradle/gradle/wrapper/*' + # 'templates/android_package/*', + # 'templates/init_repo/*', + # ]}, + requires=['rospy' 'rospkg'] +) + +setup(**d)