From 8da72380371ed64e9c0ebd140e207e21761717b8 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Mon, 17 Sep 2012 00:52:02 +0800 Subject: [PATCH] better cmake --- CMakeLists.txt | 74 ++++++++++++++++++++++++++++-------------------- debian/changelog | 4 +-- 2 files changed, 46 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 168909e..03d6c07 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,16 +3,25 @@ cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR) include_directories(${CMAKE_SOURCE_DIR}/src/include) +set(PDF2HTMLEX_VERSION "0.4") +set(ARCHIVE_NAME pdf2htmlex-${PDF2HTMLEX_VERSION}) +add_custom_target(dist + COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD + | bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) + find_package(PkgConfig) pkg_check_modules(POPPLER REQUIRED poppler>=0.20.0) include_directories(${POPPLER_INCLUDE_DIRS}) link_directories(${POPPLER_LIBRARY_DIRS}) +set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} ${POPPLER_LIBRARIES}) # fontforge starts using pkg-config 'correctly' since 2.0.0 pkg_check_modules(FONTFORGE libfontforge>=2.0.0) if(FONTFORGE_FOUND) include_directories(${FONTFORGE_INCLUDE_DIRS}) link_directories(${FONTFORGE_LIBRARY_DIRS}) + set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} ${FONTFORGE_LIBRARIES}) else() find_path(FF_INCLUDE_PATH fontforge/fontforge.h) if(FF_INCLUDE_PATH) @@ -33,42 +42,48 @@ else() message(FATAL_ERROR "Error: cannot locate fontforge.h") endif() - foreach(FF_LIB_NAME - ${CMAKE_IMPORT_LIBRARY_PREFIX}fontforge${CMAKE_IMPORT_LIBRARY_SUFFIX} - ${CMAKE_SHARED_LIBRARY_PREFIX}fontforge${CMAKE_SHARED_LIBRARY_SUFFIX} - ${CMAKE_STATIC_LIBRARY_PREFIX}fontforge${CMAKE_STATIC_LIBRARY_SUFFIX} - ) - find_library(FF_LIB ${FF_LIB_NAME}) - if(FF_LIB) - message("Found ${FF_LIB_NAME}: ${FF_LIB}") - set(FONTFORGE_LIBRARIES ${FF_LIB}) - break() + find_path(FF_CONFIG_INCLUDE_PATH config.h PATHS ${FONTFORGE_INCLUDE_DIRS}) + if(FF_CONFIG_INCLUDE_PATH) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -include ${FF_CONFIG_INCLUDE_PATH}/config.h") + else() + message("Cannot locate config.h for fontforge") endif() - endforeach() - if(NOT FF_LIB) + macro(wl_find_library LIB_NAME RESULT) + unset(RESULT) + foreach(FULL_LIB_NAME + ${CMAKE_IMPORT_LIBRARY_PREFIX}${LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX} + ${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} + ${CMAKE_STATIC_LIBRARY_PREFIX}${LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} + ) + find_library(FULL_LIB ${FULL_LIB_NAME}) + if(FULL_LIB) + message("Found ${LIB_NAME}: ${FULL_LIB}") + set(${RESULT} ${FULL_LIB}) + unset(FULL_LIB) + break() + endif() + endforeach() + unset(FULL_LIB_NAME) + unset(FULL_LIB_NAME CACHE) + unset(FULL_LIB) + unset(FULL_LIB CACHE) + endmacro() + + wl_find_library(fontforge FONTFORGE_LIBRARIES) + if(NOT DEFINED FONTFORGE_LIBRARIES) set(FONTFORGE_LIBRARIES fontforge) - message("Error: cannot locate ${FF_LIB_NAME}") + message("Error: cannot locate fontforge") endif() + set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} ${FONTFORGE_LIBRARIES}) + + wl_find_library(gunicode GUNICODE_LIBRARIES) + set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} ${GUNICODE_LIBRARIES}) message("Looking for libraries of python, which is required by fontforge, if you can link fontforge without python, you may disable this") pkg_search_module(PYTHON python python-2.7) + set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} ${PYTHON_LIBRARIES}) endif() -find_path(FF_CONFIG_INCLUDE_PATH config.h PATHS ${FONTFORGE_INCLUDE_DIRS}) -if(FF_CONFIG_INCLUDE_PATH) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -include ${FF_CONFIG_INCLUDE_PATH}/config.h") -else() - message("Cannot locate config.h for fontforge") -endif() - - - -set(PDF2HTMLEX_VERSION "0.4") -set(ARCHIVE_NAME pdf2htmlex-${PDF2HTMLEX_VERSION}) -add_custom_target(dist - COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD - | bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2 - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wunused-function") #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") @@ -115,8 +130,7 @@ add_executable(pdf2htmlEX src/ArgParser.cc src/include/pdf2htmlEX-config.h ) - -target_link_libraries(pdf2htmlEX ${POPPLER_LIBRARIES} ${FONTFORGE_LIBRARIES} ${PYTHON_LIBRARIES}) +target_link_libraries(pdf2htmlEX ${PDF2HTMLEX_LIBS}) install (TARGETS pdf2htmlEX DESTINATION bin) file (GLOB datafiles share/*) diff --git a/debian/changelog b/debian/changelog index cd36a5d..73eb3af 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -pdf2htmlex (0.4-1~git201209162203r8b4ec-0ubuntu1) precise; urgency=low +pdf2htmlex (0.4-1~git201209162328r8b4ec-0ubuntu1) precise; urgency=low * Regularly re-packing. - -- WANG Lu Sun, 16 Sep 2012 22:03:32 +0800 + -- WANG Lu Sun, 16 Sep 2012 23:28:03 +0800 pdf2htmlex (0.3-1~git201209152353rf02e1-0ubuntu1) precise; urgency=low