changeset 24899:1a46d174a483 stable

include a proper definition of Octave's private font fallback directory * configure.ac (octfontsdir): New variable. * Makefile.am (octfonts_DATA): New variable. * etc/module.mk (fallback_FONT_FILES): New variable. (octfonts_DATA): Include it in the list. (%canon_reldir%_EXTRA_DIST): Likewise. (etc_fontsdir): Delete. * subst-default-vals.in.sh: Substitute octfontsdir for OCTAVE_OCTFONTSDIR. * default-defs.in.h (OCTAVE_OCTFONTSDIR): New macro. * defaults.cc, defaults.h (Voct_fonts_dir): New variable. (init_defaults): Initialize it. (config::oct_fonts_dir): New function. * toplev.cc: (F__octave_config_info__): Include "octfontsdir" in the struct. * octave-config.in.cc (help_msg, initialize): Include OCTFONTSDIR in the list. * ft-text-renderer.cc (ft_manager::do_get_font): Use config::oct_fonts_dir. Use environment variable name OCTAVE_FONTS_DIR for consistency. * run-octave.in (OCTAVE_FONTS_DIR): Rename for consistency.
author Mike Miller <mtmiller@octave.org>
date Fri, 16 Mar 2018 15:28:34 -0700
parents 91331c76d9c1
children 00d42b86d0a5
files Makefile.am build-aux/subst-default-vals.in.sh configure.ac etc/module.mk libinterp/corefcn/default-defs.in.h libinterp/corefcn/defaults.cc libinterp/corefcn/defaults.h libinterp/corefcn/ft-text-renderer.cc libinterp/corefcn/toplev.cc run-octave.in src/octave-config.in.cc
diffstat 11 files changed, 48 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.am	Fri Mar 16 12:08:46 2018 -0700
+++ b/Makefile.am	Fri Mar 16 15:28:34 2018 -0700
@@ -99,6 +99,7 @@
 octdata_DATA =
 octdoc_DATA =
 octetc_DATA =
+octfonts_DATA =
 octlocale_DATA =
 
 DOC_TARGETS =
--- a/build-aux/subst-default-vals.in.sh	Fri Mar 16 12:08:46 2018 -0700
+++ b/build-aux/subst-default-vals.in.sh	Fri Mar 16 15:28:34 2018 -0700
@@ -63,6 +63,7 @@
 octdatadir=`echo "@octdatadir@" | sed "s|^${prefix}/||"`
 octdocdir=`echo "@octdocdir@" | sed "s|^${prefix}/||"`
 octetcdir=`echo "@octetcdir@" | sed "s|^${prefix}/||"`
+octfontsdir=`echo "@octfontsdir@" | sed "s|^${prefix}/||"`
 octincludedir=`echo "@octincludedir@" | sed "s|^${prefix}/||"`
 octlocaledir=`echo "@octlocaledir@" | sed "s|^${prefix}/||"`
 octtestsdir=`echo "@octtestsdir@" | sed "s|^${prefix}/||"`
@@ -103,8 +104,9 @@
   -e "s|%OCTAVE_MANDIR%|\"${mandir}\"|" \
   -e "s|%OCTAVE_OCTDATADIR%|\"${octdatadir}\"|" \
   -e "s|%OCTAVE_OCTDOCDIR%|\"${octdocdir}\"|" \
+  -e "s|%OCTAVE_OCTETCDIR%|\"${octetcdir}\"|" \
   -e "s|%OCTAVE_OCTFILEDIR%|\"${octfiledir}\"|" \
-  -e "s|%OCTAVE_OCTETCDIR%|\"${octetcdir}\"|" \
+  -e "s|%OCTAVE_OCTFONTSDIR%|\"${octfontsdir}\"|" \
   -e "s|%OCTAVE_OCTINCLUDEDIR%|\"${octincludedir}\"|" \
   -e "s|%OCTAVE_OCTLIBDIR%|\"${octlibdir}\"|" \
   -e "s|%OCTAVE_OCTLOCALEDIR%|\"${octlocaledir}\"|" \
--- a/configure.ac	Fri Mar 16 12:08:46 2018 -0700
+++ b/configure.ac	Fri Mar 16 15:28:34 2018 -0700
@@ -170,6 +170,9 @@
 ## Where Octave will search for Qt help files shipped with distribution.
 OCTAVE_SET_DEFAULT([octdocdir], '${datadir}/octave/${version}/doc')
 
+## Where Octave will search for fallback font files shipped with distribution.
+OCTAVE_SET_DEFAULT([octfontsdir], '${datadir}/octave/${version}/fonts')
+
 ## Where Octave will look for startup files.
 OCTAVE_SET_DEFAULT([startupfiledir], '${fcnfiledir}/startup')
 OCTAVE_SET_DEFAULT([localstartupfiledir], '${localfcnfiledir}/startup')
@@ -3197,6 +3200,7 @@
   eval imagedir="\"$imagedir\""
   eval octdatadir="\"$octdatadir\""
   eval octdocdir="\"$octdocdir\""
+  eval octfontsdir="\"$octfontsdir\""
   eval startupfiledir="\"$startupfiledir\""
   eval localstartupfiledir="\"$localstartupfiledir\""
   eval man1dir="\"$man1dir\""
--- a/etc/module.mk	Fri Mar 16 12:08:46 2018 -0700
+++ b/etc/module.mk	Fri Mar 16 15:28:34 2018 -0700
@@ -21,16 +21,17 @@
   %reldir%/OLD-ChangeLogs/src-ChangeLog \
   %reldir%/OLD-ChangeLogs/test-ChangeLog
 
-etc_fontsdir = $(octetcdir)/fonts
-
-etc_fonts_DATA = \
+fallback_FONT_FILES = \
   %reldir%/fonts/FreeSans.otf \
   %reldir%/fonts/FreeSansBold.otf \
   %reldir%/fonts/FreeSansBoldOblique.otf \
   %reldir%/fonts/FreeSansOblique.otf
 
+octfonts_DATA += \
+  $(fallback_FONT_FILES)
+
 %canon_reldir%_EXTRA_DIST += \
-  $(etc_fonts_DATA)
+  $(fallback_FONT_FILES)
 
 appdatadir = $(datadir)/metainfo
 
--- a/libinterp/corefcn/default-defs.in.h	Fri Mar 16 12:08:46 2018 -0700
+++ b/libinterp/corefcn/default-defs.in.h	Fri Mar 16 15:28:34 2018 -0700
@@ -128,6 +128,10 @@
 #  define OCTAVE_OCTETCDIR %OCTAVE_OCTETCDIR%
 #endif
 
+#if ! defined (OCTAVE_OCTFONTSDIR)
+#  define OCTAVE_OCTFONTSDIR %OCTAVE_OCTFONTSDIR%
+#endif
+
 #if ! defined (OCTAVE_OCTINCLUDEDIR)
 #  define OCTAVE_OCTINCLUDEDIR %OCTAVE_OCTINCLUDEDIR%
 #endif
--- a/libinterp/corefcn/defaults.cc	Fri Mar 16 12:08:46 2018 -0700
+++ b/libinterp/corefcn/defaults.cc	Fri Mar 16 15:28:34 2018 -0700
@@ -75,6 +75,7 @@
 static std::string Voct_data_dir;
 static std::string Voct_doc_dir;
 static std::string Voct_etc_dir;
+static std::string Voct_fonts_dir;
 static std::string Voct_include_dir;
 static std::string Voct_lib_dir;
 static std::string Voct_locale_dir;
@@ -213,6 +214,7 @@
   Voct_data_dir = octave::config::prepend_octave_home (OCTAVE_OCTDATADIR);
   Voct_doc_dir = octave::config::prepend_octave_home (OCTAVE_OCTDOCDIR);
   Voct_etc_dir = octave::config::prepend_octave_home (OCTAVE_OCTETCDIR);
+  Voct_fonts_dir = octave::config::prepend_octave_home (OCTAVE_OCTFONTSDIR);
   Voct_include_dir = octave::config::prepend_octave_home (OCTAVE_OCTINCLUDEDIR);
   Voct_lib_dir = octave::config::prepend_octave_exec_home (OCTAVE_OCTLIBDIR);
   Voct_locale_dir = octave::config::prepend_octave_home (OCTAVE_OCTLOCALEDIR);
@@ -294,6 +296,7 @@
     std::string oct_data_dir (void) { RETURN (Voct_data_dir); }
     std::string oct_doc_dir (void) { RETURN (Voct_doc_dir); }
     std::string oct_etc_dir (void) { RETURN (Voct_etc_dir); }
+    std::string oct_fonts_dir (void) { RETURN (Voct_fonts_dir); }
     std::string oct_include_dir (void) { RETURN (Voct_include_dir); }
     std::string oct_lib_dir (void) { RETURN (Voct_lib_dir); }
     std::string oct_locale_dir (void) { RETURN (Voct_locale_dir); }
--- a/libinterp/corefcn/defaults.h	Fri Mar 16 12:08:46 2018 -0700
+++ b/libinterp/corefcn/defaults.h	Fri Mar 16 15:28:34 2018 -0700
@@ -79,6 +79,7 @@
     extern OCTINTERP_API std::string oct_data_dir (void);
     extern OCTINTERP_API std::string oct_doc_dir (void);
     extern OCTINTERP_API std::string oct_etc_dir (void);
+    extern OCTINTERP_API std::string oct_fonts_dir (void);
     extern OCTINTERP_API std::string oct_include_dir (void);
     extern OCTINTERP_API std::string oct_lib_dir (void);
     extern OCTINTERP_API std::string oct_locale_dir (void);
--- a/libinterp/corefcn/ft-text-renderer.cc	Fri Mar 16 12:08:46 2018 -0700
+++ b/libinterp/corefcn/ft-text-renderer.cc	Fri Mar 16 15:28:34 2018 -0700
@@ -206,24 +206,23 @@
         }
 #endif
 
-      static std::string font_dir;
+      static std::string fonts_dir;
 
-      if (font_dir.empty ())
+      if (fonts_dir.empty ())
         {
-          font_dir = sys::env::getenv ("OCTAVE_FONT_DIR");
+          fonts_dir = sys::env::getenv ("OCTAVE_FONTS_DIR");
 
-          if (font_dir.empty ())
-            font_dir = config::oct_etc_dir () + sys::file_ops::dir_sep_str ()
-                       + "fonts";
+          if (fonts_dir.empty ())
+            fonts_dir = config::oct_fonts_dir ();
         }
 
 
       // Default font file
       std::string file;
 
-      if (! font_dir.empty ())
+      if (! fonts_dir.empty ())
         {
-          file = font_dir + octave::sys::file_ops::dir_sep_str () + "FreeSans";
+          file = fonts_dir + octave::sys::file_ops::dir_sep_str () + "FreeSans";
 
           if (weight == "bold")
             file += "Bold";
--- a/libinterp/corefcn/toplev.cc	Fri Mar 16 12:08:46 2018 -0700
+++ b/libinterp/corefcn/toplev.cc	Fri Mar 16 15:28:34 2018 -0700
@@ -412,8 +412,9 @@
            { "mandir", octave::config::man_dir () },
            { "octdatadir", octave::config::oct_data_dir () },
            { "octdocdir", octave::config::oct_doc_dir () },
+           { "octetcdir", octave::config::oct_etc_dir () },
            { "octfiledir", octave::config::oct_file_dir () },
-           { "octetcdir", octave::config::oct_etc_dir () },
+           { "octfontsdir", octave::config::oct_fonts_dir () },
            { "octincludedir", octave::config::oct_include_dir () },
            { "octlibdir", octave::config::oct_lib_dir () },
            { "octtestsdir", octave::config::oct_tests_dir () },
--- a/run-octave.in	Fri Mar 16 12:08:46 2018 -0700
+++ b/run-octave.in	Fri Mar 16 15:28:34 2018 -0700
@@ -104,7 +104,7 @@
 OCTAVE_ARCHLIBDIR="$builddir/src"; export OCTAVE_ARCHLIBDIR
 OCTAVE_BINDIR="$builddir/src"; export OCTAVE_BINDIR
 OCTAVE_DEFAULT_QT_SETTINGS="$builddir/libgui/default-qt-settings"; export OCTAVE_DEFAULT_QT_SETTINGS
-OCTAVE_FONT_DIR="$top_srcdir/etc/fonts"; export OCTAVE_FONT_DIR
+OCTAVE_FONTS_DIR="$top_srcdir/etc/fonts"; export OCTAVE_FONTS_DIR
 OCTAVE_JAVA_DIR="$builddir/scripts/java"; export OCTAVE_JAVA_DIR
 OCTAVE_LOCALE_DIR="$builddir/libgui/languages"; export OCTAVE_LOCALE_DIR
 OCTAVE_QTHELP_COLLECTION="$builddir/doc/interpreter/octave_interpreter.qhc"; export OCTAVE_QTHELP_COLLECTION
--- a/src/octave-config.in.cc	Fri Mar 16 12:08:46 2018 -0700
+++ b/src/octave-config.in.cc	Fri Mar 16 15:28:34 2018 -0700
@@ -64,25 +64,26 @@
 "  -p VAR, --print VAR   Print the value of the given configuration\n"
 "                        variable VAR.  Recognized variables are:\n"
 "\n"
-"                          API_VERSION            LOCALARCHLIBDIR\n"
-"                          ARCHLIBDIR             LOCALFCNFILEDIR\n"
-"                          BINDIR                 LOCALOCTFILEDIR\n"
-"                          CANONICAL_HOST_TYPE    LOCALSTARTUPFILEDIR\n"
-"                          DATADIR                LOCALVERARCHLIBDIR\n"
-"                          DATAROOTDIR            LOCALVERFCNFILEDIR\n"
-"                          DEFAULT_PAGER          LOCALVEROCTFILEDIR\n"
-"                          EXEC_PREFIX            MAN1DIR\n"
-"                          EXEEXT                 MAN1EXT\n"
-"                          FCNFILEDIR             MANDIR\n"
-"                          IMAGEDIR               OCTAVE_EXEC_HOME\n"
-"                          INCLUDEDIR             OCTAVE_HOME\n"
-"                          INFODIR                OCTDATADIR\n"
-"                          INFOFILE               OCTDOCDIR\n"
-"                          LIBDIR                 OCTFILEDIR\n"
+"                          API_VERSION            LOCALFCNFILEDIR\n"
+"                          ARCHLIBDIR             LOCALOCTFILEDIR\n"
+"                          BINDIR                 LOCALSTARTUPFILEDIR\n"
+"                          CANONICAL_HOST_TYPE    LOCALVERARCHLIBDIR\n"
+"                          DATADIR                LOCALVERFCNFILEDIR\n"
+"                          DATAROOTDIR            LOCALVEROCTFILEDIR\n"
+"                          DEFAULT_PAGER          MAN1DIR\n"
+"                          EXEC_PREFIX            MAN1EXT\n"
+"                          EXEEXT                 MANDIR\n"
+"                          FCNFILEDIR             OCTAVE_EXEC_HOME\n"
+"                          IMAGEDIR               OCTAVE_HOME\n"
+"                          INCLUDEDIR             OCTDATADIR\n"
+"                          INFODIR                OCTDOCDIR\n"
+"                          INFOFILE               OCTFILEDIR\n"
+"                          LIBDIR                 OCTFONTSDIR\n"
 "                          LIBEXECDIR             OCTINCLUDEDIR\n"
 "                          LOCALAPIARCHLIBDIR     OCTLIBDIR\n"
 "                          LOCALAPIFCNFILEDIR     STARTUPFILEDIR\n"
 "                          LOCALAPIOCTFILEDIR     VERSION\n"
+"                          LOCALARCHLIBDIR\n"
 "\n"
 "  -v, --version         Print the Octave version number.\n"
 "\n";
@@ -128,6 +129,7 @@
   vars["OCTDATADIR"] = prepend_octave_home (%OCTAVE_OCTDATADIR%);
   vars["OCTDOCDIR"] = prepend_octave_home (%OCTAVE_OCTDOCDIR%);
   vars["OCTFILEDIR"] = prepend_octave_exec_home (%OCTAVE_OCTFILEDIR%);
+  vars["OCTFONTSDIR"] = prepend_octave_home (%OCTAVE_OCTFONTSDIR%);
   vars["OCTINCLUDEDIR"] = prepend_octave_home (%OCTAVE_OCTINCLUDEDIR%);
   vars["OCTLIBDIR"] = prepend_octave_exec_home (%OCTAVE_OCTLIBDIR%);
   vars["STARTUPFILEDIR"] = prepend_octave_home (%OCTAVE_STARTUPFILEDIR%);