From 033d9181d431bb7d66d8b6c0a6a172c233ac7aa0 Mon Sep 17 00:00:00 2001 From: MGTheTrain Date: Fri, 19 Apr 2024 21:16:37 +0200 Subject: [PATCH] update CMakeLists.txt for proper build artifact generation --- apps/video-player/src/CMakeLists.txt | 6 +++++- modules/video/include/video.h | 9 ++++----- modules/video/src/CMakeLists.txt | 8 ++++++-- modules/video/src/video.cpp | 2 +- modules/video/test/video-test.cpp | 4 ++-- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/apps/video-player/src/CMakeLists.txt b/apps/video-player/src/CMakeLists.txt index cdad9b9..4e0db77 100644 --- a/apps/video-player/src/CMakeLists.txt +++ b/apps/video-player/src/CMakeLists.txt @@ -24,6 +24,9 @@ project(${TARGET}) add_definitions(-DVIDEO_PLAYER) +find_package(FFMPEG REQUIRED) +find_package(SDL2 CONFIG REQUIRED) + include_directories(../include ../../../modules/video/include ) @@ -39,6 +42,7 @@ elseif(APPLE OR UNIX) else() message(WARNING "Unsupported platform") endif() -target_link_libraries(${TARGET} PRIVATE video) + +target_link_libraries(${TARGET} PRIVATE video ${FFMPEG_LIBRARIES} SDL2::SDL2-static) install(TARGETS ${TARGET}) \ No newline at end of file diff --git a/modules/video/include/video.h b/modules/video/include/video.h index 179c153..95d6dba 100644 --- a/modules/video/include/video.h +++ b/modules/video/include/video.h @@ -22,16 +22,15 @@ #pragma once +#include + +#ifdef __cplusplus +extern "C" { #include #include #include #include #include - -#include - -#ifdef __cplusplus -extern "C" { #endif static AVFormatContext* formatContext = nullptr; static AVCodecParameters* codecParameters = nullptr; diff --git a/modules/video/src/CMakeLists.txt b/modules/video/src/CMakeLists.txt index 6a2a7cc..89211a1 100644 --- a/modules/video/src/CMakeLists.txt +++ b/modules/video/src/CMakeLists.txt @@ -33,9 +33,13 @@ set(VIDEO_SRC ) add_library(${TARGET} STATIC ${VIDEO_SRC}) -target_link_libraries(${TARGET} PRIVATE ${FFMPEG_LIBRARIES} SDL2::SDL2main SDL2::SDL2-static) +target_include_directories(${TARGET} PRIVATE ${FFMPEG_INCLUDE_DIRS}) +target_link_directories(${TARGET} PRIVATE ${FFMPEG_LIBRARY_DIRS}) +target_link_libraries(${TARGET} PRIVATE ${FFMPEG_LIBRARIES} SDL2::SDL2-static) add_library(${TARGET}_wrapper SHARED ${VIDEO_SRC}) # required for bindings -target_link_libraries(${TARGET}_wrapper PRIVATE ${FFMPEG_LIBRARIES} SDL2::SDL2main SDL2::SDL2-static) +target_include_directories(${TARGET}_wrapper PRIVATE ${FFMPEG_INCLUDE_DIRS}) +target_link_directories(${TARGET}_wrapper PRIVATE ${FFMPEG_LIBRARY_DIRS}) +target_link_libraries(${TARGET}_wrapper PRIVATE ${FFMPEG_LIBRARIES} SDL2::SDL2-static) install(TARGETS ${TARGET} ${TARGET}_wrapper) \ No newline at end of file diff --git a/modules/video/src/video.cpp b/modules/video/src/video.cpp index 3c94e21..a4f10ee 100644 --- a/modules/video/src/video.cpp +++ b/modules/video/src/video.cpp @@ -28,7 +28,7 @@ bool initVideoPlayer() { return false; } - av_register_all(); + // av_register_all(); if (avformat_network_init() < 0) { std::cerr << "Failed to initialize FFmpeg network\n"; return false; diff --git a/modules/video/test/video-test.cpp b/modules/video/test/video-test.cpp index 26f171f..cfb52a0 100644 --- a/modules/video/test/video-test.cpp +++ b/modules/video/test/video-test.cpp @@ -40,14 +40,14 @@ TEST_F(VideoPlaybackTest, LoadVideoFileTest) { TEST_F(VideoPlaybackTest, StartPlaybackTest) { const char* filename = "assets/mp4/file_example_MP4_1280_10MG.mp4"; EXPECT_TRUE(loadVideo(filename)); - EXPECT_TRUE(startPlayback()); + playVideo(); } // Test case for closing video file and terminating video player TEST_F(VideoPlaybackTest, CloseVideoFileTest) { const char* filename = "assets/mp4/file_example_MP4_1280_10MG.mp4"; EXPECT_TRUE(loadVideo(filename)); - EXPECT_TRUE(startPlayback()); + playVideo(); closeVideoPlayer(); }