mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-27 01:22:37 +00:00
patch #3092 : Allow to specify default system-wide preferences by lipk
This commit is contained in:
parent
1e2ab67f73
commit
9ec70dabc5
@ -60,6 +60,7 @@ set(DATADIRNAME "wesnoth" CACHE STRING "change the name of the directory for the
|
|||||||
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}" CACHE STRING "change the dir where binaries are placed right at compile time")
|
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}" CACHE STRING "change the dir where binaries are placed right at compile time")
|
||||||
set(LOCALEDIR "translations" CACHE STRING "change the name of the locale data directory to a non-default name")
|
set(LOCALEDIR "translations" CACHE STRING "change the name of the locale data directory to a non-default name")
|
||||||
set(PREFERENCES_DIR "" CACHE STRING "Use a non-default preferences directory (.wesnoth on unix)")
|
set(PREFERENCES_DIR "" CACHE STRING "Use a non-default preferences directory (.wesnoth on unix)")
|
||||||
|
set(DEFAULT_PREFS_FILE "" CACHE STRING "Set system wide preferences file")
|
||||||
|
|
||||||
#Game options
|
#Game options
|
||||||
option(ENABLE_FRIBIDI "Enable FriBIDi support" ON)
|
option(ENABLE_FRIBIDI "Enable FriBIDi support" ON)
|
||||||
@ -171,6 +172,15 @@ if(PREFERENCES_DIR)
|
|||||||
add_definitions(-DPREFERENCES_DIR=\\\"${PREFERENCES_DIR}\\\")
|
add_definitions(-DPREFERENCES_DIR=\\\"${PREFERENCES_DIR}\\\")
|
||||||
endif(PREFERENCES_DIR)
|
endif(PREFERENCES_DIR)
|
||||||
|
|
||||||
|
|
||||||
|
if(DEFAULT_PREFS_FILE)
|
||||||
|
add_definitions(-DDEFAULT_PREFS_PATH=\\\"${DEFAULT_PREFS_FILE}\\\")
|
||||||
|
|
||||||
|
if(NOT DEFAULT_PREFS_FILE MATCHES "^/")
|
||||||
|
add_definitions(-DHAS_RELATIVE_DEFPREF)
|
||||||
|
endif(NOT DEFAULT_PREFS_FILE MATCHES "^/")
|
||||||
|
endif(DEFAULT_PREFS_FILE)
|
||||||
|
|
||||||
if(ENABLE_LOW_MEM)
|
if(ENABLE_LOW_MEM)
|
||||||
add_definitions(-DLOW_MEM)
|
add_definitions(-DLOW_MEM)
|
||||||
endif(ENABLE_LOW_MEM)
|
endif(ENABLE_LOW_MEM)
|
||||||
|
@ -73,6 +73,7 @@ opts.AddVariables(
|
|||||||
BoolVariable('nls','enable compile/install of gettext message catalogs',True),
|
BoolVariable('nls','enable compile/install of gettext message catalogs',True),
|
||||||
PathVariable('prefix', 'autotools-style installation prefix', "/usr/local", PathVariable.PathAccept),
|
PathVariable('prefix', 'autotools-style installation prefix', "/usr/local", PathVariable.PathAccept),
|
||||||
PathVariable('prefsdir', 'user preferences directory', "", PathVariable.PathAccept),
|
PathVariable('prefsdir', 'user preferences directory', "", PathVariable.PathAccept),
|
||||||
|
PathVariable('default_prefs_file', 'default preferences file name', "", PathVariable.PathAccept),
|
||||||
PathVariable('destdir', 'prefix to add to all installation paths.', "/", PathVariable.PathAccept),
|
PathVariable('destdir', 'prefix to add to all installation paths.', "/", PathVariable.PathAccept),
|
||||||
BoolVariable('prereqs','abort if prerequisites cannot be detected',True),
|
BoolVariable('prereqs','abort if prerequisites cannot be detected',True),
|
||||||
('program_suffix', 'suffix to append to names of installed programs',"$version_suffix"),
|
('program_suffix', 'suffix to append to names of installed programs',"$version_suffix"),
|
||||||
|
@ -898,6 +898,9 @@
|
|||||||
name = "Ben Anderman (crimson_penguin)"
|
name = "Ben Anderman (crimson_penguin)"
|
||||||
comment = "unit list"
|
comment = "unit list"
|
||||||
[/entry]
|
[/entry]
|
||||||
|
[entry]
|
||||||
|
name = "Boldizsár Lipka (lipk)"
|
||||||
|
[/entry]
|
||||||
[entry]
|
[entry]
|
||||||
name = "Brilliand"
|
name = "Brilliand"
|
||||||
[/entry]
|
[/entry]
|
||||||
|
@ -60,6 +60,14 @@ if env["PLATFORM"] != "win32":
|
|||||||
if filesystem_env['prefsdir']:
|
if filesystem_env['prefsdir']:
|
||||||
filesystem_env.Append(CPPDEFINES = "PREFERENCES_DIR='\"$prefsdir\"'")
|
filesystem_env.Append(CPPDEFINES = "PREFERENCES_DIR='\"$prefsdir\"'")
|
||||||
|
|
||||||
|
if env['default_prefs_file']:
|
||||||
|
client_env.Append(CPPDEFINES = "DEFAULT_PREFS_PATH='\"$default_prefs_file\"'")
|
||||||
|
|
||||||
|
game_config_env['default_prefs_file'] = env['default_prefs_file']
|
||||||
|
game_config_env.Append(CPPDEFINES = "DEFAULT_PREFS_PATH='\"$default_prefs_file\"'")
|
||||||
|
if not os.path.isabs(env['default_prefs_file']):
|
||||||
|
filesystem_env.Append(CPPDEFINES = "HAS_RELATIVE_DEFPREF")
|
||||||
|
|
||||||
libwesnoth_core_sources.extend([
|
libwesnoth_core_sources.extend([
|
||||||
game_config_env.Object("game_config.cpp"),
|
game_config_env.Object("game_config.cpp"),
|
||||||
filesystem_env.Object("filesystem.cpp")
|
filesystem_env.Object("filesystem.cpp")
|
||||||
|
@ -287,6 +287,15 @@ std::string get_prefs_file()
|
|||||||
return get_user_config_dir() + "/preferences";
|
return get_user_config_dir() + "/preferences";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string get_default_prefs_file()
|
||||||
|
{
|
||||||
|
#ifdef HAS_RELATIVE_DEFPREF
|
||||||
|
return game_config::path + "/" + game_config::default_preferences_path;
|
||||||
|
#else
|
||||||
|
return game_config::default_preferences_path;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
std::string get_save_index_file()
|
std::string get_save_index_file()
|
||||||
{
|
{
|
||||||
return get_user_data_dir() + "/save_index";
|
return get_user_data_dir() + "/save_index";
|
||||||
|
@ -63,6 +63,7 @@ std::string get_dir(const std::string &dir);
|
|||||||
|
|
||||||
// The location of various important files:
|
// The location of various important files:
|
||||||
std::string get_prefs_file();
|
std::string get_prefs_file();
|
||||||
|
std::string get_default_prefs_file();
|
||||||
std::string get_save_index_file();
|
std::string get_save_index_file();
|
||||||
std::string get_saves_dir();
|
std::string get_saves_dir();
|
||||||
std::string get_intl_dir();
|
std::string get_intl_dir();
|
||||||
|
@ -160,6 +160,12 @@ namespace game_config
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEFAULT_PREFS_PATH
|
||||||
|
std::string default_preferences_path = DEFAULT_PREFS_PATH;
|
||||||
|
#else
|
||||||
|
std::string default_preferences_path = "";
|
||||||
|
#endif
|
||||||
|
|
||||||
std::string preferences_dir = "";
|
std::string preferences_dir = "";
|
||||||
|
|
||||||
std::vector<server_info> server_list;
|
std::vector<server_info> server_list;
|
||||||
|
@ -56,6 +56,7 @@ namespace game_config
|
|||||||
|
|
||||||
extern std::string path;
|
extern std::string path;
|
||||||
extern std::string preferences_dir;
|
extern std::string preferences_dir;
|
||||||
|
extern std::string default_preferences_path;
|
||||||
|
|
||||||
struct server_info {
|
struct server_info {
|
||||||
server_info() : name(""), address("") { }
|
server_info() : name(""), address("") { }
|
||||||
|
@ -55,8 +55,19 @@ namespace preferences {
|
|||||||
|
|
||||||
base_manager::base_manager()
|
base_manager::base_manager()
|
||||||
{
|
{
|
||||||
|
#ifdef DEFAULT_PREFS_PATH
|
||||||
|
scoped_istream stream = istream_file(get_default_prefs_file());
|
||||||
|
read(prefs, *stream);
|
||||||
|
|
||||||
|
config user_prefs;
|
||||||
|
stream = istream_file(get_prefs_file());
|
||||||
|
read(user_prefs, *stream);
|
||||||
|
|
||||||
|
prefs.merge_with(user_prefs);
|
||||||
|
#else
|
||||||
scoped_istream stream = istream_file(get_prefs_file());
|
scoped_istream stream = istream_file(get_prefs_file());
|
||||||
read(prefs, *stream);
|
read(prefs, *stream);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
base_manager::~base_manager()
|
base_manager::~base_manager()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user