Skip to content
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

Automated builds for Windows #194

Open
shlomiv opened this issue Oct 29, 2019 · 10 comments
Open

Automated builds for Windows #194

shlomiv opened this issue Oct 29, 2019 · 10 comments
Assignees

Comments

@shlomiv
Copy link

shlomiv commented Oct 29, 2019

The nightly builds are working fine on linux, but on windows it seems users are stuck at an old version (seems to be from 2015).

Is it possible to build nightly exe files (no need for nightly installers) for windows?

Thanks!

@Beep6581 Beep6581 changed the title last version for windows is 0.5 - Can we get a newer release on windows? Automated builds for Windows Oct 29, 2019
@LigH-de
Copy link

LigH-de commented Dec 3, 2019

👍 - waiting for any Windows binaries with e.g. a fix for the DNG output aborted before the embedded preview JPEG: #192

@nvki
Copy link

nvki commented Mar 3, 2020

would be awesome to have a current version available on Windows!

@heckflosse
Copy link
Collaborator

would be awesome to have a current version available on Windows!

https://keybase.pub/gaaned92/HDRMergeNightlyBuilds/

@aferrero2707
Copy link
Collaborator

@gaaned92
Would you mind to share with me your build/packaging scripts/instructions for HDRmerge? I can then try to adapt them into a cross-compilation procedure that could run in a docker container and hence be integrated with Travis CI…

@gaaned92
Copy link

gaaned92 commented Mar 7, 2020

@aferrero2707 Sure I don't mind

  • build alglib (it is not in MSYS2)
    The sources are located in /src where is the alglib root dir. I suppose I downloaded Alglib from their site.
    then in I execute the shell
cd ./src
g++ -Wpedantic -c *
ar  rcs ../lib/libalglib.a    *.o
cd ..

done

  • get hdrmerge sources

  • build hdrmerge
    the source is located in /HDR and the script is in

mkdir $buildname
  cd ./$buildname
  echo  "step cmake  " "$PWD"
  cmake -G "MSYS Makefiles" -DGIT_BRANCH=$BRANCH -DALGLIB_ROOT="/d/programmes/alglib" -DALGLIB_INCLUDES="/d/programmes/alglib/include" -DALGLIB_LIBRARIES="/d/programmes/alglib/lib/libalglib.a" -DCMAKE_C_FLAGS="-O2 -pipe" -DCMAKE_CXX_FLAGS="${CMAKE_C_FLAGS} " -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_INSTALL_PREFIX=$destination  ../HDR 
make  -j8 
make install
  • list of dlls the * replace the applicable version. I use this list with robocopy
"libgomp-1.dll      libjasper-4.dll    libwinpthread-1.dll
  libgraphite2.dll   libjpeg-8.dll      
libbz2-1.dll       libdouble-conversion.dll libharfbuzz-0.dll  liblcms2-2.dll     Qt5Core.dll
libexiv2.dll        libiconv-2.dll     libpcre-1.dll      Qt5Gui.dll
libexpat-1.dll      libicudt*.dll     libpcre2-16-0.dll  Qt5Widgets.dll
libfreetype-6.dll   libicuin*.dll     libpng16-16.dll    zlib1.dll
libgcc_s_seh-1.dll  libicuuc*.dll     libraw_r-19.dll
libglib-2.0-0.dll   libintl-8.dll      libstdc++-6.dll libzstd.dll"
  • QT deployment
    /mingw64/bin/windeployqt.exe --release "$destination/"hdrmerge.exe

  • QT plugins I don't know what is really required

robocopy /MINGW64/share/qt5/plugins/platforms "$destination/platforms" qdirect2d.dll qminimal.dll qoffscreen.dll qwebgl.dll qwindows.dll
robocopy /MINGW64/share/qt5/plugins/imageformats "$destination/imageformats
  • then packing $destination in a zip

@aferrero2707
Copy link
Collaborator

aferrero2707 commented Mar 7, 2020

@gaaned92 thanks for the tips!

I have managed to cross-compile HDRMerge with MSYS2 under ARCH Linux (using the same procedure I am already following for RawTherapee and ART). However, the compilation fails due to a missing
#include <iostream>
statement in src/ExifTransfer.cpp:

/sources/hdrmerge/src/ExifTransfer.cpp: In member function 'void ExifTransfer::copyMetadata()':
/sources/hdrmerge/src/ExifTransfer.cpp:63:14: error: 'cerr' is not a member of 'std'
         std::cerr << "Exiv2 error: " << e.what() << std::endl;

Next step is to bundle Qt and the rest of the dependencies into a portable folder...

EDIT: I also noticed that the Makefile generated by cmake in the cross-compilation case is missing the install target... very strange.

@gaaned92
Copy link

gaaned92 commented Mar 7, 2020

 However, the compilation fails due to a missing
#include <iostream>

I did not notice that on windows. But I have to verify with last version.

EDIT: I also noticed that the Makefile generated by cmake in the cross-compilation case is missing the install target... very strange.

Ah! it is why I manually copied hdrmerge.exe from the buid dir to install dir! Thats a long time I did not review my build script.

@aferrero2707
Copy link
Collaborator

aferrero2707 commented Mar 8, 2020

Here is a first package ready to be tested: https://transfer.sh/KQ2yI/hdrmerge_win64.zip

@gaaned92 @heckflosse would you have time to give it a try?

@gitoss
Copy link

gitoss commented Jul 25, 2023

I'm a couple of years late to the party and the link above is dead - does anyone happen to have an up to date hdrmerge windows binary available?

The most recenct (20125) HDRMerge v0.5 release is 152 commits behind master...

@nvki
Copy link

nvki commented Jul 27, 2023

hm, i found an old 0.6 build from ganeed in my downloads dir. maybe it helps

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants