mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
support panda-package-version and panda-package-host-url for dev convenience
This commit is contained in:
parent
ab2684e444
commit
9be238b149
@ -32,6 +32,11 @@ PandaSystem() :
|
|||||||
_systems(get_class_type())
|
_systems(get_class_type())
|
||||||
{
|
{
|
||||||
_system_names_dirty = false;
|
_system_names_dirty = false;
|
||||||
|
|
||||||
|
// These are settable via Config.prc, but only in development
|
||||||
|
// (!NDEBUG) mode, and only if they are not already defined.
|
||||||
|
_package_version_string = PANDA_PACKAGE_VERSION_STR;
|
||||||
|
_package_host_url = PANDA_PACKAGE_HOST_URL;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -81,7 +86,11 @@ get_version_string() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
string PandaSystem::
|
string PandaSystem::
|
||||||
get_package_version_string() {
|
get_package_version_string() {
|
||||||
|
#ifdef NDEBUG
|
||||||
return PANDA_PACKAGE_VERSION_STR;
|
return PANDA_PACKAGE_VERSION_STR;
|
||||||
|
#else
|
||||||
|
return get_global_ptr()->_package_version_string;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -102,7 +111,11 @@ get_package_version_string() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
string PandaSystem::
|
string PandaSystem::
|
||||||
get_package_host_url() {
|
get_package_host_url() {
|
||||||
|
#ifdef NDEBUG
|
||||||
return PANDA_PACKAGE_HOST_URL;
|
return PANDA_PACKAGE_HOST_URL;
|
||||||
|
#else
|
||||||
|
return get_global_ptr()->_package_host_url;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -447,3 +460,43 @@ reset_system_names() {
|
|||||||
|
|
||||||
_system_names_dirty = false;
|
_system_names_dirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PandaSystem::set_package_version_string
|
||||||
|
// Access: Private
|
||||||
|
// Description: Loads the value returned by
|
||||||
|
// get_package_version_string(). This is intended to be
|
||||||
|
// called by ConfigPageManager to preload the value from
|
||||||
|
// the panda-package-version config variable, for
|
||||||
|
// developer's convenience. This has no effect if the
|
||||||
|
// PANDA_PACKAGE_VERSION_STR configure variable is
|
||||||
|
// defined at compilation time. This also has no effect
|
||||||
|
// in NDEBUG mode.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void PandaSystem::
|
||||||
|
set_package_version_string(const string &package_version_string) {
|
||||||
|
_package_version_string = PANDA_PACKAGE_VERSION_STR;
|
||||||
|
if (_package_version_string.empty()) {
|
||||||
|
_package_version_string = package_version_string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PandaSystem::set_package_host_url
|
||||||
|
// Access: Private
|
||||||
|
// Description: Loads the value returned by
|
||||||
|
// get_package_host_url(). This is intended to be
|
||||||
|
// called by ConfigPageManager to preload the value from
|
||||||
|
// the panda-package-host-url config variable, for
|
||||||
|
// developer's convenience. This has no effect if the
|
||||||
|
// PANDA_PACKAGE_HOST_URL configure variable is defined
|
||||||
|
// at compilation time. This also has no effect in
|
||||||
|
// NDEBUG mode.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void PandaSystem::
|
||||||
|
set_package_host_url(const string &package_host_url) {
|
||||||
|
_package_host_url = PANDA_PACKAGE_HOST_URL;
|
||||||
|
if (_package_host_url.empty()) {
|
||||||
|
_package_host_url = package_host_url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -67,6 +67,9 @@ PUBLISHED:
|
|||||||
private:
|
private:
|
||||||
void reset_system_names();
|
void reset_system_names();
|
||||||
|
|
||||||
|
void set_package_version_string(const string &package_version_string);
|
||||||
|
void set_package_host_url(const string &package_host_url);
|
||||||
|
|
||||||
typedef pmap<string, string> SystemTags;
|
typedef pmap<string, string> SystemTags;
|
||||||
typedef pmap<string, SystemTags> Systems;
|
typedef pmap<string, SystemTags> Systems;
|
||||||
typedef pvector<string> SystemNames;
|
typedef pvector<string> SystemNames;
|
||||||
@ -75,6 +78,9 @@ private:
|
|||||||
SystemNames _system_names;
|
SystemNames _system_names;
|
||||||
bool _system_names_dirty;
|
bool _system_names_dirty;
|
||||||
|
|
||||||
|
string _package_version_string;
|
||||||
|
string _package_host_url;
|
||||||
|
|
||||||
static PandaSystem *_global_ptr;
|
static PandaSystem *_global_ptr;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -87,6 +93,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
static TypeHandle _type_handle;
|
static TypeHandle _type_handle;
|
||||||
|
|
||||||
|
friend class ConfigPageManager;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline ostream &operator << (ostream &out, const PandaSystem &ps) {
|
inline ostream &operator << (ostream &out, const PandaSystem &ps) {
|
||||||
|
@ -14,12 +14,14 @@
|
|||||||
|
|
||||||
#include "configPageManager.h"
|
#include "configPageManager.h"
|
||||||
#include "configDeclaration.h"
|
#include "configDeclaration.h"
|
||||||
|
#include "configVariableString.h"
|
||||||
#include "configPage.h"
|
#include "configPage.h"
|
||||||
#include "prcKeyRegistry.h"
|
#include "prcKeyRegistry.h"
|
||||||
#include "dSearchPath.h"
|
#include "dSearchPath.h"
|
||||||
#include "executionEnvironment.h"
|
#include "executionEnvironment.h"
|
||||||
#include "config_prc.h"
|
#include "config_prc.h"
|
||||||
#include "pfstream.h"
|
#include "pfstream.h"
|
||||||
|
#include "pandaSystem.h"
|
||||||
|
|
||||||
// This file is generated by ppremake.
|
// This file is generated by ppremake.
|
||||||
#include "prc_parameters.h"
|
#include "prc_parameters.h"
|
||||||
@ -373,7 +375,7 @@ reload_implicit_pages() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!_loaded_implicit) {
|
if (!_loaded_implicit) {
|
||||||
Notify::ptr()->config_initialized();
|
config_initialized();
|
||||||
_loaded_implicit = true;
|
_loaded_implicit = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -646,3 +648,38 @@ scan_up_from(Filename &result, const Filename &dir,
|
|||||||
// Recursively try again on the parent.
|
// Recursively try again on the parent.
|
||||||
return scan_up_from(result, parent, suffix);
|
return scan_up_from(result, parent, suffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: ConfigPageManager::config_initialized
|
||||||
|
// Access: Private
|
||||||
|
// Description: This is called once, at startup, the first time that
|
||||||
|
// the config system has been initialized and is ready
|
||||||
|
// to read config variables. It's intended to be a
|
||||||
|
// place to initialize values that are defined at a
|
||||||
|
// lower level than the config system itself.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void ConfigPageManager::
|
||||||
|
config_initialized() {
|
||||||
|
Notify::ptr()->config_initialized();
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
ConfigVariableString panda_package_version
|
||||||
|
("panda-package-version", "",
|
||||||
|
PRC_DESC("This can be used to specify the value returned by "
|
||||||
|
"PandaSystem::get_package_version_str(), in development mode only, "
|
||||||
|
"and only if another value has not already been compiled in. This "
|
||||||
|
"is intended for developer convenience, to masquerade a development "
|
||||||
|
"build of Panda as a different runtime version. Use with caution."));
|
||||||
|
ConfigVariableString panda_package_host_url
|
||||||
|
("panda-package-host-url", "",
|
||||||
|
PRC_DESC("This can be used to specify the value returned by "
|
||||||
|
"PandaSystem::get_package_url_url(), in development mode only, "
|
||||||
|
"and only if another value has not already been compiled in. This "
|
||||||
|
"is intended for developer convenience, to masquerade a development "
|
||||||
|
"build of Panda as a different runtime version. Use with caution."));
|
||||||
|
|
||||||
|
PandaSystem *panda_sys = PandaSystem::get_global_ptr();
|
||||||
|
panda_sys->set_package_version_string(panda_package_version);
|
||||||
|
panda_sys->set_package_host_url(panda_package_host_url);
|
||||||
|
#endif // NDEBUG
|
||||||
|
}
|
||||||
|
@ -74,6 +74,8 @@ private:
|
|||||||
bool scan_up_from(Filename &result, const Filename &dir,
|
bool scan_up_from(Filename &result, const Filename &dir,
|
||||||
const Filename &suffix) const;
|
const Filename &suffix) const;
|
||||||
|
|
||||||
|
void config_initialized();
|
||||||
|
|
||||||
typedef vector<ConfigPage *> Pages;
|
typedef vector<ConfigPage *> Pages;
|
||||||
Pages _implicit_pages;
|
Pages _implicit_pages;
|
||||||
Pages _explicit_pages;
|
Pages _explicit_pages;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user