Skip to content

Commit

Permalink
fix cmake-lint errors (#65)
Browse files Browse the repository at this point in the history
  • Loading branch information
ReenigneArcher authored Dec 29, 2022
1 parent 1279610 commit fe43e5c
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 89 deletions.
7 changes: 3 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
cmake_minimum_required(VERSION 3.2)

project(build-deps
DESCRIPTION "Pre-build dependencies for LizardByte projects"
)
DESCRIPTION "Pre-build dependencies for LizardByte projects")

option(FFMPEG_CBS "Enable CBS library configuration" ON)

if (FFMPEG_CBS)
include (${CMAKE_CURRENT_SOURCE_DIR}/cmake/ffmpeg_cbs.cmake)
if(FFMPEG_CBS)
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/ffmpeg_cbs.cmake)
endif()
24 changes: 12 additions & 12 deletions cmake/apply_git_patch.cmake
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
#
# This macro applies patch to git repository if patch is applicable
# Arguments are path to git repository and path to the git patch
#
macro(apply_git_patch REPO_PATH PATCH_PATH)
execute_process(COMMAND git apply -v --ignore-whitespace --check ${PATCH_PATH}
WORKING_DIRECTORY ${REPO_PATH}
RESULT_VARIABLE SUCCESS
COMMAND_ECHO STDOUT)

if(${SUCCESS} EQUAL 0)
message("Applying git patch ${PATCH_PATH} in ${REPO_PATH} repository")
execute_process(COMMAND git apply -v --ignore-whitespace ${PATCH_PATH}
WORKING_DIRECTORY ${REPO_PATH}
# APPLY_GIT_PATCH: args = `repo_path`, `patch_path`
macro(APPLY_GIT_PATCH repo_path patch_path)
execute_process(COMMAND git apply -v --ignore-whitespace --check ${patch_path}
WORKING_DIRECTORY ${repo_path}
RESULT_VARIABLE SUCCESS
COMMAND_ECHO STDOUT)

if(${SUCCESS} EQUAL 0)
message("Applying git patch ${patch_path} in ${repo_path} repository")
execute_process(COMMAND git apply -v --ignore-whitespace ${patch_path}
WORKING_DIRECTORY ${repo_path}
RESULT_VARIABLE SUCCESS
COMMAND_ECHO STDOUT)

if(${SUCCESS} EQUAL 1)
# We don't stop here because it can happen in case of parallel builds
message(WARNING "\nError: failed to apply the patch patch: ${PATCH_PATH}\n")
message(WARNING "\nError: failed to apply the patch patch: ${patch_path}\n")
endif()
endif()
endmacro()
150 changes: 77 additions & 73 deletions cmake/ffmpeg_cbs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@ cmake_minimum_required(VERSION 3.2)

project(cbs
DESCRIPTION "FFmpeg code subset to expose coded bitstream (CBS) internal APIs for Sunshine"
VERSION 0.1
)
VERSION 0.1)

set(CMAKE_GENERATED_SRC_PATH ${CMAKE_BINARY_DIR}/generated-src)

# Apply patches
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/apply_git_patch.cmake)
apply_git_patch(${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg ${CMAKE_SOURCE_DIR}/ffmpeg_patches/cbs/01-explicit-intmath.patch)
apply_git_patch(${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg ${CMAKE_SOURCE_DIR}/ffmpeg_patches/cbs/02-include-cbs-config.patch)
apply_git_patch(${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg ${CMAKE_SOURCE_DIR}/ffmpeg_patches/cbs/03-remove-register.patch)
apply_git_patch(${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg ${CMAKE_SOURCE_DIR}/ffmpeg_patches/cbs/04-size-specifier.patch)
APPLY_GIT_PATCH(${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg
${CMAKE_SOURCE_DIR}/ffmpeg_patches/cbs/01-explicit-intmath.patch)
APPLY_GIT_PATCH(${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg
${CMAKE_SOURCE_DIR}/ffmpeg_patches/cbs/02-include-cbs-config.patch)
APPLY_GIT_PATCH(${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg
${CMAKE_SOURCE_DIR}/ffmpeg_patches/cbs/03-remove-register.patch)
APPLY_GIT_PATCH(${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg
${CMAKE_SOURCE_DIR}/ffmpeg_patches/cbs/04-size-specifier.patch)

file(COPY ${CMAKE_SOURCE_DIR}/ffmpeg_sources/ffmpeg DESTINATION ${CMAKE_GENERATED_SRC_PATH})

Expand All @@ -29,27 +32,25 @@ endif ()

if (CROSS_COMPILE_ARM)
set(FFMPEG_EXTRA_CONFIGURE
--arch=aarch64
--enable-cross-compile
)
--arch=aarch64
--enable-cross-compile)
endif ()

# The generated config.h needs to have `CONFIG_CBS_` flags enabled (from `--enable-bsfs`)
execute_process(
COMMAND ${LEADING_SH_COMMAND} ./configure
--disable-all
--disable-autodetect
--disable-iconv
--enable-avcodec
--enable-avutil
--enable-bsfs
--enable-gpl
--enable-static
${FFMPEG_EXTRA_CONFIGURE}
WORKING_DIRECTORY ${FFMPEG_GENERATED_SRC_PATH}
COMMAND_ECHO STDOUT
COMMAND_ERROR_IS_FATAL ANY
)
COMMAND ${LEADING_SH_COMMAND} ./configure
--disable-all
--disable-autodetect
--disable-iconv
--enable-avcodec
--enable-avutil
--enable-bsfs
--enable-gpl
--enable-static
${FFMPEG_EXTRA_CONFIGURE}
WORKING_DIRECTORY ${FFMPEG_GENERATED_SRC_PATH}
COMMAND_ECHO STDOUT
COMMAND_ERROR_IS_FATAL ANY)

# Headers needed to link for Sunshine
configure_file(${AVCODEC_GENERATED_SRC_PATH}/arm/mathops.h ${CBS_INCLUDE_PATH}/arm/mathops.h COPYONLY)
Expand Down Expand Up @@ -79,61 +80,64 @@ configure_file(${AVCODEC_GENERATED_SRC_PATH}/packet.h ${CBS_INCLUDE_PATH}/packet
configure_file(${AVCODEC_GENERATED_SRC_PATH}/sei.h ${CBS_INCLUDE_PATH}/sei.h COPYONLY)
configure_file(${AVCODEC_GENERATED_SRC_PATH}/vlc.h ${CBS_INCLUDE_PATH}/vlc.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/config.h ${CBS_INCLUDE_PATH}/config.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/x86/asm.h ${CMAKE_BINARY_DIR}/include/libavutil/x86/asm.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/x86/intmath.h ${CMAKE_BINARY_DIR}/include/libavutil/x86/intmath.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/arm/intmath.h ${CMAKE_BINARY_DIR}/include/libavutil/arm/intmath.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/attributes.h ${CMAKE_BINARY_DIR}/include/libavutil/attributes.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/intmath.h ${CMAKE_BINARY_DIR}/include/libavutil/intmath.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/x86/asm.h
${CMAKE_BINARY_DIR}/include/libavutil/x86/asm.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/x86/intmath.h
${CMAKE_BINARY_DIR}/include/libavutil/x86/intmath.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/arm/intmath.h
${CMAKE_BINARY_DIR}/include/libavutil/arm/intmath.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/attributes.h
${CMAKE_BINARY_DIR}/include/libavutil/attributes.h COPYONLY)
configure_file(${FFMPEG_GENERATED_SRC_PATH}/libavutil/intmath.h
${CMAKE_BINARY_DIR}/include/libavutil/intmath.h COPYONLY)

set(CBS_SOURCE_FILES
${CBS_INCLUDE_PATH}/arm/mathops.h
${CBS_INCLUDE_PATH}/x86/mathops.h
${CBS_INCLUDE_PATH}/av1.h
${CBS_INCLUDE_PATH}/cbs_av1.h
${CBS_INCLUDE_PATH}/cbs_bsf.h
${CBS_INCLUDE_PATH}/cbs.h
${CBS_INCLUDE_PATH}/cbs_h2645.h
${CBS_INCLUDE_PATH}/cbs_h264.h
${CBS_INCLUDE_PATH}/cbs_h265.h
${CBS_INCLUDE_PATH}/cbs_jpeg.h
${CBS_INCLUDE_PATH}/cbs_mpeg2.h
${CBS_INCLUDE_PATH}/cbs_sei.h
${CBS_INCLUDE_PATH}/cbs_vp9.h
${CBS_INCLUDE_PATH}/codec_desc.h
${CBS_INCLUDE_PATH}/codec_id.h
${CBS_INCLUDE_PATH}/codec_par.h
${CBS_INCLUDE_PATH}/defs.h
${CBS_INCLUDE_PATH}/get_bits.h
${CBS_INCLUDE_PATH}/h264_levels.h
${CBS_INCLUDE_PATH}/h2645_parse.h
${CBS_INCLUDE_PATH}/h264.h
${CBS_INCLUDE_PATH}/hevc.h
${CBS_INCLUDE_PATH}/mathops.h
${CBS_INCLUDE_PATH}/packet.h
${CBS_INCLUDE_PATH}/sei.h
${CBS_INCLUDE_PATH}/vlc.h
${CMAKE_BINARY_DIR}/include/libavutil/x86/asm.h
${CMAKE_BINARY_DIR}/include/libavutil/x86/intmath.h
${CMAKE_BINARY_DIR}/include/libavutil/arm/intmath.h
${CMAKE_BINARY_DIR}/include/libavutil/intmath.h
${CBS_INCLUDE_PATH}/config.h
${CBS_INCLUDE_PATH}/arm/mathops.h
${CBS_INCLUDE_PATH}/x86/mathops.h
${CBS_INCLUDE_PATH}/av1.h
${CBS_INCLUDE_PATH}/cbs_av1.h
${CBS_INCLUDE_PATH}/cbs_bsf.h
${CBS_INCLUDE_PATH}/cbs.h
${CBS_INCLUDE_PATH}/cbs_h2645.h
${CBS_INCLUDE_PATH}/cbs_h264.h
${CBS_INCLUDE_PATH}/cbs_h265.h
${CBS_INCLUDE_PATH}/cbs_jpeg.h
${CBS_INCLUDE_PATH}/cbs_mpeg2.h
${CBS_INCLUDE_PATH}/cbs_sei.h
${CBS_INCLUDE_PATH}/cbs_vp9.h
${CBS_INCLUDE_PATH}/codec_desc.h
${CBS_INCLUDE_PATH}/codec_id.h
${CBS_INCLUDE_PATH}/codec_par.h
${CBS_INCLUDE_PATH}/defs.h
${CBS_INCLUDE_PATH}/get_bits.h
${CBS_INCLUDE_PATH}/h264_levels.h
${CBS_INCLUDE_PATH}/h2645_parse.h
${CBS_INCLUDE_PATH}/h264.h
${CBS_INCLUDE_PATH}/hevc.h
${CBS_INCLUDE_PATH}/mathops.h
${CBS_INCLUDE_PATH}/packet.h
${CBS_INCLUDE_PATH}/sei.h
${CBS_INCLUDE_PATH}/vlc.h
${CMAKE_BINARY_DIR}/include/libavutil/x86/asm.h
${CMAKE_BINARY_DIR}/include/libavutil/x86/intmath.h
${CMAKE_BINARY_DIR}/include/libavutil/arm/intmath.h
${CMAKE_BINARY_DIR}/include/libavutil/intmath.h
${CBS_INCLUDE_PATH}/config.h

${AVCODEC_GENERATED_SRC_PATH}/cbs.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_h2645.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_av1.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_vp9.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_mpeg2.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_jpeg.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_sei.c
${AVCODEC_GENERATED_SRC_PATH}/h264_levels.c
${AVCODEC_GENERATED_SRC_PATH}/h2645_parse.c
${FFMPEG_GENERATED_SRC_PATH}/libavutil/intmath.c
)
${AVCODEC_GENERATED_SRC_PATH}/cbs.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_h2645.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_av1.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_vp9.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_mpeg2.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_jpeg.c
${AVCODEC_GENERATED_SRC_PATH}/cbs_sei.c
${AVCODEC_GENERATED_SRC_PATH}/h264_levels.c
${AVCODEC_GENERATED_SRC_PATH}/h2645_parse.c
${FFMPEG_GENERATED_SRC_PATH}/libavutil/intmath.c)

include_directories(
${CMAKE_BINARY_DIR}/include
${FFMPEG_GENERATED_SRC_PATH}
)
${CMAKE_BINARY_DIR}/include
${FFMPEG_GENERATED_SRC_PATH})

add_library(cbs ${CBS_SOURCE_FILES})
target_compile_options(cbs PRIVATE -Wall -Wno-incompatible-pointer-types -Wno-format -Wno-format-extra-args)
Expand Down

0 comments on commit fe43e5c

Please sign in to comment.