Ticket #18537: haiku_exr_2.patch

File haiku_exr_2.patch, 5.8 KB (added by Begasus, 5 months ago)

Builds OK on 64bit R1B4 with this patch, credits to madmax

  • build/jam/BuildFeatures

    diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
    index 323d2c0d..e29a39c9 100644
    a b if [ IsPackageAvailable tiff4_devel ] {  
    566566
    567567
    568568# openexr
    569 if [ IsPackageAvailable openexr_devel ] {
    570        ExtractBuildFeatureArchives openexr :
    571                file: base openexr
     569if [ IsPackageAvailable openexr30_devel ] {
     570       ExtractBuildFeatureArchives openexr30 :
     571               file: base openexr30
    572572                       runtime: lib
    573                file: devel openexr_devel
     573               file: devel openexr30_devel
    574574                       depends: base
    575575                       libraries:
    576                                $(developLibDir)/libIlmImf.so
    577                                $(developLibDir)/libIlmImfUtil.so
    578                                $(developLibDir)/libHalf.so
    579576                               $(developLibDir)/libIex.so
    580                                $(developLibDir)/libIexMath.so
    581577                               $(developLibDir)/libIlmThread.so
    582578                               $(developLibDir)/libImath.so
    583                        headers: $(developHeadersDir) $(developHeadersDir)/OpenEXR
     579                               $(developLibDir)/libOpenEXR.so
     580                               $(developLibDir)/libOpenEXRUtil.so
     581                       headers: $(developHeadersDir) $(developHeadersDir)/OpenEXR $(developHeadersDir)/Imath
    584582               ;
    585583
    586        EnableBuildFeatures openexr ;
     584       EnableBuildFeatures openexr30 ;
    587585} else {
    588        unavailableBuildFeatures += openexr ;
     586       unavailableBuildFeatures += openexr30 ;
    589587}
    590588
    591589
  • build/jam/repositories/HaikuPorts/x86_64

    diff --git a/build/jam/repositories/HaikuPorts/x86_64 b/build/jam/repositories/HaikuPorts/x86_64
    index b81791a9..8c6324ee 100644
    a b RemotePackageRepository HaikuPorts  
    199199       nghttp2-1.43.0-1
    200200       nghttp2_devel-1.43.0-1
    201201       openexr-2.4.1-1
    202        openexr_devel-2.4.1-1
    203202       openexr30-3.0.5-1
     203       openexr30_devel-3.0.5-1
    204204       openjpeg-2.4.0-2
    205205       openjpeg_devel-2.4.0-2
    206206       openssh-9.3p1-1
  • src/add-ons/translators/exr/EXRGamma.cpp

    diff --git a/src/add-ons/translators/exr/EXRGamma.cpp b/src/add-ons/translators/exr/EXRGamma.cpp
    index cd5384fd..33516c1e 100644
    a b using namespace std;  
    1616float
    1717knee(double x, double f)
    1818{
    19        return float (Imath::Math<double>::log (x * f + 1) / f);
     19       return float (log (x * f + 1) / f);
    2020}
    2121
    2222
    Gamma::Gamma(float gamma,  
    5454       float kneeHigh)
    5555:
    5656       g (gamma),
    57        m (Imath::Math<float>::pow(2, exposure + 2.47393)),
     57       m (pow(2, exposure + 2.47393)),
    5858       d (defog),
    59        kl (Imath::Math<float>::pow(2, kneeLow)),
    60        f (findKneeF (Imath::Math<float>::pow(2, kneeHigh) - kl,
    61                Imath::Math<float>::pow(2, 3.5) - kl)),
    62        s (255.0 * Imath::Math<float>::pow(2, -3.5 * g))
     59       kl (pow(2, kneeLow)),
     60       f (findKneeF (pow(2, kneeHigh) - kl,
     61               pow(2, 3.5) - kl)),
     62       s (255.0 * pow(2, -3.5 * g))
    6363{
    6464}
    6565
    Gamma::operator() (half h)  
    9090       // Gamma
    9191       //
    9292       
    93        x = Imath::Math<float>::pow (x, g);
     93       x = pow (x, g);
    9494       
    9595       //
    9696       // Scale and clamp
  • src/add-ons/translators/exr/IStreamWrapper.cpp

    diff --git a/src/add-ons/translators/exr/IStreamWrapper.cpp b/src/add-ons/translators/exr/IStreamWrapper.cpp
    index 137e13c8..a06c31d0 100644
    a b IStreamWrapper::read(char c[/*n*/], int n)  
    2929}
    3030
    3131
    32 Int64
     32uint64_t
    3333IStreamWrapper::tellg()
    3434{
    3535       return fStream.Position();
    IStreamWrapper::tellg()  
    3737
    3838
    3939void
    40 IStreamWrapper::seekg(Int64 pos)
     40IStreamWrapper::seekg(uint64_t pos)
    4141{
    4242       fStream.Seek(pos, SEEK_SET);
    4343}
  • src/add-ons/translators/exr/IStreamWrapper.h

    diff --git a/src/add-ons/translators/exr/IStreamWrapper.h b/src/add-ons/translators/exr/IStreamWrapper.h
    index be2abbda..f13d93b9 100644
    a b class IStreamWrapper : public IStream {  
    1818               virtual ~IStreamWrapper();
    1919
    2020               virtual bool        read(char c[/*n*/], int n);
    21                virtual Int64       tellg();
    22                virtual void        seekg(Int64 pos);
     21               virtual uint64_t    tellg();
     22               virtual void        seekg(uint64_t pos);
    2323               
    2424       private:
    2525               StreamBuffer fStream;
  • src/add-ons/translators/exr/Jamfile

    diff --git a/src/add-ons/translators/exr/Jamfile b/src/add-ons/translators/exr/Jamfile
    index ad2b1be2..aacbf9f7 100644
    a b AddResources EXRTranslator : EXRTranslator.rdef ;  
    77local architectureObject ;
    88for architectureObject in [ MultiArchSubDirSetup ] {
    99       on $(architectureObject) {
    10                UseBuildFeatureHeaders openexr ;
     10               UseBuildFeatureHeaders openexr30 ;
    1111               Includes [ FGristFiles ConfigView.cpp EXRTranslator.cpp EXRGamma.cpp
    1212                       IStreamWrapper.cpp ]
    13                        : [ BuildFeatureAttribute openexr : headers ] ;
     13                       : [ BuildFeatureAttribute openexr30 : headers ] ;
    1414
    1515               Translator [ MultiArchDefaultGristFiles EXRTranslator ] :
    1616                       main.cpp
    for architectureObject in [ MultiArchSubDirSetup ] {  
    2020                       IStreamWrapper.cpp
    2121                       : be translation textencoding [ TargetLibstdc++ ]
    2222                       [ MultiArchDefaultGristFiles libtranslatorsutils.a ]
    23                        [ BuildFeatureAttribute openexr : libraries ]
     23                       [ BuildFeatureAttribute openexr30 : libraries ]
    2424                       localestub
    2525                       : true
    2626               ;