+2005-01-31 Angus Leeming <leeming@lyx.org>
+
+ * lyx_main.C (priv_exec): specify explicitly the relative location
+ of the top level build directory when run in-place.
+
2005-01-27 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* BufferView_pimpl.C (MenuInsertLyXFile): do breakParagraph on the
// we need to parse for "-dbg" and "-help"
bool const want_gui = easyParse(argc, argv);
- lyx::support::init_package(argv[0], cl_system_support, cl_user_support);
+ lyx::support::init_package(argv[0], cl_system_support, cl_user_support,
+ lyx::support::top_build_dir_is_one_level_up);
if (want_gui)
lyx_gui::parse_init(argc, argv);
+2005-01-31 Angus Leeming <leeming@lyx.org>
+
+ * package.[Ch] (init_package, c-tor): define and use an enum to
+ specify explicitly the location of the top level build directory
+ when the executable is run in-place.
+
2005-01-31 Lars Gullik Bjonnes <larsbj@gullik.net>
* fs_extras.C: add changes from Asgers Win32 patch.
void init_package(string const & command_line_arg0,
string const & command_line_system_support_dir,
- string const & command_line_user_support_dir)
+ string const & command_line_user_support_dir,
+ exe_build_dir_to_top_build_dir top_build_dir_location)
{
// Can do so only once.
if (initialised_)
package_ = Package(command_line_arg0,
command_line_system_support_dir,
- command_line_user_support_dir);
+ command_line_user_support_dir,
+ top_build_dir_location);
initialised_ = true;
}
string const abs_path_from_binary_name(string const & exe);
-std::pair<string, string> const get_build_dirs(string const & abs_binary);
+std::pair<string, string> const
+get_build_dirs(string const & abs_binary,
+ exe_build_dir_to_top_build_dir top_build_dir_location);
string const get_document_dir(string const & home_dir);
Package::Package(string const & command_line_arg0,
string const & command_line_system_support_dir,
- string const & command_line_user_support_dir)
+ string const & command_line_user_support_dir,
+ exe_build_dir_to_top_build_dir top_build_dir_location)
: explicit_user_support_dir_(false)
{
home_dir_ = get_home_dir();
// Is LyX being run in-place from the build tree?
boost::tie(build_support_dir_, system_support_dir_) =
- get_build_dirs(abs_binary);
+ get_build_dirs(abs_binary, top_build_dir_location);
if (build_support_dir_.empty())
system_support_dir_ =
#endif
-std::pair<string, string> const get_build_dirs(string const & abs_binary)
+std::string const
+get_build_support_dir(std::string const & binary_dir,
+ exe_build_dir_to_top_build_dir top_build_dir_location)
+{
+ string indirection;
+ switch (top_build_dir_location) {
+ case top_build_dir_is_one_level_up:
+ indirection = "../lib";
+ break;
+ case top_build_dir_is_two_levels_up:
+ indirection = "../../lib";
+ break;
+ }
+
+ return NormalizePath(AddPath(binary_dir, indirection));
+}
+
+
+std::pair<string, string> const
+get_build_dirs(string const & abs_binary,
+ exe_build_dir_to_top_build_dir top_build_dir_location)
{
string const check_text = "Checking whether LyX is run in place...";
// Try and find "lyxrc.defaults".
string const binary_dir = OnlyPath(binary);
string const build_support_dir =
- NormalizePath(AddPath(binary_dir, "../lib"));
+ get_build_support_dir(binary_dir, top_build_dir_location);
if (!FileSearch(build_support_dir, "lyxrc.defaults").empty()) {
// Try and find "chkconfig.ltx".
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.
* This data is exactly as it was passed in the argv[] array.
*
*/
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);
+ std::string const & command_line_user_support_dir,
+ exe_build_dir_to_top_build_dir);
/** Accessor to the global data.
* Asserts that init_package() has been called first.
*/
Package(std::string const & command_line_arg0,
std::string const & command_line_system_support_dir,
- std::string const & command_line_user_support_dir);
+ std::string const & command_line_user_support_dir,
+ exe_build_dir_to_top_build_dir);
/** The directory containing the LyX executable.
*/
+2005-01-31 Angus Leeming <leeming@lyx.org>
+
+ * tex2lyx.C (main): enable tex2lyx to find the top level
+ build directory when run in-place.
+
+ Also add "fs::path::default_name_check(fs::no_check);"
+
2005-01-31 Lars Gullik Bjonnes <larsbj@gullik.net>
* tex2lyx.C: rewrite to use boost.filesystem
#include <boost/function.hpp>
#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/path.hpp>
#include <cctype>
#include <fstream>
int main(int argc, char * argv[])
{
+ fs::path::default_name_check(fs::no_check);
+
easyParse(argc, argv);
if (argc <= 1) {
}
lyx::support::os::init(argc, argv);
- lyx::support::init_package(argv[0], cl_system_support, cl_user_support);
+ lyx::support::init_package(argv[0], cl_system_support, cl_user_support,
+ lyx::support::top_build_dir_is_two_levels_up);
string const system_syntaxfile = lyx::support::LibFileSearch("reLyX", "syntax.default");
if (system_syntaxfile.empty()) {