I got those same errors a while back. With this PR (
https://github.com/mixxxdj/buildserver/pull/3) I was able to compile
cleanly following the instructions on the wiki. I know this PR fixes the
cmake issues in chromaprint and taglib. I believe it also fixes the
HAVE_ZLIB issue
as well, but I don't remember exactly why.

On Fri, May 1, 2015 at 9:18 AM, Emile Vrijdags <emile.vrijd...@gmail.com>
wrote:

> Hi mixxx devs,
>
> I have been able to produce a windows executable, however the buildprocess
> was not without issues.
>
> I followed the guide on this page:
> http://mixxx.org/wiki/doku.php/compiling_on_windows
>
> Trying to build the buildserver repo executing:
> build_environment x86 Release
>
> 2 libraries, chromaprint and taglib, wouldn’t build because they have
> absolute paths in their visual studio project files. After some searching I
> found out they are generated by cmake and cmake puts absolute paths in
> (visual studio) project files + it makes a call to cmake in the project
> files in a custombuild step.
> These absolute paths seem unavoidable:
>
> http://www.cmake.org/Wiki/CMake_FAQ#Why_does_CMake_use_full_paths.2C_or_can_I_copy_my_build_tree.3F
> So I think the buildscript should generate them and the guide should be
> updated to include cmake the programs to install.
>
> I have very little experience using cmake and was glad to find the calls
> to generate them in the build_***.bat files. However one of them was not
> completely correct:
>
> C:\mixxx\environments\prototype\build\chromaprint-1.1>cmake . -G "Visual
> Studio 12 2013" -DWITH_FFTW3=ON
> -DFFTW3_FFTW_LIBRARY=c:/mixxx/environments/prototype/lib/libfftw-3.3.dll
> -DWITH_AVFFT=OFF -DBUILD_EXAMPLES=OFF
>
> I changed to:
> cmake . -G "Visual Studio 12" -DWITH_FFTW3=ON
> -DFFTW3_FFTW_LIBRARY=../../lib/libfftw-3.3.lib -DWITH_AVFFT=OFF
> -DBUILD_EXAMPLES=OFF
>
> which seems to work for me.
>
>
> Then I also had an unresolved external symbol linker error in taglib which
> I dont quite understand (yet), but was able to work around.
> In taglib-1.9.1\taglib\mpeg\id3v2\id3v2frame.cpp there is a dependency on
> zlib.h and a call to the function uncompress which causes the linker error.
> As far as I could see zlib is specified in the additional dependencies and
> points to the correct .lib, not sure what is going wrong there. Though in
> stead of going deeper into it, I also noticed the call to the uncompress
> function was enclosed with a preprocessor condition:
> #if HAVE_ZLIB
> …
> So I guess it is optional and changed the source in
> buildserver\build\taglib-1.9.1\config.h to
> /* Defined if you have libz */
> #define   HAVE_ZLIB 0
>
> after which it compiles without problems.
>
> I searched for each occurance of HAVE_ZLIB and it seems to be used only
> for that uncompress function (no compress to match??), and to print a
> statement that compression is not used.
>
>
> So after regenerating and the above workaround, both libraries compile
> without error. However I think the lib output/target path in the newly
> generated project files is not correct because they are not copied to the
> general buildserver/lib folder. I did that manually.
>
> After this, I was able to build/run the mixxx repo without any further
> issues.
> Though imho it would maybe be nice if the mixxx.exe and needed .dlls where
> copied to one folder.
>
>
> Furthermore I have some additional questions:
>
> I noticed that when I build the buildserver repo for any combination of
> platform/config, the library files produced always have the same name/path.
> So when I want to try a different platform/config in mixxx how would I go
> about it?
> I would like to build the 4 different possibilities (i know of) and be
> done with it, one way I can think of is to clone it in 4 different folders?
> On my previous job they used suffixes like  libname_x86_D.lib to
> differentiate, and use one build command to produce them all.
>
> When I started I tried to build x64 directly, but when I got errors I went
> to the x86 to make sure I was following the guide exaclty. Then I noticed
> that the qt libs are compiled but not overwritten in
> build\qt-everywhere-opensource-src-4.8.6\lib\.
> The other libs I have looked at that use vsxproj files do a clean/rebuild.
> To make sure, I ended up deleting the qt folder and rebuild it completely,
> it would be nice if there was an easy clean command or something (maybe
> there is, but I’m not familiar with the buildsystem used)?
>
> I looked at the buildserver/buildb_qt4.bat and I notice the call to
> configure.exe, which I’m guessing controls its compilation, doesnt get the
> platform information as a command line option, though at first I got a
> linker x86/x64 mismatch error because the libs where not overwritten when I
> changed platform, so how does qt know for which platform to build?
>
> Thats it for now :)
>
> Kind Regards,
>
> Emile Vrijdags
>
>
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
> http://mixxx.org
>
>
> Mixxx-devel mailing list
> Mixxx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to