cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)

# Set the build type.  Options are:
#  Coverage       : w/ debug symbols, w/o optimization, w/ code-coverage
#  Debug          : w/ debug symbols, w/o optimization
#  Release        : w/o debug symbols, w/ optimization
#  RelWithDebInfo : w/ debug symbols, w/ optimization
#  MinSizeRel     : w/o debug symbols, w/ optimization, stripped binaries
#set(ROS_BUILD_TYPE RelWithDebInfo)

rosbuild_init()

#set the default path for built executables to the "bin" directory
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#set the default path for built libraries to the "lib" directory
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

#uncomment if you have defined messages
#rosbuild_genmsg()
#uncomment if you have defined services
#rosbuild_gensrv()

#common commands for building c++ executables and libraries
#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
#target_link_libraries(${PROJECT_NAME} another_library)
#rosbuild_add_boost_directories()
#rosbuild_link_boost(${PROJECT_NAME} thread)
#rosbuild_add_executable(example examples/example.cpp)
#target_link_libraries(example ${PROJECT_NAME})

rosbuild_add_rostest_labeled(gazebo tests/motion_planners/ompl/freespace_tests.launch)
rosbuild_add_rostest_labeled(gazebo tests/motion_planners/ompl/freespace_tests_both_arms.launch)
rosbuild_add_rostest_labeled(gazebo tests/motion_planners/ompl/obstacle_tests.launch)

rosbuild_add_rostest_labeled(gazebo tests/planning_environment/planning_environment_tests.launch)

rosbuild_add_rostest_labeled(gazebo tests/arm_navigation/decumulated_joint_states_test.launch)

rosbuild_add_executable(allowable_contacts_test src/allowable_contacts_test.cpp)
target_link_libraries(allowable_contacts_test gtest)

rosbuild_add_executable(path_constraints_test src/path_constraints_test.cpp)
target_link_libraries(path_constraints_test gtest)

rosbuild_add_executable(regression_test_add_object src/regression_test_add_object.cpp)
target_link_libraries(regression_test_add_object gtest)

rosbuild_add_executable(collision_free_trajectory_control src/collision_free_trajectory_control.cpp)
target_link_libraries(collision_free_trajectory_control gtest)

rosbuild_add_executable(move_arm_pose_goal src/regression_test_pose_goal.cpp)
target_link_libraries(move_arm_pose_goal gtest)

rosbuild_add_executable(move_arm_joint_goal src/regression_test_joint_goal.cpp)
target_link_libraries(move_arm_joint_goal gtest)

#rosbuild_check_for_vm(vm)
#if(NOT vm)
#  rosbuild_add_rostest(tests/planning_environment/test_robot_models.xml)
#endif(NOT vm)

#automated regression test for move_arm
rosbuild_add_executable(move_arm_regression_test_joint_goal src/regression_test_joint_goal.cpp)
rosbuild_link_boost(move_arm_regression_test_joint_goal thread)
rosbuild_declare_test(move_arm_regression_test_joint_goal)
target_link_libraries(move_arm_regression_test_joint_goal gtest)

#automated regression test for move_arm
rosbuild_add_executable(move_arm_regression_test_pose_goal src/regression_test_pose_goal.cpp)
rosbuild_link_boost(move_arm_regression_test_pose_goal thread)
rosbuild_declare_test(move_arm_regression_test_pose_goal)
target_link_libraries(move_arm_regression_test_pose_goal gtest)

rosbuild_add_executable(move_arm_regression_test_pose_goal_no_ik src/regression_test_pose_goal_no_ik.cpp)
rosbuild_link_boost(move_arm_regression_test_pose_goal_no_ik thread)
rosbuild_declare_test(move_arm_regression_test_pose_goal_no_ik)
target_link_libraries(move_arm_regression_test_pose_goal_no_ik gtest)

#automated regression test for move_arm
rosbuild_add_executable(move_arm_regression_test_invalid_joint_goal src/regression_test_invalid_joint_goal.cpp)
rosbuild_link_boost(move_arm_regression_test_invalid_joint_goal thread)
rosbuild_declare_test(move_arm_regression_test_invalid_joint_goal)
target_link_libraries(move_arm_regression_test_invalid_joint_goal gtest)

#automated regression test for move_arm
rosbuild_add_executable(move_arm_regression_test_joint_goal_point_head src/regression_test_joint_goal_point_head.cpp)
rosbuild_link_boost(move_arm_regression_test_joint_goal_point_head thread)
rosbuild_declare_test(move_arm_regression_test_joint_goal_point_head)
target_link_libraries(move_arm_regression_test_joint_goal_point_head gtest)

#automated regression test for move_arm
rosbuild_add_executable(move_arm_regression_test_pose_goal_param src/regression_test_pose_goal_param.cpp)
rosbuild_link_boost(move_arm_regression_test_pose_goal_param thread)
rosbuild_declare_test(move_arm_regression_test_pose_goal_param)
target_link_libraries(move_arm_regression_test_pose_goal_param gtest)

rosbuild_add_executable(move_arm_regression_test_under_table_pose_goal src/regression_test_under_table_pose_goal.cpp)
rosbuild_link_boost(move_arm_regression_test_under_table_pose_goal thread)
rosbuild_declare_test(move_arm_regression_test_under_table_pose_goal)
target_link_libraries(move_arm_regression_test_under_table_pose_goal gtest)

rosbuild_add_executable(move_arm_regression_test_under_table_pose_goal_no_ik src/regression_test_under_table_pose_goal_no_ik.cpp)
rosbuild_link_boost(move_arm_regression_test_under_table_pose_goal_no_ik thread)
rosbuild_declare_test(move_arm_regression_test_under_table_pose_goal_no_ik)
target_link_libraries(move_arm_regression_test_under_table_pose_goal_no_ik gtest)

rosbuild_add_executable(move_arm_regression_test_simple_pose src/regression_test_simple_pose.cpp)
rosbuild_link_boost(move_arm_regression_test_simple_pose thread)
rosbuild_declare_test(move_arm_regression_test_simple_pose)
target_link_libraries(move_arm_regression_test_simple_pose gtest)

rosbuild_add_executable(move_arm_regression_test_joint_goal_both_arms src/regression_test_joint_goal_both_arms.cpp)
rosbuild_link_boost(move_arm_regression_test_joint_goal_both_arms thread)
rosbuild_declare_test(move_arm_regression_test_joint_goal_both_arms)
target_link_libraries(move_arm_regression_test_joint_goal_both_arms gtest)

rosbuild_add_executable(move_arm_regression_test_pose_goal_both_arms src/regression_test_pose_goal_both_arms.cpp)
rosbuild_link_boost(move_arm_regression_test_pose_goal_both_arms thread)
rosbuild_declare_test(move_arm_regression_test_pose_goal_both_arms)
target_link_libraries(move_arm_regression_test_pose_goal_both_arms gtest)

rosbuild_add_executable(move_arm_regression_test_pose_goal_floorobj_no_ik src/regression_test_pose_goal_floorobj_no_ik.cpp)
rosbuild_link_boost(move_arm_regression_test_pose_goal_floorobj_no_ik thread)
rosbuild_declare_test(move_arm_regression_test_pose_goal_floorobj_no_ik)
target_link_libraries(move_arm_regression_test_pose_goal_floorobj_no_ik gtest)
