mirror of
https://github.com/eclipse-openvehicle-api/openvehicle-api.git
synced 2026-07-02 05:35:11 +00:00
88
examples/_howto_examples/CMakeLists.txt
Normal file
88
examples/_howto_examples/CMakeLists.txt
Normal file
@@ -0,0 +1,88 @@
|
||||
project(HowToExamples)
|
||||
|
||||
# Use new policy for project version settings and default warning level
|
||||
cmake_policy(SET CMP0048 NEW) # requires CMake 3.14
|
||||
cmake_policy(SET CMP0092 NEW) # requires CMake 3.15
|
||||
|
||||
# Use C++17 support
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Libary symbols are hidden by default
|
||||
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||
|
||||
# Include link to export directory of SDV V-API development include files location
|
||||
include_directories(${SDV_FRAMEWORK_DEV_INCLUDE})
|
||||
|
||||
add_library(example_vehicle_device SHARED source/example_vehicle_device.cpp)
|
||||
set_target_properties(example_vehicle_device PROPERTIES PREFIX "")
|
||||
set_target_properties(example_vehicle_device PROPERTIES SUFFIX ".sdv")
|
||||
|
||||
add_library(example_basic_service SHARED source/example_basic_service.cpp)
|
||||
set_target_properties(example_basic_service PROPERTIES PREFIX "")
|
||||
set_target_properties(example_basic_service PROPERTIES SUFFIX ".sdv")
|
||||
|
||||
add_library(example_access_to_other_components SHARED source/example_access_to_other_components.cpp)
|
||||
set_target_properties(example_access_to_other_components PROPERTIES PREFIX "")
|
||||
set_target_properties(example_access_to_other_components PROPERTIES SUFFIX ".sdv")
|
||||
|
||||
add_library(example_general_component SHARED source/example_general_component.cpp)
|
||||
set_target_properties(example_general_component PROPERTIES PREFIX "")
|
||||
set_target_properties(example_general_component PROPERTIES SUFFIX ".sdv")
|
||||
|
||||
add_library(example_general_component_with_initialization SHARED source/example_general_component_with_initialization.cpp)
|
||||
set_target_properties(example_general_component_with_initialization PROPERTIES PREFIX "")
|
||||
set_target_properties(example_general_component_with_initialization PROPERTIES SUFFIX ".sdv")
|
||||
|
||||
add_library(example_dispatch_service SHARED source/example_dispatch_service.cpp)
|
||||
set_target_properties(example_dispatch_service PROPERTIES PREFIX "")
|
||||
set_target_properties(example_dispatch_service PROPERTIES SUFFIX ".sdv")
|
||||
|
||||
add_library(example_complex_service SHARED source/example_complex_service.cpp)
|
||||
set_target_properties(example_complex_service PROPERTIES PREFIX "")
|
||||
set_target_properties(example_complex_service PROPERTIES SUFFIX ".sdv")
|
||||
|
||||
#---------------------------------------
|
||||
# Verify all HowTo examples
|
||||
#---------------------------------------
|
||||
add_executable(example_run_all_components "source/run_all_examples.cpp")
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
if (WIN32)
|
||||
target_link_libraries(example_run_all_components Ws2_32 Winmm Rpcrt4.lib)
|
||||
else()
|
||||
target_link_libraries(example_run_all_components ${CMAKE_DL_LIBS} rt ${CMAKE_THREAD_LIBS_INIT})
|
||||
endif()
|
||||
else()
|
||||
target_link_libraries(example_run_all_components Rpcrt4.lib)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Copy the config files for the application example
|
||||
file (COPY ${PROJECT_SOURCE_DIR}/source/docu_dispatch.toml DESTINATION ${CMAKE_BINARY_DIR}/bin/config)
|
||||
file (COPY ${PROJECT_SOURCE_DIR}/source/docu_examples.toml DESTINATION ${CMAKE_BINARY_DIR}/bin/config)
|
||||
file (COPY ${PROJECT_SOURCE_DIR}/source/docu_app_examples.toml DESTINATION ${CMAKE_BINARY_DIR}/bin/config)
|
||||
|
||||
#---------------------------------
|
||||
# Application examples
|
||||
#---------------------------------
|
||||
add_executable(example_application source/example_application.cpp)
|
||||
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
if (WIN32)
|
||||
target_link_libraries(example_application Ws2_32 Winmm Rpcrt4.lib)
|
||||
else()
|
||||
target_link_libraries(example_application ${CMAKE_DL_LIBS} rt ${CMAKE_THREAD_LIBS_INIT})
|
||||
endif()
|
||||
else()
|
||||
target_link_libraries(example_application Rpcrt4.lib)
|
||||
endif()
|
||||
|
||||
|
||||
add_dependencies(example_run_all_components example_vehicle_device example_complex_service
|
||||
example_dispatch_service example_general_component
|
||||
example_access_to_other_components example_basic_service
|
||||
example_general_component_with_initialization)
|
||||
|
||||
|
||||
add_dependencies(example_application example_general_component example_access_to_other_components)
|
||||
Reference in New Issue
Block a user