==Strigi On Windows==


Microsoft Visual compiling instructions
=======================================

I have managed to get Strigi to compile with Microsoft Visual (6 and 8/.NET). So far I have only ported the CLucene indexer since my interest in Strigi is as an indexing application.

Steps to get it to work:

1. I had to get all the dependencies from the http://gnuwin32.sourceforge.net/packages.html website.
I found putting all the libraries into 1 folder resembling linux structure was the easiest:

package
    \bin
        bzip2.dll, magic1.dll, zlib1.dll, etc
    \include
        bzlib.h, iconv.h, magic.h, zconf.h, zlib.h, etc
    \lib
        bzip2.lib, iconv.lib, etc

Basically you just need to download each package that cmake requests. If there is enough interest, i may make my dependencies directory available somewhere so that you can get started quicker.

You'll also need to download CLucene from http://clucene.sourceforge.net. You can either:

* build CLucene - you should build with Unicode, multithreaded and use the same type of runtime libraries as strigi
OR
* modify the build once cmake is finished and add the clucene CLMonolithic.cpp to luceneindexer (or whatever binary you end up making). This can be easier since it's a bit quicker and easier to match the library's runtime libraries, etc.

2. Get CMake running. Select the strigi folder to configure, and where to build the binaries. Then hit configure, it will ask what you want to build for, i used Visual Studio 6, but I suppose other compilers might work too.
3. Almost immediately it will complain about missing dependencies. Don't worry, this is because you haven't specified the dependencies folder. Under STRIGI_EXTRA_(INC|LIB)_DIRECTORY set the appropriate paths - also add the src directory of the clucene package to the includes directory (seperate by colon ;).
4. Turn off ENABLE_DBUS in the Cmake config, i haven't tried getting it to work yet (though you might be able to). 
5. Set the EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH, this will make things easier since everything won't be spread out.
6. Hit Ok and you should have all your libraries built.

I haven't got all the packages running yet, but there are a few that you should compile straight away. Start with streams and streamindexer, these are the core of strigi.

Now the actual indexer... luceneindexer. Hopefully its just a matter of compiling it, otherwise let me know :)

The next aim is to get the daemon and the inotify equivalent stuff working


Mingw compiling instructions
============================

1. Install all the dependencies from the http://gnuwin32.sourceforge.net/packages.html 
   website into a common directory, which will be used in step 5. 
2. download and install recent cmake version from http://www.cmake.org 
3. download CLucene from http://clucene.sourceforge.net and build it. See the msvc section for the 
   available options 
4. create build dir for example <your buildroot>\strigi-mingw-build
5. enter the build dir and run 
    cmake -G "MinGW Makefiles" <strigi-source-root> -DCMAKE_INCLUDE_PATH=<gnuwin32-installation-root>\include -DCMAKE_LIBRARY_PATH=<gnuwin32-installation-root>\lib 
6. run 
     mingw32-make install 
   to compile and install strigi into <ProgramFiles>/strigi

