--- /dev/null
+repositories:
+ behaviortree_cpp_v3:
+ type: git
+ url: https://github.com/BehaviorTree/BehaviorTree.CPP.git
+ version: 3.5.6
--- /dev/null
+#!/bin/bash
+
+rootDir="\/opt\/ros2\/foxy"
+
+main() {
+ baseDir=`echo $PWD`
+ instDir=`echo "${baseDir}/install" | sed -e 's|\/|\\\\/|g'`
+
+
+ G_PKG_LIST=`find . -name install_manifest.txt`
+ PY_PKG_LIST=`find . -name install.log`
+
+ for PKG in ${G_PKG_LIST} ${PY_PKG_LIST}
+ do
+ NAME=`echo ${PKG} | awk -F/ '{print $(NF-1)}' | awk -F- '{print $1}'`
+
+ if [ -e ${baseDir}/${NAME}.list ]
+ then
+ rm -f ${baseDir}/${NAME}.list
+ fi
+ touch ${baseDir}/${NAME}.list
+ if [ ${NAME} != yaml_cpp ]
+ then
+ cat ${PKG} | sed -e "s/^.\+install/${rootDir}/g" >> ${baseDir}/${NAME}.list
+ if [ ${NAME} != console_bridge -a ${NAME} != foo_mem -a ${NAME} != libyaml -a ${NAME} != spdlog -a ${NAME} != tinyxml -a ${NAME} != foo_mem -a ${NAME} != zstd ]
+ then
+ echo "" >> ${baseDir}/${NAME}.list
+ echo "/opt/ros2/foxy/share/${NAME}/*" >> ${baseDir}/${NAME}.list
+ echo "/opt/ros2/foxy/share/colcon-core/packages/${NAME}" >> ${baseDir}/${NAME}.list
+
+ if [ -e ./install/lib/python3.9/site-packages/${NAME} ]
+ then
+ echo "/opt/ros2/foxy/lib/python3.9/site-packages/${NAME}/*" >> ${baseDir}/${NAME}.list
+ fi
+ fi
+ else
+ echo "${NAME}"
+ REPLACE="${rootDir}\/opt\/${NAME}_vendor"
+ cat ${PKG} | sed -e "s/^.\+install/${REPLACE}/g" >> ${baseDir}/${NAME}.list
+ fi
+ done
+ # Execption Case
+ if [ -e ./install/share/colcon-core/packages/test_osrf_testing_tools_cpp ]
+ then
+ if [ -e ${baseDir}/test_osrf_testing_tools_cpp.list ]
+ then
+ rm -f ${baseDir}/test_osrf_testing_tools_cpp.list
+ fi
+ touch ${baseDir}/test_osrf_testing_tools_cpp.list
+ echo "/opt/ros2/foxy/share/colcon-core/packages/test_osrf_testing_tools_cpp" >> ${baseDir}/test_osrf_testing_tools_cpp.list
+ echo "/opt/ros2/foxy/share/test_osrf_testing_tools_cpp/*" >> ${baseDir}/test_osrf_testing_tools_cpp.list
+ fi
+
+ if [ -e ./install/share/ament_index/resource_index/packages/test_launch_ros -a -e ${baseDir}/test_launch_ros.list ]
+ then
+ echo "/opt/ros2/foxy/share/ament_index/resource_index/packages/test_launch_ros" >> ${baseDir}/test_launch_ros.list
+ fi
+
+ if [ -e ${baseDir}/libyaml.list ]
+ then
+ LIST=`grep -v config.h ${baseDir}/libyaml.list`
+ echo -n "" > ${baseDir}/libyaml.list
+ for item in ${LIST}
+ do
+ echo $item >> ${baseDir}/libyaml.list
+ done
+ fi
+}
+
+main $*
--- /dev/null
+#!/bin/bash
+
+init() {
+ outputFileName=package_info_spec.txt
+ cat /dev/null > ${outputFileName}
+}
+
+generatePackageInfo() {
+
+ packageName=$1
+
+ # echo "Generate Package Info : ${packageName}"
+
+ packageVersion=`colcon info ${packageName} | grep "version:" | awk '{ print $2 }'`
+
+ echo "%package -n $packageName" >> ${outputFileName}
+ echo "Summary: $packageName" >> ${outputFileName}
+
+ if [ "x${packageVersion}" != "x" ]
+ then
+ echo "Version: $packageVersion" >> ${outputFileName}
+ fi
+ echo "Provides: $packageName" >> ${outputFileName}
+
+ echo "%description -n $packageName" >> ${outputFileName}
+ echo "$packageName" >> ${outputFileName}
+ echo "" >> ${outputFileName}
+
+}
+
+generatePackagePost() {
+
+ packageName=$1
+
+ # echo "Generate Package Post : ${packageName}"
+
+ echo "%post -n $packageName -p /sbin/ldconfig" >> ${outputFileName}
+ echo "%postun -n $packageName -p /sbin/ldconfig" >> ${outputFileName}
+ echo "" >> ${outputFileName}
+}
+
+generatePackageFiles() {
+
+ packageName=$1
+
+ # echo "Generate Package Post : ${packageFilesSpec}"
+
+ echo "%files -n ${packageName} -f ${packageName}.list" >> ${outputFileName}
+ echo "%manifest %{name}.manifest" >> ${outputFileName}
+ echo "" >> ${outputFileName}
+}
+
+
+main() {
+
+ init
+
+ echo "#### ROS2 Package Info List ####" >> ${outputFileName}
+ for package in `cat package.list`
+ do
+ echo "Generate $package"
+
+ generatePackageInfo $package
+ done
+ echo "################################" >> ${outputFileName}
+ echo "" >> ${outputFileName}
+
+ echo "######## ROS2 Post List ########" >> ${outputFileName}
+ for package in `cat package.list`
+ do
+ echo "Generate $package"
+
+ generatePackagePost $package
+ done
+ echo "################################" >> ${outputFileName}
+ echo "" >> ${outputFileName}
+
+ echo "######## ROS2 Files List #######" >> ${outputFileName}
+ for package in `cat package.list`
+ do
+ echo "Generate $package"
+
+ generatePackageFiles $package
+ done
+ echo "################################" >> ${outputFileName}
+ echo "" >> ${outputFileName}
+}
+
+main $*
--- /dev/null
+behaviortree_cpp_v3
+++ /dev/null
-<manifest>
- <request>
- <domain name="_" />
- </request>
-</manifest>
+++ /dev/null
-Name: behaviortree-cpp
-Summary: %{name}
-Version: 3.5.6
-Release: 0
-
-# ==========================================================
-License: MIT
-# ==========================================================
-
-Group: Development/ROS
-Source0: %{name}-%{version}.tar.gz
-Source1001: %{name}.manifest
-
-# ==========================================================
-# BuildRequires
-# specifies build-time dependencies for the package
-# ==========================================================
-BuildRequires: cmake
-BuildRequires: gtest-devel
-
-%description
-%{name} version %{version}
-
-%package devel
-Summary: %{name}-devel
-Group: Development/ROS
-
-%description devel
-%{name}-devel version %{version}
-
-
-%prep
-%setup -q
-cp %{SOURCE1001} .
-
-# ==========================================================
-# build section
-# how to actually build the software we are packaging
-# ==========================================================
-%build
-mkdir -p build
-pushd build
-%{cmake} ..
-%{make_build}
-popd
-
-
-# ==========================================================
-# install section
-# how to actually build the software we are packaging
-# ==========================================================
-%install
-pushd build
-%{make_install}
-popd
-
-%clean
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-# ==========================================================
-# files section
-# The list of files that will be installed in the end
-# user’s system.
-# ==========================================================
-%files
-%manifest %{name}.manifest
-%license LICENSE
-%{_bindir}/bt3_log_cat
-%{_bindir}/bt3_plugin_manifest
-%{_libdir}/libbehaviortree_cpp_v3.so
-
-%files devel
-%manifest %{name}.manifest
-%license LICENSE
-%{_includedir}/behaviortree_cpp_v3/*.h
-%{_includedir}/behaviortree_cpp_v3/actions/*.h
-%{_includedir}/behaviortree_cpp_v3/controls/*.h
-%{_includedir}/behaviortree_cpp_v3/decorators/*.h
-%{_includedir}/behaviortree_cpp_v3/flatbuffers/*.h
-%{_includedir}/behaviortree_cpp_v3/loggers/*.h
-%{_includedir}/behaviortree_cpp_v3/utils/*.h
-%{_includedir}/behaviortree_cpp_v3/utils/*.hpp
-%{_libdir}/BehaviorTreeV3/cmake/*.cmake
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
--- /dev/null
+%global ros2_dir /opt/ros2/foxy
+
+Name: behaviortree_cpp_v3
+Summary: behaviortree_cpp_v3
+Version: 3.5.6
+Release: 0
+License: MIT License
+Group: Development/Tools
+Source0: %{name}-%{version}.tar.gz
+Source1001: %{name}.manifest
+
+BuildRequires: cmake
+BuildRequires: perl
+#BuildRequires: git
+BuildRequires: curl
+BuildRequires: libcurl
+BuildRequires: pkgconfig(bullet)
+BuildRequires: pkgconfig(libdw)
+BuildRequires: pkgconfig(sqlite3)
+BuildRequires: pkgconfig(openssl1.1)
+BuildRequires: pkgconfig(freetype2)
+BuildRequires: pkgconfig(liblog4cxx)
+BuildRequires: tinyxml2-devel
+BuildRequires: asio-devel
+BuildRequires: eigen-devel
+BuildRequires: pkgconfig(libsystemd)
+BuildRequires: pkgconfig(libzstd)
+
+# maven dummy
+# BuildRequires: maven
+
+BuildRequires: pkgconfig(python3)
+BuildRequires: python3-setuptools
+BuildRequires: python3-setuptools_scm
+BuildRequires: python3-pytest-cov
+BuildRequires: python3-rosdep
+BuildRequires: python3-vcstool
+
+BuildRequires:python3-colcon-argcomplete
+BuildRequires:python3-colcon-bash
+BuildRequires:python3-colcon-cd
+BuildRequires:python3-colcon-cmake
+BuildRequires:python3-colcon-common-extensions
+BuildRequires:python3-colcon-core
+BuildRequires:python3-colcon-defaults
+BuildRequires:python3-colcon-devtools
+BuildRequires:python3-colcon-library-path
+BuildRequires:python3-colcon-metadata
+BuildRequires:python3-colcon-notification
+BuildRequires:python3-colcon-output
+BuildRequires:python3-colcon-package-information
+BuildRequires:python3-colcon-package-selection
+BuildRequires:python3-colcon-parallel-executor
+BuildRequires:python3-colcon-pkg-config
+BuildRequires:python3-colcon-python-setup-py
+BuildRequires:python3-colcon-recursive-crawl
+BuildRequires:python3-colcon-ros
+BuildRequires:python3-colcon-test-result
+
+BuildRequires: python3-catkin-pkg
+BuildRequires: python3-argcomplete
+BuildRequires: python3-lark-parser
+BuildRequires: python3-numpy-devel
+
+BuildRequires: ament_tools
+BuildRequires: ament_index_cpp
+BuildRequires: ament_index_python
+BuildRequires: ament_package
+BuildRequires: local_setup_script
+
+BuildRequires: rclcpp
+BuildRequires: rosidl_typesupport_interface
+BuildRequires: rosidl_default_runtime
+BuildRequires: fastrtps
+BuildRequires: fastrtps_cmake_module
+BuildRequires: rosidl_cmake
+BuildRequires: rosidl_adapter
+BuildRequires: rosidl_runtime_cpp
+BuildRequires: rmw_implementation_cmake
+BuildRequires: rmw_fastrtps_cpp
+BuildRequires: sensor_msgs
+BuildRequires: tf2
+BuildRequires: eigen3_cmake_module
+BuildRequires: tf2_geometry_msgs
+BuildRequires: orocos_kdl
+BuildRequires: tf2_ros
+BuildRequires: message_filters
+BuildRequires: rclcpp_components
+BuildRequires: visualization_msgs
+
+
+%description
+behaviortree_cpp_v3
+
+
+#### ROS2 Package Info List ####
+################################
+
+%prep
+%setup -q
+# vcs import src < ros2.repos
+#%{__patch} -p1 < %{SOURCE100}
+
+%build
+cp %{SOURCE1001} .
+export CFLAGS="${CFLAGS:-%optflags}"
+export CXXFLAGS="${CXXFLAGS:-%optflags}"
+
+export COLCON_PREFIX_PATH=$PWD
+source /opt/ros2/foxy/setup.bash
+echo $COLCON_PREFIX_PATH
+
+colcon build --merge-install --cmake-args -DBUILD_TESTING=OFF
+#colcon build --packages-up-to tinyxml_vendor --cmake-args -DBUILD_TESTING=OFF
+
+%install
+mkdir -p %{buildroot}/%{ros2_dir}
+cp -R install/* %{buildroot}/%{ros2_dir}
+rm -f %{buildroot}/%{ros2_dir}/COLCON_IGNORE
+rm -f %{buildroot}/%{ros2_dir}/_local_setup_util_sh.py
+rm -f %{buildroot}/%{ros2_dir}/setup.bash
+rm -f %{buildroot}/%{ros2_dir}/setup.sh
+rm -f %{buildroot}/%{ros2_dir}/local_setup.bash
+rm -f %{buildroot}/%{ros2_dir}/local_setup.sh
+
+chmod +x ./create_install_filelist.sh
+./create_install_filelist.sh
+
+%clean
+
+%post
+/sbin/ldconfig
+
+%postun
+/sbin/ldconfig
+
+######## ROS2 Post List ########
+################################
+
+
+######## ROS2 Files List #######
+%files -f behaviortree_cpp_v3.list
+%manifest %{name}.manifest
+
+################################
+
--- /dev/null
+#!/bin/bash
+
+REMOVE_LIST=`find src/ -name .git`
+
+for gitdir in $REMOVE_LIST
+do
+ echo "Removing $gitdir"
+ rm -rf $gitdir
+done