(If you're looking to build the dependencies including Qt, go to this page.)
(If you're looking to make an installable release, go to this page.)
(Currently the official way to build Mixxx on Windows, frequently referred to as MSVC in discussions. (Microsoft Visual C++))
QTDIR = C:\qt-windows-4.8.4\ PATH = C:\qt-windows-4.8.4\bin;C:\Python26;C:\Python26\Scripts
C:\qt\bin to C:\qt\lib since that's where our build script looks for them. (We should fix that.)lp:mixxx
lp:~mixxxdevelopers/mixxx/winlib-msvc10-x86-static
setenv /xp /x86 /release
and hit Enter.
scons toolchain=msvs winlib=<path to winlib-msvc10-x86-static directory> sqlitedll=0 staticlibs=1 asmlib=0
and press Enter. (You may need to use scons.bat instead of just scons.)
msvcdebug=1 to build the debug version (with console output window.)force32=1 if you're on a 64-bit platform with 64-bit Python installed, otherwise it will try to build the x64 version of Mixxx. (win32=1 in older branches.)mediafoundation=1. (Vista users must have installed KB2117917.)faad=1 to the scons command.scons toolchain=msvs winlib=<path to mixxx-win32lib-msvc90-release directory> msvc
then open the newly generated “mixxx.vcproj” file with Visual Studio.
(You may need to be running an x64/ia64 version of Windows, such as XP Professional x64, Vista x64, Server 2003 x64 or 2008 x64, etc.)
QTDIR = C:\qt-everywhere-opensource-src-4.6.1 PATH = C:\qt-everywhere-opensource-src-4.6.1\bin;C:\Python26;C:\Python26\Scripts
lp:mixxxlp:~mixxxdevelopers/mixxx/mixxx-win64lib-msvc90-releasesetenv /xp /x64 /release (or /ia64) and hit Enter.scons toolchain=msvs winlib=path_to_mixxx-win64lib-msvc90-release_directory (you may need to use scons.bat instead of just scons.)msvcdebug=1 to build the debug version.win64=1 if you installed the 32-bit version of Python to force a 64-bit Mixxx build (otherwise it will think you're on a 32-bit platform and build that version.)def get_msvc_paths function (starts around line 536)def get_msvc_paths(env, version=None, use_mfc_dirs=0): """Return a 3-tuple of (INCLUDE, LIB, PATH) as the values of those three environment variables that should be set in order to execute the MSVC tools properly.""" exe_path = os.environ['PATH'] lib_path = os.environ['LIB'] include_path = os.environ['INCLUDE'] return (include_path, lib_path, exe_path)
scons and it should work.scons msvc (you may need to use scons.bat instead of just scons.) This will generate a Visual Studio project file called mixxx.vcproj.C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe)mixxx\trunk\mixxx\src\mixxx.vcproj file.src\engine\ratecontrol.cpp(267) : error C3861: 'isnan': identifier not found
then you need to edit that source file and add the following at the top under the #includes:
#ifdef _MSC_VER #include <float.h> // for _isnan() on VC++ #define isnan(x) _isnan(x) // VC++ uses _isnan() instead of isnan() //#else //#include <math.h> // for isnan() everywhere else #endif
The following is an alternate, currently experimental way to build Mixxx from trunk using the Qt Creator IDE. It differs from the normal way of building in that it uses qmake and minGW/GCC, but does not depend on Python, SCons, or Microsoft Visual Studio. (Note that these instructions are not regularly updated.)
--resourcePath ../res
in the Arguments Box
You can track your progress approximately by your compiler warnings count, a full uninterrupted build will produce ~8000 warnings.
(If the build fails only warnings after where it stopped will be shown on the next compile run)
To create a Windows installer package from a debug build (which is default):
My build setup is to keep my mixxx and mixxx-winlib directories inside “My Documents”. Unfortunately as I discovered, minGW's gdb can does not initialize properly when the target application executable has spaces in it's file paths. (gdb C:\mixxx\bin\mixxx.exe = okay, gdb “C:\Program Files\mixxx\bin\mixx.exe” = error 193)… Fortunately, as Sean (Pegasus_RPG) pointed out, Windows file paths can be mangled to 8.3 (you can see them by doing dir /x)
Here is the batch file I use to run gdb Mixxx from C:\Documents and Settings\%USERNAME%\My Documents\mixxx\bin (if your USERNAME variable is not 8.3 remember find mangled equivalent by doing dir /x C:\Documents and Settings\).
@echo off REM gdb can not be run from a path that contains a space... otherwise you get (error 193) cd "C:\DOCUME~1\%USERNAME%\MYDOCU~1\mixxx" gdb -silent --eval-command=run --args bin\mixxx --resourcePath res
Once Mixxx is running in gdb, and you crash it… Jump to step #3 of Creating Backtraces and you'll be able to find what line caused it or post the backtrace for dev team to look at.
To cut down on the 2GB that Qt Creator install takes, You may want to delete or zip-n-delete:
Please fill these in, I don't know the answers! -S
To have Qt Creator tell the compiler to optimize for the processor you're on, do:
To tell it to optimize for a particular processor, do:
\--- C:/msys/1.0/home/Administrator/portaudio-snapshot-clean/src/hostapi/dsound/pa_win_ds.c Wed Jan 21 07:07:32 2009
+++ C:/msys/1.0/home/Administrator/portaudio/src/hostapi/dsound/pa_win_ds.c Sat Feb 21 23:36:13 2009
@@ -95,8 +95,9 @@
#include "pa_win_ds.h"
#include "pa_win_ds_dynlink.h"
#include "pa_win_waveformat.h"
+#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
#include "pa_win_wdmks_utils.h"
-
+#endif
#if (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) /* MSC version 6 and above */
#pragma comment( lib, "dsound.lib" )
--- C:/msys/1.0/home/Administrator/portaudio-snapshot-clean/configure Thu Mar 06 12:14:06 2008
+++ C:/msys/1.0/home/Administrator/portaudio/configure Sat Feb 21 23:51:24 2009
@@ -21410,10 +21410,10 @@
PADLL="portaudio.dll"
THREAD_CFLAGS="-mthreads"
SHARED_FLAGS="-shared"
- DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L./dx7sdk/lib -ldsound -lole32"
+ DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -ldsound -lole32"
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
- CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I$DXDIR/include -DPA_NO_WMME -DPA_NO_ASIO" -DPA_NO_WDMKS
+ CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I$DXDIR/include -DPA_NO_WMME -DPA_NO_ASIO -DPA_NO_WDMKS"
elif [ $with_winapi = "asio" ] ; then
if [ $with_asiodir ] ; then
ASIODIR="$with_asiodir"
Experimental - Doesn't currently build because MinGW64 isn't working correctly.
(You may need to be running an x64/ia64 version of Windows, such as XP Professional x64, Vista x64, Server 2003 x64 or 2008 x64, etc.)
QTDIR = C:\qt\qt-win-opensource-src-4.5.1 PATH = C:\qt\qt-win-opensource-src-4.5.1\bin;C:\mingw64
-m64 -O3 -march=k8-sse3 -msse4.2 -m3dnow -fomit-frame-pointer -ffast-math -funroll-loops
(or other optimization options as desired)
-m64 -O3 -march=k8-sse3 -msse4.2 -m3dnow -fomit-frame-pointer -ffast-math -funroll-loops
(or other optimization options as desired)
cd %QTDIR% and hit Enter.configure -platform win32-g++ -no-webkit and for more optimization, add -mmx -3dnow -sse -sse2 & hit Enter.mingw32-make and press Enter and you should be good (takes 1~3 hours.)4.5.1-x64-mingwC:\qt\qt-win-opensource-src-4.5.1 in the Path fieldC:\mingw64 in the MinGw directory fieldhttps://mixxx.svn.sourceforge.net/svnroot/mixxx/trunklp:mixxx--resourcePath ../res
in the Arguments Box