cmake_minimum_required(VERSION 3.5.0)
project(clientserver)

# 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(AddClient src-gen/addClientCompdef/AddClient.cpp)
ament_target_dependencies(AddClient rclcpp rclcpp_lifecycle simple)
#	target_link_libraries(AddClient ${catkin_LIBRARIES})

add_executable(AddServer src-gen/addServerCompdef/AddServer.cpp)
ament_target_dependencies(AddServer rclcpp rclcpp_lifecycle simple)
#	target_link_libraries(AddServer ${catkin_LIBRARIES})

install(TARGETS
	AddClient
	DESTINATION lib/${PROJECT_NAME}
)
install(TARGETS
	AddServer
	DESTINATION lib/${PROJECT_NAME}
)

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