kidrigger / godot-videodecoder

GDNative Video Decoder libraries for Godot Game Engine, using FFmpeg library for codecs. A Google Summer of Code Project, 2018
MIT License
84 stars 22 forks source link

Build System Issues #22

Closed BrodyEller closed 4 years ago

BrodyEller commented 4 years ago

I know I messaged in a now closed issue about a month and a half ago about the build setup of this repo. Since then, major changes have been merged that significantly change the way everything is built. While I agreed with @jamie-pate that using the system installed ffmpeg libs wasn't great, I disagree with the build setup as it stands right now.

As far as I can tell, support for compiling on macOS and Windows has been dropped in favor of cross-compiling on Linux. It's nice to be able to cross-compile but I do a significant portion of development on macOS and I feel compiling from the host system to the host system should be the priority.

As for how to manage the ffmpeg dependency, I'm proposing that the user uses their system package manager(pacman, brew, MSYS2) to install ffmpeg dependencies, e.g. libvorbis, x264, etc. Then a specific release/commit of ffmpeg is cloned to the user's machine, compiled with the specified flags, and installed to a third party directory in the godot-videodecoder folder. Then we can point scons to this directory.

I know you guys have been up to a lot recently in changing the build system but at the moment it's broken for me being on macOS. I've been looking through jamie's repos and it kind of looks like he's trying to set up docker? I'm not sure, and I'm definitely no expert on build systems but let me know what you think!

jamie-pate commented 4 years ago

https://github.com/kidrigger/godot-videodecoder/pull/23 was merged about an hour after this comment :)

Not sure how compatible Linux Docker images are with mac, but it should be a start.

My goal is to make it simple to build portable libs that can be bundled with a release for the major platforms. I have a very tight deadline, but spent the extra bit of time to get all three working in Docker because it's really really nice for repeatability.

I tried to preserve the scons builds for OSX, but haven't tested there. If the Docker container works then I'd suggest that it's not important to have native builds (but a pr is welcome :) )

jamie-pate commented 4 years ago

Should be fixed by https://github.com/kidrigger/godot-videodecoder/pull/25 ?

kidrigger commented 4 years ago

If it's not all fixed, I will branch and reset so we still have the old per-platform compilation.

On Tue, May 12, 2020 at 7:54 AM Brody Eller notifications@github.com wrote:

I know I messaged in a now closed issue about a month and a half ago about the build setup of this repo. Since then, major changes have been merged that significantly change the way everything is built. While I agreed with @jamie-pate https://github.com/jamie-pate that using the system installed ffmpeg libs wasn't great, I disagree with the build setup as it stands right now.

As far as I can tell, support for compiling on macOS and Windows has been dropped in favor of cross-compiling on Linux. It's nice to be able to cross-compile but I do a significant portion of development on macOS and I feel compiling from the host system to the host system should be the priority.

As for how to manage the ffmpeg dependency, I'm proposing that the user uses their system package manager(pacman, brew, MSYS2) to install ffmpeg dependencies, e.g. libvorbis, x264, etc. Then a specific release/commit of ffmpeg is cloned to the user's machine, compiled with the specified flags, and installed to a third party directory in the godot-videodecoder folder. Then we can point scons to this directory.

I know you guys have been up to a lot recently in changing the build system but at the moment it's broken for me being on macOS. I've been looking through jamie's repos and it kind of looks like he's trying to set up docker? I'm not sure, and I'm definitely no expert on build systems but let me know what you think!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kidrigger/godot-videodecoder/issues/22, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEDSN5VQOFCQVS7JJW5M4N3RRDQA5ANCNFSM4M6QOTQA .