From 48bc6b8e439371b45bbcfbd5ec94b2e0c37bc2a8 Mon Sep 17 00:00:00 2001 From: Duarte Fonseca <42354362+duartenfonseca@users.noreply.github.com> Date: Thu, 22 Aug 2024 14:46:10 +0100 Subject: [PATCH] Updating Hello World example CMakeLists (#752) * Updating Hello World example CMakeLists * corrections from suggested changes --------- Co-authored-by: Duarte Fonseca --- examples/hello_world/CMakeLists.txt | 47 +++++++++++++++-------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/examples/hello_world/CMakeLists.txt b/examples/hello_world/CMakeLists.txt index d6e222df6..d528692e6 100644 --- a/examples/hello_world/CMakeLists.txt +++ b/examples/hello_world/CMakeLists.txt @@ -3,33 +3,37 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -cmake_minimum_required (VERSION 2.8.7) +cmake_minimum_required (VERSION 3.13) project (vSomeIPHelloWorld) find_package(Threads REQUIRED) set(VSOMEIP_NAME "vsomeip3") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") +# create_target("executable") +function(create_target executable) + add_library(vsomeip_hello_world_${executable} INTERFACE) + target_sources(vsomeip_hello_world_${executable} INTERFACE + "${CMAKE_CURRENT_SOURCE_DIR}/hello_world_${executable}.hpp" + ) + target_compile_features(vsomeip_hello_world_${executable} INTERFACE cxx_std_17) + + target_include_directories(vsomeip_hello_world_${executable} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR} + ) +endfunction() + +# link_target("executable") +function(link_target executable) + add_executable(hello_world_${executable}) + target_sources(hello_world_${executable} PRIVATE hello_world_${executable}_main.cpp) + target_link_libraries(hello_world_${executable} PRIVATE vsomeip_hello_world_${executable} vsomeip3 Threads::Threads) +endfunction() include_directories(${VSOMEIP_INCLUDE_DIRS}) -add_library(vsomeip_hello_world_service INTERFACE) -target_sources(vsomeip_hello_world_service INTERFACE - "${CMAKE_CURRENT_SOURCE_DIR}/hello_world_service.hpp" -) -target_include_directories(vsomeip_hello_world_service INTERFACE - "${CMAKE_CURRENT_SOURCE_DIR}" -) - -add_library(vsomeip_hello_world_client INTERFACE) -target_sources(vsomeip_hello_world_client INTERFACE - "${CMAKE_CURRENT_SOURCE_DIR}/hello_world_client.hpp" -) - -target_include_directories(vsomeip_hello_world_client INTERFACE - "${CMAKE_CURRENT_SOURCE_DIR}" -) +create_target("service") +create_target("client") if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Android") # This will get us acces to @@ -40,9 +44,6 @@ if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Android") message("${VSOMEIP_NAME} was not found. Please specify vsomeip_DIR") endif() - add_executable (hello_world_service hello_world_service_main.cpp) - target_link_libraries(hello_world_service vsomeip_hello_world_service ${VSOMEIP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - - add_executable (hello_world_client hello_world_client_main.cpp) - target_link_libraries(hello_world_client vsomeip_hello_world_client ${VSOMEIP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) + link_target("client") + link_target("service") endif()