Thank you, that explains everything! You checked in the generated files so
that I wouldn't have to install cmake. Unfortunately the msbuild invoked
cmake (which I didn't have installed at the time) causing the build to
fail. I just assumed that I needed cmake installed, but that may not be the
case...

Now there are two ways that I can build successfully.

== Without CMake ==
In tag.vcxproj, remove the entire <ItemGroup> that contains the cmake
invocations. Use the original build_taglib.bat, which doesn't invoke cmake.
(Also do the same for chromaprint's vcxproj)

* Note that I did not uninstall CMake when testing this, so it is possible
that there are still cmake invocations hiding somewhere, but I doubt it.

== With CMake ==
Use the updated build_taglib.bat, which causes cmake to regenerate the VS
project files. Add the following lines to taglib-1.9.1/CMakeLists.txt so
that these preprocessor definitions are included when it regenerates
tag.vcxproj

add_definitions(-DZLIB_WINAPI)
add_definitions(-DZLIB_DLL)

The cmake-generated files should then be removed from source control.



Personally, I would favor the "With CMake" method. From my point of view,
I'm already downloading, unzipping, and building Qt. That took me more than
an hour. Installing cmake took less than 5 minutes. It's a very small price
to pay for a more uniform build.

On Tue, Oct 28, 2014 at 4:23 PM, RJ Ryan <russelljr...@gmail.com> wrote:

> Hey Ryan -- we use the WINAPI variant of zlib in the build sever
> intentionally... I think you (or cmake rather) probably just undid some
> change I made to the taglib config when you re-ran cmake. I remember
> defining ZLIB_WINAPI in the taglib build. See the commit comments here:
>
> https://github.com/mixxxdj/buildserver/commit/ceceee2a61003d9169a5e85f5d43b001b9461388
>
> On Sun, Oct 26, 2014 at 1:52 PM, Ryan Kramer <default.kra...@gmail.com>
> wrote:
>
>> Solved! Found the clue here, see step 5:
>> http://www.tannerhelland.com/5076/compile-zlib-winapi-wapi-stdcall/
>>
>> I just added "#undef ZLIB_WINAPI" to the top of zlib-1.2.8/zconf.h.
>> Rebuilt zlib and taglib and it linked correctly.
>>
>>
>> Now I can cleanly build the dependencies with these errata:
>>
>> 1) Needed CMake installed and on the PATH. The wiki should be updated.
>>
>> 2) Needed updated scripts from Max for chromaprint and taglib, see 3
>> posts earlier.
>>
>> 3) Needed to undefine ZLIB_WINAPI when building zlib so taglib would
>> link. I don't know the best way to integrate this into the build; I just
>> hacked zconf.h which is probably not ideal.
>>
>> On Fri, Oct 24, 2014 at 5:35 PM, Ryan Kramer <default.kra...@gmail.com>
>> wrote:
>>
>>> Aha! I noticed that the link error was contained within a conditional
>>> compile. (Line 253 of id3v2frame.cpp for reference) So I forced HAVE_ZLIB
>>> to be 0 (by modifying ConfigureChecks.cmake). Then it built successfully.
>>>
>>> Max and/or others, can you confirm that you are building successfully
>>> with HAVE_ZLIB defined as 1?
>>>
>>> This still leaves the mystery of "why can't my linker resolve
>>> _uncompress?" It seems to be passed correctly to link.exe, and I even used
>>> dumpbin to verify that "_uncompress@16" is an exposed symbol from
>>> zlibwapi.lib. The only strange thing is that I have never seen this syntax
>>> (calling a static function on nothing?), but my compiler seems perfectly OK
>>> with it:
>>>
>>>     ::uncompress((Bytef *) data.data(),
>>>                  (uLongf *) &uLongTmp,
>>>                  (Bytef *) frameData.data() + frameDataOffset,
>>>                  size());
>>>
>>> On Fri, Oct 24, 2014 at 2:22 PM, Ryan Kramer <default.kra...@gmail.com>
>>> wrote:
>>>
>>>> Thank you, with the modified scripts I get much closer. Chromaprint
>>>> builds successfully now. The only remaining error is a link error for
>>>> taglib:
>>>>
>>>>      Creating library
>>>> C:/code/github/mixxxBuild/buildserver/build/taglib-1.9.1/taglib/Release/tag.lib
>>>> and object
>>>> C:/code/github/mixxxBuild/buildserver/build/taglib-1.9.1/taglib/Release/tag.exp
>>>> id3v2frame.obj : error LNK2019: unresolved external symbol _uncompress
>>>> referenced in function "protected: class TagLib::ByteVector __thiscall
>>>> TagLib::ID3v2::Frame::fieldData(class TagLib::ByteVector const &)const "
>>>> (?fieldData@Frame@ID3v2@TagLib@@IBE?AVByteVector@3@ABV43@@Z)
>>>> [C:\code\github\mixxxBuild\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj]
>>>> C:\code\github\mixxxBuild\buildserver\build\taglib-1.9.1\taglib\Release\tag.dll
>>>> : fatal error LNK1120: 1 unresolved externals
>>>> [C:\code\github\mixxxBuild\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj]
>>>>
>>>> I am currently copying everything into C:/mixxx/environments/prototype
>>>> to see if that resolves it, but that will take some time on this laptop :)
>>>>
>>>> On Fri, Oct 24, 2014 at 10:16 AM, Max Linke <max_li...@gmx.de> wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> Did cmake installing actually fix building the missing dependencies?
>>>>> As far as I
>>>>> can see from the logs of Ferran it did not. Please don't change the
>>>>> build
>>>>> instructions until your issues are actually fixed.
>>>>>
>>>>> We still have some hardcoded paths in the VS solutions produced by
>>>>> cmake.
>>>>> Unfortunately we can't create the VS solutions during the build
>>>>> process since we
>>>>> need to edit them to allow creating Windows XP binaries. During the
>>>>> build cmake
>>>>> wants to rerun itself for a reason I don't understand currently and
>>>>> uses the
>>>>> hardcoded path.
>>>>>
>>>>> You can try several ways to fix this. Either build the dependencies in
>>>>> the
>>>>> folder `C:\mixxx/environments/prototype/build` or modify the build
>>>>> scripts to
>>>>> run cmake for every build and directly us the VS solutions from cmake.
>>>>>
>>>>> I have modified build scripts uploaded on github.
>>>>>
>>>>>
>>>>> https://github.com/kain88-de/buildserver/blob/custom_windows/build_chromaprint.bat
>>>>>
>>>>> https://github.com/kain88-de/buildserver/blob/custom_windows/build_taglib.bat
>>>>>
>>>>> I actually tried both ways and now I can build the dependencies on any
>>>>> folder. I
>>>>> have no idea why this is possible for me and not for you right now.
>>>>> When I'm
>>>>> back home I can look a bit more into it.
>>>>>
>>>>> It would be nice if you can report back about your experience.
>>>>>
>>>>> best Max.
>>>>>
>>>>> On Thu, 23 Oct 2014 15:57:04 -0500
>>>>> Ryan Kramer <default.kra...@gmail.com> wrote:
>>>>>
>>>>> > I just tried building the dependencies on windows and reached the
>>>>> same
>>>>> > errors as Ferran.
>>>>> >
>>>>> > First of all, I didn't have CMake installed. I tried to update the
>>>>> > instructions on this wiki page (
>>>>> > http://mixxx.org/wiki/doku.php/compiling_on_windows) but the Edit
>>>>> link gave
>>>>> > this error. "Sorry, there was an error processing your request. If
>>>>> this is
>>>>> > an error contact us at info AT mydomain.com." To be fair, I'm not
>>>>> sure if
>>>>> > I'm supposed to have permission to edit wiki pages.
>>>>> >
>>>>> > Once I installed CMake, I got errors like:
>>>>> >
>>>>> > CUSTOMBUILD : CMake error : The source directory
>>>>> > "C:/mixxx/environments/prototype/build/chromaprint-1.1" does not
>>>>> appear to
>>>>> > contain CMakeLists.txt.
>>>>> >
>>>>> [C:\code\github\mixxxBuild\buildserver\build\chromaprint-1.1\src\chromaprint.vcxproj]
>>>>> >
>>>>> > and
>>>>> >
>>>>> > CUSTOMBUILD : CMake error : The source directory
>>>>> > "C:/mixxx/environments/prototype/build/taglib-1.9.1" does not appear
>>>>> to
>>>>> > contain CMakeLists.txt.
>>>>> >
>>>>> [C:\code\github\mixxxBuild\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj]
>>>>> >
>>>>> > Why is it looking in the directory "C:/mixxx/..."? On my machine,
>>>>> the file
>>>>> > exists at
>>>>> >
>>>>> "C:\code\github\mixxxBuild\buildserver\build\chromaprint-1.1\CMakeLists.txt".
>>>>> > It looks like the former path is mistakenly hard-coded. It seems the
>>>>> only
>>>>> > two dependencies with this problem (chromaprint and taglib) are also
>>>>> the
>>>>> > only two that use CMake...
>>>>> >
>>>>> >
>>>>> > Since those two dependencies didn't build, I wasn't expecting a
>>>>> clean build
>>>>> > of mixxx. However, it is strange that I get errors like
>>>>> "ERROR:root:Unmet
>>>>> > dependency: Did not find libportaudio.a, portaudio.lib, or the
>>>>> > PortAudio-v19 development header files." I am pretty sure my
>>>>> WINLIB_PATH is
>>>>> > correct:
>>>>> >
>>>>> > set WINLIB_PATH=C:\code\github\mixxxBuild\buildserver
>>>>> >
>>>>> > And portaudio.lib definitely exists in
>>>>> > "C:\code\github\mixxxBuild\buildserver\lib". It seems to have built
>>>>> just
>>>>> > fine.
>>>>> >
>>>>> > I will keep investigating as I have time, but hopefully someone can
>>>>> shed
>>>>> > some light on this.
>>>>> >
>>>>> > On Sat, Oct 18, 2014 at 7:14 AM, Ferran Pujol Camins <
>>>>> > ferranpujolcam...@gmail.com> wrote:
>>>>> >
>>>>> > > Could you find what was not working? Is it really an issue with
>>>>> the build
>>>>> > > scripts or might be something wrong in my computer?
>>>>> > > El dia 14/10/2014 17.49, "Ferran Pujol Camins" <
>>>>> > > ferranpujolcam...@gmail.com> va escriure:
>>>>> > >
>>>>> > > The libs missing are:
>>>>> > >>
>>>>> > >> *Portaudio*. I didn't rename the asio sdk folder correctly, my
>>>>> bad. Now
>>>>> > >> it compiles.
>>>>> > >>
>>>>> > >> *Chromprint*. Error:
>>>>> > >>
>>>>> > >> "C:\Development\buildserver\build\chromaprint-1.1\chromaprint.sln"
>>>>> > >>> (chromaprint:Clean;chromaprint:Rebuild target) (1) -
>>>>> > >>> >
>>>>> > >>>
>>>>> "C:\Development\buildserver\build\chromaprint-1.1\src\chromaprint.vcxproj"
>>>>> > >>> (Rebuild target) (2:2) ->
>>>>> > >>> (CustomBuild target) ->
>>>>> > >>>   CUSTOMBUILD : CMake error : The source directory
>>>>> > >>> "C:/mixxx/environments/prototype/build/chromaprint-1.1" does not
>>>>> app
>>>>> > >>> ear to contain CMakeLists.txt.
>>>>> > >>>
>>>>> [C:\Development\buildserver\build\chromaprint-1.1\src\chromaprint.vcxproj]
>>>>> > >>>
>>>>> > >>
>>>>> > >>
>>>>> > >> *Taglib*. Error:
>>>>> > >>
>>>>> > >> "C:\Development\buildserver\build\taglib-1.9.1\taglib.sln"
>>>>> > >>> (tag:Clean;tag:Rebuild target) (1) ->
>>>>> > >>>
>>>>> "C:\Development\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj"
>>>>> > >>> (Rebuild target) (2:2) ->
>>>>> > >>> (CustomBuild target) ->
>>>>> > >>>   CUSTOMBUILD : CMake error : The source directory
>>>>> > >>> "C:/mixxx/environments/prototype/build/taglib-1.9.1" does not
>>>>> appear
>>>>> > >>>  to contain CMakeLists.txt.
>>>>> > >>>
>>>>> [C:\Development\buildserver\build\taglib-1.9.1\taglib\tag.vcxproj]
>>>>> > >>>
>>>>> > >>
>>>>> > >> 2014-10-13 20:43 GMT+02:00 Max Linke <max_li...@gmx.de>:
>>>>> > >>
>>>>> > >>> Some of the dependencies weren't build. I can't see the files for
>>>>> > >>> chromaprint
>>>>> > >>> and portaudio in your lib folder.
>>>>> > >>>
>>>>> > >>> Can you install cmake and then test to build only these
>>>>> dependencies?
>>>>> > >>> Just
>>>>> > >>> comment out all the other deps in `build_environment.bat`. I had
>>>>> similar
>>>>> > >>> issues
>>>>> > >>> when I tried the new build. I think some of the solutions have
>>>>> to be
>>>>> > >>> updated by
>>>>> > >>> cmake but I'm not 100% that this was the error
>>>>> > >>>
>>>>> > >>>
>>>>> > >>> What are the dependencies that scons is complaining about. The
>>>>> config
>>>>> > >>> log helps
>>>>> > >>> but is a noisy.
>>>>> > >>>
>>>>> > >>> best Max
>>>>> > >>>
>>>>> > >>>
>>>>> > >>> On Mon, 13 Oct 2014 20:25:59 +0200
>>>>> > >>> Ferran Pujol Camins <ferranpujolcam...@gmail.com> wrote:
>>>>> > >>>
>>>>> > >>> > I've reverted back WINLIB_PATH to the correct value. I've
>>>>> tried to
>>>>> > >>> compile
>>>>> > >>> > mixxx again:
>>>>> > >>> >
>>>>> > >>> > 2014-10-13 10:00 GMT+02:00 Max Linke <max_li...@gmx.de>:
>>>>> > >>> >
>>>>> > >>> > > Thanks for the Feedback
>>>>> > >>> > >
>>>>> > >>> > > On Sun, 12 Oct 2014 19:59:58 +0200
>>>>> > >>> > > Ferran Pujol Camins <ferranpujolcam...@gmail.com> wrote:
>>>>> > >>> > >
>>>>> > >>> > > > Well, I still cannot build Mixxx correctly.
>>>>> > >>> > > > In the build.bat suggested. I found an error (I think):
>>>>> > >>> > > > -When calling scons, It should be*
>>>>> winlib=%WINLIB_PATH%\lib*
>>>>> > >>> instead
>>>>> > >>> > > > of *winlib=%WINLIB_PATH%
>>>>> > >>> > >
>>>>> > >>> > > No the winlib path is correct. You have to point it to a
>>>>> directory
>>>>> > >>> that
>>>>> > >>> > > contains
>>>>> > >>> > > the compiled shared libraries AND the headers that we
>>>>> include. The
>>>>> > >>> > > libraries are
>>>>> > >>> > > in the 'lib' folder and the headers in the 'include'.
>>>>> > >>> > >
>>>>> > >>> > >
>>>>> > >>> > > > *isn't it?
>>>>> > >>> > > >
>>>>> > >>> > > > I've tried that fix but I still have unmet dependencies.
>>>>> See
>>>>> > >>> attached
>>>>> > >>> > > > config.log
>>>>> > >>> > >
>>>>> > >>> > > Can you post the content of %WINLIB_PATH%/lib, where your
>>>>> > >>> %WINLIB_PATH% is
>>>>> > >>> > > and
>>>>> > >>> > > the script that you use to build mixxx.
>>>>> > >>> > >
>>>>> > >>> > > best Max
>>>>> > >>> > >
>>>>> > >>> > > >
>>>>> > >>> > > > 2014-09-24 19:41 GMT+02:00 Max Linke <max_li...@gmx.de>:
>>>>> > >>> > > >
>>>>> > >>> > > > > Hi
>>>>> > >>> > > > >
>>>>> > >>> > > > > We have recently updated our windows build environment
>>>>> on our
>>>>> > >>> build
>>>>> > >>> > > server.
>>>>> > >>> > > > >
>>>>> https://github.com/mixxxdj/buildserver/tree/windows_environment
>>>>> > >>> > > > >
>>>>> > >>> > > > > Today I have updated our build instructions for windows
>>>>> as well.
>>>>> > >>> > > > > http://www.mixxx.org/wiki/doku.php/compiling_on_windows
>>>>> > >>> > > > >
>>>>> > >>> > > > > If you had problems recently to compile on windows give
>>>>> it a
>>>>> > >>> shoot.
>>>>> > >>> > > > > Any comments about problems are appreciated.
>>>>> > >>> > > > >
>>>>> > >>> > > > > Best Max
>>>>> > >>> > > > >
>>>>> > >>> > > > >
>>>>> > >>> > > > >
>>>>> > >>> > >
>>>>> > >>>
>>>>> ------------------------------------------------------------------------------
>>>>> > >>> > > > > Meet PCI DSS 3.0 Compliance Requirements with EventLog
>>>>> Analyzer
>>>>> > >>> > > > > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box
>>>>> PCI DSS
>>>>> > >>> > > Reports
>>>>> > >>> > > > > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download
>>>>> White
>>>>> > >>> paper
>>>>> > >>> > > > > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with
>>>>> EventLog
>>>>> > >>> Analyzer
>>>>> > >>> > > > >
>>>>> > >>> > > > >
>>>>> > >>> > >
>>>>> > >>>
>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>>>>> > >>> > > > > _______________________________________________
>>>>> > >>> > > > > 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
>>>>> > >>> > > > >
>>>>> > >>> > > >
>>>>> > >>> > > >
>>>>> > >>> > > >
>>>>> > >>> > >
>>>>> > >>> > >
>>>>> > >>> > >
>>>>> > >>>
>>>>> ------------------------------------------------------------------------------
>>>>> > >>> > > Meet PCI DSS 3.0 Compliance Requirements with EventLog
>>>>> Analyzer
>>>>> > >>> > > Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI
>>>>> DSS
>>>>> > >>> Reports
>>>>> > >>> > > Are you Audit-Ready for PCI DSS 3.0 Compliance? Download
>>>>> White paper
>>>>> > >>> > > Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog
>>>>> Analyzer
>>>>> > >>> > > http://p.sf.net/sfu/Zoho
>>>>> > >>> > > _______________________________________________
>>>>> > >>> > > 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
>>>>> > >>> > >
>>>>> > >>> >
>>>>> > >>> >
>>>>> > >>> >
>>>>> > >>>
>>>>> > >>
>>>>> > >>
>>>>> > >>
>>>>> > >> --
>>>>> > >> Ferran Pujol Camins
>>>>> > >>
>>>>> > >
>>>>> > >
>>>>> > >
>>>>> ------------------------------------------------------------------------------
>>>>> > > Comprehensive Server Monitoring with Site24x7.
>>>>> > > Monitor 10 servers for $9/Month.
>>>>> > > Get alerted through email, SMS, voice calls or mobile push
>>>>> notifications.
>>>>> > > Take corrective actions from your mobile device.
>>>>> > > http://p.sf.net/sfu/Zoho
>>>>> > > _______________________________________________
>>>>> > > 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
>>>>> > >
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> _______________________________________________
>>>>> 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
>>>>>
>>>>
>>>>
>>>
>>
>>
>> ------------------------------------------------------------------------------
>>
>> _______________________________________________
>> 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
>>
>
>
------------------------------------------------------------------------------
_______________________________________________
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