Search code examples
c++windowsboostinkscape

How to build lib2geom on windows


Hello everyone) I cannot to build the library as static - lib2geom on windows. i read readme.win32.txt file - but it contains the broken links to tutorials for building. i compiled gsl and boost library - but i cannot to build lib2geom. i followed this steps: open cmd.exe - mingwenv.bat - cmake -G "MinGW Makefiles" c:\path\to\2geom (be sure you have a CAPITAL '-G' there!) - cmake -i
- mingw32-make

the project cannot to find config.h - i did not find this file in project files tree

contents of mingwenv.bat :

@echo Setting environment variables for MinGW build of lib2geom
set MINGW_BIN=D:\usr\MinGW\bin
set CMAKE_BIN=D:\usr\CMake2.8\bin
set GTK_BIN=c:\devlibs\bin
set PKG_CONFIG_PATH=c:\devlibs\lib\pkgconfig
rem set RAGEL_BIN=c:\ragel
rem set GS_BIN=C:\latex\gs\gs8.61\bin
rem set PYTHON_PATH=C:\Python27
set PATH=%MINGW_BIN%;%CMAKE_BIN%;%GTK_BIN%;%PATH%;
set BOOST_DIR=c:\devlibs\include

devlibs - contains library files from inkscape


Solution

  • I'm sorry our lib2geom build instructions are very outdated.

    How I build lib2geom:

    • Install a recent MinGW

    • Download external dependencies. We use Inkscape's dependency package, but you should be able to use your own dependency tree too. Inkscape's package can be found here: https://launchpad.net/inkscape-devlibs (32-bit) or https://launchpad.net/inkscape-devlibs64 (64-bit). The 64-bit devlibs64 uses SJLJ exception handling.

    • Edit mingwenv.bat to correctly set the environment variables to the location of MinGW and your dependency tree (devlibs).

    • Run mingwenv.bat

    • Run "cmake -G "MinGW Makefiles" . -i". It is not necessary that CMake finds all dependencies. Boost is required, but many of the other dependencies are not strictly necessary if you are only interested in building lib2geom's core. Using CMake's interactive mode (or using CMake's 3 config tool), you should disable/enable whichever parts you are interested in building.

    • make

    Hope that helps.