merge
This commit is contained in:
commit
c425329719
235 changed files with 6587 additions and 999 deletions
|
@ -151,6 +151,7 @@ code/snowballs/build/*
|
||||||
code/ryzom/build/*
|
code/ryzom/build/*
|
||||||
code/build/*
|
code/build/*
|
||||||
build/*
|
build/*
|
||||||
|
install/*
|
||||||
|
|
||||||
# Linux nel compile
|
# Linux nel compile
|
||||||
code/nel/build/nel-config
|
code/nel/build/nel-config
|
||||||
|
|
|
@ -23,12 +23,26 @@ ELSE(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
||||||
$ENV{SystemDrive}/MySQL/*/include)
|
$ENV{SystemDrive}/MySQL/*/include)
|
||||||
|
|
||||||
IF(WIN32 AND MSVC)
|
IF(WIN32 AND MSVC)
|
||||||
FIND_LIBRARY(MYSQL_LIBRARIES NAMES libmysql mysqlclient
|
FIND_LIBRARY(MYSQL_LIBRARY_RELEASE NAMES libmysql mysqlclient
|
||||||
|
PATHS
|
||||||
|
$ENV{ProgramFiles}/MySQL/*/lib/opt
|
||||||
|
$ENV{SystemDrive}/MySQL/*/lib/opt)
|
||||||
|
|
||||||
|
FIND_LIBRARY(MYSQL_LIBRARY_DEBUG NAMES libmysqld mysqlclientd
|
||||||
PATHS
|
PATHS
|
||||||
$ENV{ProgramFiles}/MySQL/*/lib/opt
|
$ENV{ProgramFiles}/MySQL/*/lib/opt
|
||||||
$ENV{SystemDrive}/MySQL/*/lib/opt)
|
$ENV{SystemDrive}/MySQL/*/lib/opt)
|
||||||
ELSE(WIN32 AND MSVC)
|
ELSE(WIN32 AND MSVC)
|
||||||
FIND_LIBRARY(MYSQL_LIBRARIES NAMES mysqlclient
|
FIND_LIBRARY(MYSQL_LIBRARY_RELEASE NAMES mysqlclient
|
||||||
|
PATHS
|
||||||
|
/usr/lib
|
||||||
|
/usr/local/lib
|
||||||
|
/usr/lib/mysql
|
||||||
|
/usr/local/lib/mysql
|
||||||
|
/opt/local/lib/mysql5/mysql
|
||||||
|
)
|
||||||
|
|
||||||
|
FIND_LIBRARY(MYSQL_LIBRARY_DEBUG NAMES mysqlclientd
|
||||||
PATHS
|
PATHS
|
||||||
/usr/lib
|
/usr/lib
|
||||||
/usr/local/lib
|
/usr/local/lib
|
||||||
|
@ -38,6 +52,15 @@ ELSE(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
||||||
)
|
)
|
||||||
ENDIF(WIN32 AND MSVC)
|
ENDIF(WIN32 AND MSVC)
|
||||||
|
|
||||||
|
IF(MYSQL_INCLUDE_DIR)
|
||||||
|
IF(MYSQL_LIBRARY_RELEASE)
|
||||||
|
SET(MYSQL_LIBRARIES "optimized;${MYSQL_LIBRARY_RELEASE}")
|
||||||
|
IF(MYSQL_LIBRARY_DEBUG)
|
||||||
|
SET(MYSQL_LIBRARIES "${MYSQL_LIBRARIES};debug;${MYSQL_LIBRARY_DEBUG}")
|
||||||
|
ENDIF(MYSQL_LIBRARY_DEBUG)
|
||||||
|
ENDIF(MYSQL_LIBRARY_RELEASE)
|
||||||
|
ENDIF(MYSQL_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
IF(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
||||||
SET(MYSQL_FOUND TRUE)
|
SET(MYSQL_FOUND TRUE)
|
||||||
MESSAGE(STATUS "Found MySQL: ${MYSQL_INCLUDE_DIR}, ${MYSQL_LIBRARIES}")
|
MESSAGE(STATUS "Found MySQL: ${MYSQL_INCLUDE_DIR}, ${MYSQL_LIBRARIES}")
|
||||||
|
@ -46,6 +69,6 @@ ELSE(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
||||||
MESSAGE(STATUS "MySQL not found.")
|
MESSAGE(STATUS "MySQL not found.")
|
||||||
ENDIF(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
ENDIF(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(MYSQL_INCLUDE_DIR MYSQL_LIBRARIES)
|
MARK_AS_ADVANCED(MYSQL_LIBRARY_RELEASE MYSQL_LIBRARY_DEBUG)
|
||||||
|
|
||||||
ENDIF(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
ENDIF(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
# include <process.h>
|
# include <process.h>
|
||||||
# include <intrin.h>
|
# include <intrin.h>
|
||||||
#else
|
#else
|
||||||
# include <cmath>
|
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
# include <sys/types.h>
|
# include <sys/types.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -205,9 +204,13 @@ inline double isValidDouble (double v)
|
||||||
{
|
{
|
||||||
#ifdef NL_OS_WINDOWS
|
#ifdef NL_OS_WINDOWS
|
||||||
return _finite(v) && !_isnan(v);
|
return _finite(v) && !_isnan(v);
|
||||||
|
#else
|
||||||
|
#ifdef _STLPORT_VERSION
|
||||||
|
return !isnan(v) && !isinf(v);
|
||||||
#else
|
#else
|
||||||
return !std::isnan(v) && !std::isinf(v);
|
return !std::isnan(v) && !std::isinf(v);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
#include "types_nl.h"
|
#include "types_nl.h"
|
||||||
#include "time_nl.h"
|
#include "time_nl.h"
|
||||||
|
#include "common.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#ifdef NL_OS_UNIX
|
#ifdef NL_OS_UNIX
|
||||||
|
@ -280,7 +281,7 @@ public:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef NL_OS_WINDOWS
|
#ifdef NL_OS_WINDOWS
|
||||||
Sleep (wait_time);
|
nlSleep (wait_time);
|
||||||
#else
|
#else
|
||||||
//std::cout << "Sleeping i=" << i << std::endl;
|
//std::cout << "Sleeping i=" << i << std::endl;
|
||||||
usleep( wait_time*1000 );
|
usleep( wait_time*1000 );
|
||||||
|
@ -390,7 +391,7 @@ public:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef NL_OS_WINDOWS
|
#ifdef NL_OS_WINDOWS
|
||||||
Sleep (wait_time);
|
nlSleep (wait_time);
|
||||||
#else
|
#else
|
||||||
//std::cout << "Sleeping i=" << i << std::endl;
|
//std::cout << "Sleeping i=" << i << std::endl;
|
||||||
usleep( wait_time*1000 );
|
usleep( wait_time*1000 );
|
||||||
|
|
|
@ -187,6 +187,10 @@ inline std::string toString(const uint32 &val) { return toString("%u", val); }
|
||||||
inline std::string toString(const sint32 &val) { return toString("%d", val); }
|
inline std::string toString(const sint32 &val) { return toString("%d", val); }
|
||||||
inline std::string toString(const uint64 &val) { return toString("%"NL_I64"u", val); }
|
inline std::string toString(const uint64 &val) { return toString("%"NL_I64"u", val); }
|
||||||
inline std::string toString(const sint64 &val) { return toString("%"NL_I64"d", val); }
|
inline std::string toString(const sint64 &val) { return toString("%"NL_I64"d", val); }
|
||||||
|
|
||||||
|
#ifdef NL_COMP_GCC
|
||||||
|
# if GCC_VERSION == 40102
|
||||||
|
|
||||||
// error fix for size_t? gcc 4.1.2 requested this type instead of size_t ...
|
// error fix for size_t? gcc 4.1.2 requested this type instead of size_t ...
|
||||||
inline std::string toString(const long unsigned int &val)
|
inline std::string toString(const long unsigned int &val)
|
||||||
{
|
{
|
||||||
|
@ -194,10 +198,16 @@ inline std::string toString(const long unsigned int &val)
|
||||||
return toString((uint64)val);
|
return toString((uint64)val);
|
||||||
return toString((uint32)val);
|
return toString((uint32)val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (SIZEOF_SIZE_T) == 8
|
#if (SIZEOF_SIZE_T) == 8
|
||||||
inline std::string toString(const size_t &val) { return toString("%"NL_I64"u", val); }
|
inline std::string toString(const size_t &val) { return toString("%"NL_I64"u", val); }
|
||||||
//#else
|
#else
|
||||||
//inline std::string toString(const size_t &val) { return toString("%u", val); }
|
#ifdef NL_OS_MAC
|
||||||
|
inline std::string toString(const size_t &val) { return toString("%u", val); }
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
inline std::string toString(const float &val) { return toString("%f", val); }
|
inline std::string toString(const float &val) { return toString("%f", val); }
|
||||||
inline std::string toString(const double &val) { return toString("%lf", val); }
|
inline std::string toString(const double &val) { return toString("%lf", val); }
|
||||||
|
|
|
@ -40,8 +40,10 @@
|
||||||
# define FINAL_VERSION 0
|
# define FINAL_VERSION 0
|
||||||
#endif // FINAL_VERSION
|
#endif // FINAL_VERSION
|
||||||
|
|
||||||
// Operating systems definition
|
// This way we know about _HAS_TR1 and _STLPORT_VERSION
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
// Operating systems definition
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# define NL_OS_WINDOWS
|
# define NL_OS_WINDOWS
|
||||||
# define NL_LITTLE_ENDIAN
|
# define NL_LITTLE_ENDIAN
|
||||||
|
@ -51,7 +53,6 @@
|
||||||
# endif
|
# endif
|
||||||
# if _MSC_VER >= 1500
|
# if _MSC_VER >= 1500
|
||||||
# define NL_COMP_VC9
|
# define NL_COMP_VC9
|
||||||
# include <string> // This way we know about _HAS_TR1 :O
|
|
||||||
# ifndef _STLPORT_VERSION // STLport doesn't depend on MS STL features
|
# ifndef _STLPORT_VERSION // STLport doesn't depend on MS STL features
|
||||||
# if defined(_HAS_TR1) && (_HAS_TR1 + 0) // VC9 TR1 feature pack
|
# if defined(_HAS_TR1) && (_HAS_TR1 + 0) // VC9 TR1 feature pack
|
||||||
# define NL_ISO_STDTR1_AVAILABLE
|
# define NL_ISO_STDTR1_AVAILABLE
|
||||||
|
@ -88,7 +89,7 @@
|
||||||
# ifdef _WIN64
|
# ifdef _WIN64
|
||||||
# define NL_OS_WIN64
|
# define NL_OS_WIN64
|
||||||
# ifndef NL_NO_ASM
|
# ifndef NL_NO_ASM
|
||||||
// Windows 64bits platform SDK compilers doesn't support inline assemblers
|
// Windows 64bits platform SDK compilers doesn't support inline assembler
|
||||||
# define NL_NO_ASM
|
# define NL_NO_ASM
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
@ -131,10 +132,13 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// gcc 4.1+ provides std::tr1
|
// gcc 4.1+ provides std::tr1
|
||||||
#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 1))
|
#ifdef NL_COMP_GCC
|
||||||
|
# define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||||
|
# if GCC_VERSION > 40100
|
||||||
# define NL_ISO_STDTR1_AVAILABLE
|
# define NL_ISO_STDTR1_AVAILABLE
|
||||||
# define NL_ISO_STDTR1_HEADER(header) <tr1/header>
|
# define NL_ISO_STDTR1_HEADER(header) <tr1/header>
|
||||||
# endif
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
// Remove stupid Visual C++ warnings
|
// Remove stupid Visual C++ warnings
|
||||||
#ifdef NL_OS_WINDOWS
|
#ifdef NL_OS_WINDOWS
|
||||||
|
@ -261,22 +265,6 @@ typedef unsigned int uint; // at least 32bits (depend of processor)
|
||||||
|
|
||||||
#define NL_I64 "I64"
|
#define NL_I64 "I64"
|
||||||
|
|
||||||
#ifndef NL_ISO_STDTR1_AVAILABLE
|
|
||||||
# include <hash_map>
|
|
||||||
# include <hash_set>
|
|
||||||
# ifdef _STLP_HASH_MAP
|
|
||||||
# define CHashMap ::std::hash_map
|
|
||||||
# define CHashSet ::std::hash_set
|
|
||||||
# define CHashMultiMap ::std::hash_multimap
|
|
||||||
# elif defined(NL_COMP_VC7) || defined(NL_COMP_VC71) || defined(NL_COMP_VC8) || defined(NL_COMP_VC9) // VC7 through 9
|
|
||||||
# define CHashMap stdext::hash_map
|
|
||||||
# define CHashSet stdext::hash_set
|
|
||||||
# define CHashMultiMap stdext::hash_multimap
|
|
||||||
# else
|
|
||||||
# pragma error("You need to update your compiler")
|
|
||||||
# endif
|
|
||||||
#endif // NL_ISO_STDTR1_AVAILABLE
|
|
||||||
|
|
||||||
#elif defined (NL_OS_UNIX)
|
#elif defined (NL_OS_UNIX)
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -284,20 +272,45 @@ typedef unsigned int uint; // at least 32bits (depend of processor)
|
||||||
#include <climits>
|
#include <climits>
|
||||||
|
|
||||||
typedef int8_t sint8;
|
typedef int8_t sint8;
|
||||||
typedef u_int8_t uint8;
|
typedef uint8_t uint8;
|
||||||
typedef int16_t sint16;
|
typedef int16_t sint16;
|
||||||
typedef u_int16_t uint16;
|
typedef uint16_t uint16;
|
||||||
typedef int32_t sint32;
|
typedef int32_t sint32;
|
||||||
typedef u_int32_t uint32;
|
typedef uint32_t uint32;
|
||||||
typedef long long int sint64;
|
typedef int64_t sint64;
|
||||||
typedef unsigned long long int uint64;
|
typedef uint64_t uint64;
|
||||||
|
|
||||||
typedef int sint; // at least 32bits (depend of processor)
|
typedef int sint; // at least 32bits (depend of processor)
|
||||||
typedef unsigned int uint; // at least 32bits (depend of processor)
|
typedef unsigned int uint; // at least 32bits (depend of processor)
|
||||||
|
|
||||||
|
#if __SIZEOF_LONG__ == 8
|
||||||
|
# define NL_I64 "l"
|
||||||
|
#else
|
||||||
# define NL_I64 "ll"
|
# define NL_I64 "ll"
|
||||||
|
#endif // __SIZEOF_LONG__ == 8
|
||||||
|
|
||||||
#if defined(NL_COMP_GCC) && !defined(NL_ISO_STDTR1_AVAILABLE) // GCC4
|
#endif // NL_OS_UNIX
|
||||||
|
|
||||||
|
// CHashMap, CHashSet and CHashMultiMap definitions
|
||||||
|
#if defined(_STLPORT_VERSION) // STLport detected
|
||||||
|
# include <hash_map>
|
||||||
|
# include <hash_set>
|
||||||
|
# ifdef _STLP_HASH_MAP
|
||||||
|
# define CHashMap ::std::hash_map
|
||||||
|
# define CHashSet ::std::hash_set
|
||||||
|
# define CHashMultiMap ::std::hash_multimap
|
||||||
|
# endif // _STLP_HASH_MAP
|
||||||
|
#elif defined(NL_ISO_STDTR1_AVAILABLE) // use std::tr1 for CHash* classes, if available (gcc 4.1+ and VC9 with TR1 feature pack)
|
||||||
|
# include NL_ISO_STDTR1_HEADER(unordered_map)
|
||||||
|
# include NL_ISO_STDTR1_HEADER(unordered_set)
|
||||||
|
# define CHashMap std::tr1::unordered_map
|
||||||
|
# define CHashSet std::tr1::unordered_set
|
||||||
|
# define CHashMultiMap std::tr1::unordered_multimap
|
||||||
|
#elif defined(NL_COMP_VC7) || defined(NL_COMP_VC71) || defined(NL_COMP_VC8) || defined(NL_COMP_VC9) // VC7 through 9
|
||||||
|
# define CHashMap stdext::hash_map
|
||||||
|
# define CHashSet stdext::hash_set
|
||||||
|
# define CHashMultiMap stdext::hash_multimap
|
||||||
|
#elif defined(NL_COMP_GCC) // GCC4
|
||||||
# include <ext/hash_map>
|
# include <ext/hash_map>
|
||||||
# include <ext/hash_set>
|
# include <ext/hash_set>
|
||||||
# define CHashMap ::__gnu_cxx::hash_map
|
# define CHashMap ::__gnu_cxx::hash_map
|
||||||
|
@ -324,18 +337,9 @@ template<> struct hash<uint64>
|
||||||
|
|
||||||
} // END NAMESPACE __GNU_CXX
|
} // END NAMESPACE __GNU_CXX
|
||||||
|
|
||||||
#endif // NL_COMP_GCC && !NL_ISO_STDTR1_AVAILABLE
|
#else
|
||||||
|
# pragma error("You need to update your compiler")
|
||||||
#endif // NL_OS_UNIX
|
#endif // _STLPORT_VERSION
|
||||||
|
|
||||||
// use std::tr1 for CHash* classes, if available (gcc 4.1+ and VC9 with TR1 feature pack)
|
|
||||||
#ifdef NL_ISO_STDTR1_AVAILABLE
|
|
||||||
# include NL_ISO_STDTR1_HEADER(unordered_map)
|
|
||||||
# include NL_ISO_STDTR1_HEADER(unordered_set)
|
|
||||||
# define CHashMap std::tr1::unordered_map
|
|
||||||
# define CHashSet std::tr1::unordered_set
|
|
||||||
# define CHashMultiMap std::tr1::unordered_multimap
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \typedef ucchar
|
* \typedef ucchar
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
FILE(GLOB SRC *.cpp *.h ../../include/nel/3d/*.h)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB HEADERS ../../include/nel/3d/*.h)
|
||||||
|
|
||||||
SOURCE_GROUP(Traversals FILES
|
SOURCE_GROUP(Traversals FILES
|
||||||
anim_detail_trav.cpp
|
anim_detail_trav.cpp
|
||||||
|
@ -662,7 +663,7 @@ SOURCE_GROUP(Shadows FILES
|
||||||
shadow_poly_receiver.cpp
|
shadow_poly_receiver.cpp
|
||||||
../../include/nel/3d/shadow_poly_receiver.h)
|
../../include/nel/3d/shadow_poly_receiver.h)
|
||||||
|
|
||||||
NL_TARGET_LIB(nel3d ${SRC})
|
NL_TARGET_LIB(nel3d ${HEADERS} ${SRC})
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
|
|
@ -72,9 +72,9 @@ void CHLSTextureBank::addTextureInstance(const std::string &name, uint32 color
|
||||||
uint32 colSize= (uint32)cols.size()*sizeof(CHLSColorDelta);
|
uint32 colSize= (uint32)cols.size()*sizeof(CHLSColorDelta);
|
||||||
_TextureInstanceData.resize(_TextureInstanceData.size() + nameSize + colSize);
|
_TextureInstanceData.resize(_TextureInstanceData.size() + nameSize + colSize);
|
||||||
// copy name
|
// copy name
|
||||||
memcpy(&_TextureInstanceData[textInst._DataIndex], nameLwr.c_str(), nameSize);
|
if (nameSize != 0) memcpy(&_TextureInstanceData[textInst._DataIndex], nameLwr.c_str(), nameSize);
|
||||||
// copy cols
|
// copy cols
|
||||||
memcpy(&_TextureInstanceData[textInst._DataIndex+nameSize], &cols[0], colSize);
|
if (colSize != 0) memcpy(&_TextureInstanceData[textInst._DataIndex+nameSize], &cols[0], colSize);
|
||||||
|
|
||||||
// add the instance.
|
// add the instance.
|
||||||
_TextureInstances.push_back(textInst);
|
_TextureInstances.push_back(textInst);
|
||||||
|
|
|
@ -1973,7 +1973,7 @@ void CPSConstraintMesh::newElement(const CPSEmitterInfo &info)
|
||||||
NL_PS_FUNC(CPSConstraintMesh_newElement)
|
NL_PS_FUNC(CPSConstraintMesh_newElement)
|
||||||
newSizeElement(info);
|
newSizeElement(info);
|
||||||
newPlaneBasisElement(info);
|
newPlaneBasisElement(info);
|
||||||
// TODO : avoid code cuplication with CPSFace ...
|
// TODO : avoid code duplication with CPSFace ...
|
||||||
const uint32 nbConf = (uint32)_PrecompBasis.size();
|
const uint32 nbConf = (uint32)_PrecompBasis.size();
|
||||||
if (nbConf) // do we use precomputed basis ?
|
if (nbConf) // do we use precomputed basis ?
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FILE(GLOB SRC *.cpp ../../include/nel/cegui/*.h)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB HEADERS ../../include/nel/cegui/*.h)
|
||||||
|
|
||||||
ADD_LIBRARY(nelceguirenderer SHARED ${SRC} nelceguirenderer.def)
|
ADD_LIBRARY(nelceguirenderer SHARED ${HEADERS} ${SRC} nelceguirenderer.def)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INC} ${CEGUI_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INC} ${CEGUI_INCLUDE_DIRS})
|
||||||
TARGET_LINK_LIBRARIES(nelceguirenderer nelmisc nel3d ${CEGUI_LIBRARY})
|
TARGET_LINK_LIBRARIES(nelceguirenderer nelmisc nel3d ${CEGUI_LIBRARY})
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
FILE(GLOB SRC *.cpp)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
FILE(GLOB PRIV_H *.h)
|
FILE(GLOB HEADERS ../../include/nel/georges/*.h)
|
||||||
FILE(GLOB PUB_H ../../include/nel/georges/*.h)
|
|
||||||
|
|
||||||
SOURCE_GROUP(headers FILES ${PRIV_H} ${PUB_H})
|
# SOURCE_GROUP(headers FILES ${HEADERS})
|
||||||
|
|
||||||
NL_TARGET_LIB(nelgeorges ${SRC})
|
NL_TARGET_LIB(nelgeorges ${HEADERS} ${SRC})
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FILE(GLOB SRC *.cpp *.h)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB HEADERS ../../include/nel/ligo/*.h)
|
||||||
|
|
||||||
NL_TARGET_LIB(nelligo ${SRC})
|
NL_TARGET_LIB(nelligo ${HEADERS} ${SRC})
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FILE(GLOB SRC *.cpp *.h)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB HEADERS ../../include/nel/logic/*.h)
|
||||||
|
|
||||||
NL_TARGET_LIB(nellogic ${SRC})
|
NL_TARGET_LIB(nellogic ${HEADERS} ${SRC})
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FILE(GLOB SRC *.cpp *.h config_file/*.cpp config_file/*.h)
|
FILE(GLOB SRC *.cpp *.h config_file/*.cpp config_file/*.h)
|
||||||
|
FILE(GLOB HEADERS ../../include/nel/misc/*.h)
|
||||||
|
|
||||||
NL_TARGET_LIB(nelmisc ${SRC})
|
NL_TARGET_LIB(nelmisc ${HEADERS} ${SRC})
|
||||||
|
|
||||||
IF(WITH_GTK)
|
IF(WITH_GTK)
|
||||||
IF(GTK2_FOUND)
|
IF(GTK2_FOUND)
|
||||||
|
@ -41,6 +42,7 @@ INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${PNG_INCLUDE_DIR} config_file)
|
||||||
TARGET_LINK_LIBRARIES(nelmisc ${CMAKE_THREAD_LIBS_INIT} ${LIBXML2_LIBRARIES})
|
TARGET_LINK_LIBRARIES(nelmisc ${CMAKE_THREAD_LIBS_INIT} ${LIBXML2_LIBRARIES})
|
||||||
SET_TARGET_PROPERTIES(nelmisc PROPERTIES LINK_INTERFACE_LIBRARIES "")
|
SET_TARGET_PROPERTIES(nelmisc PROPERTIES LINK_INTERFACE_LIBRARIES "")
|
||||||
NL_DEFAULT_PROPS(nelmisc "NeL, Library: NeL Misc")
|
NL_DEFAULT_PROPS(nelmisc "NeL, Library: NeL Misc")
|
||||||
|
NL_ADD_RUNTIME_FLAGS(nelmisc)
|
||||||
|
|
||||||
NL_ADD_LIB_SUFFIX(nelmisc)
|
NL_ADD_LIB_SUFFIX(nelmisc)
|
||||||
|
|
||||||
|
|
|
@ -402,6 +402,8 @@ FILE* CBigFile::getFile (const std::string &sFileName, uint32 &rFileSize,
|
||||||
if(handle.File== NULL)
|
if(handle.File== NULL)
|
||||||
{
|
{
|
||||||
handle.File = fopen (bnp->BigFileName.c_str(), "rb");
|
handle.File = fopen (bnp->BigFileName.c_str(), "rb");
|
||||||
|
if (handle.File == NULL)
|
||||||
|
nlwarning ("bnp: can't fopen big file '%s' error %d '%s'", bnp->BigFileName.c_str(), errno, strerror(errno));
|
||||||
if (handle.File == NULL)
|
if (handle.File == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
FILE(GLOB SRC "*.cpp")
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB HEADERS ../../include/nel/net/*.h)
|
||||||
FILE(GLOB NET_MANAGER "net_manager.*")
|
FILE(GLOB NET_MANAGER "net_manager.*")
|
||||||
LIST(REMOVE_ITEM SRC ${NET_MANAGER})
|
LIST(REMOVE_ITEM SRC ${NET_MANAGER})
|
||||||
|
|
||||||
NL_TARGET_LIB(nelnet ${SRC})
|
NL_TARGET_LIB(nelnet ${HEADERS} ${SRC})
|
||||||
|
|
||||||
IF(WITH_GTK)
|
IF(WITH_GTK)
|
||||||
IF(GTK2_FOUND)
|
IF(GTK2_FOUND)
|
||||||
|
|
|
@ -2326,9 +2326,9 @@ namespace NLNET
|
||||||
// recall the dump for the module class
|
// recall the dump for the module class
|
||||||
NLMISC_CLASS_COMMAND_CALL_BASE(CModuleBase, dump);
|
NLMISC_CLASS_COMMAND_CALL_BASE(CModuleBase, dump);
|
||||||
|
|
||||||
log.displayNL("------------------------------");
|
log.displayNL("-----------------------------");
|
||||||
log.displayNL("Dumping gateway information :");
|
log.displayNL("Dumping gateway information :");
|
||||||
log.displayNL("------------------------------");
|
log.displayNL("-----------------------------");
|
||||||
|
|
||||||
log.displayNL("The gateway has %u locally plugged module :", _PluggedModules.getAToBMap().size());
|
log.displayNL("The gateway has %u locally plugged module :", _PluggedModules.getAToBMap().size());
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FILE(GLOB SRC *.cpp *.h)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB HEADERS ../../include/nel/pacs/*.h)
|
||||||
|
|
||||||
NL_TARGET_LIB(nelpacs ${SRC})
|
NL_TARGET_LIB(nelpacs ${HEADERS} ${SRC})
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FILE(GLOB SRC *.cpp *.h)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB HEADERS ../../include/nel/sound/*.h)
|
||||||
|
|
||||||
NL_TARGET_LIB(nelsound ${SRC})
|
NL_TARGET_LIB(nelsound ${HEADERS} ${SRC})
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
FILE(GLOB SRC *.cpp *.h)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB HEADERS ../../../include/nel/sound/driver/*.h)
|
||||||
|
|
||||||
NL_TARGET_LIB(nelsnd_lowlevel ${SRC})
|
NL_TARGET_LIB(nelsnd_lowlevel ${HEADERS} ${SRC})
|
||||||
|
|
||||||
IF(WITH_STATIC)
|
IF(WITH_STATIC)
|
||||||
# Add libogg dependency only if target is static because to libvorbisfile
|
# Add libogg dependency only if target is static because to libvorbisfile
|
||||||
|
|
|
@ -25,5 +25,6 @@
|
||||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
||||||
|
|
||||||
#define NOMINMAX
|
#define NOMINMAX
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -38,7 +38,7 @@ using namespace std;
|
||||||
|
|
||||||
|
|
||||||
string DivideBy2Dir= "/d4/";
|
string DivideBy2Dir= "/d4/";
|
||||||
string HlsInfoDir= "hlsInfo/";
|
//string HlsInfoDir= "hlsInfo/";
|
||||||
|
|
||||||
|
|
||||||
// ========================================================================================================
|
// ========================================================================================================
|
||||||
|
@ -57,6 +57,7 @@ struct CBuildInfo
|
||||||
{
|
{
|
||||||
std::string InputPath;
|
std::string InputPath;
|
||||||
std::string OutputPath;
|
std::string OutputPath;
|
||||||
|
std::string HlsInfoPath;
|
||||||
std::string CachePath;
|
std::string CachePath;
|
||||||
std::vector<std::string> BitmapExtensions; // the supported extension for bitmaps
|
std::vector<std::string> BitmapExtensions; // the supported extension for bitmaps
|
||||||
std::string OutputFormat; // png or tga
|
std::string OutputFormat; // png or tga
|
||||||
|
@ -277,6 +278,16 @@ int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// hls info path
|
||||||
|
try
|
||||||
|
{
|
||||||
|
bi.HlsInfoPath = NLMISC::CPath::standardizePath(cf.getVar("hls_info_path").asString());
|
||||||
|
}
|
||||||
|
catch (NLMISC::EUnknownVar &)
|
||||||
|
{
|
||||||
|
bi.HlsInfoPath = "hlsInfo/";
|
||||||
|
}
|
||||||
|
|
||||||
/// output
|
/// output
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -533,7 +544,7 @@ static bool CheckIfNeedRebuildColoredVersionForOneBitmap(const CBuildInfo &bi, c
|
||||||
}
|
}
|
||||||
|
|
||||||
// get hls info version that is in the cache. if not possible, must rebuild
|
// get hls info version that is in the cache. if not possible, must rebuild
|
||||||
std::string outputHLSInfo = HlsInfoDir + fileName + ".hlsinfo";
|
std::string outputHLSInfo = bi.HlsInfoPath + fileName + ".hlsinfo";
|
||||||
std::string cacheHLSInfo = bi.CachePath + fileName + ".hlsinfo";
|
std::string cacheHLSInfo = bi.CachePath + fileName + ".hlsinfo";
|
||||||
if (!NLMISC::CFile::fileExists(cacheHLSInfo.c_str()) )
|
if (!NLMISC::CFile::fileExists(cacheHLSInfo.c_str()) )
|
||||||
return true;
|
return true;
|
||||||
|
@ -843,13 +854,13 @@ static void BuildColoredVersionForOneBitmap(const CBuildInfo &bi, const std::str
|
||||||
|
|
||||||
// **** save the TMP hlsInfo
|
// **** save the TMP hlsInfo
|
||||||
NLMISC::COFile os;
|
NLMISC::COFile os;
|
||||||
if (os.open(HlsInfoDir + fileName + ".hlsinfo"))
|
if (os.open(bi.HlsInfoPath + fileName + ".hlsinfo"))
|
||||||
{
|
{
|
||||||
os.serial(hlsInfo);
|
os.serial(hlsInfo);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nlwarning(("Couldn't write " + HlsInfoDir + fileName + ".hlsinfo").c_str());
|
nlwarning(("Couldn't write " + bi.HlsInfoPath + fileName + ".hlsinfo").c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,11 +36,18 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
{
|
{
|
||||||
// Result to return
|
// Result to return
|
||||||
bool bRet = false;
|
bool bRet = false;
|
||||||
char tempName[L_tmpnam];
|
char tempFileName[MAX_PATH] = { 0 };
|
||||||
tmpnam(tempName);
|
char tempPathBuffer[MAX_PATH] = { 0 };
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
DWORD dwRetVal = GetTempPathA(MAX_PATH, tempPathBuffer);
|
||||||
|
if (dwRetVal > MAX_PATH || (dwRetVal == 0))
|
||||||
|
nlerror("GetTempPath failed");
|
||||||
|
UINT uRetVal = GetTempFileNameA(tempPathBuffer, TEXT("_nel_export_mesh_"), 0, tempFileName);
|
||||||
|
if (uRetVal == 0)
|
||||||
|
nlerror("GetTempFileName failed");
|
||||||
|
|
||||||
// Eval the object a time
|
// Eval the object a time
|
||||||
ObjectState os = node.EvalWorldState(time);
|
ObjectState os = node.EvalWorldState(time);
|
||||||
|
|
||||||
|
@ -48,7 +55,7 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
if (os.obj)
|
if (os.obj)
|
||||||
{
|
{
|
||||||
// Skeleton shape
|
// Skeleton shape
|
||||||
CSmartPtr<CSkeletonShape> skeletonShape = NULL;
|
CSkeletonShape * skeletonShape = NULL;
|
||||||
TInodePtrInt *mapIdPtr=NULL;
|
TInodePtrInt *mapIdPtr=NULL;
|
||||||
TInodePtrInt mapId;
|
TInodePtrInt mapId;
|
||||||
|
|
||||||
|
@ -69,7 +76,7 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
CExportNel::addSkeletonBindPos (node, boneBindPos);
|
CExportNel::addSkeletonBindPos (node, boneBindPos);
|
||||||
|
|
||||||
// Build the skeleton based on the bind pos information
|
// Build the skeleton based on the bind pos information
|
||||||
_ExportNel->buildSkeletonShape(*skeletonShape.getPtr(), *skeletonRoot, &boneBindPos, mapId, time);
|
_ExportNel->buildSkeletonShape(*skeletonShape, *skeletonRoot, &boneBindPos, mapId, time);
|
||||||
|
|
||||||
// Set the pointer to not NULL
|
// Set the pointer to not NULL
|
||||||
mapIdPtr=&mapId;
|
mapIdPtr=&mapId;
|
||||||
|
@ -83,16 +90,16 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
if (InfoLog)
|
if (InfoLog)
|
||||||
InfoLog->display("Beg buildShape %s \n", node.GetName());
|
InfoLog->display("Beg buildShape %s \n", node.GetName());
|
||||||
// Export in mesh format
|
// Export in mesh format
|
||||||
CSmartPtr<IShape> pShape = _ExportNel->buildShape(node, time, mapIdPtr, true);
|
IShape *pShape = _ExportNel->buildShape(node, time, mapIdPtr, true);
|
||||||
if (InfoLog)
|
if (InfoLog)
|
||||||
InfoLog->display("End buildShape in %d ms \n", timeGetTime()-t);
|
InfoLog->display("End buildShape in %d ms \n", timeGetTime()-t);
|
||||||
|
|
||||||
// Conversion success ?
|
// Conversion success ?
|
||||||
if (pShape.getPtr())
|
if (pShape)
|
||||||
{
|
{
|
||||||
// Open a file
|
// Open a file
|
||||||
COFile file;
|
COFile file;
|
||||||
if (file.open(tempName))
|
if (file.open(tempFileName))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -102,6 +109,9 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
// Serial the shape
|
// Serial the shape
|
||||||
shapeStream.serial(file);
|
shapeStream.serial(file);
|
||||||
|
|
||||||
|
// Close the file
|
||||||
|
file.close();
|
||||||
|
|
||||||
// All is good
|
// All is good
|
||||||
bRet = true;
|
bRet = true;
|
||||||
}
|
}
|
||||||
|
@ -116,12 +126,12 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
remove(tempName);
|
remove(tempFileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nlwarning("Failed to create file %s", tempName);
|
nlwarning("Failed to create file %s", tempFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the pointer
|
// Delete the pointer
|
||||||
|
@ -130,15 +140,47 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
{
|
{
|
||||||
bool tempBRet = bRet;
|
bool tempBRet = bRet;
|
||||||
bRet = false;
|
bRet = false;
|
||||||
pShape = NULL;
|
// delete pShape; // FIXME: there is a delete bug with CMeshMultiLod exported from max!!!
|
||||||
bRet = tempBRet;
|
bRet = tempBRet;
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
nlwarning("Failed to delete pShape pointer! Something might be wrong.");
|
nlwarning("Failed to delete pShape pointer! Something might be wrong.");
|
||||||
remove(tempName);
|
remove(tempFileName);
|
||||||
bRet = false;
|
bRet = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Verify the file
|
||||||
|
nldebug("Verify exported shape file");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
bool tempBRet = bRet;
|
||||||
|
bRet = false;
|
||||||
|
CIFile vf;
|
||||||
|
if (vf.open(tempFileName))
|
||||||
|
{
|
||||||
|
nldebug("File opened, size: %u", vf.getFileSize());
|
||||||
|
CShapeStream s;
|
||||||
|
s.serial(vf);
|
||||||
|
nldebug("Shape serialized");
|
||||||
|
vf.close();
|
||||||
|
nldebug("File closed");
|
||||||
|
delete s.getShapePointer();
|
||||||
|
nldebug("Shape deleted");
|
||||||
|
bRet = tempBRet;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nlwarning("Failed to open file: %s", tempFileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
nlwarning("Failed to verify shape. Must crash now.");
|
||||||
|
remove(tempFileName);
|
||||||
|
bRet = false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -158,8 +200,8 @@ bool CNelExport::exportMesh (const char *sPath, INode& node, TimeValue time)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
CFile::moveFile(sPath, tempName);
|
CFile::moveFile(sPath, tempFileName);
|
||||||
nlinfo("MOVE %s -> %s", tempName, sPath);
|
nlinfo("MOVE %s -> %s", tempFileName, sPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
return bRet;
|
return bRet;
|
||||||
|
|
|
@ -55,6 +55,9 @@ def_visible_primitive ( mirror_physique, "NelMirrorPhysique" );
|
||||||
def_visible_primitive ( get_file_modification_date, "NeLGetFileModificationDate" );
|
def_visible_primitive ( get_file_modification_date, "NeLGetFileModificationDate" );
|
||||||
def_visible_primitive ( set_file_modification_date, "NeLSetFileModificationDate" );
|
def_visible_primitive ( set_file_modification_date, "NeLSetFileModificationDate" );
|
||||||
|
|
||||||
|
def_visible_primitive ( force_quit_on_msg_displayer, "NelForceQuitOnMsgDisplayer");
|
||||||
|
def_visible_primitive ( force_quit_right_now, "NelForceQuitRightNow");
|
||||||
|
|
||||||
char *sExportShapeErrorMsg = "NeLExportShape [Object] [Filename.shape]";
|
char *sExportShapeErrorMsg = "NeLExportShape [Object] [Filename.shape]";
|
||||||
char *sExportShapeExErrorMsg = "NeLExportShapeEx [Object] [Filename.shape] [bShadow] [bExportLighting] [sLightmapPath] [nLightingLimit] [fLumelSize] [nOverSampling] [bExcludeNonSelected] [bShowLumel]";
|
char *sExportShapeExErrorMsg = "NeLExportShapeEx [Object] [Filename.shape] [bShadow] [bExportLighting] [sLightmapPath] [nLightingLimit] [fLumelSize] [nOverSampling] [bExcludeNonSelected] [bShowLumel]";
|
||||||
char *sExportAnimationErrorMsg = "NelExportAnimation [node array] [Filename.anim] [bool_scene_animation]";
|
char *sExportAnimationErrorMsg = "NelExportAnimation [node array] [Filename.anim] [bool_scene_animation]";
|
||||||
|
@ -933,6 +936,55 @@ Value* set_file_modification_date_cf (Value** arg_list, int count)
|
||||||
return &false_value;
|
return &false_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class CSuicideMsgBoxDisplayer : public CMsgBoxDisplayer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CSuicideMsgBoxDisplayer (const char *displayerName = "") : CMsgBoxDisplayer(displayerName) { }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/// Put the string into the file.
|
||||||
|
virtual void doDisplay( const CLog::TDisplayInfo& args, const char *message )
|
||||||
|
{
|
||||||
|
DWORD ec = 0;
|
||||||
|
HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, 0, GetCurrentProcessId());
|
||||||
|
GetExitCodeProcess(h, &ec);
|
||||||
|
TerminateProcess(h, ec);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Value* force_quit_on_msg_displayer_cf(Value** arg_list, int count)
|
||||||
|
{
|
||||||
|
nlwarning("Enable force quit on NeL report msg displayer");
|
||||||
|
// disable the Windows popup telling that the application aborted and disable the dr watson report.
|
||||||
|
_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
|
||||||
|
putenv("NEL_IGNORE_ASSERT=1");
|
||||||
|
if (NLMISC::DefaultMsgBoxDisplayer || INelContext::getInstance().getDefaultMsgBoxDisplayer())
|
||||||
|
{
|
||||||
|
if (!NLMISC::DefaultMsgBoxDisplayer)
|
||||||
|
NLMISC::DefaultMsgBoxDisplayer = INelContext::getInstance().getDefaultMsgBoxDisplayer();
|
||||||
|
nldebug("Disable NeL report msg displayer");
|
||||||
|
INelContext::getInstance().getAssertLog()->removeDisplayer(NLMISC::DefaultMsgBoxDisplayer);
|
||||||
|
INelContext::getInstance().getErrorLog()->removeDisplayer(NLMISC::DefaultMsgBoxDisplayer);
|
||||||
|
// TODO: Delete original NLMISC::DefaultMsgBoxDisplayer?
|
||||||
|
}
|
||||||
|
NLMISC::DefaultMsgBoxDisplayer = new CSuicideMsgBoxDisplayer("FORCEQUIT_MDB");
|
||||||
|
INelContext::getInstance().setDefaultMsgBoxDisplayer(NLMISC::DefaultMsgBoxDisplayer);
|
||||||
|
INelContext::getInstance().getAssertLog()->addDisplayer(NLMISC::DefaultMsgBoxDisplayer);
|
||||||
|
INelContext::getInstance().getErrorLog()->addDisplayer(NLMISC::DefaultMsgBoxDisplayer);
|
||||||
|
return &true_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
Value* force_quit_right_now_cf(Value** arg_list, int count)
|
||||||
|
{
|
||||||
|
// because quitMAX can fail
|
||||||
|
nlwarning("Force quit");
|
||||||
|
DWORD ec = 0;
|
||||||
|
HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, 0, GetCurrentProcessId());
|
||||||
|
GetExitCodeProcess(h, &ec);
|
||||||
|
TerminateProcess(h, ec);
|
||||||
|
return &true_value;
|
||||||
|
}
|
||||||
|
|
||||||
/*===========================================================================*\
|
/*===========================================================================*\
|
||||||
| MAXScript Plugin Initialization
|
| MAXScript Plugin Initialization
|
||||||
\*===========================================================================*/
|
\*===========================================================================*/
|
||||||
|
|
|
@ -131,7 +131,7 @@ static void copyMultiLodMeshBaseLod0Infos(CMeshBase::CMeshBaseBuild &dst, const
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
// Export a mesh
|
// Export a mesh
|
||||||
NLMISC::CSmartPtr<NL3D::IShape> CExportNel::buildShape (INode& node, TimeValue time, const TInodePtrInt *nodeMap, bool buildLods)
|
NL3D::IShape *CExportNel::buildShape (INode& node, TimeValue time, const TInodePtrInt *nodeMap, bool buildLods)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Is this a multi lod object ?
|
// Is this a multi lod object ?
|
||||||
|
@ -139,7 +139,7 @@ NLMISC::CSmartPtr<NL3D::IShape> CExportNel::buildShape (INode& node, TimeValue t
|
||||||
|
|
||||||
// Here, we must check what kind of node we can build with this mesh.
|
// Here, we must check what kind of node we can build with this mesh.
|
||||||
// For the time, just Triobj is supported.
|
// For the time, just Triobj is supported.
|
||||||
CSmartPtr<IShape> retShape = NULL;
|
NL3D::IShape *retShape = NULL;
|
||||||
|
|
||||||
// If skinning, disable skin modifier
|
// If skinning, disable skin modifier
|
||||||
if (nodeMap)
|
if (nodeMap)
|
||||||
|
@ -206,7 +206,7 @@ NLMISC::CSmartPtr<NL3D::IShape> CExportNel::buildShape (INode& node, TimeValue t
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Mesh base ?
|
// Mesh base ?
|
||||||
CSmartPtr<CMeshBase> meshBase = NULL;
|
CMeshBase *meshBase = NULL;
|
||||||
|
|
||||||
// Get the node matrix
|
// Get the node matrix
|
||||||
Matrix3 nodeMatrixMax;
|
Matrix3 nodeMatrixMax;
|
||||||
|
@ -317,8 +317,7 @@ NLMISC::CSmartPtr<NL3D::IShape> CExportNel::buildShape (INode& node, TimeValue t
|
||||||
|
|
||||||
|
|
||||||
// Make a CMeshMultiLod mesh object
|
// Make a CMeshMultiLod mesh object
|
||||||
CMeshMultiLod *multiMesh = new CMeshMultiLod;
|
CMeshMultiLod *multiMesh = new CMeshMultiLod; // FIXME: there is a delete bug with CMeshMultiLod exported from max!!!
|
||||||
++multiMesh->crefs; // hack
|
|
||||||
|
|
||||||
// Build it
|
// Build it
|
||||||
multiMesh->build(multiLodBuild);
|
multiMesh->build(multiLodBuild);
|
||||||
|
@ -461,7 +460,7 @@ NLMISC::CSmartPtr<NL3D::IShape> CExportNel::buildShape (INode& node, TimeValue t
|
||||||
enableSkinModifier (node, true);
|
enableSkinModifier (node, true);
|
||||||
|
|
||||||
// Set the dist max for this shape
|
// Set the dist max for this shape
|
||||||
if (retShape.getPtr() && !multiLodObject && buildLods)
|
if (retShape && !multiLodObject && buildLods)
|
||||||
{
|
{
|
||||||
// Get the dist max for this node
|
// Get the dist max for this node
|
||||||
float distmax = getScriptAppData (&node, NEL3D_APPDATA_LOD_DIST_MAX, NEL3D_APPDATA_LOD_DIST_MAX_DEFAULT);
|
float distmax = getScriptAppData (&node, NEL3D_APPDATA_LOD_DIST_MAX, NEL3D_APPDATA_LOD_DIST_MAX_DEFAULT);
|
||||||
|
|
|
@ -292,7 +292,7 @@ public:
|
||||||
*
|
*
|
||||||
* skeletonShape must be NULL if no bones.
|
* skeletonShape must be NULL if no bones.
|
||||||
*/
|
*/
|
||||||
NLMISC::CSmartPtr<NL3D::IShape> buildShape (INode& node, TimeValue time, const TInodePtrInt *nodeMap,
|
NL3D::IShape* buildShape (INode& node, TimeValue time, const TInodePtrInt *nodeMap,
|
||||||
bool buildLods);
|
bool buildLods);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -31,9 +31,105 @@ if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
|
try:
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
|
except ImportError:
|
||||||
|
printLog(log, "*** FIRST RUN ***")
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
|
try:
|
||||||
|
BuildQuality
|
||||||
|
except NameError:
|
||||||
|
BuildQuality = 1
|
||||||
|
try:
|
||||||
|
ToolDirectories
|
||||||
|
except NameError:
|
||||||
|
ToolDirectories = [ 'R:/code/nel', 'R:/code/ryzom/tools' ]
|
||||||
|
try:
|
||||||
|
ToolSuffix
|
||||||
|
except NameError:
|
||||||
|
ToolSuffix = "_r.exe"
|
||||||
|
try:
|
||||||
|
ScriptDirectory
|
||||||
|
except NameError:
|
||||||
|
ScriptDirectory = "R:/code/nel/tools/build_gamedata"
|
||||||
|
try:
|
||||||
|
WorkspaceDirectory
|
||||||
|
except NameError:
|
||||||
|
WorkspaceDirectory = "R:/code/ryzom/tools/build_gamedata/workspace"
|
||||||
|
try:
|
||||||
|
DatabaseDirectory
|
||||||
|
except NameError:
|
||||||
|
DatabaseDirectory = "W:/database"
|
||||||
|
try:
|
||||||
|
ExportBuildDirectory
|
||||||
|
except NameError:
|
||||||
|
ExportBuildDirectory = "W:/export"
|
||||||
|
try:
|
||||||
|
InstallDirectory
|
||||||
|
except NameError:
|
||||||
|
InstallDirectory = "W:/install"
|
||||||
|
try:
|
||||||
|
DataShardDirectory
|
||||||
|
except NameError:
|
||||||
|
DataShardDirectory = "R:/code/ryzom/server/data_shard"
|
||||||
|
try:
|
||||||
|
ClientDevDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientDevDirectory = "W:/client_dev"
|
||||||
|
try:
|
||||||
|
ClientPatchDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientPatchDirectory = "W:/client_patch"
|
||||||
|
try:
|
||||||
|
ClientInstallDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientInstallDirectory = "W:/client_install"
|
||||||
|
try:
|
||||||
|
LeveldesignDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignDirectory = "L:/leveldesign"
|
||||||
|
try:
|
||||||
|
LeveldesignDfnDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignDfnDirectory = "L:/leveldesign/dfn"
|
||||||
|
try:
|
||||||
|
LeveldesignWorldDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignWorldDirectory = "L:/leveldesign/world"
|
||||||
|
try:
|
||||||
|
PrimitivesDirectory
|
||||||
|
except NameError:
|
||||||
|
PrimitivesDirectory = "L:/primitives"
|
||||||
|
try:
|
||||||
|
GamedevDirectory
|
||||||
|
except NameError:
|
||||||
|
GamedevDirectory = "R:/code/ryzom/client/data/gamedev"
|
||||||
|
try:
|
||||||
|
DataCommonDirectory
|
||||||
|
except NameError:
|
||||||
|
DataCommonDirectory = "R:/code/ryzom/common/data_common"
|
||||||
|
try:
|
||||||
|
WindowsExeDllCfgDirectories
|
||||||
|
except NameError:
|
||||||
|
WindowsExeDllCfgDirectories = [ 'C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/redist/x86', 'D:/source/external_local/bin/x86', 'D:/source/external_shared/bin/x86', 'R:/code/nel/lib', 'R:/code/ryzom/bin', 'R:/code/ryzom/client', 'R:/code/ryzom/tools/client/client_config/bin' ]
|
||||||
|
try:
|
||||||
|
MaxAvailable
|
||||||
|
except NameError:
|
||||||
|
MaxAvailable = 1
|
||||||
|
try:
|
||||||
|
MaxDirectory
|
||||||
|
except NameError:
|
||||||
|
MaxDirectory = "C:/Program Files (x86)/Autodesk/3ds Max 2010"
|
||||||
|
try:
|
||||||
|
MaxUserDirectory
|
||||||
|
except NameError:
|
||||||
|
MaxUserDirectory = "C:/Users/Kaetemi/AppData/Local/Autodesk/3dsMax/2010 - 32bit/enu"
|
||||||
|
try:
|
||||||
|
MaxExecutable
|
||||||
|
except NameError:
|
||||||
|
MaxExecutable = "3dsmax.exe"
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup build site")
|
printLog(log, "--- Setup build site")
|
||||||
|
@ -52,10 +148,24 @@ ScriptDirectory = askVar(log, "Script Directory", os.getcwd().replace("\\", "/")
|
||||||
WorkspaceDirectory = askVar(log, "Workspace Directory", WorkspaceDirectory).replace("\\", "/")
|
WorkspaceDirectory = askVar(log, "Workspace Directory", WorkspaceDirectory).replace("\\", "/")
|
||||||
DatabaseDirectory = askVar(log, "Database Directory", DatabaseDirectory).replace("\\", "/")
|
DatabaseDirectory = askVar(log, "Database Directory", DatabaseDirectory).replace("\\", "/")
|
||||||
ExportBuildDirectory = askVar(log, "Export Build Directory", ExportBuildDirectory).replace("\\", "/")
|
ExportBuildDirectory = askVar(log, "Export Build Directory", ExportBuildDirectory).replace("\\", "/")
|
||||||
ClientDataDirectory = askVar(log, "Client Data Directory", ClientDataDirectory).replace("\\", "/")
|
InstallDirectory = askVar(log, "Install Directory", InstallDirectory).replace("\\", "/")
|
||||||
|
DataShardDirectory = askVar(log, "Data Shard Directory", DataShardDirectory).replace("\\", "/")
|
||||||
|
ClientDevDirectory = askVar(log, "Client Dev Directory", ClientDevDirectory).replace("\\", "/")
|
||||||
|
ClientPatchDirectory = askVar(log, "Client Patch Directory", ClientPatchDirectory).replace("\\", "/")
|
||||||
|
ClientInstallDirectory = askVar(log, "Client Install Directory", ClientInstallDirectory).replace("\\", "/")
|
||||||
LeveldesignDirectory = askVar(log, "Leveldesign Directory", LeveldesignDirectory).replace("\\", "/")
|
LeveldesignDirectory = askVar(log, "Leveldesign Directory", LeveldesignDirectory).replace("\\", "/")
|
||||||
LeveldesignDfnDirectory = askVar(log, "Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/")
|
LeveldesignDfnDirectory = askVar(log, "Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/")
|
||||||
LeveldesignWorldDirectory = askVar(log, "Leveldesign World Directory", LeveldesignWorldDirectory).replace("\\", "/")
|
LeveldesignWorldDirectory = askVar(log, "Leveldesign World Directory", LeveldesignWorldDirectory).replace("\\", "/")
|
||||||
|
PrimitivesDirectory = askVar(log, "Primitives Directory", PrimitivesDirectory).replace("\\", "/")
|
||||||
|
GamedevDirectory = askVar(log, "Gamedev Directory", GamedevDirectory).replace("\\", "/")
|
||||||
|
DataCommonDirectory = askVar(log, "Data Common Directory", DataCommonDirectory).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[0] = askVar(log, "Primary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[0]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[1] = askVar(log, "Secondary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[1]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[2] = askVar(log, "Tertiary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[2]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[3] = askVar(log, "Quaternary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[3]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[4] = askVar(log, "Quinary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[4]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[5] = askVar(log, "Senary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[5]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[6] = askVar(log, "Septenary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[6]).replace("\\", "/")
|
||||||
MaxAvailable = int(askVar(log, "3dsMax Available", str(MaxAvailable)))
|
MaxAvailable = int(askVar(log, "3dsMax Available", str(MaxAvailable)))
|
||||||
if MaxAvailable:
|
if MaxAvailable:
|
||||||
MaxDirectory = askVar(log, "3dsMax Directory", MaxDirectory).replace("\\", "/")
|
MaxDirectory = askVar(log, "3dsMax Directory", MaxDirectory).replace("\\", "/")
|
||||||
|
@ -111,8 +221,12 @@ sf.write("# Data build directories\n")
|
||||||
sf.write("DatabaseDirectory = \"" + str(DatabaseDirectory) + "\"\n")
|
sf.write("DatabaseDirectory = \"" + str(DatabaseDirectory) + "\"\n")
|
||||||
sf.write("ExportBuildDirectory = \"" + str(ExportBuildDirectory) + "\"\n")
|
sf.write("ExportBuildDirectory = \"" + str(ExportBuildDirectory) + "\"\n")
|
||||||
sf.write("\n")
|
sf.write("\n")
|
||||||
sf.write("# Client data install directory (client/data)\n")
|
sf.write("# Install directories\n")
|
||||||
sf.write("ClientDataDirectory = \"" + str(ClientDataDirectory) + "\"\n")
|
sf.write("InstallDirectory = \"" + str(InstallDirectory) + "\"\n")
|
||||||
|
sf.write("DataShardDirectory = \"" + str(DataShardDirectory) + "\"\n")
|
||||||
|
sf.write("ClientDevDirectory = \"" + str(ClientDevDirectory) + "\"\n")
|
||||||
|
sf.write("ClientPatchDirectory = \"" + str(ClientPatchDirectory) + "\"\n")
|
||||||
|
sf.write("ClientInstallDirectory = \"" + str(ClientInstallDirectory) + "\"\n")
|
||||||
sf.write("\n")
|
sf.write("\n")
|
||||||
sf.write("# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)\n")
|
sf.write("# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)\n")
|
||||||
sf.write("\n")
|
sf.write("\n")
|
||||||
|
@ -120,6 +234,12 @@ sf.write("# Leveldesign directories\n")
|
||||||
sf.write("LeveldesignDirectory = \"" + str(LeveldesignDirectory) + "\"\n")
|
sf.write("LeveldesignDirectory = \"" + str(LeveldesignDirectory) + "\"\n")
|
||||||
sf.write("LeveldesignDfnDirectory = \"" + str(LeveldesignDfnDirectory) + "\"\n")
|
sf.write("LeveldesignDfnDirectory = \"" + str(LeveldesignDfnDirectory) + "\"\n")
|
||||||
sf.write("LeveldesignWorldDirectory = \"" + str(LeveldesignWorldDirectory) + "\"\n")
|
sf.write("LeveldesignWorldDirectory = \"" + str(LeveldesignWorldDirectory) + "\"\n")
|
||||||
|
sf.write("PrimitivesDirectory = \"" + str(PrimitivesDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Misc data directories\n")
|
||||||
|
sf.write("GamedevDirectory = \"" + str(GamedevDirectory) + "\"\n")
|
||||||
|
sf.write("DataCommonDirectory = \"" + str(DataCommonDirectory) + "\"\n")
|
||||||
|
sf.write("WindowsExeDllCfgDirectories = " + str(WindowsExeDllCfgDirectories) + "\n")
|
||||||
sf.write("\n")
|
sf.write("\n")
|
||||||
sf.write("# 3dsMax directives\n")
|
sf.write("# 3dsMax directives\n")
|
||||||
sf.write("MaxAvailable = " + str(MaxAvailable) + "\n")
|
sf.write("MaxAvailable = " + str(MaxAvailable) + "\n")
|
||||||
|
|
64
code/nel/tools/build_gamedata/4_data_shard.py
Normal file
64
code/nel/tools/build_gamedata/4_data_shard.py
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 4_data_shard.py
|
||||||
|
# \brief Install to data shard
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to data shard
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to data shard")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
for dir in InstallShardDataDirectories:
|
||||||
|
printLog(log, "SHARD DIRECTORY " + dir)
|
||||||
|
mkPath(log, InstallDirectory + "/" + dir)
|
||||||
|
mkPath(log, DataShardDirectory + "/" + dir)
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, DataShardDirectory + "/" + dir)
|
||||||
|
for dir in InstallShardDataCollisionsDirectories:
|
||||||
|
printLog(log, "SHARD COLLISIONS " + dir)
|
||||||
|
mkPath(log, InstallDirectory + "/" + dir)
|
||||||
|
mkPath(log, DataShardDirectory + "/collisions/" + dir)
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, DataShardDirectory + "/collisions/" + dir)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("4_data_shard.log"):
|
||||||
|
os.remove("4_data_shard.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_data_shard.log")
|
||||||
|
shutil.move("log.log", "4_data_shard.log")
|
75
code/nel/tools/build_gamedata/5_client_dev.py
Normal file
75
code/nel/tools/build_gamedata/5_client_dev.py
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 5_client_dev.py
|
||||||
|
# \brief Install to client dev
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to client dev
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to client dev")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if not os.path.isfile(ClientDevDirectory + "/client.cfg"):
|
||||||
|
printLog(log, ">>> Generate client.cfg <<<")
|
||||||
|
cfg = open(ClientDevDirectory + "/client.cfg", "w")
|
||||||
|
cfg.write("RootConfigFilename = \"client_default.cfg\";\n")
|
||||||
|
cfg.write("PreDataPath = {\n")
|
||||||
|
cfg.write("\t\"W:/install\", \"user\", \"patch\", \"data\", \"examples\" \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install data <<<")
|
||||||
|
for category in InstallClientData:
|
||||||
|
if (category["UnpackTo"] != None):
|
||||||
|
printLog(log, "CATEGORY " + category["Name"])
|
||||||
|
targetPath = ClientDevDirectory
|
||||||
|
if (category["UnpackTo"] != ""):
|
||||||
|
targetPath += "/" + category["UnpackTo"]
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
mkPath(log, InstallDirectory + "/" + package[0])
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("5_client_dev.log"):
|
||||||
|
os.remove("5_client_dev.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_dev.log")
|
||||||
|
shutil.move("log.log", "5_client_dev.log")
|
149
code/nel/tools/build_gamedata/6_client_patch.py
Normal file
149
code/nel/tools/build_gamedata/6_client_patch.py
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 6_client_patch.py
|
||||||
|
# \brief Install to client patch
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to client patch
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to client patch")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
|
||||||
|
PatchGen = findTool(log, ToolDirectories, PatchGenTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find **** HARDCODED **** WINDOWS **** tools ... TODO: fix patch_gen tool !!!
|
||||||
|
Lzma = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "lzma.exe")
|
||||||
|
printLog(log, "LZMA " + Lzma)
|
||||||
|
XDelta = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "xdelta.exe")
|
||||||
|
printLog(log, "XDELTA " + XDelta)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if BnpMake == "":
|
||||||
|
toolLogFail(log, BnpMakeTool, ToolSuffix)
|
||||||
|
elif PatchGen == "":
|
||||||
|
toolLogFail(log, PatchGenTool, ToolSuffix)
|
||||||
|
elif Lzma == "":
|
||||||
|
toolLogFail(log, "LZMA", ToolSuffix)
|
||||||
|
elif XDelta == "":
|
||||||
|
toolLogFail(log, "XDELTA", ToolSuffix)
|
||||||
|
elif os.path.dirname(Lzma) != os.path.dirname(XDelta):
|
||||||
|
printLog(log, "FAIL lzma.exe and xdelta.exe must be in the same directory")
|
||||||
|
else:
|
||||||
|
mkPath(log, ClientPatchDirectory)
|
||||||
|
productXml = ClientPatchDirectory + "/" + ProductName + ".xml"
|
||||||
|
if not os.path.isfile(productXml):
|
||||||
|
printLog(log, ">>> Create new product <<<")
|
||||||
|
subprocess.call([ PatchGen, "createNewProduct", productXml ])
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Rewrite " + ProductName + ".xml <<<") # because we know better.
|
||||||
|
shutil.move(productXml, productXml + ".old")
|
||||||
|
oldCfg = open(productXml + ".old", "r")
|
||||||
|
cfg = open(productXml, "w")
|
||||||
|
inCategories = 0
|
||||||
|
for line in oldCfg:
|
||||||
|
if not inCategories:
|
||||||
|
if line.strip() == "<_Categories>":
|
||||||
|
inCategories = 1
|
||||||
|
cfg.write("\t<_Categories>\n")
|
||||||
|
for category in InstallClientData:
|
||||||
|
cfg.write("\t\t<_Category>\n")
|
||||||
|
cfg.write("\t\t\t<_Name type=\"STRING\" value=\"" + category["Name"] + "\"/>\n")
|
||||||
|
if category["UnpackTo"] != None:
|
||||||
|
if category["UnpackTo"] != "":
|
||||||
|
cfg.write("\t\t\t<_UnpackTo type=\"STRING\" value=\"./" + category["UnpackTo"] + "/\"/>\n")
|
||||||
|
else:
|
||||||
|
cfg.write("\t\t\t<_UnpackTo type=\"SINT32\" value=\"./\"/>\n")
|
||||||
|
cfg.write("\t\t\t<_IsOptional type=\"SINT32\" value=\"" + str(category["IsOptional"]) + "\"/>\n")
|
||||||
|
cfg.write("\t\t\t<_IsIncremental type=\"SINT32\" value=\"" + str(category["IsIncremental"]) + "\"/>\n")
|
||||||
|
for package in category["Packages"]:
|
||||||
|
if (len(package[1]) > 0):
|
||||||
|
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[1][0] + "\"/>\n")
|
||||||
|
else:
|
||||||
|
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[0] + ".bnp\"/>\n")
|
||||||
|
cfg.write("\t\t</_Category>\n")
|
||||||
|
cfg.write("\t</_Categories>\n")
|
||||||
|
else:
|
||||||
|
cfg.write(line)
|
||||||
|
else:
|
||||||
|
if line.strip() == "</_Categories>":
|
||||||
|
inCategories = 0
|
||||||
|
oldCfg.close()
|
||||||
|
cfg.close()
|
||||||
|
os.remove(productXml + ".old")
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Make bnp <<<")
|
||||||
|
targetPath = ClientPatchDirectory + "/bnp"
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
for category in InstallClientData:
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
sourcePath = InstallDirectory + "/" + package[0]
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
targetBnp = targetPath + "/" + package[0] + ".bnp"
|
||||||
|
if (len(package[1]) > 0):
|
||||||
|
targetBnp = targetPath + "/" + package[1][0]
|
||||||
|
printLog(log, "TARGET " + package[1][0])
|
||||||
|
needUpdateBnp = 1
|
||||||
|
if (len(package) > 2):
|
||||||
|
needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], targetBnp)
|
||||||
|
else:
|
||||||
|
needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, targetBnp)
|
||||||
|
if (needUpdateBnp):
|
||||||
|
printLog(log, "BNP " + targetBnp)
|
||||||
|
subprocess.call([ BnpMake, "/p", sourcePath, targetPath ] + package[1])
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + targetBnp)
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Update product <<<")
|
||||||
|
cwDir = os.getcwd().replace("\\", "/")
|
||||||
|
toolDir = os.path.dirname(Lzma).replace("\\", "/")
|
||||||
|
os.chdir(toolDir)
|
||||||
|
subprocess.call([ PatchGen, "updateProduct", productXml ])
|
||||||
|
os.chdir(cwDir)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("6_client_patch.log"):
|
||||||
|
os.remove("6_client_patch.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_patch.log")
|
||||||
|
shutil.move("log.log", "6_client_patch.log")
|
93
code/nel/tools/build_gamedata/7_client_install.py
Normal file
93
code/nel/tools/build_gamedata/7_client_install.py
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 7_client_install.py
|
||||||
|
# \brief Install to client install
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to client install
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to client install")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if BnpMake == "":
|
||||||
|
toolLogFail(log, BnpMakeTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
for category in InstallClientData:
|
||||||
|
printLog(log, "CATEGORY " + category["Name"])
|
||||||
|
if (category["UnpackTo"] != None):
|
||||||
|
targetPath = ClientInstallDirectory
|
||||||
|
if (category["UnpackTo"] != ""):
|
||||||
|
targetPath += "/" + category["UnpackTo"]
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
mkPath(log, InstallDirectory + "/" + package[0])
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||||
|
else:
|
||||||
|
targetPath = ClientInstallDirectory + "/data"
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
sourcePath = InstallDirectory + "/" + package[0]
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
targetBnp = targetPath + "/" + package[0] + ".bnp"
|
||||||
|
if (len(package[1]) > 0):
|
||||||
|
targetBnp = targetPath + "/" + package[1][0]
|
||||||
|
printLog(log, "TARGET " + package[1][0])
|
||||||
|
needUpdateBnp = 1
|
||||||
|
if (len(package) > 2):
|
||||||
|
needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], targetBnp)
|
||||||
|
else:
|
||||||
|
needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, targetBnp)
|
||||||
|
if (needUpdateBnp):
|
||||||
|
printLog(log, "BNP " + targetBnp)
|
||||||
|
subprocess.call([ BnpMake, "/p", sourcePath, targetPath ] + package[1])
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + targetBnp)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("7_client_install.log"):
|
||||||
|
os.remove("7_client_install.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log")
|
||||||
|
shutil.move("log.log", "7_client_install.log")
|
|
@ -1,65 +0,0 @@
|
||||||
#!/usr/bin/python
|
|
||||||
#
|
|
||||||
# \file site.py
|
|
||||||
# \brief Site configuration
|
|
||||||
# \date 2010-06-04-21-25-GMT
|
|
||||||
# \author Jan Boon (Kaetemi)
|
|
||||||
# Python port of game data build pipeline.
|
|
||||||
# Site configuration.
|
|
||||||
#
|
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
|
||||||
# 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/>.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
# *** SITE INSTALLATION ***
|
|
||||||
|
|
||||||
# Use '/' in path name, not ''
|
|
||||||
# Don't put '/' at the end of a directory name
|
|
||||||
|
|
||||||
|
|
||||||
# Quality option for this site (1 for BEST, 0 for DRAFT)
|
|
||||||
BuildQuality = 1
|
|
||||||
|
|
||||||
ToolDirectories = ['R:/code/nel', 'R:/code/ryzom/tools']
|
|
||||||
ToolSuffix = "_r.exe"
|
|
||||||
|
|
||||||
# Build script directory
|
|
||||||
ScriptDirectory = "W:/build_gamedata"
|
|
||||||
WorkspaceDirectory = "R:/code/ryzom/tools/build_gamedata/workspace"
|
|
||||||
|
|
||||||
# Data build directories
|
|
||||||
DatabaseDirectory = "W:/database"
|
|
||||||
ExportBuildDirectory = "W:/export"
|
|
||||||
|
|
||||||
# Client data install directory (client/data)
|
|
||||||
ClientDataDirectory = "S:/ryzom_client_open/user"
|
|
||||||
|
|
||||||
# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)
|
|
||||||
|
|
||||||
# Leveldesign directories
|
|
||||||
LeveldesignDirectory = "L:/leveldesign"
|
|
||||||
LeveldesignDfnDirectory = "L:/leveldesign/dfn"
|
|
||||||
LeveldesignWorldDirectory = "L:/leveldesign/world"
|
|
||||||
|
|
||||||
# 3dsMax directives
|
|
||||||
MaxAvailable = 1
|
|
||||||
MaxDirectory = "C:/Program Files (x86)/Autodesk/3ds Max 2010"
|
|
||||||
MaxUserDirectory = "C:/Users/Kaetemi/AppData/Local/Autodesk/3dsMax/2010 - 32bit/enu"
|
|
||||||
MaxExecutable = "3dsmax.exe"
|
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
|
|
@ -44,7 +44,7 @@ def needUpdate(log, source, dest):
|
||||||
else:
|
else:
|
||||||
return 0
|
return 0
|
||||||
return 1
|
return 1
|
||||||
printLog(log, "needUpdate: source doest not exist?! " + source)
|
printLog(log, "MISSING " + source)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def needUpdateRemoveDest(log, source, dest):
|
def needUpdateRemoveDest(log, source, dest):
|
||||||
|
@ -56,7 +56,7 @@ def needUpdateRemoveDest(log, source, dest):
|
||||||
else:
|
else:
|
||||||
return 0
|
return 0
|
||||||
return 1
|
return 1
|
||||||
printLog(log, "needUpdate: source doest not exist?! " + source)
|
printLog(log, "MISSING " + source)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def needUpdateLogRemoveDest(log, source, dest):
|
def needUpdateLogRemoveDest(log, source, dest):
|
||||||
|
@ -71,25 +71,28 @@ def needUpdateLogRemoveDest(log, source, dest):
|
||||||
return 0
|
return 0
|
||||||
printLog(log, source + " -> " + dest)
|
printLog(log, source + " -> " + dest)
|
||||||
return 1
|
return 1
|
||||||
printLog(log, "needUpdate: source doest not exist?! " + source)
|
printLog(log, "MISSING " + source)
|
||||||
printLog(log, "SKIP " + dest)
|
printLog(log, "SKIP " + dest)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def copyFileList(log, dir_source, dir_target, files):
|
def copyFileList(log, dir_source, dir_target, files):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
if needUpdateLogRemoveDest(log, dir_source + "/" + fileName, dir_target + "/" + fileName):
|
||||||
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
def copyFileListNoTree(log, dir_source, dir_target, files):
|
def copyFileListNoTree(log, dir_source, dir_target, files):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
||||||
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
||||||
|
|
||||||
def copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files):
|
def copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
srcFile = dir_source + "/" + fileName
|
srcFile = dir_source + "/" + fileName
|
||||||
destFile = dir_target + "/" + os.path.basename(fileName)
|
destFile = dir_target + "/" + os.path.basename(fileName)
|
||||||
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
@ -98,18 +101,30 @@ def copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files):
|
||||||
def removeFilesRecursive(log, dir_files):
|
def removeFilesRecursive(log, dir_files):
|
||||||
files = os.listdir(dir_files)
|
files = os.listdir(dir_files)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn"):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
if os.path.isdir(dir_files + "/" + fileName):
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
removeFilesRecursive(log, dir_files + "/" + fileName)
|
removeFilesRecursive(log, dir_files + "/" + fileName)
|
||||||
else:
|
else:
|
||||||
printLog(log, "RM " + dir_files + "/" + fileName)
|
printLog(log, "RM " + dir_files + "/" + fileName)
|
||||||
os.remove(dir_files + "/" + fileName)
|
os.remove(dir_files + "/" + fileName)
|
||||||
|
|
||||||
|
def removeFilesDirsRecursive(log, dir_files):
|
||||||
|
files = os.listdir(dir_files)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
|
removeFilesRecursive(log, dir_files + "/" + fileName)
|
||||||
|
else:
|
||||||
|
printLog(log, "RM " + dir_files + "/" + fileName)
|
||||||
|
os.remove(dir_files + "/" + fileName)
|
||||||
|
printLog(log, "RMDIR " + dir_files)
|
||||||
|
os.rmdir(dir_files)
|
||||||
|
|
||||||
def removeFilesRecursiveExt(log, dir_files, file_ext):
|
def removeFilesRecursiveExt(log, dir_files, file_ext):
|
||||||
files = os.listdir(dir_files)
|
files = os.listdir(dir_files)
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn"):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
if os.path.isdir(dir_files + "/" + fileName):
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
removeFilesRecursiveExt(log, dir_files + "/" + fileName, file_ext)
|
removeFilesRecursiveExt(log, dir_files + "/" + fileName, file_ext)
|
||||||
elif (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
elif (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
||||||
|
@ -120,7 +135,7 @@ def copyFilesRecursive(log, dir_source, dir_target):
|
||||||
files = os.listdir(dir_source)
|
files = os.listdir(dir_source)
|
||||||
mkPath(log, dir_target)
|
mkPath(log, dir_target)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn"):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
if os.path.isdir(dir_source + "/" + fileName):
|
if os.path.isdir(dir_source + "/" + fileName):
|
||||||
copyFilesRecursive(log, dir_source + "/" + fileName, dir_target + "/" + fileName)
|
copyFilesRecursive(log, dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
else:
|
else:
|
||||||
|
@ -134,7 +149,8 @@ def copyFilesExt(log, dir_source, dir_target, file_ext):
|
||||||
files = os.listdir(dir_source)
|
files = os.listdir(dir_source)
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn") and (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*") and (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
||||||
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
@ -143,7 +159,8 @@ def copyFilesRenamePrefixExt(log, dir_source, dir_target, old_prefix, new_prefix
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
len_prefix = len(old_prefix)
|
len_prefix = len(old_prefix)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn") and (fileName[-len_file_ext:].lower() == file_ext.lower()) and ((fileName[:len_prefix].lower() == old_prefix.lower())):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*") and (fileName[-len_file_ext:].lower() == file_ext.lower()) and ((fileName[:len_prefix].lower() == old_prefix.lower())):
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
||||||
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
||||||
|
|
||||||
|
@ -166,9 +183,14 @@ def copyFilesExtNoSubdirIfNeeded(log, dir_source, dir_target, file_ext):
|
||||||
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
|
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
|
||||||
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
|
||||||
|
|
||||||
|
def copyFilesRecursiveNoTreeIfNeeded(log, dir_source, dir_target):
|
||||||
|
files = findFilesRecursive(log, dir_source, "")
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
def copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext):
|
def copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
srcFile = dir_source + "/" + fileName
|
srcFile = dir_source + "/" + fileName
|
||||||
destFile = dir_target + "/" + os.path.basename(fileName)[0:-len(file_ext)] + target_ext
|
destFile = dir_target + "/" + os.path.basename(fileName)[0:-len(file_ext)] + target_ext
|
||||||
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
@ -184,20 +206,44 @@ def copyFileIfNeeded(log, srcFile, destFile):
|
||||||
|
|
||||||
def moveFileListNoTree(log, dir_source, dir_target, files):
|
def moveFileListNoTree(log, dir_source, dir_target, files):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
printLog(log, "MOVE " + dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
||||||
shutil.move(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
shutil.move(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
||||||
|
|
||||||
def moveFilesExtNoTree(log, dir_source, dir_target, file_ext):
|
def moveFilesExtNoTree(log, dir_source, dir_target, file_ext):
|
||||||
files = findFiles(log, dir_source, "", file_ext)
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
moveFileListNoTree(log, dir_source, dir_target, files)
|
moveFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def moveFilesNoSubdir(log, dir_source, dir_target):
|
||||||
|
files = os.listdir(dir_source)
|
||||||
|
moveFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def moveDir(log, dir_source, dir_target):
|
||||||
|
printLog(log, "MOVE " + dir_source + " -> " + dir_target)
|
||||||
|
shutil.move(dir_source, dir_target)
|
||||||
|
|
||||||
|
def findFilesRecursive(log, dir_where, dir_sub):
|
||||||
|
result = [ ]
|
||||||
|
files = os.listdir(dir_where + "/" + dir_sub)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
filePath = dir_sub + fileName
|
||||||
|
fileFull = dir_where + "/" + dir_sub + fileName
|
||||||
|
if os.path.isfile(fileFull):
|
||||||
|
result += [ filePath ]
|
||||||
|
elif os.path.isdir(fileFull):
|
||||||
|
result += findFilesRecursive(log, dir_where, filePath + "/")
|
||||||
|
else:
|
||||||
|
printLog(log, "findFilesRecursive: file not dir or file?!" + filePath)
|
||||||
|
return result
|
||||||
|
|
||||||
def findFiles(log, dir_where, dir_sub, file_ext):
|
def findFiles(log, dir_where, dir_sub, file_ext):
|
||||||
result = [ ]
|
result = [ ]
|
||||||
files = os.listdir(dir_where + "/" + dir_sub)
|
files = os.listdir(dir_where + "/" + dir_sub)
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
filePath = dir_sub + fileName
|
filePath = dir_sub + fileName
|
||||||
fileFull = dir_where + "/" + dir_sub + fileName
|
fileFull = dir_where + "/" + dir_sub + fileName
|
||||||
if os.path.isfile(fileFull):
|
if os.path.isfile(fileFull):
|
||||||
|
@ -209,12 +255,15 @@ def findFiles(log, dir_where, dir_sub, file_ext):
|
||||||
printLog(log, "findFiles: file not dir or file?!" + filePath)
|
printLog(log, "findFiles: file not dir or file?!" + filePath)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def isLegalFileName(fileName):
|
||||||
|
return fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"
|
||||||
|
|
||||||
def findFilesNoSubdir(log, dir_where, file_ext):
|
def findFilesNoSubdir(log, dir_where, file_ext):
|
||||||
result = [ ]
|
result = [ ]
|
||||||
files = os.listdir(dir_where)
|
files = os.listdir(dir_where)
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
fileFull = dir_where + "/" + fileName
|
fileFull = dir_where + "/" + fileName
|
||||||
if os.path.isfile(fileFull):
|
if os.path.isfile(fileFull):
|
||||||
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
||||||
|
@ -226,7 +275,7 @@ def findFilesNoSubdir(log, dir_where, file_ext):
|
||||||
def findFile(log, dir_where, file_name):
|
def findFile(log, dir_where, file_name):
|
||||||
files = os.listdir(dir_where)
|
files = os.listdir(dir_where)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
filePath = dir_where + "/" + fileName
|
filePath = dir_where + "/" + fileName
|
||||||
if os.path.isfile(filePath):
|
if os.path.isfile(filePath):
|
||||||
if fileName == file_name:
|
if fileName == file_name:
|
||||||
|
@ -264,6 +313,26 @@ def needUpdateDirByTagLog(log, dir_source, ext_source, dir_dest, ext_dest):
|
||||||
printLog(log, "SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
printLog(log, "SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirFile(log, dir_source, file_dest):
|
||||||
|
if not os.path.isfile(file_dest):
|
||||||
|
return 1
|
||||||
|
destTime = os.stat(file_dest).st_mtime
|
||||||
|
sourceFiles = os.listdir(dir_source)
|
||||||
|
for file in sourceFiles:
|
||||||
|
filePath = dir_source + "/" + file
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
fileTime = os.stat(filePath).st_mtime
|
||||||
|
if fileTime > destTime:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateMultiDirNoSubdirFile(log, root_dir, dirs_source, file_dest):
|
||||||
|
for dir_source in dirs_source:
|
||||||
|
if needUpdateDirNoSubdirFile(log, root_dir + "/" + dir_source, file_dest):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
def needUpdateDirNoSubdir(log, dir_source, dir_dest):
|
def needUpdateDirNoSubdir(log, dir_source, dir_dest):
|
||||||
latestSourceFile = 0
|
latestSourceFile = 0
|
||||||
oldestDestFile = 0
|
oldestDestFile = 0
|
||||||
|
@ -329,6 +398,17 @@ def needUpdateDirNoSubdirLogExtMultidir(log, all_dir_base, all_dir_source, dir_s
|
||||||
printLog(log, "SKIP *")
|
printLog(log, "SKIP *")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
def findFileMultiDir(log, dirs_where, file_name):
|
||||||
|
try:
|
||||||
|
for dir in dirs_where:
|
||||||
|
file = findFile(log, dir, file_name)
|
||||||
|
if file != "":
|
||||||
|
return file
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "EXCEPTION " + str(e))
|
||||||
|
printLog(log, "FILE NOT FOUND " + file_name)
|
||||||
|
return ""
|
||||||
|
|
||||||
def findTool(log, dirs_where, file_name, suffix):
|
def findTool(log, dirs_where, file_name, suffix):
|
||||||
try:
|
try:
|
||||||
for dir in dirs_where:
|
for dir in dirs_where:
|
||||||
|
|
|
@ -37,7 +37,6 @@ SmallbankBuildTimeout = 60000
|
||||||
FarbankBuildTimeout = 180000
|
FarbankBuildTimeout = 180000
|
||||||
AnimExportTimeout = 1800000
|
AnimExportTimeout = 1800000
|
||||||
IgExportTimeout = 600000
|
IgExportTimeout = 600000
|
||||||
MapsBuildTimeout = 10000
|
|
||||||
CmbExportTimeout = 60000
|
CmbExportTimeout = 60000
|
||||||
RbankBuildTesselTimeout = 6000000
|
RbankBuildTesselTimeout = 6000000
|
||||||
RbankBuildSmoothTimeout = 6000000
|
RbankBuildSmoothTimeout = 6000000
|
||||||
|
@ -49,6 +48,7 @@ LigoExportTimeout = 3600000
|
||||||
LigoBuildTimeout = 1800000
|
LigoBuildTimeout = 1800000
|
||||||
PacsPrimExportTimeout = 600000
|
PacsPrimExportTimeout = 600000
|
||||||
|
|
||||||
|
MapsBuildTimeout = 60000 # 1min
|
||||||
MaxShapeExportTimeout = 600000 # 10min
|
MaxShapeExportTimeout = 600000 # 10min
|
||||||
|
|
||||||
# *** TOOLS CONFIGURATION ***
|
# *** TOOLS CONFIGURATION ***
|
||||||
|
@ -63,7 +63,6 @@ ZoneWelderTool = "zone_welder"
|
||||||
BuildRbankTool = "build_rbank"
|
BuildRbankTool = "build_rbank"
|
||||||
BuildIndoorRbankTool = "build_indoor_rbank"
|
BuildIndoorRbankTool = "build_indoor_rbank"
|
||||||
BuildIgBoxesTool = "build_ig_boxes"
|
BuildIgBoxesTool = "build_ig_boxes"
|
||||||
AiBuildWmapTool = "ai_build_wmap"
|
|
||||||
GetNeighborsTool = "get_neighbors"
|
GetNeighborsTool = "get_neighbors"
|
||||||
ZoneLighterTool = "zone_lighter"
|
ZoneLighterTool = "zone_lighter"
|
||||||
ZoneIgLighterTool = "zone_ig_lighter"
|
ZoneIgLighterTool = "zone_ig_lighter"
|
||||||
|
@ -85,3 +84,8 @@ PrimExportTool = "prim_export"
|
||||||
IgElevationTool = "ig_elevation"
|
IgElevationTool = "ig_elevation"
|
||||||
IgAddTool = "ig_add"
|
IgAddTool = "ig_add"
|
||||||
BuildClodBankTool = "build_clod_bank"
|
BuildClodBankTool = "build_clod_bank"
|
||||||
|
SheetsPackerTool = "sheets_packer"
|
||||||
|
BnpMakeTool = "bnp_make"
|
||||||
|
AiBuildWmapTool = "ai_build_wmap"
|
||||||
|
TgaCutTool = "tga_cut"
|
||||||
|
PatchGenTool = "patch_gen"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
import shutil, subprocess
|
import shutil, subprocess
|
||||||
|
|
||||||
# subprocess.call([ "python", "0_setup.py" ])
|
|
||||||
subprocess.call([ "python", "1_export.py" ])
|
subprocess.call([ "python", "1_export.py" ])
|
||||||
subprocess.call([ "python", "2_build.py" ])
|
subprocess.call([ "python", "2_build.py" ])
|
||||||
subprocess.call([ "python", "3_install.py" ])
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,22 @@ PacsPrimSourceDirectories = [ ]
|
||||||
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
||||||
|
|
||||||
|
# Ig lookup directories used by rbank
|
||||||
|
IgLookupDirectories = [ ]
|
||||||
|
|
||||||
|
# Shape lookup directories used by rbank
|
||||||
|
ShapeLookupDirectories = [ ]
|
||||||
|
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
|
||||||
|
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
|
||||||
|
|
||||||
|
# Map lookup directories not yet used
|
||||||
|
MapLookupDirectories = [ ]
|
||||||
|
MapLookupDirectories += [ EcosystemPath + "/map_export" ]
|
||||||
|
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
|
||||||
|
|
||||||
|
|
||||||
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
# Map directories
|
# Map directories
|
||||||
|
@ -148,6 +164,10 @@ PacsPrimExportDirectory = CommonPath + "/pacs_prim"
|
||||||
# Map directories
|
# Map directories
|
||||||
MapBuildDirectory = CommonPath + "/map"
|
MapBuildDirectory = CommonPath + "/map"
|
||||||
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||||
|
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||||
|
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||||
|
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||||
|
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||||
|
|
||||||
# Shape directories
|
# Shape directories
|
||||||
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
||||||
|
@ -171,29 +191,29 @@ RbankOutputBuildDirectory = "_invalid"
|
||||||
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||||
|
|
||||||
# Map directory
|
# Map directory
|
||||||
MapClientDirectory = CommonName + "_maps"
|
MapInstallDirectory = CommonName + "_maps"
|
||||||
BitmapClientDirectory = MapClientDirectory
|
BitmapInstallDirectory = MapInstallDirectory
|
||||||
|
|
||||||
# Shape directory
|
# Shape directory
|
||||||
ShapeClientDirectory = CommonName + "_shapes"
|
ShapeInstallDirectory = CommonName + "_shapes"
|
||||||
|
|
||||||
# Lightmap directory
|
# Lightmap directory
|
||||||
LightmapClientDirectory = CommonName + "_lightmaps"
|
LightmapInstallDirectory = CommonName + "_lightmaps"
|
||||||
|
|
||||||
# Tile directory
|
# Tile directory
|
||||||
TilesClientDirectory = CommonName + "_tiles"
|
TilesInstallDirectory = CommonName + "_tiles"
|
||||||
|
|
||||||
# Displace directory
|
# Displace directory
|
||||||
DisplaceClientDirectory = CommonName + "_displaces"
|
DisplaceInstallDirectory = CommonName + "_displaces"
|
||||||
|
|
||||||
# Bank directory
|
# Bank directory
|
||||||
BankClientDirectory = CommonName + "_bank"
|
BankInstallDirectory = CommonName + "_bank"
|
||||||
|
|
||||||
# Vegetable set directory
|
# Vegetable set directory
|
||||||
VegetSetClientDirectory = CommonName + "_vegetable_sets"
|
VegetSetInstallDirectory = CommonName + "_vegetable_sets"
|
||||||
|
|
||||||
# Vegetable shape directory
|
# Vegetable shape directory
|
||||||
VegetClientDirectory = CommonName + "_vegetables"
|
VegetInstallDirectory = CommonName + "_vegetables"
|
||||||
|
|
||||||
# PACS primitives directories
|
# PACS primitives directories
|
||||||
PacsPrimClientDirectory = CommonName + "_pacs_prim"
|
PacsPrimInstallDirectory = CommonName + "_pacs_prim"
|
||||||
|
|
|
@ -110,6 +110,10 @@ LigoExportOnePass = 0
|
||||||
# *** MAPS OPTIONS ***
|
# *** MAPS OPTIONS ***
|
||||||
|
|
||||||
ReduceBitmapFactor = 0
|
ReduceBitmapFactor = 0
|
||||||
|
# list all panoply files
|
||||||
|
MapPanoplyFileList = None
|
||||||
|
# name of the .hlsbank to build.
|
||||||
|
MapHlsBankFileName = None
|
||||||
|
|
||||||
# *** SHAPE BUILD OPTIONS *
|
# *** SHAPE BUILD OPTIONS *
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exp
|
||||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenClientDirectoryVariable%", clientDirectoryVariable)
|
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||||
return newline
|
return newline
|
||||||
|
|
||||||
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
|
@ -88,15 +88,15 @@ def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVaria
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
generateSimpleMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimClientDirectory")
|
generateSimpleMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimClientDirectory")
|
generateSimpleMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelClientDirectory")
|
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtClientDirectory")
|
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneClientDirectory")
|
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exp
|
||||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenClientDirectoryVariable%", clientDirectoryVariable)
|
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||||
return newline
|
return newline
|
||||||
|
|
||||||
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
|
@ -100,13 +100,13 @@ def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVaria
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodClientDirectory")
|
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
|
||||||
|
|
||||||
generateTaggedMaxScript("ig", "ig")
|
generateTaggedMaxScript("ig", "ig")
|
||||||
|
|
||||||
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsClientDirectory")
|
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
|
||||||
|
|
||||||
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetClientDirectory")
|
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%)
|
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,9 +46,9 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||||
mkPath(log, exportPath)
|
mkPath(log, exportPath)
|
||||||
clientPath = ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%
|
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, exportPath, clientPath, ".%PreGenFileExtension%")
|
copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -58,7 +58,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%)
|
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,9 +46,9 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||||
mkPath(log, exportPath)
|
mkPath(log, exportPath)
|
||||||
clientPath = ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%
|
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
copyFilesNoTreeIfNeeded(log, exportPath, clientPath)
|
copyFilesNoTreeIfNeeded(log, exportPath, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
31
code/nel/tools/build_gamedata/install_client_dev.py
Normal file
31
code/nel/tools/build_gamedata/install_client_dev.py
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file export_build_install.py
|
||||||
|
# \brief Run all processes
|
||||||
|
# \date 2009-02-18 15:28GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all processes
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import shutil, subprocess
|
||||||
|
|
||||||
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
subprocess.call([ "python", "5_client_dev.py" ])
|
||||||
|
|
31
code/nel/tools/build_gamedata/install_data_shard.py
Normal file
31
code/nel/tools/build_gamedata/install_data_shard.py
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file export_build_install.py
|
||||||
|
# \brief Run all processes
|
||||||
|
# \date 2009-02-18 15:28GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all processes
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import shutil, subprocess
|
||||||
|
|
||||||
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
subprocess.call([ "python", "4_data_shard.py" ])
|
||||||
|
|
|
@ -49,7 +49,7 @@ from directories import *
|
||||||
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
#for dir in ClientSetupDirectories:
|
#for dir in ClientSetupDirectories:
|
||||||
# mkPath(log, ClientDataDirectory + "/" + dir)
|
# mkPath(log, InstallDirectory + "/" + dir)
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
|
@ -58,7 +58,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
#mkPath(log, ClientDataDirectory + "/" + DummyClientDirectory)
|
#mkPath(log, InstallDirectory + "/" + DummyInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,18 +43,18 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
#clientPath = ClientDataDirectory + "/" + DummyClientDirectory
|
#installPath = InstallDirectory + "/" + DummyInstallDirectory
|
||||||
#mkPath(log, clientPath)
|
#mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install dummy <<<")
|
printLog(log, ">>> Install dummy <<<")
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, clientPath, ".dummy")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy")
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, clientPath, ".dummy")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy")
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, clientPath, ".dds")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds")
|
||||||
|
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, clientPath, ".anim")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
98
code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py
Normal file
98
code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Setup ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
||||||
|
|
||||||
|
# Setup lookup directories
|
||||||
|
printLog(log, ">>> Setup lookup directories <<<")
|
||||||
|
for dir in IgLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
for dir in PacsPrimLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup install directories <<<")
|
||||||
|
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup configuration <<<")
|
||||||
|
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||||
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
|
cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("// AI BUILD WMAP CONFIGURATION\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("Paths = {\n")
|
||||||
|
for dir in IgLookupDirectories:
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("NoRecursePaths = { };\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("PacsPrimPaths = {\n")
|
||||||
|
for dir in PacsPrimLookupDirectories:
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("Commands = {\n")
|
||||||
|
cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n")
|
||||||
|
for startPoint in AiWmapStartPoints:
|
||||||
|
cfg.write("\t\"setStartPoint " + startPoint + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.close()
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Export ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
95
code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py
Normal file
95
code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
AiBuildWmap = findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix)
|
||||||
|
TgaCut = findTool(log, ToolDirectories, TgaCutTool, ToolSuffix)
|
||||||
|
|
||||||
|
if AiBuildWmap == "":
|
||||||
|
toolLogFail(log, AiBuildWmapTool, ToolSuffix)
|
||||||
|
if TgaCut == "":
|
||||||
|
toolLogFail(log, TgaCutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
printLog(log, ">>> Copy ai_build_wmap.cfg <<<")
|
||||||
|
cfgPath = ActiveProjectDirectory + "/generated/ai_build_wmap.cfg"
|
||||||
|
tagPath = ExportBuildDirectory + "/" + AiWmapBuildTagDirectory + "/ai_wmap_build.tag"
|
||||||
|
shutil.copy(cfgPath, "ai_build_wmap.cfg")
|
||||||
|
printLog(log, ">>> Check up packed sheets <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "checkPackedSheets" ])
|
||||||
|
printLog(log, ">>> Build ai_wmap <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
||||||
|
if (needUpdate(log, "continents.packed_sheets", tagPath) or needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, [ RbankOutputBuildDirectory ] + IgLookupDirectories + PacsPrimLookupDirectories, tagPath)):
|
||||||
|
printLog(log, ">>> Generate wmap <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsCrunch " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Generate sized wmap <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildGabarit " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Generate cwmaps for each size <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_0" ])
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_1" ])
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_2" ])
|
||||||
|
printLog(log, ">>> Generate bitmap for each size <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_0" ])
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_1" ])
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_2" ])
|
||||||
|
printLog(log, ">>> Clear height maps for size 1 and 2 <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsClearHeightmap " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Cut tga for world editor <<<")
|
||||||
|
subprocess.call([ TgaCut, ExportBuildDirectory + "/" + AiWmapBuildDirectory + "/" + AiWmapContinentName + "_0.tga" ])
|
||||||
|
moveFilesExtNoTree(log, ".", ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".tga")
|
||||||
|
printLog(log, ">>> Remove wmap <<<")
|
||||||
|
removeFilesRecursiveExt(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".wmap")
|
||||||
|
tagFile = open(tagPath, "w")
|
||||||
|
tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
|
||||||
|
tagFile.close()
|
||||||
|
else:
|
||||||
|
printLog("SKIP *")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
57
code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py
Normal file
57
code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
installPath = InstallDirectory + "/" + AiWmapInstallDirectory
|
||||||
|
mkPath(log, installPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install ai_wmap <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -58,7 +58,7 @@ mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + AnimClientDirectory)
|
mkPath(log, InstallDirectory + "/" + AnimInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export anim
|
# \brief Export anim
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export anim
|
# Export anim
|
||||||
|
|
|
@ -46,7 +46,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install anim <<<")
|
printLog(log, ">>> Install anim <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + AnimClientDirectory
|
destDir = InstallDirectory + "/" + AnimInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + CeguiImagesetClientDirectory)
|
mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install cegui imagesets <<<")
|
printLog(log, ">>> Install cegui imagesets <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + CeguiImagesetClientDirectory
|
destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
|
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
|
||||||
|
|
||||||
# Setup configuration files
|
# Setup configuration files
|
||||||
printLog(log, ">>> Setup configuration files <<<")
|
printLog(log, ">>> Setup configuration files <<<")
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export clodbank
|
# \brief Export clodbank
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export clodbank
|
# Export clodbank
|
||||||
|
|
|
@ -46,7 +46,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install clodbank <<<")
|
printLog(log, ">>> Install clodbank <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + ShapeClientDirectory
|
destDir = InstallDirectory + "/" + ShapeInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
76
code/nel/tools/build_gamedata/processes/copy/0_setup.py
Normal file
76
code/nel/tools/build_gamedata/processes/copy/0_setup.py
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup copy
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup copy
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Setup copy")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Setup source directories
|
||||||
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
|
for dir in CopyDirectSourceDirectories:
|
||||||
|
mkPath(log, dir)
|
||||||
|
for file in CopyDirectSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(file))
|
||||||
|
for dir in CopyLeveldesignSourceDirectories:
|
||||||
|
mkPath(log, LeveldesignDirectory + "/" + dir)
|
||||||
|
for file in CopyLeveldesignSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file))
|
||||||
|
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||||
|
mkPath(log, LeveldesignWorldDirectory + "/" + dir)
|
||||||
|
for file in CopyLeveldesignWorldSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file))
|
||||||
|
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||||
|
mkPath(log, LeveldesignDfnDirectory + "/" + dir)
|
||||||
|
for file in CopyLeveldesignDfnSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file))
|
||||||
|
for dir in CopyDatabaseSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
for file in CopyDatabaseSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file))
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, InstallDirectory + "/" + CopyInstallDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/copy/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/copy/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export copy
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export copy
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Export copy")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/copy/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/copy/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build copy
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build copy
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build copy")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
85
code/nel/tools/build_gamedata/processes/copy/3_install.py
Normal file
85
code/nel/tools/build_gamedata/processes/copy/3_install.py
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install copy
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install copy
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../../configuration")
|
||||||
|
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install copy")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
installPath = InstallDirectory + "/" + CopyInstallDirectory
|
||||||
|
mkPath(log, installPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install copy <<<")
|
||||||
|
for dir in CopyDirectSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath)
|
||||||
|
for file in CopyDirectSourceFiles:
|
||||||
|
copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file))
|
||||||
|
for dir in CopyLeveldesignSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath)
|
||||||
|
for file in CopyLeveldesignSourceFiles:
|
||||||
|
copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath)
|
||||||
|
for file in CopyLeveldesignWorldSourceFiles:
|
||||||
|
copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath)
|
||||||
|
for file in CopyLeveldesignDfnSourceFiles:
|
||||||
|
copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
for dir in CopyDatabaseSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath)
|
||||||
|
for file in CopyDatabaseSourceFiles:
|
||||||
|
copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
|
||||||
|
try:
|
||||||
|
CopyWindowsExeDllCfgSourceFiles
|
||||||
|
except NameError:
|
||||||
|
CopyWindowsExeDllCfgSourceFiles = [ ]
|
||||||
|
for file in CopyWindowsExeDllCfgSourceFiles:
|
||||||
|
filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file)
|
||||||
|
if (filePath != ""):
|
||||||
|
copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file))
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + DisplaceClientDirectory)
|
mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -44,11 +44,11 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install displace <<<")
|
printLog(log, ">>> Install displace <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + DisplaceClientDirectory
|
installPath = InstallDirectory + "/" + DisplaceInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, clientPath, ".tga")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, clientPath, ".png")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".png")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -58,7 +58,7 @@ mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
|
mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -45,8 +45,8 @@ printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install farbank <<<")
|
printLog(log, ">>> Install farbank <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
|
mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, ClientDataDirectory + "/" + BankClientDirectory, ".farbank")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, InstallDirectory + "/" + BankInstallDirectory, ".farbank")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + FontClientDirectory)
|
mkPath(log, InstallDirectory + "/" + FontInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,16 +43,16 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + FontClientDirectory
|
installPath = InstallDirectory + "/" + FontInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
|
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
|
||||||
mkPath(log, fontExportDir)
|
mkPath(log, fontExportDir)
|
||||||
|
|
||||||
printLog(log, ">>> Install font <<<")
|
printLog(log, ">>> Install font <<<")
|
||||||
copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".ttf")
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".ttf")
|
||||||
copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".afm")
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".afm")
|
||||||
copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".pfb")
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfb")
|
||||||
copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".pfm")
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfm")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -70,7 +70,7 @@ mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
#mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
|
#mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPathIg = ClientDataDirectory + "/" + IgClientDirectory
|
clientPathIg = InstallDirectory + "/" + IgInstallDirectory
|
||||||
mkPath(log, clientPathIg)
|
mkPath(log, clientPathIg)
|
||||||
|
|
||||||
printLog(log, ">>> Install ig <<<")
|
printLog(log, ">>> Install ig <<<")
|
||||||
|
|
|
@ -56,7 +56,7 @@ mkPath(log, ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
|
mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install ig_light <<<")
|
printLog(log, ">>> Install ig_light <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + IgClientDirectory
|
destDir = InstallDirectory + "/" + IgInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + InterfaceClientDirectory)
|
mkPath(log, InstallDirectory + "/" + InterfaceInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -56,8 +56,8 @@ for dirs in InterfaceSourceDirectories:
|
||||||
mkPath(log, newpath)
|
mkPath(log, newpath)
|
||||||
for dir in dirs:
|
for dir in dirs:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".png")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".png")
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each interface directory to compress in one DXTC
|
# For each interface directory to compress in one DXTC
|
||||||
|
@ -65,8 +65,8 @@ printLog(log, ">>> Export interface dxtc <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory)
|
||||||
for dir in InterfaceDxtcSourceDirectories:
|
for dir in InterfaceDxtcSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".tga")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".png")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".png")
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each interface fullscreen directory compress independently all in dds
|
# For each interface fullscreen directory compress independently all in dds
|
||||||
|
@ -96,8 +96,7 @@ printLog(log, ">>> Export interface 3d <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
for dir in Interface3DSourceDirectories:
|
for dir in Interface3DSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory, ".tga")
|
copyFiles(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory, ".png")
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -43,24 +43,24 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + InterfaceClientDirectory
|
installPath = InstallDirectory + "/" + InterfaceInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install interface <<<")
|
printLog(log, ">>> Install interface <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install interface dxtc <<<")
|
printLog(log, ">>> Install interface dxtc <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install interface fullscreen <<<")
|
printLog(log, ">>> Install interface fullscreen <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install interface 3d <<<")
|
printLog(log, ">>> Install interface 3d <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + Interface3DExportDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + Interface3DExportDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -49,6 +49,10 @@ for dir in MapSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
for dir in MapUncompressedSourceDirectories:
|
for dir in MapUncompressedSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
if MapHlsBankFileName != None or MapPanoplyFileList != None:
|
||||||
|
for panoplyCfg in MapPanoplySourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + panoplyCfg[2])
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + panoplyCfg[3])
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
@ -58,11 +62,16 @@ mkPath(log, ExportBuildDirectory + "/" + MapUncompressedExportDirectory)
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + MapBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + MapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
|
||||||
|
if MapHlsBankFileName != None or MapPanoplyFileList != None:
|
||||||
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + MapClientDirectory)
|
mkPath(log, InstallDirectory + "/" + MapInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -50,10 +50,61 @@ PanoplyMaker = findTool(log, ToolDirectories, PanoplyMakerTool, ToolSuffix)
|
||||||
HlsBankMaker = findTool(log, ToolDirectories, HlsBankMakerTool, ToolSuffix)
|
HlsBankMaker = findTool(log, ToolDirectories, HlsBankMakerTool, ToolSuffix)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Panoply <<<")
|
buildPanoplyTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_panoply.tag"
|
||||||
printLog(log, "********************************")
|
buildCompressTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_compress.tag"
|
||||||
printLog(log, "******** TODO ********")
|
|
||||||
printLog(log, "********************************")
|
if MapPanoplyFileList != None:
|
||||||
|
printLog(log, ">>> Panoply build <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
|
||||||
|
directoriesCheck = [ ]
|
||||||
|
for panoplyCfg in MapPanoplySourceDirectories:
|
||||||
|
directoriesCheck += [ panoplyCfg[2] ]
|
||||||
|
directoriesCheck += [ panoplyCfg[3] ]
|
||||||
|
if (needUpdateMultiDirNoSubdirFile(log, DatabaseDirectory, directoriesCheck, buildPanoplyTagPath)):
|
||||||
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Move panoply and hls to cache <<<")
|
||||||
|
removeFilesDirsRecursive(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
moveDir(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
||||||
|
moveFilesNoSubdir(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
printLog(log, "")
|
||||||
|
for panoplyCfg in MapPanoplySourceDirectories:
|
||||||
|
printLog(log, ">>> Panoply " + panoplyCfg[1] + " <<<")
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + panoplyCfg[2])
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + panoplyCfg[3])
|
||||||
|
cfg = open(ActiveProjectDirectory + "/generated/current_panoply.cfg", "w")
|
||||||
|
cfgCommon = open(ActiveProjectDirectory + "/" + panoplyCfg[0], "r")
|
||||||
|
cfgRace = open(ActiveProjectDirectory + "/" + panoplyCfg[1], "r")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("// CURRENT PANOPLY CONFIGURATION\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("input_path = \"" + DatabaseDirectory + "/" + panoplyCfg[2] + "\";\n")
|
||||||
|
cfg.write("additionnal_paths = \"" + DatabaseDirectory + "/" + panoplyCfg[3] + "\";\n")
|
||||||
|
cfg.write("output_path = \"" + ExportBuildDirectory + "/" + MapPanoplyBuildDirectory + "\";\n")
|
||||||
|
cfg.write("hls_info_path = \"" + ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory + "\";\n")
|
||||||
|
cfg.write("cache_path = \"" + ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory + "\";\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("/////////////////////////////////////////////\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
for line in cfgCommon:
|
||||||
|
cfg.write(line)
|
||||||
|
for line in cfgRace:
|
||||||
|
cfg.write(line)
|
||||||
|
cfg.close()
|
||||||
|
cfgCommon.close()
|
||||||
|
cfgRace.close()
|
||||||
|
subprocess.call([ PanoplyMaker, ActiveProjectDirectory + "/generated/current_panoply.cfg" ])
|
||||||
|
printLog(log, "")
|
||||||
|
tagFile = open(buildPanoplyTagPath, "w")
|
||||||
|
tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
|
||||||
|
tagFile.close()
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP *.*")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Compress TGA and PNG maps to DDS <<<")
|
printLog(log, ">>> Compress TGA and PNG maps to DDS <<<")
|
||||||
if TgaToDds == "":
|
if TgaToDds == "":
|
||||||
|
@ -61,34 +112,55 @@ if TgaToDds == "":
|
||||||
elif ExecTimeout == "":
|
elif ExecTimeout == "":
|
||||||
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
sourcePath = ExportBuildDirectory + "/" + MapExportDirectory
|
|
||||||
mkPath(log, sourcePath)
|
|
||||||
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
||||||
mkPath(log, destPath)
|
mkPath(log, destPath)
|
||||||
files = findFilesNoSubdir(log, sourcePath, ".tga")
|
sourcePaths = [ ExportBuildDirectory + "/" + MapExportDirectory ]
|
||||||
for file in files:
|
writeTag = 0
|
||||||
sourceFile = sourcePath + "/" + file
|
if MapPanoplyFileList != None:
|
||||||
destFile = destPath + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
|
if needUpdate(log, buildPanoplyTagPath, buildCompressTagPath):
|
||||||
|
sourcePaths += [ ExportBuildDirectory + "/" + MapPanoplyBuildDirectory ]
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + ExportBuildDirectory + "/" + MapPanoplyBuildDirectory + "/*.*")
|
||||||
|
for sourcePath in sourcePaths:
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
files = os.listdir(sourcePath)
|
||||||
|
len_tga_png = len(".tga")
|
||||||
|
len_dds = len(".dds")
|
||||||
|
for fileName in files:
|
||||||
|
if isLegalFileName(fileName):
|
||||||
|
sourceFile = sourcePath + "/" + fileName
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
if (fileName[-len_tga_png:].lower() == ".tga") or (fileName[-len_tga_png:].lower() == ".png"):
|
||||||
|
destFile = destPath + "/" + os.path.basename(fileName)[0:-len_tga_png] + ".dds"
|
||||||
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
||||||
files = findFilesNoSubdir(log, sourcePath, ".png")
|
writeTag = 1
|
||||||
for file in files:
|
elif fileName[-len_dds:].lower() == ".dds":
|
||||||
sourceFile = sourcePath + "/" + file
|
copyFileIfNeeded(log, sourceFile, destPath + "/" + os.path.basename(fileName))
|
||||||
destFile = destPath + "/" + os.path.basename(file)[0:-len(".png")] + ".dds"
|
writeTag = 1
|
||||||
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
elif not os.path.isdir(sourceFile):
|
||||||
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, destPath, ".dds")
|
if writeTag:
|
||||||
|
tagFile = open(buildCompressTagPath, "w")
|
||||||
|
tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
|
||||||
|
tagFile.close()
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Compress panoply maps to DDS <<<")
|
if MapHlsBankFileName != None:
|
||||||
printLog(log, "********************************")
|
printLog(log, ">>> Build the HLSBank <<<")
|
||||||
printLog(log, "******** TODO ********")
|
if HlsBankMaker == "":
|
||||||
printLog(log, "********************************")
|
toolLogFail(log, HlsBankMakerTool, ToolSuffix)
|
||||||
|
else:
|
||||||
printLog(log, ">>> Build the HLSBank (if hlsInfo present, and if build wanted) <<<")
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
|
||||||
printLog(log, "********************************")
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory)
|
||||||
printLog(log, "******** TODO ********")
|
hlsBankPath = ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory + "/" + MapHlsBankFileName
|
||||||
printLog(log, "********************************")
|
if (needUpdate(log, buildPanoplyTagPath, hlsBankPath) or needUpdate(log, buildCompressTagPath, hlsBankPath)):
|
||||||
|
if os.path.isfile(hlsBankPath):
|
||||||
|
os.remove(hlsBankPath)
|
||||||
|
subprocess.call([ HlsBankMaker, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory, hlsBankPath ])
|
||||||
|
else:
|
||||||
|
printLog(log,"SKIP " + hlsBankPath)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,32 +43,46 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + MapClientDirectory
|
installPath = InstallDirectory + "/" + MapInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install map <<<")
|
printLog(log, ">>> Install map <<<")
|
||||||
sourcePath = ExportBuildDirectory + "/" + MapBuildDirectory
|
sourcePaths = [ ExportBuildDirectory + "/" + MapBuildDirectory ] + [ ExportBuildDirectory + "/" + MapUncompressedExportDirectory ]
|
||||||
|
for sourcePath in sourcePaths:
|
||||||
mkPath(log, sourcePath)
|
mkPath(log, sourcePath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".dds")
|
files = os.listdir(sourcePath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".png")
|
len_ext = 4
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".tga")
|
for fileName in files:
|
||||||
sourcePath = ExportBuildDirectory + "/" + MapUncompressedExportDirectory
|
if isLegalFileName(fileName):
|
||||||
|
sourceFile = sourcePath + "/" + fileName
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
if (fileName[-len_ext:].lower() == ".tga") or (fileName[-len_ext:].lower() == ".png") or (fileName[-len_ext:].lower() == ".dds"):
|
||||||
|
copyFileIfNeeded(log, sourceFile, installPath + "/" + os.path.basename(fileName))
|
||||||
|
elif not os.path.isdir(sourceFile):
|
||||||
|
printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
|
||||||
|
|
||||||
|
if MapPanoplyFileList != None:
|
||||||
|
printLog(log, ">>> Install panoply file list <<<")
|
||||||
|
buildPanoplyTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_panoply.tag"
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
|
||||||
|
if needUpdate(log, buildPanoplyTagPath, installPath + "/" + MapPanoplyFileList):
|
||||||
|
sourcePath = ExportBuildDirectory + "/" + MapPanoplyBuildDirectory
|
||||||
mkPath(log, sourcePath)
|
mkPath(log, sourcePath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".dds")
|
printLog(log, "WRITE " + installPath + "/" + MapPanoplyFileList)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".png")
|
lf = open(installPath + "/" + MapPanoplyFileList, "w")
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".tga")
|
files = os.listdir(sourcePath)
|
||||||
|
for file in files:
|
||||||
printLog(log, ">>> Install map panoply <<<")
|
if isLegalFileName(file):
|
||||||
printLog(log, "********************************")
|
lf.write(file + "\n")
|
||||||
printLog(log, "******** TODO ********")
|
lf.close()
|
||||||
printLog(log, "********************************")
|
else:
|
||||||
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
printLog(log, "SKIP " + installPath + "/" + MapPanoplyBuildDirectory)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory, clientPath, ".dds")
|
|
||||||
|
|
||||||
|
if MapHlsBankFileName != None:
|
||||||
printLog(log, ">>> Install map hlsbank <<<")
|
printLog(log, ">>> Install map hlsbank <<<")
|
||||||
printLog(log, "********************************")
|
sourcePath = ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory
|
||||||
printLog(log, "******** TODO ********")
|
mkPath(log, sourcePath)
|
||||||
printLog(log, "********************************")
|
copyFilesExtNoSubdirIfNeeded(log, sourcePath, installPath, ".hlsbank")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + PacsPrimClientDirectory)
|
mkPath(log, InstallDirectory + "/" + PacsPrimInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export pacs_prim
|
# \brief Export pacs_prim
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export pacs_prim
|
# Export pacs_prim
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + PacsPrimClientDirectory
|
installPath = InstallDirectory + "/" + PacsPrimInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install pacs_prim <<<")
|
printLog(log, ">>> Install pacs_prim <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory, clientPath, ".pacs_prim")
|
copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory, installPath, ".pacs_prim")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + PsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + PsInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install ps <<<")
|
printLog(log, ">>> Install ps <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + PsExportDirectory
|
srcDir = ExportBuildDirectory + "/" + PsExportDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + PsClientDirectory
|
destDir = InstallDirectory + "/" + PsInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + PacsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + PacsInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export rbank
|
# \brief Export rbank
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export rbank
|
# Export rbank
|
||||||
|
|
|
@ -44,21 +44,21 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install rbank <<<")
|
printLog(log, ">>> Install rbank <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + PacsClientDirectory
|
installPath = InstallDirectory + "/" + PacsInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
srcPath = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
|
srcPath = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
|
||||||
mkPath(log, srcPath)
|
mkPath(log, srcPath)
|
||||||
copyFilesNoTreeIfNeeded(log, srcPath, clientPath)
|
copyFilesNoTreeIfNeeded(log, srcPath, installPath)
|
||||||
#clientPath = ClientDataDirectory + "/" + PacsClientDirectory
|
#installPath = InstallDirectory + "/" + PacsInstallDirectory
|
||||||
#mkPath(log, clientPath)
|
#mkPath(log, installPath)
|
||||||
#srcPath = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
|
#srcPath = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
|
||||||
#mkPath(log, srcPath)
|
#mkPath(log, srcPath)
|
||||||
#copyFileIfNeeded(log, srcPath + "/tempMerged.rbank", clientPath + "/" + RbankRbankName + ".rbank")
|
#copyFileIfNeeded(log, srcPath + "/tempMerged.rbank", installPath + "/" + RbankRbankName + ".rbank")
|
||||||
#copyFileIfNeeded(log, srcPath + "/tempMerged.gr", clientPath + "/" + RbankRbankName + ".gr")
|
#copyFileIfNeeded(log, srcPath + "/tempMerged.gr", installPath + "/" + RbankRbankName + ".gr")
|
||||||
#for file in findFiles(log, srcPath, "", ".lr"):
|
#for file in findFiles(log, srcPath, "", ".lr"):
|
||||||
# copyFileIfNeeded(log, srcPath + "/" + file, clientPath + "/" + file.replace("tempMerged", RbankRbankName))
|
# copyFileIfNeeded(log, srcPath + "/" + file, installPath + "/" + file.replace("tempMerged", RbankRbankName))
|
||||||
# mkPath(log, ExportBuildDirectory + "/" + rbankBuildDirectory)
|
# mkPath(log, ExportBuildDirectory + "/" + rbankBuildDirectory)
|
||||||
# copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + rbankBuildDirectory, clientPath)
|
# copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + rbankBuildDirectory, installPath)
|
||||||
#copyFileIfNeeded
|
#copyFileIfNeeded
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
|
@ -47,8 +47,11 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in ShapeSourceDirectories:
|
for dir in ShapeSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
for dir in MapSourceDirectories:
|
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
# Setup pipeline lookup directories
|
||||||
|
printLog(log, ">>> Setup pipeline lookup directories <<<")
|
||||||
|
for dir in MapLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
@ -69,8 +72,8 @@ mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
|
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + LightmapClientDirectory)
|
mkPath(log, InstallDirectory + "/" + LightmapInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -111,8 +111,8 @@ if len(CoarseMeshTextureNames) > 0:
|
||||||
cf.write("search_path = \n")
|
cf.write("search_path = \n")
|
||||||
cf.write("{\n")
|
cf.write("{\n")
|
||||||
cf.write("\t\"" + shapeWithCoarseMesh + "\", \n")
|
cf.write("\t\"" + shapeWithCoarseMesh + "\", \n")
|
||||||
for dir in MapSourceDirectories:
|
for dir in MapLookupDirectories:
|
||||||
cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
cf.write("};\n")
|
cf.write("};\n")
|
||||||
cf.write("\n")
|
cf.write("\n")
|
||||||
cf.write("list_mesh = \n")
|
cf.write("list_mesh = \n")
|
||||||
|
|
|
@ -44,24 +44,24 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install shape <<<")
|
printLog(log, ">>> Install shape <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + ShapeClientDirectory
|
installPath = InstallDirectory + "/" + ShapeInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory, clientPath, ".shape")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory, installPath, ".shape")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".shape")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, installPath, ".shape")
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".dds")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, installPath, ".dds")
|
||||||
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, clientPath, ".anim")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, installPath, ".anim")
|
||||||
|
|
||||||
# ls anim | grep ".anim" >> $client_directory/auto_animations_list.txt
|
# ls anim | grep ".anim" >> $client_directory/auto_animations_list.txt
|
||||||
|
|
||||||
printLog(log, ">>> Install shape lightmaps <<<")
|
printLog(log, ">>> Install shape lightmaps <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + LightmapClientDirectory
|
installPath = InstallDirectory + "/" + LightmapInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory, clientPath, ".tga")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory, installPath, ".tga")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -46,18 +46,16 @@ printLog(log, "")
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
mkPath(log, LeveldesignDirectory)
|
mkPath(log, LeveldesignDirectory)
|
||||||
mkPath(log, LeveldesignDfnDirectory)
|
mkPath(log, LeveldesignWorldDirectory)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + SheetIdClientDirectory)
|
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -53,9 +53,8 @@ if MakeSheetId == "":
|
||||||
toolLogFail(log, MakeSheetIdTool, ToolSuffix)
|
toolLogFail(log, MakeSheetIdTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
mkPath(log, LeveldesignDirectory)
|
mkPath(log, LeveldesignDirectory)
|
||||||
mkPath(log, LeveldesignDfnDirectory)
|
mkPath(log, LeveldesignWorldDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
subprocess.call([ MakeSheetId, "-o" + LeveldesignDirectory + "/game_elem/sheet_id.bin", LeveldesignDirectory + "/game_elem", LeveldesignDirectory + "/game_element", LeveldesignWorldDirectory ])
|
||||||
subprocess.call([ MakeSheetId, "-c" + ScriptDirectory + "/configuration/make_sheet_id.cfg", "-o" + ExportBuildDirectory + "/" + SheetIdBuildDirectory + "/" + "sheet_id.bin", LeveldesignDirectory ])
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -43,13 +43,6 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + SheetIdClientDirectory
|
|
||||||
mkPath(log, clientPath)
|
|
||||||
|
|
||||||
printLog(log, ">>> Install sheet_id <<<")
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory, clientPath, ".bin")
|
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -47,18 +47,20 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
mkPath(log, LeveldesignDirectory)
|
mkPath(log, LeveldesignDirectory)
|
||||||
mkPath(log, LeveldesignDfnDirectory)
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
|
mkPath(log, DataCommonDirectory)
|
||||||
|
mkPath(log, GamedevDirectory)
|
||||||
|
mkPath(log, PrimitivesDirectory)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + SheetsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SheetsInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -44,19 +44,39 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
BuildSheets = findTool(log, ToolDirectories, BuildSheetsTool, ToolSuffix)
|
SheetsPacker = findTool(log, ToolDirectories, SheetsPackerTool, ToolSuffix)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each sheets directory
|
# For each sheets directory
|
||||||
printLog(log, ">>> Build sheets <<<")
|
printLog(log, ">>> Build sheets <<<")
|
||||||
if BuildSheets == "":
|
if SheetsPacker == "":
|
||||||
toolLogFail(log, BuildSheetsTool, ToolSuffix)
|
toolLogFail(log, SheetsPackerTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
mkPath(log, LeveldesignDirectory)
|
mkPath(log, LeveldesignDirectory)
|
||||||
mkPath(log, LeveldesignDfnDirectory)
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
mkPath(log, DataCommonDirectory)
|
||||||
|
mkPath(log, GamedevDirectory)
|
||||||
|
mkPath(log, PrimitivesDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
subprocess.call([ BuildSheets, LeveldesignDirectory, LeveldesignDfnDirectory, ExportBuildDirectory + "/" + SheetIdBuildDirectory, ExportBuildDirectory + "/" + SheetsBuildDirectory ])
|
cf = open("sheets_packer.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// SHEETS PACKER CONFIG FILE\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("DataPath = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
cf.write("\t\"" + LeveldesignDirectory + "\", \n")
|
||||||
|
cf.write("\t\"" + LeveldesignDfnDirectory + "\", \n")
|
||||||
|
cf.write("\t\"" + DataCommonDirectory + "\", \n")
|
||||||
|
cf.write("\t\"" + GamedevDirectory + "\", \n")
|
||||||
|
cf.write("\t\"" + PrimitivesDirectory + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("WorldSheet = \"" + WorldSheet + "\";\n")
|
||||||
|
cf.write("PrimitivesPath = \"" + PrimitivesDirectory + "\";\n")
|
||||||
|
cf.write("OutputDataPath = \"" + ExportBuildDirectory + "/" + SheetsBuildDirectory + "\";\n")
|
||||||
|
cf.write("LigoPrimitiveClass = \"" + LigoPrimitiveClass + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ SheetsPacker ])
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + SheetsClientDirectory
|
installPath = InstallDirectory + "/" + SheetsInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install sheets <<<")
|
printLog(log, ">>> Install sheets <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetsBuildDirectory, clientPath, ".packed_sheets")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetsBuildDirectory, installPath, ".packed_sheets")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + SkelClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SkelInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export skel
|
# \brief Export skel
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export skel
|
# Export skel
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + SkelClientDirectory
|
installPath = InstallDirectory + "/" + SkelInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install skel <<<")
|
printLog(log, ">>> Install skel <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SkelExportDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SkelExportDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue