cmake_minimum_required(VERSION 3.5.0)
project(periodicpublisher)

# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
  set(CMAKE_CXX_STANDARD 14)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

find_package(ament_cmake REQUIRED)
find_package(builtin_interfaces REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_lifecycle REQUIRED)
find_package(simple REQUIRED)

include_directories(
	# assure that generated .h files are found
	${PROJECT_SOURCE_DIR}/src-gen
)

add_executable(PeriodicPublisher src-gen/periodicPublisherCompdef/PeriodicPublisher.cpp)
ament_target_dependencies(PeriodicPublisher builtin_interfaces rclcpp rclcpp_lifecycle simple)
#	target_link_libraries(PeriodicPublisher ${catkin_LIBRARIES})

install(TARGETS
	PeriodicPublisher
	DESTINATION lib/${PROJECT_NAME}
)

ament_package()
