Skip to content

Commit 95b4bf0

Browse files
committed
Use precompiled ffmpeg
Signed-off-by: Isaac Marovitz <isaacryu@icloud.com>
1 parent 96fac66 commit 95b4bf0

5 files changed

Lines changed: 25 additions & 53 deletions

File tree

.gitmodules

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,6 @@
4343
[submodule "thirdparty/json"]
4444
path = thirdparty/json
4545
url = https://github.com/nlohmann/json
46-
[submodule "thirdparty/FFmpeg"]
47-
path = thirdparty/FFmpeg
48-
url = https://github.com/IsaacMarovitz/FFmpeg
4946
[submodule "MarathonRecompResources"]
5047
path = MarathonRecompResources
5148
url = https://github.com/IsaacMarovitz/MarathonRecompResources
@@ -58,3 +55,6 @@
5855
[submodule "thirdparty/plume"]
5956
path = thirdparty/plume
6057
url = https://github.com/renderbag/plume
58+
[submodule "thirdparty/ffmpeg-core"]
59+
path = thirdparty/ffmpeg-core
60+
url = https://github.com/IsaacMarovitz/ffmpeg-core

MarathonRecomp/CMakeLists.txt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,8 @@ set(MARATHON_RECOMP_PATCHES_CXX_SOURCES
139139
"patches/audio_patches.cpp"
140140
"patches/camera_patches.cpp"
141141
"patches/frontend_listener.cpp"
142-
"patches/misc_patches.cpp"
143-
"patches/TitleTask_patches.cpp"
142+
"patches/misc_patches.cpp"
143+
"patches/TitleTask_patches.cpp"
144144
"patches/video_patches.cpp"
145145
)
146146

@@ -419,12 +419,7 @@ target_link_libraries(MarathonRecomp PRIVATE
419419
plume
420420
)
421421

422-
if (NOT WIN32)
423-
target_link_libraries(MarathonRecomp PRIVATE
424-
ffmpeg::avcodec
425-
ffmpeg::avutil
426-
)
427-
endif()
422+
target_link_libraries(MarathonRecomp PRIVATE ffmpeg)
428423

429424
target_include_directories(MarathonRecomp PRIVATE
430425
${CMAKE_CURRENT_SOURCE_DIR}

thirdparty/CMakeLists.txt

Lines changed: 18 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -15,54 +15,31 @@ set(SDL2MIXER_OPUS OFF)
1515
set(SDL2MIXER_VORBIS "VORBISFILE")
1616
set(SDL2MIXER_WAVPACK OFF)
1717

18+
if (APPLE AND CMAKE_OSX_ARCHITECTURES)
19+
set(BASE_ARCHITECTURE "${CMAKE_OSX_ARCHITECTURES}")
20+
elseif (CMAKE_SYSTEM_PROCESSOR)
21+
set(BASE_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
22+
else()
23+
set(BASE_ARCHITECTURE "${CMAKE_HOST_SYSTEM_PROCESSOR}")
24+
endif()
25+
26+
# Next, match common architecture strings down to a known common value.
27+
if (BASE_ARCHITECTURE MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
28+
set(ARCHITECTURE "x86_64")
29+
elseif (BASE_ARCHITECTURE MATCHES "(aarch64)|(AARCH64)|(arm64)|(ARM64)")
30+
set(ARCHITECTURE "arm64")
31+
else()
32+
message(FATAL_ERROR "Unsupported CPU architecture: ${BASE_ARCHITECTURE}")
33+
endif()
34+
1835
add_subdirectory("${MARATHON_RECOMP_THIRDPARTY_ROOT}/msdf-atlas-gen")
1936
add_subdirectory("${MARATHON_RECOMP_THIRDPARTY_ROOT}/nativefiledialog-extended")
2037
add_subdirectory("${MARATHON_RECOMP_THIRDPARTY_ROOT}/o1heap")
2138
add_subdirectory("${MARATHON_RECOMP_THIRDPARTY_ROOT}/SDL")
2239
add_subdirectory("${MARATHON_RECOMP_THIRDPARTY_ROOT}/SDL_mixer")
2340
add_subdirectory("${MARATHON_RECOMP_THIRDPARTY_ROOT}/plume")
41+
add_subdirectory("${MARATHON_RECOMP_THIRDPARTY_ROOT}/ffmpeg-core")
2442

2543
if (APPLE)
2644
add_subdirectory("${MARATHON_RECOMP_THIRDPARTY_ROOT}/MoltenVK")
2745
endif()
28-
29-
if (NOT WIN32)
30-
set(FFMPEG_PATH ${CMAKE_CURRENT_SOURCE_DIR}/FFmpeg)
31-
32-
add_custom_command(
33-
OUTPUT ${FFMPEG_PATH}/config.h
34-
COMMAND ./configure --disable-all --disable-x86asm --disable-autodetect --disable-network --enable-avcodec --enable-decoder='xmaframes'
35-
COMMENT "Configuring FFmpeg..."
36-
WORKING_DIRECTORY ${FFMPEG_PATH}
37-
)
38-
39-
add_custom_target(ffmpeg-configure DEPENDS ${FFMPEG_PATH}/config.h)
40-
41-
function(import_ffmpeg_library name)
42-
if (${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
43-
set(MAKE_COMMAND $(MAKE) -j$(nproc))
44-
elseif (${CMAKE_GENERATOR} STREQUAL "Ninja")
45-
set(MAKE_COMMAND make -j$$(nproc))
46-
else()
47-
set(MAKE_COMMAND make)
48-
endif()
49-
50-
add_custom_command(
51-
OUTPUT "${FFMPEG_PATH}/lib${name}/lib${name}.a"
52-
COMMAND ${MAKE_COMMAND} -C ${FFMPEG_PATH} "lib${name}/lib${name}.a"
53-
COMMENT "Building lib${name}/lib${name}.a"
54-
DEPENDS ffmpeg-configure
55-
WORKING_DIRECTORY ${FFMPEG_PATH}
56-
)
57-
58-
add_custom_target(ffmpeg-build-${name} DEPENDS "${FFMPEG_PATH}/lib${name}/lib${name}.a")
59-
60-
add_library(ffmpeg::${name} STATIC IMPORTED GLOBAL)
61-
set_property(TARGET ffmpeg::${name} PROPERTY IMPORTED_LOCATION "${FFMPEG_PATH}/lib${name}/lib${name}.a")
62-
set_property(TARGET ffmpeg::${name} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_PATH}")
63-
add_dependencies(ffmpeg::${name} ffmpeg-build-${name})
64-
endfunction()
65-
66-
import_ffmpeg_library(avcodec)
67-
import_ffmpeg_library(avutil)
68-
endif()

thirdparty/FFmpeg

Lines changed: 0 additions & 1 deletion
This file was deleted.

thirdparty/ffmpeg-core

Submodule ffmpeg-core added at 5089f00

0 commit comments

Comments
 (0)