From 16cec35bdde00615bdaec602b1b24646d067acbc Mon Sep 17 00:00:00 2001 From: "Jason C. Wenger" Date: Sun, 10 May 2020 12:04:43 -1000 Subject: [PATCH] Add OMX as a module --- CMakeLists.txt | 17 +++------ cmake_modules/Findlibomx.cmake | 70 ++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 12 deletions(-) create mode 100644 cmake_modules/Findlibomx.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 0daf7db..128c441 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,19 +41,12 @@ 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} @@ -63,8 +56,6 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${PROTOBUF_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR} ${RTAUDIO_INCLUDE_DIRS} - ${BCM_HOST_INCLUDE_DIRS} - ${ILCLIENT_INCLUDE_DIRS} ${include_directory}) link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) @@ -84,12 +75,14 @@ target_link_libraries(autoapp aasdk libusb ${Qt5Bluetooth_LIBRARIES} ${PROTOBUF_LIBRARIES} ${ZLIB_LIBRARIES} - ${BCM_HOST_LIBRARIES} - ${ILCLIENT_LIBRARIES} ${WINSOCK2_LIBRARIES} ${RTAUDIO_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) file(GLOB_RECURSE btservice_source_files ${btservice_sources_directory}/*.cpp ${btservice_include_directory}/*.hpp ${common_include_directory}/*.hpp) diff --git a/cmake_modules/Findlibomx.cmake b/cmake_modules/Findlibomx.cmake new file mode 100644 index 0000000..2c9f1dd --- /dev/null +++ b/cmake_modules/Findlibomx.cmake @@ -0,0 +1,70 @@ +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() +