cmake_minimum_required(VERSION 3.5.0)
project(publishsubscribe_extcode)

# 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(rclcpp REQUIRED)
find_package(rclcpp_lifecycle REQUIRED)
find_package(simple REQUIRED)

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

add_executable(PeriodicPublisher
	src-gen/periodicPublisherCompdef/PeriodicPublisher.cpp
	src-gen/periodicPublisherCompdef/PeriodicPublisher_main.cpp
	src/periodicPublisherCompdef/PeriodicPublisher_impl.cpp
)
ament_target_dependencies(PeriodicPublisher
	rclcpp
	rclcpp_lifecycle
	simple
)

add_executable(Subscriber
	src-gen/subscriberCompdef/Subscriber.cpp
	src-gen/subscriberCompdef/Subscriber_main.cpp
	src/subscriberCompdef/Subscriber_impl.cpp
)
ament_target_dependencies(Subscriber
	rclcpp
	rclcpp_lifecycle
	simple
)


# Start of user code dependencies
# End of user code

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

# Install launch files.
install(DIRECTORY
	launch
	DESTINATION share/${PROJECT_NAME}/
)
ament_package()
