[texworks] shared library for synctex

Atsuhito Kohda kohda at pm.tokushima-u.ac.jp
Wed Jul 9 09:00:55 CEST 2014


Hi all,

I got a bug in Debian which claimed texworks should use
the shared library for synctex (Bug #753818).

I'm not sure if this applies to the upstream or not but
I'd like to report it here in case this is an issue of 
the upstream too.  
I want to remove Debian specific modification as possible as 
I can so  please consider if this applies also to the upstream.

I attach an patch (I removed Debian specific so irrelevant 
parts).

Thanks in advance.  
Best regards,				2014-7-9(Wed)

-- 
 Debian Developer - much more I18N of Debian
 Atsuhito Kohda <kohda AT debian.org>
 Department of Math., Univ. of Tokushima
-------------- next part --------------
--- texworks-0.5~svn1363.orig/CMake/Modules/FindSynctex.cmake
+++ texworks-0.5~svn1363/CMake/Modules/FindSynctex.cmake
@@ -0,0 +1,51 @@
+# - Try to find Synctex
+# Once done this will define
+#
+#  SYNCTEX_FOUND - system has Synctex
+#  SYNCTEX_INCLUDE_DIR - the Fontconfig include directory
+#  SYNCTEX_LIBRARIES - Link these to use Sycntex
+#
+# Redistribution and use of this file is allowed according to the terms of the
+# MIT license. For details see the file COPYING-CMAKE-MODULES.
+
+
+if ( SYNCTEX_INCLUDE_DIR AND SYNCTEX_LIBRARIES )
+   # in cache already
+   SET(Synctex_FIND_QUIETLY TRUE)
+endif ( SYNCTEX_INCLUDE_DIR AND SYNCTEX_LIBRARIES )
+
+# use pkg-config to get the directories and then use these values
+# in the FIND_PATH() and FIND_LIBRARY() calls
+if( NOT WIN32 )
+  find_package(PkgConfig)
+
+  pkg_check_modules(SYNCTEX_PKG QUIET synctex)
+endif( NOT WIN32 )
+
+FIND_PATH(SYNCTEX_INCLUDE_DIR NAMES synctex_parser.h
+  PATHS
+    /usr/local/include/synctex_parser
+    /usr/X11/include/synctex_parser
+    /usr/include/synctex_parser
+  HINTS
+    ${SYNCTEX_PKG_INCLUDE_DIRS} # Generated by pkg-config
+)
+
+FIND_LIBRARY(SYNCTEX_LIBRARIES NAMES synctex ${SYNCTEX_PKG_LIBRARIES}
+  PATHS
+    /usr/local
+    /usr/X11
+    /usr
+  HINTS
+    ${SYNCTEX_PKG_LIBRARY_DIRS} # Generated by pkg-config
+  PATH_SUFFIXES
+    lib64
+    lib
+)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Synctex DEFAULT_MSG SYNCTEX_LIBRARIES SYNCTEX_INCLUDE_DIR)
+
+# show the SYNCTEX_INCLUDE_DIR and SYNCTEX_LIBRARIES variables only in the advanced view
+MARK_AS_ADVANCED(SYNCTEX_INCLUDE_DIR SYNCTEX_LIBRARIES )
+
--- texworks-0.5~svn1363.orig/CMakeLists.txt
+++ texworks-0.5~svn1363/CMakeLists.txt
@@ -221,6 +221,7 @@
 FIND_PACKAGE(ZLIB REQUIRED)
 FIND_PACKAGE(Hunspell REQUIRED)
 FIND_PACKAGE(Poppler REQUIRED)
+FIND_PACKAGE(Synctex)
 
 # The only thing Poppler should need is the location of the include directories
 # in order to access header files. The library loader should be able to find
@@ -241,6 +242,10 @@
   LIST(APPEND TeXworks_INCLUDE_DIRS ${FONTCONFIG_INCLUDE_DIR})
 ENDIF ()
 
+IF ( SYNCTEX_FOUND )
+  LIST(APPEND TeXworks_INCLUDE_DIRS ${SYNCTEX_INCLUDE_DIR})
+ENDIF ()
+
 SET(TeXworks_LIB_DIRS ${QT_LIBRARY_DIR})
 
 set(TEXWORKS_ADDITIONAL_LIBS "" CACHE STRING "Additional libraries not found by CMake")
@@ -255,6 +260,11 @@
   ${TEXWORKS_ADDITIONAL_LIBS}
 )
 
+IF ( SYNCTEX_FOUND )
+  LIST(APPEND TeXworks_LIBS ${SYNCTEX_LIBRARIES})
+ENDIF ()
+
+
 # Configure Optional Dependencies
 # -------------------------------
 
--- texworks-0.5~svn1363.orig/src/CMakeLists.txt
+++ texworks-0.5~svn1363/src/CMakeLists.txt
@@ -21,6 +21,14 @@
   LIST(APPEND TEXWORKS_SRCS ${TEXWORKS_WIN_RCS})
 ENDIF ( WIN32 )
 
+IF ( SYNCTEX_FOUND )
+  FILE(GLOB SYNCTEX_SRCS "synctex_*.c")
+  FILE(GLOB SYNCTEX_HDRS "synctex_*.h")
+
+  LIST(REMOVE_ITEM TEXWORKS_SRCS ${SYNCTEX_SRCS})
+  LIST(REMOVE_ITEM TEXWORKS_HDRS ${SYNCTEX_HDRS})
+ENDIF ( SYNCTEX_FOUND )
+
 # These source files along with the `.moc` files generated from some headers
 # form the TeXworks scripting API. We export them to variables in the
 # `PARENT_SCOPE` (top level CMake file) so that they will be available to the
--- texworks-0.5~svn1363.orig/src/PDFDocument.h
+++ texworks-0.5~svn1363/src/PDFDocument.h
@@ -40,7 +40,7 @@
 #else
 #include "poppler-qt5.h"
 #endif
-#include "synctex_parser.h"
+#include <synctex_parser.h>
 
 #include "ui_PDFDocument.h"
 


More information about the texworks mailing list