jamoma / JamomaMax

Implementation of Jamoma for Cycling'74 Max:
http://www.jamoma.org
41 stars 9 forks source link

Windows compiling #955

Closed cbossut closed 8 years ago

cbossut commented 8 years ago

The nightly builds released on the site for windows are compiled in debug mode. I don't know if it's really necessary, plus, running this version demands to have debug C++ std lib installed (msvcp120d.dll), which requires Virtual Studio installed. I recommand either compiling in release mode or statically linking the dll in the builds.

avilleret commented 8 years ago

Hi,

which nightly build version did you test ? (the short sha is printed in the Max console when starting) It is weird that you download a debug version since debug build doesn't work yet and we force Release in cmake configuration step (see : https://github.com/jamoma/JamomaMax/blob/master/script/build-appveyor.ps1#L24) Btw I don't know either if it necessary to build debug for Windows.

There is a fix on branch https://github.com/jamoma/JamomaMax/tree/feature/appveyor-debug-build to build debug version on normal commit and release on tag. see : https://github.com/jamoma/JamomaMax/blob/feature/appveyor-debug-build/script/build-appveyor.ps1#L29 But it has not been merged since appveyor fails to build it because of huge build time (or should I say very slow virtual machine).

cbossut commented 8 years ago

I downloaded the last Nightly build, which to date is the one from the first of november 2015, version for Windows x64. Microsoft insist that debug versions are not redistribuable with Visual Studio, and I had to download the two debug DLLs from the web, crossing fingers for my conputer not to crash. Now it seems to work.

avilleret commented 8 years ago

I still don't understand why it asks you for a debug dll since alll nightly build binary available on jamoma.org are Release build. But you may have download it through appveyor webgui which stores all artifacts even for non master branch that are not pushed to jamoma.org, and that's why I was asking for SHA to find the corresponding build log. Could you run dependency walker to see which binary really need msvcp120d.dll ? I doubt it is jamoma itself, but it could be a third party library like libxml.

jcelerier commented 8 years ago

I just tested the latest releases JamomaMax 2015-11-01-Win32 and Win64 and they (dlls, ttdlls and mxes) are indeed linking against msvcr/msvcp120d.dll with Dependency Walker. Moreover, when running there are some runtime exceptions which only happen in debug builds (due to the additionnal checks that are then done by the ms runtime).

Jean-Michaël

On Tue, Nov 3, 2015 at 1:29 PM, Antoine Villeret notifications@github.com wrote:

I still don't understand why it asks you for a debug dll since alll nightly build binary available on jamoma.org are Release build. But you may have download it through appveyor webgui which stores all artifact even for non master branch that are not pushed to jamoma.org, and that's why I was asking for SHA to find the corresponding build log. Could you run dependency walker to see which binary really need msvcp120d.dll ? I doubt it is jamoma itself, but it could be a third party library like libxml.

— Reply to this email directly or view it on GitHub https://github.com/jamoma/JamomaMax/issues/955#issuecomment-153337777.

jcelerier commented 8 years ago

Okay now for the fun stuff : it looks like even with -DCMAKE_BUILD_TYPE=Release we get Debug builds. And indeed on the build commands there is a /D _DEBUG.

On Tue, Nov 3, 2015 at 2:52 PM, Jean-Michaël Celerier < jeanmichael.celerier@gmail.com> wrote:

I just tested the latest releases JamomaMax 2015-11-01-Win32 and Win64 and they (dlls, ttdlls and mxes) are indeed linking against msvcr/msvcp120d.dll with Dependency Walker. Moreover, when running there are some runtime exceptions which only happen in debug builds (due to the additionnal checks that are then done by the ms runtime).

Jean-Michaël

On Tue, Nov 3, 2015 at 1:29 PM, Antoine Villeret <notifications@github.com

wrote:

I still don't understand why it asks you for a debug dll since alll nightly build binary available on jamoma.org are Release build. But you may have download it through appveyor webgui which stores all artifact even for non master branch that are not pushed to jamoma.org, and that's why I was asking for SHA to find the corresponding build log. Could you run dependency walker to see which binary really need msvcp120d.dll ? I doubt it is jamoma itself, but it could be a third party library like libxml.

— Reply to this email directly or view it on GitHub https://github.com/jamoma/JamomaMax/issues/955#issuecomment-153337777.

jcelerier commented 8 years ago

I can get Release builds by running cmake --build . --config Release as build command.

On Tue, Nov 3, 2015 at 3:11 PM, Jean-Michaël Celerier < jeanmichael.celerier@gmail.com> wrote:

Okay now for the fun stuff : it looks like even with -DCMAKE_BUILD_TYPE=Release we get Debug builds. And indeed on the build commands there is a /D _DEBUG.

On Tue, Nov 3, 2015 at 2:52 PM, Jean-Michaël Celerier < jeanmichael.celerier@gmail.com> wrote:

I just tested the latest releases JamomaMax 2015-11-01-Win32 and Win64 and they (dlls, ttdlls and mxes) are indeed linking against msvcr/msvcp120d.dll with Dependency Walker. Moreover, when running there are some runtime exceptions which only happen in debug builds (due to the additionnal checks that are then done by the ms runtime).

Jean-Michaël

On Tue, Nov 3, 2015 at 1:29 PM, Antoine Villeret < notifications@github.com> wrote:

I still don't understand why it asks you for a debug dll since alll nightly build binary available on jamoma.org are Release build. But you may have download it through appveyor webgui which stores all artifact even for non master branch that are not pushed to jamoma.org, and that's why I was asking for SHA to find the corresponding build log. Could you run dependency walker to see which binary really need msvcp120d.dll ? I doubt it is jamoma itself, but it could be a third party library like libxml.

— Reply to this email directly or view it on GitHub https://github.com/jamoma/JamomaMax/issues/955#issuecomment-153337777.

avilleret commented 8 years ago

thanks @jcelerier for testing this I just added the option to the appveyor script in https://github.com/jamoma/JamomaMax/commit/bde2614914f371ed0de6d7b6b4c04076549ebe68 thanks @cbossut for reporting this, could you try again with the next buid (which may fail several times before having enough power to build within one hour) ?

cbossut commented 8 years ago

I tried with a release build from @jcelerier in 32bits, and it works, but with the redistribuable packages for visual studio 2015 (these : https://www.microsoft.com/fr-fr/download/details.aspx?id=48145). I close the issue.