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)



set( QT_WIDGET_SOURCES
  src/planning_scene_warehouse_viewer.cpp
)

set( QT_WIDGET_HEADERS
  include/arm_navigation_tests/planning_scene_warehouse_viewer.h
)


find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
qt4_wrap_cpp(moc_sources ${QT_WIDGET_HEADERS})
include_directories(${CMAKE_BINARY_DIR})
include_directories(${QT_INCLUDE_DIR})

#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)
#DISABLING AS GAZEBO SPAWNING HAS CHANGED
#rosbuild_add_rostest_labeled(gazebo tests/motion_planners/ompl/obstacle_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)

#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)

rosbuild_add_executable(move_arm_regression_test_joint_goal_allowed_contacts src/regression_test_joint_goal_allowed_contacts.cpp)
rosbuild_link_boost(move_arm_regression_test_joint_goal_allowed_contacts thread)
rosbuild_declare_test(move_arm_regression_test_joint_goal_allowed_contacts)
target_link_libraries(move_arm_regression_test_joint_goal_allowed_contacts 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_failure src/regression_test_pose_goal_failure.cpp)
rosbuild_link_boost(move_arm_regression_test_pose_goal_failure thread)
rosbuild_declare_test(move_arm_regression_test_pose_goal_failure)
target_link_libraries(move_arm_regression_test_pose_goal_failure 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)

# rosbuild_add_executable(test_simple_trajectory_pipeline src/test_simple_trajectory_pipeline.cpp) 
# rosbuild_declare_test(test_simple_trajectory_pipeline)
# rosbuild_add_gtest_build_flags(test_simple_trajectory_pipeline)
# target_link_libraries(test_simple_trajectory_pipeline gtest)

#rosbuild_add_executable(warehouse_metrics_evaluator src/warehouse_metrics_evaluator.cpp)
