]> git.lyx.org Git - lyx.git/blobdiff - src/support/Package.h
Account for old versions of Pygments
[lyx.git] / src / support / Package.h
index e5989459f579aab3f164ece3069c24fa48bba0da..4e5c6fa3f46e78f11ba64ab80ca0304ae5e017bf 100644 (file)
@@ -12,8 +12,9 @@
  * by LyX. These paths differ markedly from one OS to another,
  * following the local Windows, MacOS X or Posix conventions.
  */
-#ifndef LYX_PACHAGE_H
-#define LYX_PACHAGE_H
+
+#ifndef PACKAGE_H
+#define PACKAGE_H
 
 #include "support/FileName.h"
 
@@ -24,14 +25,6 @@ namespace support {
 
 class Package;
 
-/** When run in-place <build-dir>/src/lyx is one level up from
- *  the <build-dir> whilst <build-dir>/src/tex2lyx/tex2lyx is
- *  two levels up.
- */
-enum exe_build_dir_to_top_build_dir {
-       top_build_dir_is_one_level_up,
-       top_build_dir_is_two_levels_up
-};
 
 
 /** Initialise package() with the command line data.
@@ -48,8 +41,7 @@ enum exe_build_dir_to_top_build_dir {
  */
 void init_package(std::string const & command_line_arg0,
                  std::string const & command_line_system_support_dir,
-                 std::string const & command_line_user_support_dir,
-                 exe_build_dir_to_top_build_dir);
+                 std::string const & command_line_user_support_dir);
 
 /** Accessor to the global data.
  *  Asserts that init_package() has been called first.
@@ -59,19 +51,27 @@ Package const & package();
 class Package {
 public:
        /// Default constructor does not lead to the paths being set.
-       Package();
+       Package() : explicit_user_support_dir_(false), in_build_dir_(false) {}
 
        /** Called by init_package, above.
         *  All paths will be initialized.
         */
        Package(std::string const & command_line_arg0,
                std::string const & command_line_system_support_dir,
-               std::string const & command_line_user_support_dir,
-               exe_build_dir_to_top_build_dir);
+               std::string const & command_line_user_support_dir);
+
+       /** The directory containing the main executable (LyX or tex2lyx).
+        */
+       FileName const & binary_dir() const { return binary_dir_; }
 
-       /** The directory containing the LyX executable.
+       /** The absolute path to the LyX executable.
         */
-       FileName const & binary_dir() const;
+       FileName const & lyx_binary() const { return lyx_binary_; }
+
+       /** The absolute path to the LyX package directory.
+        *  This is one level up from the binary dir.
+        */
+       FileName const & lyx_dir() const { return lyx_dir_; }
 
        /** The top of the LyX source code tree.
         */
@@ -80,42 +80,51 @@ public:
        /** The path to the system-level support files
         *  we're actually going to use.
         */
-       FileName const & system_support() const;
+       FileName const & system_support() const { return system_support_dir_; }
 
        /** The path to the autogenerated support files
         *  when running in-place.
         */
-       FileName const & build_support() const;
+       FileName const & build_support() const { return build_support_dir_; }
 
        /** The path to the user-level support files.
         */
-       FileName const & user_support() const;
+       FileName const & user_support() const { return user_support_dir_; }
 
        /** The user_support directory was set explicitly using either
         *  the -userdir command line switch or
-        *  the LYX_USERDIR_15x environment variable.
+        *  the LYX_USERDIR_${major}${minor}x environment variable.
         */
-       bool explicit_user_support() const;
+       bool explicit_user_support() const { return explicit_user_support_dir_; }
 
        /** The path to the locale directory.
         */
-       FileName const & locale_dir() const;
+       FileName const & locale_dir() const { return locale_dir_; }
+
+       /** The file name that should contain the message file (.mo)
+        *  for language code \param c. Does not check whether the
+        *  file exists. Handles running in place.
+        */
+       FileName messages_file(std::string const & c) const;
 
        /** The default document directory.
         *  Can be reset by LyXRC.
         */
-       FileName & document_dir() const;
+       FileName & document_dir() const { return document_dir_; }
 
        /** The path to the system temporary directory.
         *  (Eg /tmp on *nix.)
         */
-       FileName const & system_temp_dir() const;
+       FileName const & system_temp_dir() const { return system_temp_dir_; }
 
-       /** The path to the temporary directory used by LyX.
+       //@{
+       /** The path to the temporary directory used by %LyX.
         *  (Eg /tmp/lyx_tmpdir800nBI1z9 on *nix.)
         *  Can be reset by LyXRC.
         */
-       FileName & temp_dir() const;
+       FileName const & temp_dir() const { return temp_dir_; }
+       void set_temp_dir(FileName const & temp_dir) const;
+       //@}
 
        /** Used when setting the user_support directory.
         *  Used also when expanding "~/" or contracting to "~/". (filetools.cpp)
@@ -123,16 +132,18 @@ public:
         *  for the dump.
         *  This may be empty (e. g. when run under a CGI environment)
         */
-       FileName const & home_dir() const;
+       static FileName const & get_home_dir();
 
-       /** Command to run the configure script.
-        *  Caution: This is "ready-to-run", i.e. in the locale encoding, not
-        *  utf8.
-        */
-       std::string const & configure_command() const;
+       /// Run configure.py
+       int reconfigureUserLyXDir(std::string const & option) const;
+
+       ///
+       std::string getConfigureLockName() const;
 
 private:
        FileName binary_dir_;
+       FileName lyx_binary_;
+       FileName lyx_dir_;
        FileName system_support_dir_;
        FileName build_support_dir_;
        FileName user_support_dir_;
@@ -140,82 +151,16 @@ private:
        mutable FileName document_dir_;
        mutable FileName temp_dir_;
        FileName system_temp_dir_;
-       FileName home_dir_;
-       std::string configure_command_;
+       /** Command to run the configure script.
+        *  Caution: This is "ready-to-run", i.e. in the locale encoding, not
+        *  utf8.
+        */
+       mutable std::string configure_command_;
        bool explicit_user_support_dir_;
+       bool in_build_dir_;
 };
 
-
-inline
-Package::Package() {}
-
-inline
-FileName const & Package::binary_dir() const
-{
-       return binary_dir_;
-}
-
-inline
-FileName const & Package::system_support() const
-{
-       return system_support_dir_;
-}
-
-inline
-FileName const & Package::build_support() const
-{
-       return build_support_dir_;
-}
-
-inline
-FileName const & Package::user_support() const
-{
-       return user_support_dir_;
-}
-
-inline
-bool Package::explicit_user_support() const
-{
-       return explicit_user_support_dir_;
-}
-
-inline
-FileName const & Package::locale_dir() const
-{
-       return locale_dir_;
-}
-
-inline
-FileName & Package::document_dir() const
-{
-       return document_dir_;
-}
-
-inline
-FileName & Package::temp_dir() const
-{
-       return temp_dir_;
-}
-
-inline
-FileName const & Package::system_temp_dir() const
-{
-       return system_temp_dir_;
-}
-
-inline
-FileName const & Package::home_dir() const
-{
-       return home_dir_;
-}
-
-inline
-std::string const & Package::configure_command() const
-{
-       return configure_command_;
-}
-
 } // namespace support
 } // namespace lyx
 
-#endif // LYX_PACHAGE_H
+#endif // PACKAGE_H