Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer
Submodule .devcontainer updated 85 files
+65 −0 .github/actions/build-image-context-tag/action.yml
+74 −29 .github/actions/cmake-build/action.yml
+32 −0 .github/actions/compare-cmake-presets/action.yml
+201 −0 .github/actions/compare-cmake-presets/compare.py
+51 −0 .github/actions/docker-push-with-retry/action.yml
+358 −0 .github/actions/externpro-deps-configure/action.yml
+48 −0 .github/actions/externpro-validate/action.yml
+29 −0 .github/actions/gh-retry/gh-retry.sh
+79 −0 .github/actions/ghcr-access/action.yml
+44 −0 .github/actions/git-am-patches/action.yml
+19 −0 .github/actions/git-configure-bot/action.yml
+41 −0 .github/actions/labels-mgmt/action.yml
+91 −0 .github/actions/pr-close-superseded/action.yml
+116 −0 .github/actions/release-tag-intent/action.yml
+0 −8 .github/actions/sync-caller-workflows/action.yml
+241 −508 .github/actions/sync-caller-workflows/sync.sh
+79 −0 .github/docs/README.md
+34 −0 .github/docs/architecture-overview.md
+ .github/docs/assets/org_01_actions-secrets.png
+ .github/docs/assets/org_02_new-secret.png
+ .github/docs/assets/org_03_secrets-populated.png
+ .github/docs/assets/pat_01_new.png
+ .github/docs/assets/pat_02_permissions.png
+ .github/docs/assets/pat_03_generate-token.png
+ .github/docs/assets/pat_04_copy-token.png
+ .github/docs/assets/repo_01_actions-secrets.png
+ .github/docs/assets/repo_02_new-secret.png
+ .github/docs/assets/repo_03_secrets-populated.png
+130 −0 .github/docs/bootstrap.md
+91 −0 .github/docs/build-customizations.md
+111 −0 .github/docs/caller-workflows.md
+50 −0 .github/docs/release-flow.md
+91 −0 .github/docs/reusable-workflows.md
+183 −0 .github/docs/secrets-and-tokens.md
+42 −0 .github/docs/supply-chain.md
+0 −2 .github/release-tag.yml.example
+8 −4 .github/wf-templates/xpbuild.yml
+1 −1 .github/wf-templates/xprelease.yml
+13 −0 .github/wf-templates/xpsync.yml
+2 −2 .github/wf-templates/xptag.yml
+0 −12 .github/wf-templates/xpupdate.yml
+7 −288 .github/workflows/README.md
+158 −39 .github/workflows/build-linux.yml
+8 −9 .github/workflows/build-macos.yml
+24 −10 .github/workflows/build-windows.yml
+353 −0 .github/workflows/init-externpro.yml
+105 −28 .github/workflows/release-from-build.yml
+532 −0 .github/workflows/sync-externpro.yml
+15 −25 .github/workflows/tag-release.yml
+151 −399 .github/workflows/update-externpro.yml
+0 −288 .windsurf/workflows/manifestUpdate.md
+153 −46 README.md
+68 −62 cmake/README.md
+403 −301 cmake/deps.svg
+35 −0 cmake/docs/README.md
+70 −0 cmake/docs/classified-sources.md
+64 −0 cmake/docs/cmakeup.md
+54 −0 cmake/docs/dependency-provider.md
+40 −0 cmake/docs/diff-types.md
+115 −0 cmake/docs/download-and-extract.md
+127 −0 cmake/docs/extern-package.md
+125 −0 cmake/docs/how-to-adopt-externpro.md
+64 −0 cmake/docs/packaging.md
+2 −1 cmake/presets/CMakePresets.json
+4 −1 cmake/presets/xpDarwinNinja.json
+4 −1 cmake/presets/xpLinuxNinja.json
+4 −1 cmake/presets/xpLinuxNinjaTargets.json
+183 −0 cmake/presets/xpMswVs2022.json
+183 −0 cmake/presets/xpMswVs2026.json
+0 −157 cmake/presets/xpWindowsVs2019.json
+0 −180 cmake/presets/xpWindowsVs2022.json
+146 −126 cmake/pros.cmake
+0 −106 cmake/pros.md
+72 −0 cmake/xpcfg.cmake
+1 −0 cmake/xpdeps.cmake.in
+921 −134 cmake/xpfunmac.cmake
+2 −4 cmake/xpuse.cmake.in
+1 −0 cmake/xpusext.cmake.in
+1 −1 funcs.sh
+887 −0 scripts/bootstrap.sh
+89 −0 scripts/cleanup-whitespace.py
+0 −0 scripts/enable-systemctl.sh
+0 −0 scripts/git-lfs-check.sh
+0 −0 scripts/wslresolv.sh
+11 −0 xpro-dev.code-workspace
4 changes: 4 additions & 0 deletions .github/release-tag.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"message": "xpro version 4.3.1.5 tag",
"tag": "xpv4.3.1.5"
}
2 changes: 0 additions & 2 deletions .github/release-tag.yml

This file was deleted.

13 changes: 7 additions & 6 deletions .github/workflows/xpbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@ jobs:
contents: read
pull-requests: write
packages: write
uses: externpro/externpro/.github/workflows/build-linux.yml@25.07.6
uses: externpro/externpro/.github/workflows/build-linux.yml@26.01.5
secrets:
automation_token: ${{ secrets.GHCR_TOKEN }}
with:
cmake-workflow-preset: LinuxRelease
secrets: inherit
cmake_workflow_preset_suffix: Release
macos:
uses: externpro/externpro/.github/workflows/build-macos.yml@25.07.6
with:
cmake-workflow-preset: DarwinRelease
uses: externpro/externpro/.github/workflows/build-macos.yml@26.01.5
secrets: inherit
with:
cmake_workflow_preset_suffix: Release
2 changes: 1 addition & 1 deletion .github/workflows/xprelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
# Upload build artifacts as release assets
release-from-build:
if: github.event_name == 'workflow_dispatch'
uses: externpro/externpro/.github/workflows/release-from-build.yml@25.07.6
uses: externpro/externpro/.github/workflows/release-from-build.yml@26.01.5
with:
workflow_run_url: ${{ github.event.inputs.workflow_run_url }}
permissions:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/xptag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ on:
jobs:
tag:
if: ${{ github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'xpro' && contains(github.event.pull_request.labels.*.name, 'release:tag') }}
uses: externpro/externpro/.github/workflows/tag-release.yml@25.07.6
uses: externpro/externpro/.github/workflows/tag-release.yml@26.01.5
with:
merge_sha: ${{ github.event.pull_request.merge_commit_sha }}
pr_number: ${{ github.event.pull_request.number }}
secrets:
workflow_write_token: ${{ secrets.XPUPDATE_TOKEN }}
automation_token: ${{ secrets.XPRO_TOKEN }}
12 changes: 5 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
cmake_minimum_required(VERSION 3.31)
set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake)
cmake_minimum_required(VERSION 4.3)
project(FFmpeg)
set(libs # libraries, in linking order
# https://github.com/FFmpeg/FFmpeg/blob/n2.6.2/configure#L2667-L2675
Expand All @@ -19,9 +18,8 @@ string(JOIN "\n" EXT1
""
)
set(targetsFile ${PROJECT_NAME}-targets)
xpExternPackage(NAMESPACE ffmpeg
TARGETS_FILE ${targetsFile} LIBRARIES ${libs}
BASE n4.3.1 XPDIFF "native(unix)" DEPS openh264 PVT_DEPS yasm
xpExternPackage(TARGETS_FILE ${targetsFile} LIBRARIES ${libs} NO_EXPORT
BASE n4.3.1 XPDIFF "native[unix]" DEPS openh264 PVT_DEPS yasm
WEB "https://www.ffmpeg.org/" UPSTREAM "github.com/FFmpeg/FFmpeg"
DESC "complete, cross-platform solution to record, convert and stream audio and video (pre-release: no windows package)"
LICENSE "[LGPL-2.1-or-later](https://www.ffmpeg.org/legal.html 'LGPL version 2.1 or later')"
Expand All @@ -37,8 +35,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
else()
find_package(openh264)
find_package(yasm)
get_filename_component(yasmBinDir ${xpuse-yasm_DIR}/../../bin ABSOLUTE)
configure_file(${xpuse-openh264_DIR}/openh264.pc.in ${CMAKE_BINARY_DIR}/openh264.pc @ONLY)
get_filename_component(yasmBinDir ${yasm_DIR}/../../bin ABSOLUTE)
configure_file(${openh264_DIR}/../cmake/openh264.pc.in ${CMAKE_BINARY_DIR}/openh264.pc @ONLY)
file(READ ${CMAKE_BINARY_DIR}/openh264.pc OPENH264_PC)
string(REPLACE "Libs: -L\${libdir} -lopenh264 -lstdc++"
"Libs: -L\${libdir} -lopenh264 -lstdc++ -lm -lpthread"
Expand Down
3 changes: 2 additions & 1 deletion CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"include": [
".devcontainer/cmake/presets/xpLinuxNinja.json",
".devcontainer/cmake/presets/xpDarwinNinja.json",
".devcontainer/cmake/presets/xpWindowsVs2022.json"
".devcontainer/cmake/presets/xpMswVs2022.json",
".devcontainer/cmake/presets/xpMswVs2026.json"
]
}
17 changes: 8 additions & 9 deletions cmake/FFmpeg-targets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ endfunction()
# _ffmpeg_*_libs
checkLibraryConcat(asound snd_strerror _ffmpeg_avdevice_libs)
checkLibraryConcat(Xext XShmDetach _ffmpeg_avdevice_libs)
xpGetPkgVar(openh264 LIBRARIES) # sets OPENH264_LIBRARIES
set(_ffmpeg_avcodec_libs ${OPENH264_LIBRARIES})
set(_ffmpeg_avcodec_libs openh264::openh264)
# _ffmpeg_*_deps
set(_ffmpeg_avdevice_deps avfilter avformat)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
Expand Down Expand Up @@ -39,27 +38,27 @@ get_filename_component(XP_ROOTDIR ${CMAKE_CURRENT_LIST_DIR}/../.. ABSOLUTE)
get_filename_component(XP_ROOTDIR ${XP_ROOTDIR} ABSOLUTE) # remove relative parts
set(includeDirs ${XP_ROOTDIR}/include ${XP_ROOTDIR}/include/ffmpeg)
foreach(lib ${ffmpeg_all_libs})
if(NOT TARGET ffmpeg::${lib})
add_library(ffmpeg::${lib} STATIC IMPORTED)
if(NOT TARGET FFmpeg::${lib})
add_library(FFmpeg::${lib} STATIC IMPORTED)
set(${lib}_RELEASE ${XP_ROOTDIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX})
if(EXISTS "${${lib}_RELEASE}")
set_property(TARGET ffmpeg::${lib} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(ffmpeg::${lib} PROPERTIES
set_property(TARGET FFmpeg::${lib} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(FFmpeg::${lib} PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "ASM_NASM;C;CXX"
IMPORTED_LOCATION_RELEASE "${${lib}_RELEASE}"
)
set_target_properties(ffmpeg::${lib} PROPERTIES
set_target_properties(FFmpeg::${lib} PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${includeDirs}"
)
if(_ffmpeg_${lib}_deps OR _ffmpeg_${lib}_libs)
unset(linkLibs)
foreach(dep ${_ffmpeg_${lib}_deps})
list(APPEND linkLibs \$<LINK_ONLY:ffmpeg::${dep}>)
list(APPEND linkLibs \$<LINK_ONLY:FFmpeg::${dep}>)
endforeach()
foreach(dep ${_ffmpeg_${lib}_libs})
list(APPEND linkLibs \$<LINK_ONLY:${dep}>)
endforeach()
set_target_properties(ffmpeg::${lib} PROPERTIES
set_target_properties(FFmpeg::${lib} PROPERTIES
INTERFACE_LINK_LIBRARIES "${linkLibs}"
)
endif()
Expand Down
9 changes: 5 additions & 4 deletions xprodeps.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

|project|license [^_l]|description [dependencies]|version|source|diff [^_d]|
|-------|-------------|--------------------------|-------|------|----------|
|<a id='ffmpeg' />[ffmpeg](https://www.ffmpeg.org/)|[LGPL-2.1](https://www.ffmpeg.org/legal.html 'LGPL version 2.1 or later')|complete, cross-platform solution to record, convert and stream audio and video (pre-release: no windows package) [deps: _openh264_] [pvt deps: _yasm_]| |[upstream](https://github.com/FFmpeg/FFmpeg 'github.com/FFmpeg/FFmpeg')| [native(unix)]|
|<a id='openh264' />[openh264](http://www.openh264.org/)|[BSD-2-Clause](http://www.openh264.org/faq.html 'BSD 2-Clause Simplified License')|a codec library which supports H.264 encoding and decoding [pvt deps: _yasm_]|[xpv1.4.0.3](https://github.com/externpro/openh264/releases/tag/xpv1.4.0.3 'release')|[repo](https://github.com/externpro/openh264 'github.com/externpro/openh264') [upstream](https://github.com/cisco/openh264 'github.com/cisco/openh264')|[diff](https://github.com/externpro/openh264/compare/v1.4.0...xpv1.4.0.3 'github.com/externpro/openh264/compare/v1.4.0...xpv1.4.0.3') [intro]|
|<a id='yasm' />[yasm](http://yasm.tortall.net/)|[BSD-2-Clause](https://github.com/yasm/yasm/blob/v1.3.0/COPYING 'BSD 2-Clause Simplified License')|assembler and disassembler for the Intel x86 architecture|[xpv1.3.0.3](https://github.com/externpro/yasm/releases/tag/xpv1.3.0.3 'release')|[repo](https://github.com/externpro/yasm 'github.com/externpro/yasm') [upstream](https://github.com/yasm/yasm 'github.com/yasm/yasm')|[diff](https://github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.3 'github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.3') [patch]|
|<a id='FFmpeg' />[FFmpeg](https://www.ffmpeg.org/)|[LGPL-2.1-or-later](https://www.ffmpeg.org/legal.html 'LGPL version 2.1 or later')|complete, cross-platform solution to record, convert and stream audio and video (pre-release: no windows package) [deps: _openh264_] [pvt deps: _yasm_]| |[upstream](https://github.com/FFmpeg/FFmpeg 'github.com/FFmpeg/FFmpeg')| [native[unix]]|
|<a id='openh264' />[openh264](http://www.openh264.org/)|[BSD-2-Clause](http://www.openh264.org/faq.html 'BSD 2-Clause Simplified License')|a codec library which supports H.264 encoding and decoding [deps: _Threads_] [pvt deps: _yasm_]|[xpv1.4.0.4](https://github.com/externpro/openh264/releases/tag/xpv1.4.0.4 'release')|[repo](https://github.com/externpro/openh264 'github.com/externpro/openh264') [upstream](https://github.com/cisco/openh264 'github.com/cisco/openh264')|[diff](https://github.com/externpro/openh264/compare/v1.4.0...xpv1.4.0.4 'github.com/externpro/openh264/compare/v1.4.0...xpv1.4.0.4') [intro]|
|<a id='yasm' />[yasm](http://yasm.tortall.net/)|[BSD-2-Clause](https://github.com/yasm/yasm/blob/v1.3.0/COPYING 'BSD 2-Clause Simplified License')|assembler and disassembler for the Intel x86 architecture|[xpv1.3.0.4](https://github.com/externpro/yasm/releases/tag/xpv1.3.0.4 'release')|[repo](https://github.com/externpro/yasm 'github.com/externpro/yasm') [upstream](https://github.com/yasm/yasm 'github.com/yasm/yasm')|[diff](https://github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.4 'github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.4') [patch]|
|<a id='Threads' />[Threads](https://cmake.org/cmake/help/latest/module/FindThreads.html)|[LGPL-2.1-or-later](https://spdx.org/licenses/LGPL-2.1-or-later.html 'GNU Lesser General Public License v2.1 or later')|Finds and determines the thread library of the system for multithreading support|[xpv1.0.4](https://github.com/externpro/Threads/releases/tag/xpv1.0.4 'release')|[repo](https://github.com/externpro/Threads 'github.com/externpro/Threads')|[diff](https://github.com/externpro/Threads/compare/v0...xpv1.0.4 'github.com/externpro/Threads/compare/v0...xpv1.0.4') [bin]|

![deps](xprodeps.svg 'dependencies')

Dependency version check: all 3 parent-manifest versions match pinned versions.
Dependency version check: all 4 parent-manifest versions match pinned versions.

|diff |description|
|------|-----------|
Expand Down
54 changes: 33 additions & 21 deletions xprodeps.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.