Hi,

So now the C++ code of the zimlib is compatible with cl.exe (MS compiler).

But, that does not mean that the zimreader compiles also... as far as I
know zimreader depends on tntnet and cxxtools which were never compiled
under Windows.

I'm trying now to port Kiwix... this is currently my top priority.

Emmanuel

Manuel Schneider wrote:
> 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
> 
> 
> 

_______________________________________________
dev-l mailing list
[email protected]
https://intern.openzim.org/mailman/listinfo/dev-l

Reply via email to