X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FEnvironment%2Fmetarproperties.cxx;h=f1e25f41925dc497ad4096e6f2d570a2783ed154;hb=474789269b7656509f62339c17e62a55b6157d43;hp=f76ee6684086e5d9b0d8dd6252a76bb1387ccf59;hpb=5c6fe952598053fa63631fc0161d666f22a50f51;p=flightgear.git diff --git a/src/Environment/metarproperties.cxx b/src/Environment/metarproperties.cxx index f76ee6684..f1e25f419 100644 --- a/src/Environment/metarproperties.cxx +++ b/src/Environment/metarproperties.cxx @@ -20,6 +20,10 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // +#ifdef HAVE_CONFIG_H +# include +#endif + #include "metarproperties.hxx" #include "fgmetar.hxx" #include "environment.hxx" @@ -31,6 +35,8 @@ using std::string; namespace Environment { +static vector coverage_string; + MetarProperties::MetarProperties( SGPropertyNode_ptr rootNode ) : _rootNode(rootNode), _metarValidNode( rootNode->getNode( "valid", true ) ), @@ -58,6 +64,14 @@ MetarProperties::MetarProperties( SGPropertyNode_ptr rootNode ) : _snow(0.0), _snow_cover(false) { + // Hack to avoid static initialization order problems on OSX + if( coverage_string.size() == 0 ) { + coverage_string.push_back(SGCloudLayer::SG_CLOUD_CLEAR_STRING); + coverage_string.push_back(SGCloudLayer::SG_CLOUD_FEW_STRING); + coverage_string.push_back(SGCloudLayer::SG_CLOUD_SCATTERED_STRING); + coverage_string.push_back(SGCloudLayer::SG_CLOUD_BROKEN_STRING); + coverage_string.push_back(SGCloudLayer::SG_CLOUD_OVERCAST_STRING); + } // don't tie metar-valid, so listeners get triggered _metarValidNode->setBoolValue( false ); _tiedProperties.setRoot( _rootNode ); @@ -92,13 +106,6 @@ MetarProperties::~MetarProperties() { } -static const string coverage_string[] = { - SGCloudLayer::SG_CLOUD_CLEAR_STRING, - SGCloudLayer::SG_CLOUD_FEW_STRING, - SGCloudLayer::SG_CLOUD_SCATTERED_STRING, - SGCloudLayer::SG_CLOUD_BROKEN_STRING, - SGCloudLayer::SG_CLOUD_OVERCAST_STRING, -}; static const double thickness_value[] = { 0, 65, 600, 750, 1000 };