From 3df4cacf07e25292d263dbdbc355119b49f28aff Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Wed, 5 Jun 2024 21:35:55 +0800 Subject: [PATCH] Improve:ffmpeg build. --- CMakeLists.txt | 22 ++++++---------------- external/.gitignore | 3 ++- external/ffmpeg/CMakeLists.txt | 18 ++++++++++++++---- external/ffmpeg/build_ffmpeg.sh | 10 ++++++++++ 4 files changed, 32 insertions(+), 21 deletions(-) create mode 100755 external/ffmpeg/build_ffmpeg.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index e091421..3c9e8b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,12 @@ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTOR message("platform = ${TARGET_PLATFORM}") message("platform PATH = ${PLATFORM_PATH}") +add_custom_target( + sdk_clean + COMMAND echo "sdk clean finished." + WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/ +) + # Gdb debug include(build/sdk_config.cmake) @@ -166,22 +172,6 @@ set(TEST_LINUX_MOCK "" CACHE STRING INTERNAL) # if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) set(TEST_LINK_LIB "testUtils" CACHE STRING INTERNAL FORCE) # endif() -if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) - # set(TEST_LINUX_MOCK "-Wl,--wrap=fopen,--wrap=fprintf_gpio,--wrap=fprintf_dir" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=tcgetattr" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=tcsetattr" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=gethostbyname" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=connect" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=socket" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=select" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_open" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_read" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_write" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_close" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_fclose" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_fread" CACHE STRING INTERNAL FORCE) - # set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=linux_fcntl" CACHE STRING INTERNAL FORCE) -endif() # 添加编译目录 add_subdirectory(external) diff --git a/external/.gitignore b/external/.gitignore index 8b47a85..9c68340 100644 --- a/external/.gitignore +++ b/external/.gitignore @@ -1,2 +1,3 @@ -goahead-5.2.0/GoAhead \ No newline at end of file +goahead-5.2.0/GoAhead +ffmpeg/ffmpeg-6.1.1 \ No newline at end of file diff --git a/external/ffmpeg/CMakeLists.txt b/external/ffmpeg/CMakeLists.txt index ef9bbcc..51b5d3e 100644 --- a/external/ffmpeg/CMakeLists.txt +++ b/external/ffmpeg/CMakeLists.txt @@ -8,11 +8,21 @@ add_custom_target( # COMMAND touch ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/src/http.c COMMAND test -f ${EXTERNAL_SOURCE_PATH}/ffmpeg/Makefile || tar -xf ffmpeg_6.1.1.orig.tar.xz COMMAND cd ffmpeg-6.1.1 && ./configure --enable-cross-compile --target-os=linux --arch=arm64 - --cc=gcc - --cxx=g++ - --prefix=/home/xiaojiazhu/project/tmp + --cc=${CMAKE_C_COMPILER} + --cxx=${CMAKE_CXX_COMPILER} + --prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg --disable-asm --enable-parsers --disable-decoders --enable-decoder=h264 --enable-decoder=aac --disable-debug --enable-ffmpeg --enable-shared --enable-static --disable-stripping --disable-doc COMMAND cd ffmpeg-6.1.1 && make + COMMAND cd ffmpeg-6.1.1 && make install WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/ffmpeg/ -) \ No newline at end of file +) + +add_custom_target( + remove_ffmpeg_source_files + COMMAND rm -rf ffmpeg-6.1.1 + WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/ffmpeg/ +) + +# 将clean目标依赖于我们自定义的clean_script目标 +add_dependencies(sdk_clean remove_ffmpeg_source_files) \ No newline at end of file diff --git a/external/ffmpeg/build_ffmpeg.sh b/external/ffmpeg/build_ffmpeg.sh new file mode 100755 index 0000000..92ee689 --- /dev/null +++ b/external/ffmpeg/build_ffmpeg.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# 编译ffmpeg +echo "Compile ffmpeg." +cd ffmpeg-6.1.1 +./configure --enable-cross-compile --target-os=linux --arch=arm64 \ + --cc=gcc \ + --cxx=g++ \ + --prefix=/home/xiaojiazhu/project/tmp \ + --disable-asm --enable-parsers --disable-decoders --enable-decoder=h264 --enable-decoder=aac \ + --disable-debug --enable-ffmpeg --enable-shared --enable-static --disable-stripping --disable-doc