#include "support/lassert.h"
#include "support/lstrings.h"
#include "support/os.h"
+#include "support/PathChanger.h"
+#include "support/Systemcall.h"
#if defined (USE_WINDOWS_PACKAGING)
# include "support/os_win32.h"
#endif
+#include <iostream>
#include <list>
#if !defined (USE_WINDOWS_PACKAGING) && \
explicit_user_support_dir_ = userSupportDir(default_user_support_dir,
command_line_user_support_dir, user_support_dir_);
- FileName const configure_script(addName(system_support().absFileName(), "configure.py"));
- configure_command_ = os::python() + ' ' +
- quoteName(configure_script.toFilesystemEncoding(), quote_python) +
- with_version_suffix() + " --binary-dir=" + binary_dir().absFileName();
LYXERR(Debug::INIT, "<package>\n"
<< "\tbinary_dir " << binary_dir().absFileName() << '\n'
}
+int Package::reconfigureUserLyXDir(string const & option) const
+{
+ if (configure_command_.empty()) {
+ FileName const configure_script(addName(system_support().absFileName(), "configure.py"));
+ configure_command_ = os::python() + ' ' +
+ quoteName(configure_script.toFilesystemEncoding()) +
+ with_version_suffix() + " --binary-dir=" +
+ quoteName(FileName(binary_dir().absFileName()).toFilesystemEncoding());
+ }
+
+ lyxerr << to_utf8(_("LyX: reconfiguring user directory")) << endl;
+ PathChanger p(user_support());
+ Systemcall one;
+ int const ret = one.startscript(Systemcall::Wait, configure_command_ + option);
+ lyxerr << "LyX: " << to_utf8(_("Done!")) << endl;
+ return ret;
+}
+
+
+string Package::getConfigureLockName() const
+{
+ return user_support().absFileName() + ".lyx_configure_lock";
+}
+
+
void Package::set_temp_dir(FileName const & temp_dir) const
{
if (temp_dir.empty())
FileName Package::messages_file(string const & c) const
{
- if (in_build_dir_)
- return FileName(top_srcdir().absFileName() + "/po/"
- + c + ".gmo");
- else
+ if (in_build_dir_) {
+ FileName res = FileName(lyx_dir().absFileName() + "/../po/" + c + ".gmo");
+ if (!res.isReadableFile())
+ res = FileName(top_srcdir().absFileName() + "/po/" + c + ".gmo");
+ return res;
+ } else
return FileName(locale_dir_.absFileName() + "/" + c
+ "/LC_MESSAGES/" PACKAGE ".mo");
}