commit
2f42c809c5
@ -1,4 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.5.1)
|
||||
|
||||
find_program(CCACHE_PROGRAM ccache)
|
||||
if(CCACHE_PROGRAM)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
project(openauto CXX)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
@ -21,10 +27,15 @@ set(Boost_USE_STATIC_RUNTIME OFF)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake_modules/")
|
||||
SET(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_INIT} -Wall -pedantic -fPIC")
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_INIT} -Wall -pedantic")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-g -O3")
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 6.3)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-psabi")
|
||||
endif()
|
||||
|
||||
add_definitions(-DBOOST_ALL_DYN_LINK)
|
||||
|
||||
find_package(Boost REQUIRED COMPONENTS system log OPTIONAL_COMPONENTS unit_test_framework)
|
||||
@ -33,33 +44,23 @@ find_package(Qt5 COMPONENTS Multimedia MultimediaWidgets Bluetooth)
|
||||
find_package(Protobuf REQUIRED)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(rtaudio REQUIRED)
|
||||
find_package(aasdk REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_package(libomx)
|
||||
|
||||
if(WIN32)
|
||||
set(WINSOCK2_LIBRARIES "ws2_32")
|
||||
endif(WIN32)
|
||||
|
||||
if(RPI_BUILD)
|
||||
add_definitions(-DUSE_OMX -DOMX_SKIP64BIT)
|
||||
set(BCM_HOST_LIBRARIES "/opt/vc/lib/libbcm_host.so")
|
||||
set(BCM_HOST_INCLUDE_DIRS "/opt/vc/include")
|
||||
set(ILCLIENT_INCLUDE_DIRS "/opt/vc/src/hello_pi/libs/ilclient")
|
||||
set(ILCLIENT_LIBRARIES "/opt/vc/src/hello_pi/libs/ilclient/libilclient.a;/opt/vc/lib/libvcos.so;/opt/vc/lib/libvcilcs.a;/opt/vc/lib/libvchiq_arm.so")
|
||||
endif(RPI_BUILD)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}
|
||||
${Qt5Multimedia_INCLUDE_DIRS}
|
||||
${Qt5MultimediaWidgets_INCLUDE_DIRS}
|
||||
${Qt5Widgets_INCLUDE_DIRS}
|
||||
${Qt5Bluetooth_INCLUDE_DIRS}
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${LIBUSB_1_INCLUDE_DIRS}
|
||||
${PROTOBUF_INCLUDE_DIR}
|
||||
${OPENSSL_INCLUDE_DIR}
|
||||
${RTAUDIO_INCLUDE_DIRS}
|
||||
${AASDK_PROTO_INCLUDE_DIRS}
|
||||
${AASDK_INCLUDE_DIRS}
|
||||
${BCM_HOST_INCLUDE_DIRS}
|
||||
${ILCLIENT_INCLUDE_DIRS}
|
||||
${include_directory})
|
||||
|
||||
link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
|
||||
@ -72,23 +73,20 @@ file(GLOB_RECURSE autoapp_source_files ${autoapp_sources_directory}/*.ui ${autoa
|
||||
|
||||
add_executable(autoapp ${autoapp_source_files})
|
||||
|
||||
file(GLOB_RECURSE autoapp_lib_source_files ${autoapp_sources_directory}/App.cpp ${autoapp_sources_directory}/Configuration/*.cpp ${autoapp_sources_directory}/Projection/*.cpp ${autoapp_sources_directory}/Service/*.cpp)
|
||||
file(GLOB_RECURSE autoapp_lib_inlcude_files ${autoapp_include_directory}/App.hpp ${autoapp_include_directory}/Configuration/*.hpp ${autoapp_include_directory}/Projection/*.hpp ${autoapp_include_directory}/Service/*.hpp)
|
||||
add_library(auto SHARED ${autoapp_lib_source_files} ${autoapp_lib_inlcude_files})
|
||||
|
||||
target_link_libraries(autoapp
|
||||
target_link_libraries(autoapp aasdk libusb
|
||||
${Boost_LIBRARIES}
|
||||
${Qt5Multimedia_LIBRARIES}
|
||||
${Qt5MultimediaWidgets_LIBRARIES}
|
||||
${Qt5Bluetooth_LIBRARIES}
|
||||
${LIBUSB_1_LIBRARIES}
|
||||
${PROTOBUF_LIBRARIES}
|
||||
${BCM_HOST_LIBRARIES}
|
||||
${ILCLIENT_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
${WINSOCK2_LIBRARIES}
|
||||
${RTAUDIO_LIBRARIES}
|
||||
${AASDK_PROTO_LIBRARIES}
|
||||
${AASDK_LIBRARIES})
|
||||
)
|
||||
|
||||
if(libomx_FOUND)
|
||||
target_link_libraries(autoapp omx)
|
||||
endif()
|
||||
|
||||
set(btservice_sources_directory ${sources_directory}/btservice)
|
||||
set(btservice_include_directory ${include_directory}/f1x/openauto/btservice)
|
||||
@ -101,4 +99,7 @@ target_link_libraries(btservice
|
||||
${Qt5Bluetooth_LIBRARIES}
|
||||
${Qt5MultimediaWidgets_LIBRARIES}
|
||||
${PROTOBUF_LIBRARIES}
|
||||
${AASDK_PROTO_LIBRARIES})
|
||||
)
|
||||
|
||||
install(TARGETS autoapp btservice
|
||||
RUNTIME DESTINATION bin)
|
||||
|
43
cmake_modules/Findaasdk.cmake
Normal file
43
cmake_modules/Findaasdk.cmake
Normal file
@ -0,0 +1,43 @@
|
||||
set (AASDK_DIR ~/aasdk)
|
||||
|
||||
find_path(AASDK_INCLUDE_DIR
|
||||
f1x/aasdk/Version.hpp
|
||||
PATHS ${AASDK_DIR}
|
||||
PATH_SUFFIXES include
|
||||
)
|
||||
|
||||
find_path(AASDK_PROTO_INCLUDE_DIR
|
||||
aasdk_proto/AbsoluteInputEventData.pb.h
|
||||
PATHS ${AASDK_DIR}
|
||||
)
|
||||
|
||||
find_path(AASDK_LIB_DIR
|
||||
libaasdk.so
|
||||
PATHS ${AASDK_DIR}
|
||||
PATH_SUFFIXES lib
|
||||
)
|
||||
|
||||
if (AASDK_INCLUDE_DIR AND AASDK_PROTO_INCLUDE_DIR AND AASDK_LIB_DIR)
|
||||
set(AASDK_FOUND TRUE)
|
||||
endif()
|
||||
|
||||
if (AASDK_FOUND)
|
||||
if (NOT aasdk_FIND_QUIETLY)
|
||||
message(STATUS "Found aasdk:")
|
||||
message(STATUS " - Includes: ${AASDK_INCLUDE_DIR}")
|
||||
message(STATUS " - Libraries: ${AASDK_LIBRARIES}")
|
||||
endif()
|
||||
add_library(aasdk INTERFACE)
|
||||
target_include_directories(aasdk INTERFACE ${AASDK_INCLUDE_DIR} ${AASDK_PROTO_INCLUDE_DIR})
|
||||
target_link_libraries(aasdk INTERFACE ${AASDK_LIB_DIR}/libaasdk.so ${AASDK_LIB_DIR}/libaasdk_proto.so)
|
||||
else()
|
||||
if (aasdk_FIND_REQUIRED)
|
||||
if(AASDK_INCLUDE_DIR AND NOT AASDK_PROTO_INCLUDE_DIR)
|
||||
message(FATAL_ERROR "aasdk was found but not built. Perform an in-source build.")
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find aasdk")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(AASDK_INCLUDE_DIRS AASDK_LIBRARIES)
|
67
cmake_modules/Findlibomx.cmake
Normal file
67
cmake_modules/Findlibomx.cmake
Normal file
@ -0,0 +1,67 @@
|
||||
set (OMX_DIR /opt/vc/)
|
||||
|
||||
find_path(BCM_HOST_INCLUDE_DIR
|
||||
bcm_host.h
|
||||
PATHS
|
||||
${OMX_DIR}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
)
|
||||
|
||||
find_path(BCM_HOST_LIB_DIR
|
||||
libbcm_host.so
|
||||
PATHS
|
||||
${OMX_DIR}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
)
|
||||
|
||||
find_path(ILCLIENT_INCLUDE_DIR
|
||||
ilclient.h
|
||||
PATHS
|
||||
${OMX_DIR}
|
||||
PATH_SUFFIXES
|
||||
src/hello_pi/libs/ilclient
|
||||
)
|
||||
|
||||
find_path(ILCLIENT_LIB_DIR
|
||||
libilclient.a
|
||||
PATHS
|
||||
${OMX_DIR}
|
||||
PATH_SUFFIXES
|
||||
src/hello_pi/libs/ilclient
|
||||
)
|
||||
|
||||
if (BCM_HOST_INCLUDE_DIR AND ILCLIENT_INCLUDE_DIR AND BCM_HOST_LIB_DIR AND ILCLIENT_LIB_DIR)
|
||||
set(libomx_FOUND TRUE)
|
||||
endif()
|
||||
|
||||
if (libomx_FOUND)
|
||||
if (NOT libomx_FIND_QUIETLY)
|
||||
message(STATUS "Found omx:")
|
||||
message(STATUS " - Bcm Host: ${BCM_HOST_INCLUDE_DIR}")
|
||||
message(STATUS " - ilclient: ${ILCLIENT_INCLUDE_DIR}")
|
||||
endif()
|
||||
|
||||
add_library(omx INTERFACE)
|
||||
|
||||
target_include_directories(omx SYSTEM INTERFACE
|
||||
${BCM_HOST_INCLUDE_DIR}
|
||||
${ILCLIENT_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(omx INTERFACE
|
||||
${BCM_HOST_LIB_DIR}/libbcm_host.so
|
||||
${ILCLIENT_LIB_DIR}/libilclient.a
|
||||
${BCM_HOST_LIB_DIR}/libvcos.so
|
||||
${BCM_HOST_LIB_DIR}/libvcilcs.a
|
||||
${BCM_HOST_LIB_DIR}/libvchiq_arm.so
|
||||
)
|
||||
|
||||
target_compile_definitions(omx INTERFACE
|
||||
-DUSE_OMX
|
||||
-DOMX_SKIP64BIT
|
||||
-DRASPBERRYPI3
|
||||
)
|
||||
|
||||
endif()
|
@ -83,8 +83,11 @@ else (LIBUSB_1_LIBRARIES AND LIBUSB_1_INCLUDE_DIRS)
|
||||
if (LIBUSB_1_FOUND)
|
||||
if (NOT libusb_1_FIND_QUIETLY)
|
||||
message(STATUS "Found libusb-1.0:")
|
||||
message(STATUS " - Includes: ${LIBUSB_1_INCLUDE_DIRS}")
|
||||
message(STATUS " - Libraries: ${LIBUSB_1_LIBRARIES}")
|
||||
message(STATUS " - Includes: ${LIBUSB_1_INCLUDE_DIRS}")
|
||||
message(STATUS " - Libraries: ${LIBUSB_1_LIBRARIES}")
|
||||
add_library(libusb INTERFACE)
|
||||
target_include_directories(libusb SYSTEM INTERFACE ${LIBUSB_1_INCLUDE_DIR})
|
||||
target_link_libraries(libusb INTERFACE ${LIBUSB_1_LIBRARY})
|
||||
endif (NOT libusb_1_FIND_QUIETLY)
|
||||
else (LIBUSB_1_FOUND)
|
||||
if (libusb_1_FIND_REQUIRED)
|
||||
|
@ -262,19 +262,19 @@ void OMXVideoOutput::setOpacity(OMX_U32 alpha)
|
||||
|
||||
bool OMXVideoOutput::createComponents()
|
||||
{
|
||||
if(ilclient_create_component(client_, &components_[VideoComponent::DECODER], "video_decode", static_cast<ILCLIENT_CREATE_FLAGS_T>(ILCLIENT_DISABLE_ALL_PORTS | ILCLIENT_ENABLE_INPUT_BUFFERS)) != 0)
|
||||
if(ilclient_create_component(client_, &components_[VideoComponent::DECODER], const_cast<char*>("video_decode"), static_cast<ILCLIENT_CREATE_FLAGS_T>(ILCLIENT_DISABLE_ALL_PORTS | ILCLIENT_ENABLE_INPUT_BUFFERS)) != 0)
|
||||
{
|
||||
OPENAUTO_LOG(error) << "[OMXVideoOutput] video decode component creation failed.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if(ilclient_create_component(client_, &components_[VideoComponent::RENDERER], "video_render", ILCLIENT_DISABLE_ALL_PORTS) != 0)
|
||||
if(ilclient_create_component(client_, &components_[VideoComponent::RENDERER], const_cast<char*>("video_render"), ILCLIENT_DISABLE_ALL_PORTS) != 0)
|
||||
{
|
||||
OPENAUTO_LOG(error) << "[OMXVideoOutput] video renderer component creation failed.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if(ilclient_create_component(client_, &components_[VideoComponent::CLOCK], "clock", ILCLIENT_DISABLE_ALL_PORTS) != 0)
|
||||
if(ilclient_create_component(client_, &components_[VideoComponent::CLOCK], const_cast<char*>("clock"), ILCLIENT_DISABLE_ALL_PORTS) != 0)
|
||||
{
|
||||
OPENAUTO_LOG(error) << "[OMXVideoOutput] clock component creation failed.";
|
||||
return false;
|
||||
@ -286,7 +286,7 @@ bool OMXVideoOutput::createComponents()
|
||||
return false;
|
||||
}
|
||||
|
||||
if(ilclient_create_component(client_, &components_[VideoComponent::SCHEDULER], "video_scheduler", ILCLIENT_DISABLE_ALL_PORTS) != 0)
|
||||
if(ilclient_create_component(client_, &components_[VideoComponent::SCHEDULER], const_cast<char*>("video_scheduler"), ILCLIENT_DISABLE_ALL_PORTS) != 0)
|
||||
{
|
||||
OPENAUTO_LOG(error) << "[OMXVideoOutput] video scheduler component creation failed.";
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user