@@ -23,12 +23,16 @@ project(${PROJECT_NAME} LANGUAGES CXX)
2323set (CMAKE_CXX_STANDARD 20)
2424set (CMAKE_CXX_STANDARD_REQUIRED ON )
2525set (CMAKE_POSITION_INDEPENDENT_CODE ON )
26- option (USE_SYSTEM_FFMPEG "Link dynamically against system ffmpeg instead of using static prebuilt libraries" ON )
26+ option (USE_SYSTEM_FFMPEG "Link dynamically against system ffmpeg instead of using static prebuilt libraries" OFF )
27+ option (USE_SYSTEM_MPV "Link dynamically against system mpv instead of using static prebuilt libraries" OFF )
2728
2829include (ExternalProject)
2930if (NOT USE_SYSTEM_FFMPEG)
3031 include (thirdparty/ffmpeg.cmake)
3132endif ()
33+ if (NOT USE_SYSTEM_MPV)
34+ include (thirdparty/mpv.cmake)
35+ endif ()
3236
3337set (SOURCES
3438 src/cpp/util/Errors.cpp
@@ -51,22 +55,30 @@ target_include_directories(${PROJECT_NAME} PRIVATE "src/cpp/")
5155
5256message (STATUS "JAVA_HOME: ${JAVA_HOME} " )
5357target_include_directories (${PROJECT_NAME} PUBLIC "${JAVA_HOME} /include" )
54- #if (NOT USE_SYSTEM_FFMPEG)
55- # target_link_libraries(${PROJECT_NAME} PUBLIC -Wl,--push-state,--whole-archive,--allow-multiple-definition ffmpeg -Wl,--pop-state)
56- # add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND objcopy --localize-hidden --strip-all --strip-unneeded $<TARGET_FILE:${PROJECT_NAME}>)
57- #endif ()
58+ if (NOT USE_SYSTEM_FFMPEG)
59+ target_link_libraries (${PROJECT_NAME} PUBLIC -Wl,--push-state,--whole-archive,--allow-multiple-definition ffmpeg -Wl,--pop-state)
60+ endif ()
61+ if (NOT USE_SYSTEM_MPV)
62+ target_link_libraries (${PROJECT_NAME} PUBLIC -Wl,--push-state,--whole-archive,--allow-multiple-definition mpv -Wl,--pop-state)
63+ endif ()
64+ add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND objcopy --localize-hidden --strip-all --strip-unneeded $<TARGET_FILE:${PROJECT_NAME} >)
5865
5966if (CMAKE_SYSTEM_NAME STREQUAL "Linux" )
6067 target_compile_definitions (${PROJECT_NAME} PRIVATE -D_LINUX)
6168 find_package (PkgConfig REQUIRED)
62- pkg_check_modules(GL REQUIRED IMPORTED_TARGET gl egl libva libva-drm libdrm glx libva-glx)
63- pkg_check_modules(MPV REQUIRED IMPORTED_TARGET mpv)
64- target_link_libraries (${PROJECT_NAME} PUBLIC PkgConfig::GL PkgConfig::MPV)
69+ pkg_check_modules(GL REQUIRED IMPORTED_TARGET egl glx)
70+ target_link_libraries (${PROJECT_NAME} PUBLIC PkgConfig::GL)
6571 target_include_directories (${PROJECT_NAME} PUBLIC "${JAVA_HOME} /include/linux" )
66- # if (USE_SYSTEM_FFMPEG)
67- # pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET libavcodec libavformat libavutil libswscale libavfilter)
68- # target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::FFMPEG)
69- # endif ()
72+ add_compile_options (-static -static -libstdc++ -static -libgcc)
73+ add_link_options (-static -static -libstdc++ -static -libgcc)
74+ if (USE_SYSTEM_FFMPEG)
75+ pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET libavcodec libavformat libavutil libswscale libavfilter)
76+ target_link_libraries (${PROJECT_NAME} PRIVATE PkgConfig::FFMPEG)
77+ endif ()
78+ if (USE_SYSTEM_MPV)
79+ pkg_check_modules(MPV REQUIRED IMPORTED_TARGET mpv)
80+ target_link_libraries (${PROJECT_NAME} PRIVATE PkgConfig::MPV)
81+ endif ()
7082elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
7183 target_compile_definitions (${PROJECT_NAME} PRIVATE -D_WINDOWS)
7284 target_link_libraries (${PROJECT_NAME} PUBLIC opengl32 dxgi d3d11 d3dcompiler)
0 commit comments