Re: [evince] Building libevince as a static library



On Sat, 2013-02-16 at 18:53 +0100, Hib Eris wrote:
Hi Richard,

When I build the 'official' Evince for Windows I always build it with
shared libraries. I have no experience with building it statically.

I think it is like this: libevdocument is evince's library to handle
documents. You can dynamically add plugins for handeling different
document formats. So for pdf documents Evince uses a libpdfdocument
plugin. I think these plugins are always shared libraries.
When you statically compile libevdocument, it still looks for shared
library plugins like libpdfdocument.dll. So I think you should not add
'--disable-shared' to your configure.
Unfortunately this then requires half-a-dozen other libraries to be
available as shared objects. It looks like the only route will be to add
support to evince to directly call the poppler routines when statically
linking.
Thank you for the response.

Richard Shann


Regards,

Hib Eris






On Sat, Feb 16, 2013 at 4:11 PM, Richard Shann <richard shann virgin net> wrote:
Hi,
In the GNU/Denemo project we are trying to cross-compile libevince 2.32.
for windows. We are using mxe for this, and have a configure step
looking like this
./configure \
        --host='$(TARGET)' \
        --disable-shared \
        --prefix='$(PREFIX)/$(TARGET)' \
        --without-libgnome \
        --without-gconf \
        --without-keyring \
        --with-platform=win32 \
        --with-smclient-backend=win32 \
        --disable-help \
        --disable-thumbnailer \
        --disable-nautilus \
        --disable-dbus \
        --disable-gtk-doc \
        --disable-previewer \
        --disable-nls \
        --without-gtk-unix-print \
        --disable-comics \
        CONFIG_SHELL=$(SHELL)

We get a static library for evince but also another static library
lib/evince/3/backends/libpdfdocument.a and the .la file.
However, when the evince widget tries to load a pdf document it
complains that libpdfdocument.dll is not found in the backends
directory.

Is there something wrong with our configure step? (I should mention we
also need two patches to enable the compilation, appended below).

Richard Shann

8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><--- 
evince-2.32.0/shell/main.c      2010-07-27 11:47:54.000000000 -0400
+++ evince-2.32.0.new/shell/main.c      2013-02-02 23:57:54.000000000
-0500
@@ -43,9 +43,6 @@
 #ifdef G_OS_WIN32
 #include <io.h>
 #include <conio.h>
-#if !(_WIN32_WINNT >= 0x0500)
-#error "_WIN32_WINNT must be defined >= 0x0500"
-#endif
 #include <windows.h>
 #endif

@@ -249,7 +246,7 @@ main (int argc, char *argv[])
          AttachConsole_t p_AttachConsole =
            (AttachConsole_t) GetProcAddress (GetModuleHandle
("kernel32.dll"), "AttachConsole");

-         if (p_AttachConsole != NULL && p_AttachConsole
(ATTACH_PARENT_PROCESS))
+         if (p_AttachConsole != NULL && p_AttachConsole (-1))
       {
              freopen ("CONOUT$", "w", stdout);
              dup2 (fileno (stdout), 1);
8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><--- 
evince-2.32.0/backend/pdf/ev-poppler.cc 2010-09-27 12:54:34.000000000 -0400
+++ evince-2.32.0.new/backend/pdf/ev-poppler.cc 2013-02-02
23:40:15.000000000 -0500
@@ -1934,9 +1934,7 @@ pdf_selection_get_selected_text (EvSelec
        r.x2 = points->x2;
        r.y2 = height - points->y1;

-       retval = poppler_page_get_text (poppler_page,
-                                       (PopplerSelectionStyle)style,
-                                       &r);
+       retval = poppler_page_get_text (poppler_page);
 #endif /* HAVE_POPPLER_PAGE_GET_SELECTED_TEXT */

        return retval;
@@ -2054,9 +2052,7 @@ pdf_document_text_get_text (EvDocumentTe
        r.y1 = 0;
        poppler_page_get_size (poppler_page, &(r.x2), &(r.y2));

-       return poppler_page_get_text (poppler_page,
-                                     POPPLER_SELECTION_WORD,
-                                     &r);
+       return poppler_page_get_text (poppler_page);
 }
 #endif /* HAVE_POPPLER_PAGE_GET_SELECTED_TEXT */

8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><


_______________________________________________
evince-list mailing list
evince-list gnome org
https://mail.gnome.org/mailman/listinfo/evince-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]