mirror of
https://github.com/raylib-cs/raylib-cs
synced 2025-06-30 19:03:42 -04:00
Tidying up project
- Added Release folder for important dlls that will be used in nuget package - Moved Rayforms into Examples folder - Added updated generator(WIP)
This commit is contained in:
@ -4,8 +4,8 @@ using System.IO;
|
||||
namespace Raylibcs
|
||||
{
|
||||
/// <summary>
|
||||
/// Rough generator for Raylib-cs to help automate binding porting raylib code
|
||||
/// Output will still need to be modified as it is a work in progess
|
||||
/// Rough generator for Raylib-cs to help automate binding + porting raylib code
|
||||
/// Output will still need to be modified
|
||||
/// </summary>
|
||||
class Program
|
||||
{
|
||||
@ -13,10 +13,10 @@ namespace Raylibcs
|
||||
{
|
||||
Console.WriteLine("Raylib-cs generator");
|
||||
|
||||
//GenerateBindings();
|
||||
GenerateBindings();
|
||||
GenerateExamples();
|
||||
//GenerateTemplates();
|
||||
//GenerateGames();
|
||||
GenerateTemplates();
|
||||
GenerateGames();
|
||||
|
||||
Console.WriteLine("Finished generating. Enjoy! :)");
|
||||
Console.WriteLine("Press enter to exit");
|
||||
@ -26,7 +26,8 @@ namespace Raylibcs
|
||||
static void GenerateBindings()
|
||||
{
|
||||
Console.WriteLine("Generating bindings");
|
||||
// Generator.Generate("raylib.h", "RLAPI");
|
||||
Generator.Process("raylib.h", "RLAPI");
|
||||
Generator.Process("rlgl.h", "RLGL");
|
||||
}
|
||||
|
||||
static void GenerateExamples()
|
||||
@ -34,39 +35,91 @@ namespace Raylibcs
|
||||
Console.WriteLine("Generating examples");
|
||||
|
||||
// output folder
|
||||
Directory.CreateDirectory("Examples");
|
||||
|
||||
// load files
|
||||
var path = Generator.RaylibDirectory + "Examples";
|
||||
var folder = "Examples";
|
||||
Directory.CreateDirectory(folder);
|
||||
var path = Generator.RaylibDirectory + folder.ToLower();
|
||||
var dirs = Directory.GetDirectories(path);
|
||||
|
||||
// convert each file to rough c# version
|
||||
foreach (var dir in dirs)
|
||||
var files = Directory.GetFiles(path, "*.c", SearchOption.AllDirectories);
|
||||
foreach (var file in files)
|
||||
{
|
||||
// create sub folder in output
|
||||
var dirName = new DirectoryInfo(dir).Name;
|
||||
Directory.CreateDirectory("Examples\\" + dirName);
|
||||
var files = Directory.GetFiles(dir, "*.c");
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
Generator.ProcessExample(file, dirName);
|
||||
}
|
||||
var dirName = Path.GetDirectoryName(file);
|
||||
var name = new DirectoryInfo(dirName).Name;
|
||||
if (!Directory.Exists(folder + name))
|
||||
Directory.CreateDirectory(folder + "//" + name);
|
||||
Generator.ProcessExample(file, folder, folder + "//" + name);
|
||||
}
|
||||
}
|
||||
|
||||
static void GenerateTemplates()
|
||||
{
|
||||
Console.WriteLine("Generating templates");
|
||||
// TODO
|
||||
|
||||
// output folder
|
||||
var folder = "Templates";
|
||||
Directory.CreateDirectory(folder);
|
||||
var path = Generator.RaylibDirectory2 + folder.ToLower();
|
||||
var dirs = Directory.GetDirectories(path);
|
||||
|
||||
// copy folder structure
|
||||
foreach (string dirPath in Directory.GetDirectories(path, "*",
|
||||
SearchOption.AllDirectories))
|
||||
Directory.CreateDirectory(dirPath.Replace(path, folder));
|
||||
|
||||
// process all c files in directory and output result
|
||||
var files = Directory.GetFiles(path, "*.c", SearchOption.AllDirectories);
|
||||
foreach (var file in files)
|
||||
{
|
||||
var dirName = Path.GetDirectoryName(file);
|
||||
var name = new DirectoryInfo(dirName).Name;
|
||||
if (name == folder.ToLower())
|
||||
{
|
||||
Generator.ProcessExample(file, folder, folder);
|
||||
}
|
||||
else
|
||||
{
|
||||
var t = file;
|
||||
t = folder + t.Replace(path, "");
|
||||
t = new FileInfo(t).Directory.FullName;
|
||||
Generator.ProcessExample(file, folder, t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void GenerateGames()
|
||||
{
|
||||
Console.WriteLine("Generating games");
|
||||
// TODO
|
||||
|
||||
// output folder
|
||||
var folder = "Games";
|
||||
Directory.CreateDirectory(folder);
|
||||
var path = Generator.RaylibDirectory2 + folder.ToLower();
|
||||
var dirs = Directory.GetDirectories(path);
|
||||
|
||||
// copy folder structure
|
||||
foreach (string dirPath in Directory.GetDirectories(path, "*",
|
||||
SearchOption.AllDirectories))
|
||||
Directory.CreateDirectory(dirPath.Replace(path, folder));
|
||||
|
||||
// process all c files in directory and output result
|
||||
var files = Directory.GetFiles(path, "*.c", SearchOption.AllDirectories);
|
||||
foreach (var file in files)
|
||||
{
|
||||
var dirName = Path.GetDirectoryName(file);
|
||||
var name = new DirectoryInfo(dirName).Name;
|
||||
if (name == folder.ToLower())
|
||||
{
|
||||
Generator.ProcessExample(file, folder, folder);
|
||||
}
|
||||
else
|
||||
{
|
||||
var t = file;
|
||||
t = folder + t.Replace(path, "");
|
||||
t = new FileInfo(t).Directory.FullName;
|
||||
Generator.ProcessExample(file, folder, t);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user