build crengine as shared library

* upstream project removed CMakeLists.txt in crengine dir now, so I
added our own in kpvcrlib/CMakeLists.txt

* fix segfault bug in lvimg.cpp by removing JCONFIG_INCLUDED definition
pull/2/merge
Qingping Hou 12 years ago
parent 4d010f10e2
commit 3838d8f890

@ -98,8 +98,8 @@ DJVULIBS := $(DJVUDIR)/build/libdjvu/.libs/libdjvulibre.so \
$(LIBDIR)/libdjvulibre.so
DJVULIB := $(LIBDIR)/libdjvulibre.so.21
DJVULIBDIR := $(DJVUDIR)/build/libdjvu/.libs/
CRENGINELIBS := $(CRENGINEDIR)/crengine/libcrengine.a \
$(CRENGINEDIR)/thirdparty/chmlib/libchmlib.a \
CRELIB = $(LIBDIR)/libcrengine.so
CRE_3RD_LIBS := $(CRENGINEDIR)/thirdparty/chmlib/libchmlib.a \
$(CRENGINEDIR)/thirdparty/libpng/libpng.a \
$(CRENGINEDIR)/thirdparty/antiword/libantiword.a
THIRDPARTYLIBS := $(MUPDFLIBDIR)/libfreetype.a \
@ -121,7 +121,7 @@ K2PDFOPTLIB := $(LIBDIR)/libk2pdfopt.so.1
all: kpdfview extr
VERSION?=$(shell git describe HEAD)
kpdfview: kpdfview.o einkfb.o pdf.o blitbuffer.o drawcontext.o koptcontext.o input.o $(POPENNSLIB) util.o ft.o lfs.o mupdfimg.o $(MUPDFLIBS) $(THIRDPARTYLIBS) $(LUALIB) djvu.o $(DJVULIBS) cre.o $(CRENGINELIBS) pic.o pic_jpeg.o
kpdfview: kpdfview.o einkfb.o pdf.o blitbuffer.o drawcontext.o koptcontext.o input.o $(POPENNSLIB) util.o ft.o lfs.o mupdfimg.o $(MUPDFLIBS) $(THIRDPARTYLIBS) $(LUALIB) djvu.o $(DJVULIBS) cre.o $(CRELIB) $(CRE_3RD_LIBS) pic.o pic_jpeg.o
echo $(VERSION) > git-rev
$(CC) \
$(CFLAGS) \
@ -143,12 +143,13 @@ kpdfview: kpdfview.o einkfb.o pdf.o blitbuffer.o drawcontext.o koptcontext.o inp
$(THIRDPARTYLIBS) \
djvu.o \
cre.o \
$(CRENGINELIBS) \
$(STATICLIBSTDCPP) \
$(LDFLAGS) \
-Wl,-rpath=$(LIBDIR)/ \
-o $@ \
-lm -ldl -lpthread -lk2pdfopt -ldjvulibre -lluajit-5.1 -L$(MUPDFLIBDIR) -L$(LIBDIR)\
-lm -ldl -lpthread -lk2pdfopt -ldjvulibre -lluajit-5.1 -lcrengine \
-L$(MUPDFLIBDIR) -L$(LIBDIR) \
$(CRE_3RD_LIBS) \
$(EMU_LDFLAGS) \
$(DYNAMICLIBSTDCPP)
@ -250,10 +251,12 @@ endif
test -d $(LIBDIR) || mkdir $(LIBDIR)
cp -a $(DJVULIBDIR)/libdjvulibre.so* $(LIBDIR)
$(CRENGINELIBS):
$(CRE_3RD_LIBS) $(CRELIB):
cd $(KPVCRLIBDIR) && rm -rf CMakeCache.txt CMakeFiles && \
CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS)" cmake . && \
$(MAKE)
CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS)" cmake -D CMAKE_BUILD_TYPE=Release . && \
$(MAKE) VERBOSE=1
test -d $(LIBDIR) || mkdir $(LIBDIR)
cp -a $(KPVCRLIBDIR)/libcrengine.so $(CRELIB)
$(LUALIB):
ifdef EMULATE_READER
@ -274,7 +277,7 @@ $(K2PDFOPTLIB):
test -d $(LIBDIR) || mkdir $(LIBDIR)
cp -a $(K2PDFOPTLIBDIR)/libk2pdfopt.so* $(LIBDIR)
thirdparty: $(MUPDFLIBS) $(THIRDPARTYLIBS) $(LUALIB) $(DJVULIBS) $(CRENGINELIBS) $(POPENNSLIB) $(K2PDFOPTLIB)
thirdparty: $(MUPDFLIBS) $(THIRDPARTYLIBS) $(LUALIB) $(DJVULIBS) $(CRELIB) $(CRE_3RD_LIBS) $(POPENNSLIB) $(K2PDFOPTLIB)
INSTALL_DIR=kindlepdfviewer
@ -290,7 +293,7 @@ customupdate: all
mkdir -p $(INSTALL_DIR)/{history,screenshots,clipboard,libs}
cp -p README.md COPYING kpdfview extr kpdf.sh $(LUA_FILES) $(INSTALL_DIR)
mkdir $(INSTALL_DIR)/data
cp -L $(DJVULIB) $(LUALIB) $(K2PDFOPTLIB) $(INSTALL_DIR)/libs
cp -L $(DJVULIB) $(CRELIB) $(LUALIB) $(K2PDFOPTLIB) $(INSTALL_DIR)/libs
$(STRIP) --strip-unneeded $(INSTALL_DIR)/libs/*
cp -rpL data/*.css $(INSTALL_DIR)/data
cp -rpL fonts $(INSTALL_DIR)

@ -5,6 +5,7 @@ cmake_minimum_required(VERSION 2.6)
SET(MUPDF_DIR ../mupdf)
SET(MUPDF_3RDPARTY_DIR ${MUPDF_DIR}/thirdparty)
SET(CR_3RDPARTY_DIR crengine/thirdparty)
SET(CRE_DIR crengine/crengine)
SET(CR3_PNG 1)
#SET(CR3_JPEG 1)
@ -19,15 +20,17 @@ SET(ZLIB_INCLUDE_DIR ${MUPDF_3RDPARTY_DIR}/zlib)
SET(JPEGLIB_INCLUDE_DIR ${MUPDF_3RDPARTY_DIR}/jpeg)
#SET(JPEGLIB_INCLUDE_DIR ${CR_3RDPARTY_DIR}/libjpeg)
SET(JCONFIG_INCLUDE_DIR ${MUPDF_DIR}/scripts)
SET(CREGINE_INCLUDE_DIR ${CRE_DIR}/include)
INCLUDE_DIRECTORIES(
${JCONFIG_INCLUDE_DIR}
${FREETYPE_INCLUDE_DIRS}
${ANTIWORD_INCLUDE_DIR}
${CHM_INCLUDE_DIRS}
${PNG_INCLUDE_DIR}
${ZLIB_INCLUDE_DIR}
${JPEGLIB_INCLUDE_DIR}
${JCONFIG_INCLUDE_DIR}
${CREGINE_INCLUDE_DIR}
)
ADD_DEFINITIONS(-DLINUX=1 -D_LINUX=1 -DUSE_FONTCONFIG=0 -DUSE_FREETYPE=1 -DCR3_PATCH=1 -DNDEBUG=1)
@ -49,8 +52,45 @@ ADD_DEFINITIONS(-DCR3_ANTIWORD_PATCH=1)
ADD_SUBDIRECTORY(${CR_3RDPARTY_DIR}/antiword)
message("Will build crengine library")
SET(GUI kpv)
#ADD_DEFINITIONS(-DJCONFIG_INCLUDED=1)
ADD_SUBDIRECTORY(crengine/crengine)
#SET(GUI kpv)
#ADD_SUBDIRECTORY(crengine/crengine)
ADD_DEFINITIONS(-DHAVE_PROTOTYPES=1)
ADD_DEFINITIONS(-DHAVE_UNSIGNED_CHAR=1)
ADD_DEFINITIONS(-Dmain=xxxmain)
SET (CRENGINE_SOURCES
${CRE_DIR}/src/cp_stats.cpp
${CRE_DIR}/src/lvstring.cpp
${CRE_DIR}/src/props.cpp
${CRE_DIR}/src/lstridmap.cpp
${CRE_DIR}/src/rtfimp.cpp
${CRE_DIR}/src/lvmemman.cpp
${CRE_DIR}/src/lvstyles.cpp
${CRE_DIR}/src/crtxtenc.cpp
${CRE_DIR}/src/lvtinydom.cpp
${CRE_DIR}/src/lvstream.cpp
${CRE_DIR}/src/lvxml.cpp
${CRE_DIR}/src/chmfmt.cpp
${CRE_DIR}/src/epubfmt.cpp
${CRE_DIR}/src/pdbfmt.cpp
${CRE_DIR}/src/wordfmt.cpp
${CRE_DIR}/src/lvstsheet.cpp
${CRE_DIR}/src/txtselector.cpp
${CRE_DIR}/src/crtest.cpp
${CRE_DIR}/src/lvbmpbuf.cpp
${CRE_DIR}/src/lvfnt.cpp
${CRE_DIR}/src/hyphman.cpp
${CRE_DIR}/src/lvfntman.cpp
${CRE_DIR}/src/lvimg.cpp
${CRE_DIR}/src/crskin.cpp
${CRE_DIR}/src/lvdrawbuf.cpp
${CRE_DIR}/src/lvdocview.cpp
${CRE_DIR}/src/lvpagesplitter.cpp
${CRE_DIR}/src/lvtextfm.cpp
${CRE_DIR}/src/lvrend.cpp
${CRE_DIR}/src/wolutil.cpp
${CRE_DIR}/src/hist.cpp
${CRE_DIR}/src/cri18n.cpp
)
ADD_LIBRARY(crengine SHARED ${CRENGINE_SOURCES})

Loading…
Cancel
Save