2
0
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:
2018-10-05 17:31:46 +01:00
parent 7008c67dfa
commit e2a32241de
16 changed files with 240 additions and 146 deletions

View File

@ -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);
}
}
}
}
}