Fix some dependency-checking failures.

Thanks to Robert Merkel for reporting them.
* Build gnucash-design.info if makeinfo is available, but don't complain
  if it isn't.
* Fail Cmake if LibXSLT and xsltproc aren't found. Those are required to
  build the gschemas and GnuCash won't work without them.
* Fix the WebKit detection so that it isn't faked out into thinking it has
  WebKit2Gtk-4.0 when it's WebKit2Gtk-3.0 and cmake is run with a
  CMakeCache.txt present.
This commit is contained in:
John Ralls 2018-01-23 16:04:28 -08:00
parent d26133a37e
commit 1fc46fe140
3 changed files with 46 additions and 26 deletions

View File

@ -192,16 +192,23 @@ GNC_PKG_CHECK_MODULES (GTHREAD REQUIRED gthread-2.0>=2.20)
GNC_PKG_CHECK_MODULES (LIBXML2 REQUIRED libxml-2.0>=2.7.0)
GNC_PKG_CHECK_MODULES (LIBXSLT REQUIRED libxslt)
IF (WIN32 OR APPLE)
GNC_PKG_CHECK_MODULES (WEBKIT REQUIRED webkitgtk-3.0)
SET(WEBKIT1 1)
GNC_PKG_CHECK_MODULES (WEBKIT1 REQUIRED webkitgtk-3.0)
ELSE (WIN32 OR APPLE)
GNC_PKG_CHECK_MODULES (WEBKIT webkit2gtk-4.0)
IF (NOT WEBKIT_FOUND)
GNC_PKG_CHECK_MODULES (WEBKIT REQUIRED webkit2gtk-3.0)
GNC_PKG_CHECK_MODULES (WEBKIT2_4 webkit2gtk-4.0)
IF (NOT WEBKIT2_4_FOUND)
GNC_PKG_CHECK_MODULES (WEBKIT2_3 REQUIRED webkit2gtk-3.0)
SET(WEBKIT2_3 1)
ELSE (NOT WEBKIT_FOUND)
SET(WEBKIT_CFLAGS ${WEBKIT2_3_CFLAGS})
SET(WEBKIT_INCLUDE_DIRS ${WEBKIT2_3_INCLUDE_DIRS})
SET(WEBKIT_LDFLAGS ${WEBKIT2_3_LDFLAGS})
SET(WEBKIT_LIBRARIES ${WEBKIT2_3_LIBRARIES})
ELSE (NOT WEBKIT2_4_FOUND)
SET(WEBKIT2_4 1)
ENDIF (NOT WEBKIT_FOUND)
SET(WEBKIT_CFLAGS ${WEBKIT2_4_CFLAGS})
SET(WEBKIT_INCLUDE_DIRS ${WEBKIT2_4_INCLUDE_DIRS})
SET(WEBKIT_LDFLAGS ${WEBKIT2_4_LDFLAGS})
SET(WEBKIT_LIBRARIES ${WEBKIT2_4_LIBRARIES})
ENDIF (NOT WEBKIT2_4_FOUND)
ENDIF (WIN32 OR APPLE)
IF (WITH_GNUCASH)
@ -386,8 +393,11 @@ SET(GNC_PKG_CONFIG_EXE ${PKG_CONFIG_EXECUTABLE})
FIND_PACKAGE(LibXslt)
IF (NOT LIBXSLT_FOUND)
MESSAGE(SEND_ERROR "libxslt library not found.")
MESSAGE(FATAL_ERROR "libxslt library not found.")
ENDIF(NOT LIBXSLT_FOUND)
if (${LIBXSLT_XSLTPROC_EXECUTABLE} STREQUAL "LIBXSLT_XSLTPROC_EXECUTABLE-NOTFOUND")
message(FATAL_ERROR "xsltproc executable not found")
endif ()
# ############################################################
SET(PKG_CONFIG_EXECUTABLE ${GNC_PKG_CONFIG_EXE})

View File

@ -66,14 +66,14 @@ glib2 2.40.0
gtk+3 3.14.0
guile 2.2.0 or 2.0.0
libxml2 2.5.10
libxslt
libxslt, including xsltproc
ICU International Compnents for
Unicode
boost 1.50.0 locale and regex libs must be
built with ICU support.
swig 2.0.10 Only required to build from git
or SVN.
webkit webkitgtk-3.0 (Windows)
webkit webkitgtk-3.0 (Windows, Mac)
webkit2gtk-3.0 (Everything Else)
optional
@ -90,6 +90,14 @@ libofx 0.9.0 OFX/QFX import
python 2.4.0 python bindings; headers
required, not just binaries.
makeinfo Not really needed, it
just builds the
mostly obsolete
design documentation
(superceded for the
most part in Doxygen
docs).
at runtime, required
---------------------
a gsettings backend to store the gnucash global preferences in

View File

@ -13,10 +13,9 @@ SET(gnucash_design_TEXINFOS
user-preferences.texi
)
EXECUTE_PROCESS(COMMAND date +%e OUTPUT_VARIABLE CURRENT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS(COMMAND date +%B OUTPUT_VARIABLE CURRENT_MONTH OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS(COMMAND date +%Y OUTPUT_VARIABLE CURRENT_YEAR OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS(COMMAND date +%e OUTPUT_VARIABLE CURRENT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS(COMMAND date +%B OUTPUT_VARIABLE CURRENT_MONTH OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS(COMMAND date +%Y OUTPUT_VARIABLE CURRENT_YEAR OUTPUT_STRIP_TRAILING_WHITESPACE)
SET(UPDATED "${CURRENT_DATE} ${CURRENT_MONTH} ${CURRENT_YEAR}")
SET(UPDATED_MONTH "${CURRENT_MONTH} ${CURRENT_YEAR}")
@ -32,18 +31,21 @@ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/stamp-vti ${VERSION_TEXI_IN})
FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" TEXI_BINARY_DIR)
FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/gnucash-design.texi" TEXI_SOURCE_FILE)
find_program(MAKEINFO makeinfo)
if (NOT ${MAKEINFO} STREQUAL "MAKEINFO-NOTFOUND")
IF(${CMAKE_VERSION} VERSION_GREATER 3.1)
ADD_CUSTOM_TARGET(gnucash-design-info ALL
COMMAND makeinfo -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/gnucash-design.info
DEPENDS ${gnucash_design_TEXINFOS}
)
ELSE()
ADD_CUSTOM_TARGET(gnucash-design-info ALL
COMMAND makeinfo -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
DEPENDS ${gnucash_design_TEXINFOS}
)
ENDIF()
IF(${CMAKE_VERSION} VERSION_GREATER 3.1)
ADD_CUSTOM_TARGET(gnucash-design-info ALL
COMMAND ${MAKEINFO} -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/gnucash-design.info
DEPENDS ${gnucash_design_TEXINFOS}
)
ELSE()
ADD_CUSTOM_TARGET(gnucash-design-info ALL
COMMAND ${MAKEINFO} -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
DEPENDS ${gnucash_design_TEXINFOS}
)
ENDIF()
endif (NOT ${MAKEINFO} STREQUAL "MAKEINFO-NOTFOUND")
SET_DIST_LIST(doc_design_DIST CMakeLists.txt gnucash-design.texi ${gnucash_design_TEXINFOS})