Changed: Moved init code in sheets_packer.cpp

Changed: Expand environment variables for other variables too
Changed: Don't create log.log
Changed: Added missing AGPL headers

--HG--
branch : develop
This commit is contained in:
kervala 2016-09-25 10:23:34 +02:00
parent 33dfd39409
commit e6fa251d92
5 changed files with 88 additions and 183 deletions

View file

@ -21,17 +21,11 @@
// INCLUDES // // INCLUDES //
////////////// //////////////
#include "stdpch.h" #include "stdpch.h"
// Misc.
#include "nel/misc/types_nl.h"
#include "nel/misc/debug.h"
#if defined(NL_OS_WINDOWS) // Application
#include <windows.h> #include "sheets_packer_cfg.h"
#include <shellapi.h> #include "sheet_manager.h"
#endif #include "continent_manager_build.h"
// Client
#include "sheets_packer_init.h"
/////////// ///////////
@ -43,7 +37,7 @@ using namespace NLMISC;
///////////// /////////////
// GLOBALS // // GLOBALS //
///////////// /////////////
static uint32 Version = 1; // Client Version. NLLIGO::CLigoConfig LigoConfig;
/////////////// ///////////////
@ -72,9 +66,46 @@ int main(int argc, char **argv)
// Initialize the application. // // Initialize the application. //
try try
{ {
// If the init fail -> return Failure. // Add a displayer for Debug Infos, disable log.log.
if(!init()) createDebug(NULL, false);
return EXIT_FAILURE;
CLog::setProcessName("sheets_packer");
fd = new CFileDisplayer(getLogDirectory() + "sheets_packer.log", true, "SHEETS_PACKER.LOG");
// register ligo 'standard' class
NLLIGO::Register();
DebugLog->addDisplayer(fd);
InfoLog->addDisplayer(fd);
WarningLog->addDisplayer(fd);
ErrorLog->addDisplayer(fd);
AssertLog->addDisplayer(fd);
// Load the application configuration.
nlinfo("Loading config file...");
AppCfg.init(ConfigFileName);
// Define the root path that contains all data needed for the application.
nlinfo("Adding search paths...");
for (uint i = 0; i < AppCfg.DataPath.size(); i++)
CPath::addSearchPath(NLMISC::expandEnvironmentVariables(AppCfg.DataPath[i]), true, false);
// Initialize Sheet IDs.
nlinfo("Init SheetId...");
CSheetId::init(true);
// load packed sheets
nlinfo("Loading sheets...");
IProgressCallback callback;
SheetMngr.setOutputDataPath(NLMISC::expandEnvironmentVariables(AppCfg.OutputDataPath));
SheetMngr.load(callback, true, true, AppCfg.DumpVisualSlotsIndex);
// Make the lmconts.packed file
if (!LigoConfig.readPrimitiveClass(AppCfg.LigoPrimitiveClass.c_str(), false))
nlwarning("Can't load primitive class file %s", AppCfg.LigoPrimitiveClass.c_str());
NLLIGO::CPrimitiveContext::instance().CurrentLigoConfig = &LigoConfig;
buildLMConts(AppCfg.WorldSheet, NLMISC::expandEnvironmentVariables(AppCfg.PrimitivesPath), NLMISC::expandEnvironmentVariables(AppCfg.OutputDataPath));
} }
catch(const EFatalError &) { return EXIT_FAILURE; /* nothing to do */ } catch(const EFatalError &) { return EXIT_FAILURE; /* nothing to do */ }
catch(const Exception &e) catch(const Exception &e)
@ -96,7 +127,14 @@ int main(int argc, char **argv)
// Release all the memory. // // Release all the memory. //
try try
{ {
release(); DebugLog->removeDisplayer("SHEETS_PACKER.LOG");
InfoLog->removeDisplayer("SHEETS_PACKER.LOG");
WarningLog->removeDisplayer("SHEETS_PACKER.LOG");
ErrorLog->removeDisplayer("SHEETS_PACKER.LOG");
AssertLog->removeDisplayer("SHEETS_PACKER.LOG");
if (fd) delete fd;
fd = NULL;
} }
catch(const EFatalError &) { return EXIT_FAILURE; /* nothing to do */ } catch(const EFatalError &) { return EXIT_FAILURE; /* nothing to do */ }
catch(const Exception &e) catch(const Exception &e)

View file

@ -1,126 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//////////////
// INCLUDES //
//////////////
#include "stdpch.h"
// Misc.
#include "nel/misc/debug.h"
#include "nel/misc/displayer.h"
#include "nel/misc/path.h"
#include "nel/misc/log.h"
#include "nel/misc/sheet_id.h"
#include "nel/ligo/ligo_config.h"
#include "nel/ligo/primitive.h"
// Application
#include "sheets_packer_init.h"
#include "sheets_packer_cfg.h"
#include "sheet_manager.h"
#include "continent_manager_build.h"
///////////
// USING //
///////////
using namespace NLMISC;
//using namespace NL3D;
using namespace std;
/////////////
// GLOBALS //
/////////////
CFileDisplayer *fd = NULL;
NLLIGO::CLigoConfig LigoConfig;
///////////////
// FUNCTIONS //
///////////////
//---------------------------------------------------
// init :
// Initialize the application.
// Return false if the init fails.
//---------------------------------------------------
bool init()
{
// Add a displayer for Debug Infos.
createDebug();
fd = new CFileDisplayer(getLogDirectory() + "sheets_packer.log", true, "SHEETS_PACKER.LOG");
// register ligo 'standard' class
NLLIGO::Register();
DebugLog->addDisplayer (fd);
InfoLog->addDisplayer (fd);
WarningLog->addDisplayer (fd);
ErrorLog->addDisplayer (fd);
AssertLog->addDisplayer (fd);
// Load the application configuration.
nlinfo("Loading config file...");
AppCfg.init(ConfigFileName);
// Define the root path that contains all data needed for the application.
nlinfo("Adding search paths...");
for(uint i = 0; i < AppCfg.DataPath.size(); i++)
CPath::addSearchPath(NLMISC::expandEnvironmentVariables(AppCfg.DataPath[i]), true, false);
// Initialize Sheet IDs.
nlinfo("Init SheetId...");
CSheetId::init(true);
// load packed sheets
nlinfo("Loading sheets...");
IProgressCallback callback;
SheetMngr.setOutputDataPath(AppCfg.OutputDataPath);
SheetMngr.load (callback, true, true, AppCfg.DumpVisualSlotsIndex);
// Make the lmconts.packed file
if (!LigoConfig.readPrimitiveClass (AppCfg.LigoPrimitiveClass.c_str(), false))
nlwarning ("Can't load primitive class file %s", AppCfg.LigoPrimitiveClass.c_str());
NLLIGO::CPrimitiveContext::instance().CurrentLigoConfig = &LigoConfig;
buildLMConts(AppCfg.WorldSheet, AppCfg.PrimitivesPath, AppCfg.OutputDataPath);
// The init is a success.
return true;
}// init //
//---------------------------------------------------
// release :
// Release all the memory.
//---------------------------------------------------
void release()
{
DebugLog->removeDisplayer ("SHEETS_PACKER.LOG");
InfoLog->removeDisplayer ("SHEETS_PACKER.LOG");
WarningLog->removeDisplayer ("SHEETS_PACKER.LOG");
ErrorLog->removeDisplayer ("SHEETS_PACKER.LOG");
AssertLog->removeDisplayer ("SHEETS_PACKER.LOG");
delete fd;
fd = NULL;
}// release //
void outputSomeDebugInfoForPackedSheetCrash()
{
}

View file

@ -1,35 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef TL_SHEETS_PACKER_INIT_H
#define TL_SHEETS_PACKER_INIT_H
#include "nel/misc/types_nl.h"
// Initialize the application.
bool init();
// Release all.
void release();
#endif // TL_SHEETS_PACKER_INIT_H
/* End of sheets_packer_init.h */

View file

@ -1,2 +1,17 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdpch.h" #include "stdpch.h"

View file

@ -1,3 +1,22 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef STDPCH_H
#define STDPCH_H
#include <nel/misc/types_nl.h> #include <nel/misc/types_nl.h>
#include <stddef.h> #include <stddef.h>
@ -12,11 +31,9 @@
#include <map> #include <map>
#include <set> #include <set>
#include <algorithm> #include <algorithm>
//#include <sstream>
#include <exception> #include <exception>
#include <utility> #include <utility>
#include <deque> #include <deque>
#include <fstream>
#include <nel/misc/common.h> #include <nel/misc/common.h>
#include <nel/misc/debug.h> #include <nel/misc/debug.h>
@ -36,8 +53,4 @@
#include <nel/ligo/ligo_config.h> #include <nel/ligo/ligo_config.h>
#include <nel/ligo/primitive_utils.h> #include <nel/ligo/primitive_utils.h>
#ifdef NL_OS_WINDOWS #endif
#define NOMINMAX
#include <WinSock2.h>
#include <Windows.h>
#endif // NL_OS_WINDOWS