Hi Emmanuel!

These are great news! I wonder when we will be able to build native Windows 
application from trunk.

Could you also try to compile zimreader.exe? It would be great to have it 
until Wikimania - we should have something like a DVD with spanish Wikipedia.
As far as I remember you have a dump including images?

Greets,


Manuel

Am Mittwoch, 29. Juli 2009 20:54:41 schrieb Emmanuel Engelhart:
> Hi,
>
> I have achieved to compile a first version of a zimlib.lib (static
> library under Windows). I do not really know if I can use it... but at
> least it compiles.
>
> I want to give you here the modifications I have done to achieve that.
> Tommi, it would be great to include them (or others with the same
> purpose) into the SVN.
>
> Index: include/zim/zim.h
> ===================================================================
> --- include/zim/zim.h (revision 236)
> +++ include/zim/zim.h (working copy)
> @@ -22,6 +22,12 @@
>
>  #include <stdint.h>
>
> +#ifdef _WIN32
> +typedef unsigned __int64 uint64_t;
> +typedef signed __int8 int8_t;
> +typedef signed __int32 int32_t;
> +#endif
> +
>  namespace zim
>  {
>    typedef uint32_t size_type;
> Index: src/search.cpp
> ===================================================================
> --- src/search.cpp    (revision 236)
> +++ src/search.cpp    (working copy)
> @@ -106,7 +106,7 @@
>        // weight position of words in the document
>        if (Search::getWeightPos())
>          for (itp = posList.begin(); itp != posList.end(); ++itp)
> -          priority += Search::getWeightPos() / pow(1.01, itp->first);
> +          priority += Search::getWeightPos() / pow((double)1.01,
> (double)itp->first); // here is a ambiguity between to pow() functions
> (pow(double, int) or pow(double, double))
>
>        if (Search::getWeightPosRel())
>          for (itp = posList.begin(); itp != posList.end(); ++itp)
> Index: src/bunzip2stream.cpp
> ===================================================================
> --- src/bunzip2stream.cpp     (revision 236)
> +++ src/bunzip2stream.cpp     (working copy)
> @@ -113,7 +113,8 @@
>            // there is data already available
>            // read compressed data from source into ibuffer
>            log_debug("in_avail=" << sinksource->in_avail());
> -          stream.avail_in = sinksource->sgetn(ibuffer(),
> std::min(sinksource->in_avail(), ibuffer_size()));
> +
> +          stream.avail_in = sinksource->sgetn(ibuffer(),
> min(sinksource->in_avail(), ibuffer_size())); // compile genereates an
> error if you have the "std::", do not know exactly why.
>          }
>          else
>          {
> Index: src/uuid.cpp
> ===================================================================
> --- src/uuid.cpp      (revision 236)
> +++ src/uuid.cpp      (working copy)
> @@ -20,12 +20,31 @@
>  #include <zim/uuid.h>
>  #include <iostream>
>  #include <time.h>
> -#include <sys/time.h>
> +#include <zim/zim.h> // necessary to have the new types
>  #include "log.h"
>  #ifdef WITH_CXXTOOLS
>  #include <cxxtools/md5stream.h>
>  #endif
>
> +#if defined(_MSC_VER) || defined(__MINGW32__)
> +#  include <time.h>
> +#  include <Windows.h>
> +#else
> +#  include <sys/time.h>
> +#endif
> +
> +#if defined(_MSC_VER) || defined(__MINGW32__)
> +int gettimeofday(struct timeval* tp, void* tzp) {
> +    DWORD t;
> +    t = timeGetTime();
> +    tp->tv_sec = t / 1000;
> +    tp->tv_usec = t % 1000;
> +    /* 0 indicates that the call succeeded. */
> +    return 0;
> +}
> +#endif  // time related function/headers are differents und win32
> +
> +
>  log_define("zim.uuid")
>
>  namespace zim
> @@ -62,7 +81,12 @@
>      *reinterpret_cast<int32_t*>(ret.data) =
> reinterpret_cast<int32_t>(&ret);
>      *reinterpret_cast<int32_t*>(ret.data + 4) =
> static_cast<int32_t>(tv.tv_sec);
>      *reinterpret_cast<int32_t*>(ret.data + 8) =
> static_cast<int32_t>(tv.tv_usec);
> +
> +     #if defined(_MSC_VER)
> +     *reinterpret_cast<int32_t*>(ret.data + 12) =
> static_cast<int32_t>(GetCurrentProcessId());
> +     #else
>      *reinterpret_cast<int32_t*>(ret.data + 12) =
> static_cast<int32_t>(getpid()); // getpid() is GetCurrentProcessId()
> under win32
> +     #endif
>
>  #endif
>
> Index: src/qunicode.cpp
> ===================================================================
> --- src/qunicode.cpp  (revision 236)
> +++ src/qunicode.cpp  (working copy)
> @@ -18,6 +18,7 @@
>   */
>
>  #include <zim/qunicode.h>
> +#include <zim/zim.h> // for the types compatibilty
>  #include "log.h"
>  #include <iostream>
>  #include <sstream>
> _______________________________________________
> dev-l mailing list
> [email protected]
> https://intern.openzim.org/mailman/listinfo/dev-l



-- 
Regards
Manuel Schneider

Wikimedia CH - Verein zur Förderung Freien Wissens
Wikimedia CH - Association for the advancement of free knowledge
www.wikimedia.ch
_______________________________________________
dev-l mailing list
[email protected]
https://intern.openzim.org/mailman/listinfo/dev-l

Reply via email to