mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-21 12:49:10 +00:00
plPythonPack compiling and running on Linux.
This commit is contained in:
@ -13,7 +13,7 @@ set(plPythonPack_HEADERS
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_executable(plPythonPack ${plPythonPack_SOURCES} ${plPythonPack_HEADERS})
|
add_executable(plPythonPack ${plPythonPack_SOURCES} ${plPythonPack_HEADERS})
|
||||||
target_link_libraries(plPythonPack CoreLib CoreLibExe plFile)
|
target_link_libraries(plPythonPack CoreLib CoreLibExe plFile plUnifiedTime)
|
||||||
|
|
||||||
if(PYTHON_DEBUG_LIBRARY)
|
if(PYTHON_DEBUG_LIBRARY)
|
||||||
target_link_libraries(plPythonPack debug ${PYTHON_DEBUG_LIBRARY})
|
target_link_libraries(plPythonPack debug ${PYTHON_DEBUG_LIBRARY})
|
||||||
|
@ -48,10 +48,26 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
#include <direct.h>
|
#if HS_BUILD_FOR_WIN32
|
||||||
|
# include <direct.h>
|
||||||
|
|
||||||
|
# define getcwd _getcwd
|
||||||
|
# define chdir _chdir
|
||||||
|
|
||||||
|
# ifndef MAXPATHLEN
|
||||||
|
# define MAXPATHLEN MAX_PATH
|
||||||
|
# endif
|
||||||
|
#elif HS_BUILD_FOR_UNIX
|
||||||
|
# include <unistd.h>
|
||||||
|
# include <sys/param.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
static const char* kPackFileName = "python.pak";
|
static const char* kPackFileName = "python.pak";
|
||||||
static const char* kGlueFile = ".\\plasma\\glue.py";
|
#if HS_BUILD_FOR_WIN32
|
||||||
|
static const char* kGlueFile = ".\\plasma\\glue.py";
|
||||||
|
#else
|
||||||
|
static const char* kGlueFile = "./plasma/glue.py";
|
||||||
|
#endif
|
||||||
static char* glueFile = (char*)kGlueFile;
|
static char* glueFile = (char*)kGlueFile;
|
||||||
|
|
||||||
void WritePythonFile(std::string fileName, std::string path, hsStream *s)
|
void WritePythonFile(std::string fileName, std::string path, hsStream *s)
|
||||||
@ -267,16 +283,22 @@ void FindSubDirs(std::vector<std::string> &dirnames, const char *path)
|
|||||||
// adds or removes the ending slash in a path as necessary
|
// adds or removes the ending slash in a path as necessary
|
||||||
std::string AdjustEndingSlash(std::string path, bool endingSlash = false)
|
std::string AdjustEndingSlash(std::string path, bool endingSlash = false)
|
||||||
{
|
{
|
||||||
|
#if HS_BUILD_FOR_WIN32
|
||||||
|
char slash = '\\';
|
||||||
|
#else
|
||||||
|
char slash = '/';
|
||||||
|
#endif
|
||||||
|
|
||||||
std::string retVal = path;
|
std::string retVal = path;
|
||||||
bool endSlashExists = false;
|
bool endSlashExists = false;
|
||||||
char temp = path[path.length()-1];
|
char temp = path[path.length()-1];
|
||||||
if (temp == '\\')
|
if (temp == slash)
|
||||||
endSlashExists = true;
|
endSlashExists = true;
|
||||||
|
|
||||||
if (endingSlash)
|
if (endingSlash)
|
||||||
{
|
{
|
||||||
if (!endSlashExists)
|
if (!endSlashExists)
|
||||||
retVal += "\\";
|
retVal += slash;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -294,17 +316,23 @@ std::string AdjustEndingSlash(std::string path, bool endingSlash = false)
|
|||||||
// appends partialPath onto the end of fullPath, inserting or removing slashes as necesssary
|
// appends partialPath onto the end of fullPath, inserting or removing slashes as necesssary
|
||||||
std::string ConcatDirs(std::string fullPath, std::string partialPath)
|
std::string ConcatDirs(std::string fullPath, std::string partialPath)
|
||||||
{
|
{
|
||||||
|
#if HS_BUILD_FOR_WIN32
|
||||||
|
char slash = '\\';
|
||||||
|
#else
|
||||||
|
char slash = '/';
|
||||||
|
#endif
|
||||||
|
|
||||||
bool fullSlash = false, partialSlash = false;
|
bool fullSlash = false, partialSlash = false;
|
||||||
char temp = fullPath[fullPath.length()-1];
|
char temp = fullPath[fullPath.length()-1];
|
||||||
if (temp == '\\')
|
if (temp == slash)
|
||||||
fullSlash = true;
|
fullSlash = true;
|
||||||
temp = partialPath[0];
|
temp = partialPath[0];
|
||||||
if (temp == '\\')
|
if (temp == slash)
|
||||||
partialSlash = true;
|
partialSlash = true;
|
||||||
|
|
||||||
std::string retVal = "";
|
std::string retVal = "";
|
||||||
if (!fullSlash)
|
if (!fullSlash)
|
||||||
retVal = fullPath + "\\";
|
retVal = fullPath + slash;
|
||||||
if (partialSlash)
|
if (partialSlash)
|
||||||
{
|
{
|
||||||
std::string temp = "";
|
std::string temp = "";
|
||||||
@ -346,7 +374,7 @@ void PackDirectory(std::string dir, std::string rootPath, std::string pakName, s
|
|||||||
|
|
||||||
printf("\nCreating %s using the contents of %s\n",pakName.c_str(),dir.c_str());
|
printf("\nCreating %s using the contents of %s\n",pakName.c_str(),dir.c_str());
|
||||||
printf("Changing working directory to %s\n",rootPath.c_str());
|
printf("Changing working directory to %s\n",rootPath.c_str());
|
||||||
if (_chdir(rootPath.c_str()))
|
if (chdir(rootPath.c_str()))
|
||||||
{
|
{
|
||||||
printf("ERROR: Directory change to %s failed for some reason\n",rootPath.c_str());
|
printf("ERROR: Directory change to %s failed for some reason\n",rootPath.c_str());
|
||||||
printf("Unable to continue with the packing of this directory, aborting...\n");
|
printf("Unable to continue with the packing of this directory, aborting...\n");
|
||||||
@ -428,12 +456,12 @@ void PrintUsage()
|
|||||||
printf(" must be a relative path to the current working directory\n");
|
printf(" must be a relative path to the current working directory\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
printf("The Python Pack Utility\n");
|
printf("The Python Pack Utility\n");
|
||||||
|
|
||||||
char buffer[_MAX_PATH];
|
char buffer[MAXPATHLEN];
|
||||||
_getcwd(buffer,_MAX_PATH);
|
getcwd(buffer, MAXPATHLEN);
|
||||||
std::string baseWorkingDir = buffer;
|
std::string baseWorkingDir = buffer;
|
||||||
|
|
||||||
// are they asking for usage?
|
// are they asking for usage?
|
||||||
@ -445,14 +473,14 @@ void main(int argc, char *argv[])
|
|||||||
|| (temp == "-h") || (temp == "/h"))
|
|| (temp == "-h") || (temp == "/h"))
|
||||||
{
|
{
|
||||||
PrintUsage();
|
PrintUsage();
|
||||||
return;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// wrong number of args, print usage
|
// wrong number of args, print usage
|
||||||
if (argc > 2)
|
if (argc > 2)
|
||||||
{
|
{
|
||||||
PrintUsage();
|
PrintUsage();
|
||||||
return;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> dirNames;
|
std::vector<std::string> dirNames;
|
||||||
@ -476,4 +504,6 @@ void main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
PackDirectory(dirNames[i],rootPath,rootPath+dirNames[i]+".pak",dirNames);
|
PackDirectory(dirNames[i],rootPath,rootPath+dirNames[i]+".pak",dirNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user