Merge pull request #3 from jcwenger/feature/warnings

Feature/warnings
This commit is contained in:
Jason Wenger 2020-06-06 12:31:54 -10:00 committed by GitHub
commit 2f42c809c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 145 additions and 31 deletions

View File

@ -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)

View 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)

View 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()

View File

@ -85,6 +85,9 @@ else (LIBUSB_1_LIBRARIES AND LIBUSB_1_INCLUDE_DIRS)
message(STATUS "Found libusb-1.0:")
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)

View File

@ -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;