CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

#############################################################################
# Variables
#############################################################################

#SET(ECL_SSH snorri@snorriheim.dnsdojo.com)
SET(ECL_SSH snorri@snorriserver)

EXECUTE_PROCESS( 
    COMMAND rosstack find ecl_lite 
    ERROR_VARIABLE ECL_LITE_ROOT_ERROR
    OUTPUT_VARIABLE ECL_LITE_ROOT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

EXECUTE_PROCESS( 
    COMMAND rosstack find ecl_core 
    ERROR_VARIABLE ECL_CORE_ROOT_ERROR
    OUTPUT_VARIABLE ECL_CORE_ROOT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

EXECUTE_PROCESS( 
    COMMAND rosstack find ecl_navigation 
    ERROR_VARIABLE ECL_NAVI_ROOT_ERROR
    OUTPUT_VARIABLE ECL_NAVI_ROOT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

EXECUTE_PROCESS( 
    COMMAND rosstack find ecl_manipulation 
    ERROR_VARIABLE ECL_MANI_ROOT_ERROR
    OUTPUT_VARIABLE ECL_MANI_ROOT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

EXECUTE_PROCESS( 
    COMMAND rosstack find ecl_tools 
    ERROR_VARIABLE ECL_TOOLS_ROOT_ERROR
    OUTPUT_VARIABLE ECL_TOOLS_ROOT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

#############################################################################
# Default Build
#############################################################################
#
# Using command-target combos like this lets us build intelligent targets
# that do not repeat if they have already been run.
#
MESSAGE(STATUS "Ecl docs building.....please wait.")


# COMMAND rosrun ecl_tools ecldoc -n ECL -o ${CMAKE_SOURCE_DIR}/doc --paths=${ECL_CORE_ROOT}:${ECL_NAVI_ROOT}:${ECL_MANI_ROOT}:${ECL_CROSS_ROOT}
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_SOURCE_DIR}/doc/index.html
                COMMAND rosrun ecl_doc ecldoc -n ECL -o ${CMAKE_SOURCE_DIR}/doc	--paths=${ECL_TOOLS_ROOT}:${ECL_LITE_ROOT}:${ECL_CORE_ROOT}:${ECL_NAVI_ROOT}:${ECL_MANI_ROOT}
                COMMAND rm -rf ${CMAKE_SOURCE_DIR}/tmp
                COMMAND rm -f deps.gv
                WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
                COMMENT "Building doxygen."
                )
                
ADD_CUSTOM_TARGET(doxygen ALL
                DEPENDS ${CMAKE_SOURCE_DIR}/doc/index.html
                COMMENT "Documentation finished."
                )

ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_SOURCE_DIR}/doc/ecl_package_graph.pdf
                COMMAND rxdeps --cluster --review -o doc/ecl_package_graph.pdf ecl_tools ecl_lite ecl_core ecl_navigation ecl_manipulation
                WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
                COMMENT "Building graphs."
                )
                
ADD_CUSTOM_TARGET(graphs ALL
                DEPENDS ${CMAKE_SOURCE_DIR}/doc/ecl_package_graph.pdf
                COMMENT "Graphs finished."
                )
                
#############################################################################
# Upload
#############################################################################

ADD_CUSTOM_TARGET(upload_doxygen
                COMMAND ssh ${ECL_SSH} rm -rf /mnt/froody/servers/doxygen/ecl
                COMMAND scp -r doc ${ECL_SSH}:/mnt/froody/servers/doxygen/ecl
                WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
                COMMENT "Uploading ecl-ros documentation to the web server."
)


##############################################################################
# Ros
##############################################################################

include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
rosbuild_init()

##############################################################################
# Ecl-Ros
##############################################################################

rosbuild_find_ros_package(ecl_build)
set(CMAKE_MODULE_PATH ${ecl_build_PACKAGE_PATH}/cmake/modules)
include(ecl_package)
include(ecl_build_utilities)
include(ecl_platform_detection)
include(ecl_ros_utilities)

#############################################################################
# Configuration
#############################################################################

ecl_version()
ecl_add_uninstall_target()
ecl_detect_distro()
ecl_roll_cpack_packages()

#############################################################################
# Work
#############################################################################

install(DIRECTORY doc DESTINATION share/ecl)

#############################################################################
# Summary
#############################################################################
 
ecl_summary_cpack()
