set(NETUDP_EXAMPLE1_TARGET ${NETUDP_TARGET}_EchoClient)
message(STATUS "🚀 Add Example : ${NETUDP_EXAMPLE1_TARGET}")
add_executable(${NETUDP_EXAMPLE1_TARGET} "${CMAKE_CURRENT_SOURCE_DIR}/EchoClient.cpp")
target_link_libraries(${NETUDP_EXAMPLE1_TARGET} NetUdp)
set_target_properties(${NETUDP_EXAMPLE1_TARGET} PROPERTIES FOLDER "${NETUDP_FOLDER_PREFIX}/Examples")

set(NETUDP_EXAMPLE2_TARGET ${NETUDP_TARGET}_EchoServer)
message(STATUS "🚀 Add Example : ${NETUDP_EXAMPLE2_TARGET}")
add_executable(${NETUDP_EXAMPLE2_TARGET} "${CMAKE_CURRENT_SOURCE_DIR}/EchoServer.cpp")
target_link_libraries(${NETUDP_EXAMPLE2_TARGET} NetUdp)
set_target_properties(${NETUDP_EXAMPLE2_TARGET} PROPERTIES FOLDER "${NETUDP_FOLDER_PREFIX}/Examples")

set(NETUDP_EXAMPLE3_TARGET ${NETUDP_TARGET}_EchoClientServer)
message(STATUS "🚀 Add Example : ${NETUDP_EXAMPLE3_TARGET}")
add_executable(${NETUDP_EXAMPLE3_TARGET} "${CMAKE_CURRENT_SOURCE_DIR}/EchoClientServer.cpp")
target_link_libraries(${NETUDP_EXAMPLE3_TARGET} NetUdp)
set_target_properties(${NETUDP_EXAMPLE3_TARGET} PROPERTIES FOLDER "${NETUDP_FOLDER_PREFIX}/Examples")

set(NETUDP_EXAMPLE4_TARGET ${NETUDP_TARGET}_EchoMulticastLoopback)
message(STATUS "🚀 Add Example : ${NETUDP_EXAMPLE4_TARGET}")
add_executable(${NETUDP_EXAMPLE4_TARGET} "${CMAKE_CURRENT_SOURCE_DIR}/EchoMulticastLoopback.cpp")
target_link_libraries(${NETUDP_EXAMPLE4_TARGET} NetUdp)
set_target_properties(${NETUDP_EXAMPLE4_TARGET} PROPERTIES FOLDER "${NETUDP_FOLDER_PREFIX}/Examples")

if(QT_VERSION_MAJOR LESS 6)
  find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Quick QuickControls2)
  include(${PROJECT_SOURCE_DIR}/cmake/FetchQaterial.cmake)

  set(NETUDP_EXAMPLE5_TARGET ${NETUDP_TARGET}_EchoQml)
  message(STATUS "🚀 Add Example : ${NETUDP_EXAMPLE5_TARGET}")
  add_executable(${NETUDP_EXAMPLE5_TARGET} "${CMAKE_CURRENT_SOURCE_DIR}/EchoQml.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/EchoQml.qrc")
  target_link_libraries(${NETUDP_EXAMPLE5_TARGET} NetUdp Qaterial Qt${QT_VERSION_MAJOR}::Quick Qt${QT_VERSION_MAJOR}::QuickControls2)
  set_target_properties(${NETUDP_EXAMPLE5_TARGET} PROPERTIES FOLDER "${NETUDP_FOLDER_PREFIX}/Examples" AUTORCC ON)
endif()

if(NETUDP_ENABLE_PCH AND COMMAND target_precompile_headers)
  target_precompile_headers(${NETUDP_EXAMPLE1_TARGET} PRIVATE ${NETUDP_SRCS_FOLDER}/NetUdp/Pch/Pch.hpp)
  target_precompile_headers(${NETUDP_EXAMPLE2_TARGET} PRIVATE ${NETUDP_SRCS_FOLDER}/NetUdp/Pch/Pch.hpp)
  target_precompile_headers(${NETUDP_EXAMPLE3_TARGET} PRIVATE ${NETUDP_SRCS_FOLDER}/NetUdp/Pch/Pch.hpp)
  target_precompile_headers(${NETUDP_EXAMPLE4_TARGET} PRIVATE ${NETUDP_SRCS_FOLDER}/NetUdp/Pch/Pch.hpp)
  if(QT_VERSION_MAJOR LESS 6)
    target_precompile_headers(${NETUDP_EXAMPLE5_TARGET} PRIVATE ${NETUDP_SRCS_FOLDER}/NetUdp/Pch/Pch.hpp)
  endif()
endif()
