NatronGitHub / Natron

Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
http://NatronGitHub.github.io
GNU General Public License v2.0
4.54k stars 332 forks source link

MinGW package updates for Windows Qt5 build #879

Closed acolwell closed 1 year ago

acolwell commented 1 year ago

Thanks for submitting a pull request! Please provide enough information so that others can review your pull request. Additionally, make sure you've done all of these things:

PR Description

What type of PR is this? (Check one of the boxes below)

What does this pull request do?

This patch makes a variety of updates to support building a Natron installer for a Windows Qt5 build.

Have you tested your changes (if applicable)? If so, how?

Yes. I've used these changes to create a Windows Qt5 Natron installer zip with tools/jenkins/launchBuildMain.sh . I've installed and done some minimal preliminary testing with this generated Windows build and it runs ok.

The windows installer was created with Natron specific packages built by the GitHub Action included in this patch. Here is a link to the job that created the packages. https://github.com/acolwell/Natron/actions/runs/4835900724/jobs/8618644300

devernay commented 1 year ago

@rodlie will you be able to review this one?

rodlie commented 1 year ago

Sure, can test on Windows tomorrow. Looks ok.

rodlie commented 1 year ago

So, I have latest msys2 installed and built all the packages

mingw-sox is now missing the dll, only .a static. This breaks the Arena.ofx linking as the depends of sox is not added to the linker. I tried to rebuild mingw-sox but I was not able to get an dll, I had to modify the sox.pc file on the system to get past the linking process. This has to be fixed somehow.

Yes. I've used these changes to create a Windows Qt5 Natron installer zip with tools/jenkins/launchBuildMain.sh

How? tools/jenkins uses qmake and the build will fail with missing wrapper files (that's not generated). Or am I stupid and is missing some new var that was recently added :)

devernay commented 1 year ago

@acolwell are you able to do a windows/Qt5 build? If yes, could you add it to https://github.com/NatronGitHub/Natron/releases/tag/v2.6.0-alpha1 ?

devernay commented 1 year ago

(Qt5 builds should be called 2.6)

acolwell commented 1 year ago

@acolwell are you able to do a windows/Qt5 build? If yes, could you add it to https://github.com/NatronGitHub/Natron/releases/tag/v2.6.0-alpha1 ?

Yes. I can do a windows Qt5 build today. I'm assuming you'd want me to build from the RB-2.6 branch, but this release tag looks like it is for a December 22th snapshot. The source zips won't match the builds. Should we move this tag or create an alpha2 tag to reflect this new build?

devernay commented 1 year ago

We don't care, this is a dummy release tag, and all the builds are uploaded are snapshots. Making a release tag is a PITA, because all repos have to be tagged as well, so I'll wait until the actual release to do that.

devernay commented 1 year ago

This is how I make the builds for macOS. tools/jenkins can be either RB-2.5 or RB-2.6, it will use the scripts from that branch (which should be identical)

cd $srcdir/tools/jenkins
GIT_BRANCH=RB-2.6
NOUPDATE=1 WORKSPACE=$workspace DISABLE_BREAKPAD=1 NATRON_LICENSE=GPL GIT_URL=https://github.com/NatronGitHub/Natron.git GIT_BRANCH=$GIT_BRANCH UNIT_TESTS=true BUILD_NAME=natron_github_RB2 BUILD_NUMBER=1 COMPILE_TYPE=release MKJOBS=8 ./launchBuildMain.sh
acolwell commented 1 year ago

We don't care, this is a dummy release tag, and all the builds are uploaded are snapshots. Making a release tag is a PITA, because all repos have to be tagged as well, so I'll wait until the actual release to do that.

This is how I make the builds for macOS. tools/jenkins can be either RB-2.5 or RB-2.6, it will use the scripts from that branch (which should be identical)

cd $srcdir/tools/jenkins
GIT_BRANCH=RB-2.6
NOUPDATE=1 WORKSPACE=$workspace DISABLE_BREAKPAD=1 NATRON_LICENSE=GPL GIT_URL=https://github.com/NatronGitHub/Natron.git GIT_BRANCH=$GIT_BRANCH UNIT_TESTS=true BUILD_NAME=natron_github_RB2 BUILD_NUMBER=1 COMPILE_TYPE=release MKJOBS=8 ./launchBuildMain.sh

ok. I'll use a similar command-line. I'll need this commit merged to the 2.6 branch though for everything to build correctly.

acolwell commented 1 year ago

@acolwell are you able to do a windows/Qt5 build? If yes, could you add it to https://github.com/NatronGitHub/Natron/releases/tag/v2.6.0-alpha1 ?

With #886 checked in and #887 out for review, I was finally able to get a Windows installer built again. I've uploaded the installer zip to https://github.com/NatronGitHub/Natron/releases/tag/v2.6.0-alpha1

acolwell commented 1 year ago

So, I have latest msys2 installed and built all the packages

mingw-sox is now missing the dll, only .a static. This breaks the Arena.ofx linking as the depends of sox is not added to the linker. I tried to rebuild mingw-sox but I was not able to get an dll, I had to modify the sox.pc file on the system to get past the linking process. This has to be fixed somehow.

This apparently broke in the last few weeks and I encountered it when I tried to build everything from scratch today. It is fixed by #887.

Yes. I've used these changes to create a Windows Qt5 Natron installer zip with tools/jenkins/launchBuildMain.sh

How? tools/jenkins uses qmake and the build will fail with missing wrapper files (that's not generated). Or am I stupid and is missing some new var that was recently added :)

This broke when some fixes for the Mac build were checked in. This is fixed by #886.