-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build Mixxx on Appveyor with Visual Studio 2015. #1131
Conversation
cde14d2
to
a1e7e4a
Compare
1hr time limit hit. Hummm... why is static build so much longer ? |
your build env is too large. You need to shrink it by removing all strictly unneeded QT and third party libs source code. |
Oh, not a build env size problem. Static linking alone takes 10 minutes for mixxx.exe and not less than 13 minutes for mixxx-test.exe ??!! not something with can afford with appveyor. Why is static linking so long ? |
Packaging failed: You need to add vcredist_%ARCH%.exe at the root of the build env. |
scons mixxx makerelease verbose=0 winlib=%WINLIB_PATH% qtdir=%WINLIB_PATH%\build\qt-everywhere-opensource-src-4.8.6 hss1394=1 mediafoundation=1 opus=1 localecompare=1 optimize=portable build=%BUILD_TYPE% machine=%TARGET_MACHINE% toolchain=msvs virtualize=0 test=1 qt_sqlite_plugin=0 mssdk_dir=%MSSDK_DIR% build_number_in_title_bar=0 bundle_pdbs=1 | ||
echo ============================== | ||
echo. | ||
IF ERRORLEVEL 1 ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here, you check the return code of echo. and not scons error code. So the tests run even if build fails
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
doh, thanks!
REM set multiprocessor to build faster (together with scons -j4) | ||
set CL=/MP /FS /EHsc | ||
REM For debugging, print the configuration log. | ||
type config.log |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You probably only want to dump config.log when build fails.
I'd rather move these two lines into the IF ERRORLEVEL
block
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea this was just for debugging why configuration was failing. I was going to remove it, but moving it to the failure block is an even better idea
It's likely link-time code-generation -- we're now doing LTCG across the entire codebase (dependencies + mixxx) whereas in a dynamic build we do LTCG for each individual DLL and mixxx separately. |
What option do we have to fit into the 1hr time limit ? |
Debug only builds with LTCG disabled, probably |
c56d33b
to
628a609
Compare
AppVeyor build succeeded \o/ |
Ok, we now have a "fastbuild" environment built with LTCG turned off and corresponding optimize=fastbuild option. Each build completed in ~30 minutes: |
@@ -119,12 +119,12 @@ Function InstallVCRedist | |||
SetOutPath $TEMP | |||
|
|||
; Put the VC redist installer files there | |||
File ${WINLIB_PATH}\vcredist_${ARCH}.exe | |||
File ${WINLIB_PATH}\vc_redist.${ARCH}.exe |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please also update https://github.com/mixxxdj/mixxx/blob/master/build/wix/mixxx.wxs#L101
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
SET BASEURL=%1 | ||
|
||
REM Build envs to install. You can specify more than one separated by spaces (no quotes) | ||
SET BUILDENVS=%2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the above comment is not true anymore
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could %2 not be a space-separated list?
with this build, the 64 bits package wants to install in the (32 bits) program files folder :( |
Oh, I know why : NSIS needs to be patched: we need to include NSIS patching in appveyor setup part (or kindly ask appveyor to patch NSIS in their image) |
Gotcha, so it affects all appveyor builds? |
You have to revert e1b3a42 in this PR only. |
Ok, new build environment published with both a "release" variant and a "fastbuild" variant: Built using create_and_build_environments.bat from this commit: mixxxdj/buildserver@5e57821 (note the short hash is in the filename of the zips). |
Uses an x86 and x64 environment built from mixxxdj/buildserver@3ddf42e which is a combination of work by @Pegasus-RPG, @JosepMaJAZ, @sblaisot and myself. All dependencies are linked statically. SCons is now present in the bin directory of the environment, so we don't need to install it anymore.
Nice, build is green. I think this PR is ready to go. |
Uses an x86 and x64 environment built from mixxxdj/buildserver@3ddf42e which is a combination of work by @Pegasus-RPG, @JosepMaJAZ, @sblaisot and myself. All dependencies are linked statically.
SCons is now present in the bin directory of the environment, so we don't need to install it anymore.