include(OrogenPkgCheckModules)

ADD_CUSTOM_TARGET(regen

<% ruby_bin   = RbConfig::CONFIG['RUBY_INSTALL_NAME'] %>
<%= ruby_bin %> -S orogen <%= RTT_CPP.command_line_options.join(" ") %> <%= project.deffile %>
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})

add_custom_command(

OUTPUT ${PROJECT_SOURCE_DIR}/<%= RTT_CPP::AUTOMATIC_AREA_NAME %>/<%= File.basename(project.deffile) %>
DEPENDS <%= project.deffile %>
COMMENT "oroGen specification file changed. Run make regen first."
COMMAND /bin/false)

<% if File.file?(project.deffile) %> add_custom_target(check-uptodate ALL

DEPENDS "${PROJECT_SOURCE_DIR}/<%= RTT_CPP::AUTOMATIC_AREA_NAME %>/<%= File.basename(project.deffile) %>")

<% else %> add_custom_target(check-uptodate ALL) <% end %>

# In Orogen project, the build target is specified at generation time set(OROCOS_TARGET “<%= project.orocos_target %>”)

# Enable -Wall for compilers that know it include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG(“-Wall” CXX_SUPPORTS_WALL) if (CXX_SUPPORTS_WALL)

add_definitions ("-Wall")

endif() CHECK_CXX_COMPILER_FLAG(“-Wno-unused-local-typedefs” CXX_SUPPORTS_WUNUSED_LOCAL_TYPEDEFS) if (CXX_SUPPORTS_WUNUSED_LOCAL_TYPEDEFS)

add_definitions ("-Wno-unused-local-typedefs")

endif() check_cxx_compiler_flag(“-Wunused-variable” CXX_SUPPORTS_WUNUSED_VARIABLE)

if (${CMAKE_SYSTEM_NAME} STREQUAL “Linux”)

message(STATUS "running on Linux, implementing the __orogen_getTID() operation on all tasks")
add_definitions(-DHAS_GETTID)

else()

message(STATUS "NOT running on Linux (cmake reports ${CMAKE_SYSTEM_NAME}). The __orogen_getTID() operation will be a dummy")

endif()

# Define the necessary RPath information for all binaries. That can be stripped # later option(WITH_RPATH “enables or disables embedding RPath information in binaries” ON) if(WITH_RPATH)

include(RPATHHandling)
CMAKE_USE_FULL_RPATH("${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/lib/orocos:${CMAKE_INSTALL_PREFIX}/lib/orocos/types")

endif(WITH_RPATH)

# Set the build type to debug by default IF ( NOT CMAKE_BUILD_TYPE )

SET( CMAKE_BUILD_TYPE Debug )

ENDIF ( NOT CMAKE_BUILD_TYPE )

# Check for Doxygen and enable documentation building if available FIND_PACKAGE( Doxygen ) IF ( DOXYGEN_FOUND )

MESSAGE(STATUS "documentation can be built" )
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/Doxyfile.in ${PROJECT_BINARY_DIR}/Doxyfile @ONLY)
ADD_CUSTOM_TARGET(doc doxygen Doxyfile)

ELSE ( DOXYGEN_FOUND )

MESSAGE(STATUS "documentation generation disabled" )

ENDIF ( DOXYGEN_FOUND )

# # Start setting up the build itself #

# First, we need the Orocos::RTT, and optionally the CORBA part orogen_pkg_check_modules(OrocosRTT REQUIRED “orocos-rtt-${OROCOS_TARGET}>=2.1.0”)

# Add generic include directories INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>/)

<% if project.typekit %> # Take care of the typekit ADD_SUBDIRECTORY( ${CMAKE_CURRENT_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>/typekit ) INCLUDE_DIRECTORIES(BEFORE “${CMAKE_CURRENT_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>/typekit”) INCLUDE_DIRECTORIES(BEFORE “${CMAKE_CURRENT_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>/typekit/types”) add_dependencies(check-uptodate check-typekit-uptodate) # For backward compatibility add_custom_target(regen-typekit) add_dependencies(regen-typekit check-typekit-uptodate) <% end %>

# Take care of the task library <% if !project.self_tasks.empty? %> ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/tasks) <% end %>

<% additional_plugin_source_dirs.each do |dir| %> ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>/<%= dir %>) <% end %>

configure_file(<%= Generation::AUTOMATIC_AREA_NAME %>/orogen-project-<%= project.name %>.pc.in

orogen-project-<%= project.name %>.pc @ONLY)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/orogen-project-<%= project.name %>.pc

DESTINATION lib/pkgconfig)

INSTALL(FILES ${PROJECT_SOURCE_DIR}/<%= Generation::AUTOMATIC_AREA_NAME %>/<%= File.basename(project.deffile) %>

DESTINATION share/orogen)

# Finally, add deployment code <% project.deployers.each do |deployer| %> include(<%= Generation::AUTOMATIC_AREA_NAME %>/config/<%= deployer.name %>Deployment.cmake) <% end %>

# Install typelib and/or Roby plugins if (EXISTS ${PROJECT_SOURCE_DIR}/scripts/typelib.rb)

install(FILES ${PROJECT_SOURCE_DIR}/scripts/typelib.rb
    DESTINATION share/typelib/ruby
    RENAME <%= project.name %>.rb)

endif() if (EXISTS ${PROJECT_SOURCE_DIR}/scripts/roby.rb)

install(FILES ${PROJECT_SOURCE_DIR}/scripts/roby.rb
    DESTINATION share/orocos/roby
    RENAME <%= project.name %>.rb)

endif()