# CLEANUP #
- Cleanup main.cpp - fix sample_code - Add CMakeLists.txt
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -32,3 +32,4 @@ | |||||||
| *.out | *.out | ||||||
| *.app | *.app | ||||||
|  |  | ||||||
|  | build/ | ||||||
							
								
								
									
										80
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										80
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							| @@ -2,6 +2,84 @@ | |||||||
|     "files.associations": { |     "files.associations": { | ||||||
|         "utility": "cpp", |         "utility": "cpp", | ||||||
|         "ostream": "cpp", |         "ostream": "cpp", | ||||||
|         "xstring": "cpp" |         "xstring": "cpp", | ||||||
|  |         "algorithm": "cpp", | ||||||
|  |         "array": "cpp", | ||||||
|  |         "atomic": "cpp", | ||||||
|  |         "bit": "cpp", | ||||||
|  |         "cctype": "cpp", | ||||||
|  |         "charconv": "cpp", | ||||||
|  |         "chrono": "cpp", | ||||||
|  |         "clocale": "cpp", | ||||||
|  |         "cmath": "cpp", | ||||||
|  |         "compare": "cpp", | ||||||
|  |         "concepts": "cpp", | ||||||
|  |         "condition_variable": "cpp", | ||||||
|  |         "cstddef": "cpp", | ||||||
|  |         "cstdint": "cpp", | ||||||
|  |         "cstdio": "cpp", | ||||||
|  |         "cstdlib": "cpp", | ||||||
|  |         "cstring": "cpp", | ||||||
|  |         "ctime": "cpp", | ||||||
|  |         "cwchar": "cpp", | ||||||
|  |         "deque": "cpp", | ||||||
|  |         "exception": "cpp", | ||||||
|  |         "coroutine": "cpp", | ||||||
|  |         "resumable": "cpp", | ||||||
|  |         "filesystem": "cpp", | ||||||
|  |         "format": "cpp", | ||||||
|  |         "forward_list": "cpp", | ||||||
|  |         "fstream": "cpp", | ||||||
|  |         "functional": "cpp", | ||||||
|  |         "future": "cpp", | ||||||
|  |         "initializer_list": "cpp", | ||||||
|  |         "iomanip": "cpp", | ||||||
|  |         "ios": "cpp", | ||||||
|  |         "iosfwd": "cpp", | ||||||
|  |         "iostream": "cpp", | ||||||
|  |         "istream": "cpp", | ||||||
|  |         "iterator": "cpp", | ||||||
|  |         "limits": "cpp", | ||||||
|  |         "list": "cpp", | ||||||
|  |         "locale": "cpp", | ||||||
|  |         "map": "cpp", | ||||||
|  |         "memory": "cpp", | ||||||
|  |         "mutex": "cpp", | ||||||
|  |         "new": "cpp", | ||||||
|  |         "numeric": "cpp", | ||||||
|  |         "optional": "cpp", | ||||||
|  |         "random": "cpp", | ||||||
|  |         "ranges": "cpp", | ||||||
|  |         "ratio": "cpp", | ||||||
|  |         "span": "cpp", | ||||||
|  |         "sstream": "cpp", | ||||||
|  |         "stack": "cpp", | ||||||
|  |         "stdexcept": "cpp", | ||||||
|  |         "stop_token": "cpp", | ||||||
|  |         "streambuf": "cpp", | ||||||
|  |         "string": "cpp", | ||||||
|  |         "system_error": "cpp", | ||||||
|  |         "thread": "cpp", | ||||||
|  |         "tuple": "cpp", | ||||||
|  |         "type_traits": "cpp", | ||||||
|  |         "typeinfo": "cpp", | ||||||
|  |         "unordered_map": "cpp", | ||||||
|  |         "valarray": "cpp", | ||||||
|  |         "vector": "cpp", | ||||||
|  |         "xfacet": "cpp", | ||||||
|  |         "xhash": "cpp", | ||||||
|  |         "xiosbase": "cpp", | ||||||
|  |         "xlocale": "cpp", | ||||||
|  |         "xlocbuf": "cpp", | ||||||
|  |         "xlocinfo": "cpp", | ||||||
|  |         "xlocmes": "cpp", | ||||||
|  |         "xlocmon": "cpp", | ||||||
|  |         "xlocnum": "cpp", | ||||||
|  |         "xloctime": "cpp", | ||||||
|  |         "xmemory": "cpp", | ||||||
|  |         "xstddef": "cpp", | ||||||
|  |         "xtr1common": "cpp", | ||||||
|  |         "xtree": "cpp", | ||||||
|  |         "xutility": "cpp" | ||||||
|     } |     } | ||||||
| } | } | ||||||
							
								
								
									
										15
									
								
								CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | cmake_minimum_required(VERSION 3.18) | ||||||
|  |  | ||||||
|  | project(npi-build) | ||||||
|  | set(CMAKE_CXX_STANDARD 20) | ||||||
|  | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) | ||||||
|  |  | ||||||
|  | add_executable(npi-build | ||||||
|  | source/main.cpp | ||||||
|  | source/banner_audio.cpp | ||||||
|  | source/banner.cpp | ||||||
|  | source/helper.cpp | ||||||
|  | source/icon.cpp | ||||||
|  | source/logo_lz11.cpp | ||||||
|  | source/samplefiles.cpp) | ||||||
|  | target_include_directories(npi-build PUBLIC include) | ||||||
							
								
								
									
										236
									
								
								source/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										236
									
								
								source/main.cpp
									
									
									
									
									
								
							| @@ -12,49 +12,69 @@ | |||||||
| #include <samplefiles.hpp> | #include <samplefiles.hpp> | ||||||
| #include <fileHash.hpp> | #include <fileHash.hpp> | ||||||
|  |  | ||||||
|  | // Console CLear String | ||||||
| #define cons_clear std::cout << "\x1B[2J\x1B[H" | #define cons_clear std::cout << "\x1B[2J\x1B[H" | ||||||
|  |  | ||||||
| void ToUpperCase(std::string &str) { | // Make String Uppercase | ||||||
|  | void ToUpperCase(std::string &str) | ||||||
|  | { | ||||||
|   std::transform(str.begin(), str.end(), str.begin(), |   std::transform(str.begin(), str.end(), str.begin(), | ||||||
|                  [](unsigned char c) { return std::toupper(c); }); |                  [](unsigned char c) | ||||||
|  |                  { return std::toupper(c); }); | ||||||
| } | } | ||||||
|  |  | ||||||
| bool isValidHex(const std::string &str) { | // Check if String is Valid Hex String | ||||||
|   for (char c : str) { | bool isValidHex(const std::string &str) | ||||||
|     if (!isxdigit(c)) { | { | ||||||
|  |   for (char c : str) | ||||||
|  |   { | ||||||
|  |     if (!isxdigit(c)) | ||||||
|  |     { | ||||||
|       return false; |       return false; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   return true; |   return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| void CheckTools() { | // Check for tools | ||||||
|  | void CheckTools() | ||||||
|  | { | ||||||
|   std::vector<std::string> installed; |   std::vector<std::string> installed; | ||||||
|   std::vector<std::string> not_installed; |   std::vector<std::string> not_installed; | ||||||
|   int res = 0; |   int res = 0; | ||||||
|   res = system("makerom"); |   res = system("makerom"); | ||||||
|   if (!res) { |   if (!res) | ||||||
|  |   { | ||||||
|     not_installed.push_back("makerom"); |     not_installed.push_back("makerom"); | ||||||
|   } else { |   } | ||||||
|  |   else | ||||||
|  |   { | ||||||
|     installed.push_back("makerom"); |     installed.push_back("makerom"); | ||||||
|   } |   } | ||||||
|   res = system("bannertool"); |   res = system("bannertool"); | ||||||
|   if (!res) { |   if (!res) | ||||||
|  |   { | ||||||
|     not_installed.push_back("bannertool"); |     not_installed.push_back("bannertool"); | ||||||
|   } else { |   } | ||||||
|  |   else | ||||||
|  |   { | ||||||
|     installed.push_back("bannertool"); |     installed.push_back("bannertool"); | ||||||
|   } |   } | ||||||
|   std::cout << "<DEVKITPRO> is set to: " << getenv("DEVKITPRO") << "\n"; |   std::cout << "<DEVKITPRO> is set to: " << getenv("DEVKITPRO") << "\n"; | ||||||
|   std::cout << "Tools-Check:\n"; |   std::cout << "Tools-Check:\n"; | ||||||
|   for (auto const &it : installed) { |   for (auto const &it : installed) | ||||||
|  |   { | ||||||
|     std::cout << "[+]" << it << " is installed!\n"; |     std::cout << "[+]" << it << " is installed!\n"; | ||||||
|   } |   } | ||||||
|   for (auto const &it : not_installed) { |   for (auto const &it : not_installed) | ||||||
|     std::cout << "[+]" << it << " is not installed!\n"; |   { | ||||||
|  |     std::cout << "[-]" << it << " is not installed!\n"; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| void PrintHelp() { | // Print Usage/Help | ||||||
|  | void PrintHelp() | ||||||
|  | { | ||||||
|   std::cout << "npi-build v0.1\n"; |   std::cout << "npi-build v0.1\n"; | ||||||
|   std::cout << "Commands:\n"; |   std::cout << "Commands:\n"; | ||||||
|   std::cout << "help: Display this\n"; |   std::cout << "help: Display this\n"; | ||||||
| @@ -68,49 +88,95 @@ void PrintHelp() { | |||||||
|   return; |   return; | ||||||
| } | } | ||||||
|  |  | ||||||
| void ProcessArgs(int argc, char *argv[]) { | // Function to generate Directories and Default Files | ||||||
|   if (argc < 2) { | void GenerateProjectDir(const std::string &dst_dir, int type_) | ||||||
|  | { | ||||||
|  |   // Create Directories | ||||||
|  |   std::filesystem::create_directories( | ||||||
|  |       std::filesystem::path(dst_dir + "/app")); | ||||||
|  |   std::filesystem::create_directories( | ||||||
|  |       std::filesystem::path(dst_dir + "/gfx")); | ||||||
|  |   std::filesystem::create_directories( | ||||||
|  |       std::filesystem::path(dst_dir + "/romfs/gfx")); | ||||||
|  |   std::filesystem::create_directories(dst_dir + "/source"); | ||||||
|  |   std::filesystem::create_directories(dst_dir + "/include"); | ||||||
|  |  | ||||||
|  |   // Create .gitkeep for empty dirs | ||||||
|  |   std::ofstream gfx_keep(dst_dir + "/gfx/.gitkeep"); | ||||||
|  |   gfx_keep.close(); | ||||||
|  |   std::ofstream rgfx_keep(dst_dir + "/romfs/gfx/.gitkeep"); | ||||||
|  |   rgfx_keep.close(); | ||||||
|  |   std::ofstream sample_source(dst_dir + "/source/main.cpp"); | ||||||
|  |   sample_source << sample_code; | ||||||
|  |   sample_source.close(); | ||||||
|  |   std::ofstream sample_hdr(dst_dir + "/include/common.hpp"); | ||||||
|  |   sample_hdr << sample_header; | ||||||
|  |   sample_hdr.close(); | ||||||
|  |   if (type_ == 1) | ||||||
|  |   { | ||||||
|  |     helper::ArrayToFile(banner_audio, banner_audio_size, | ||||||
|  |                         dst_dir + "/app/banner_audio.wav"); | ||||||
|  |     helper::ArrayToFile(logo_lz11, logo_lz11_size, | ||||||
|  |                         dst_dir + "/app/logo.lz11"); | ||||||
|  |     helper::ArrayToFile(banner, banner_size, dst_dir + "/app/banner.png"); | ||||||
|  |   } | ||||||
|  |   // Create icon.png | ||||||
|  |   helper::ArrayToFile(icon, icon_size, dst_dir + "/app/icon.png"); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Process Input Args | ||||||
|  | void ProcessArgs(int argc, char *argv[]) | ||||||
|  | { | ||||||
|  |   if (argc < 2) | ||||||
|  |   { | ||||||
|  |     // No Args | ||||||
|     PrintHelp(); |     PrintHelp(); | ||||||
|     return; |     return; | ||||||
|   } else if (std::string(argv[1]) == "help") { |   } | ||||||
|  |   else if (std::string(argv[1]) == "help") | ||||||
|  |   { | ||||||
|  |     // Requested Help | ||||||
|     PrintHelp(); |     PrintHelp(); | ||||||
|     return; |     return; | ||||||
|   } else if (std::string(argv[1]) == "generate") { |   } | ||||||
|     if (argc < 4) { |   else if (std::string(argv[1]) == "generate") | ||||||
|  |   { | ||||||
|  |     // Generator | ||||||
|  |     if (argc != 4) | ||||||
|  |     { | ||||||
|  |       // Missing Args / ot too much | ||||||
|       std::cout << "Wrong Number of Arguments!\n"; |       std::cout << "Wrong Number of Arguments!\n"; | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|  |     // read type | ||||||
|     std::string type = std::string(argv[2]); |     std::string type = std::string(argv[2]); | ||||||
|     int res = 1; |     int res = 1; | ||||||
|     int type_ = -1; |     int type_ = -1; | ||||||
|     if (type == "3dsx" | type == "cia3dsx") { |     // TODO: | ||||||
|  |     // change this if statement | ||||||
|  |     if (type == "3dsx" | type == "cia3dsx") | ||||||
|  |     { | ||||||
|       res = 0; |       res = 0; | ||||||
|       if (type == "3dsx") |       if (type == "3dsx") | ||||||
|         type_ = 0; |         type_ = 0; | ||||||
|       else if (type == "cia3dsx") |       else if (type == "cia3dsx") | ||||||
|         type_ = 1; |         type_ = 1; | ||||||
|     } |     } | ||||||
|     if (res) { |     // Print Error if re is not 0 | ||||||
|  |     if (res) | ||||||
|  |     { | ||||||
|       std::cout << "Unknown type!\n"; |       std::cout << "Unknown type!\n"; | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|  |     // get destination | ||||||
|     std::string dst_dir = argv[3]; |     std::string dst_dir = argv[3]; | ||||||
|  |  | ||||||
|     std::cout << "\nDestination: " << dst_dir << "/\n"; |     std::cout << "\nDestination: " << dst_dir << "/\n"; | ||||||
|  |  | ||||||
|     std::filesystem::create_directories( |     // Generate Project | ||||||
|         std::filesystem::path(dst_dir + "/app")); |     GenerateProjectDir(dst_dir, type_); | ||||||
|     std::filesystem::create_directories( |     // Create rsf if cia mode | ||||||
|         std::filesystem::path(dst_dir + "/gfx")); |     if (type_ == 1) | ||||||
|     std::filesystem::create_directories(dst_dir + "/source"); |     { | ||||||
|     std::filesystem::create_directories(dst_dir + "/include"); |  | ||||||
|     std::ofstream gfx_keep(dst_dir + "/gfx/.gitkeep"); |  | ||||||
|     gfx_keep.close(); |  | ||||||
|     std::filesystem::create_directories( |  | ||||||
|         std::filesystem::path(dst_dir + "/romfs/gfx")); |  | ||||||
|     std::ofstream rgfx_keep(dst_dir + "/romfs/gfx/.gitkeep"); |  | ||||||
|     rgfx_keep.close(); |  | ||||||
|     if (type_ == 1) { |  | ||||||
|       char *ret = new char[10000]; |       char *ret = new char[10000]; | ||||||
|       std::string uid = helper::GenerateUniqueId(); |       std::string uid = helper::GenerateUniqueId(); | ||||||
|       sprintf(ret, ciaRSF, default_title, default_code, default_romfs_path, |       sprintf(ret, ciaRSF, default_title, default_code, default_romfs_path, | ||||||
| @@ -119,87 +185,87 @@ void ProcessArgs(int argc, char *argv[]) { | |||||||
|       test << ret; |       test << ret; | ||||||
|       test.close(); |       test.close(); | ||||||
|       delete[] ret; |       delete[] ret; | ||||||
|       std::ofstream sample_source(dst_dir + "/source/main.cpp"); |  | ||||||
|       sample_source << sample_code; |  | ||||||
|       sample_source.close(); |  | ||||||
|       std::ofstream sample_hdr(dst_dir + "/include/common.hpp"); |  | ||||||
|       sample_hdr << sample_header; |  | ||||||
|       sample_hdr.close(); |  | ||||||
|       helper::ArrayToFile(banner_audio, banner_audio_size, |  | ||||||
|                           dst_dir + "/app/banner_audio.wav"); |  | ||||||
|       helper::ArrayToFile(logo_lz11, logo_lz11_size, |  | ||||||
|                           dst_dir + "/app/logo.lz11"); |  | ||||||
|       helper::ArrayToFile(banner, banner_size, dst_dir + "/app/banner.png"); |  | ||||||
|     } |     } | ||||||
|     helper::ArrayToFile(icon, icon_size, dst_dir + "/app/icon.png"); |     // Generate Default build.json | ||||||
|     NpiProject npr; |     NpiProject npr; | ||||||
|     Prj_InitDefault(npr); |     Prj_InitDefault(npr); | ||||||
|     helper::GenerateTemplateFile(dst_dir + "/build.json", npr); |     helper::GenerateTemplateFile(dst_dir + "/build.json", npr); | ||||||
|   } else if (std::string(argv[1]) == "generate-assist") { |   } | ||||||
|  |   else if (std::string(argv[1]) == "generate-assist") | ||||||
|  |   { | ||||||
|  |     // Generate with Assistant | ||||||
|     // define vars |     // define vars | ||||||
|     std::string prj_name; |     std::string prj_name; | ||||||
|     std::string prodcode; |     std::string prodcode; | ||||||
|     std::string unique_id; |     std::string unique_id; | ||||||
|  |  | ||||||
|     int type_; |     int type_; | ||||||
|     std::string dst_dir; |     std::string dst_dir; | ||||||
|  |  | ||||||
|  |     // Request Name | ||||||
|     std::cout << "Npi-Build Project-Assist:"; |     std::cout << "Npi-Build Project-Assist:"; | ||||||
|     std::cout << "\ntype Project Name >"; |     std::cout << "\ntype Project Name >"; | ||||||
|     std::cin >> prj_name; |     std::cin >> prj_name; | ||||||
|     std::cout << "\ntype Project Code 4 chars [NPI7] >"; |     // Request Prod Code | ||||||
|  |     std::cout << "\ntype Product Code 4 chars [NPI7] >"; | ||||||
|     std::cin >> prodcode; |     std::cin >> prodcode; | ||||||
|     if (prodcode.length() != 4) { |     if (prodcode.length() != 4) | ||||||
|  |     { | ||||||
|  |       // Handle Wrong lengh Error | ||||||
|       std::cout << "\nWrong Length!\n"; |       std::cout << "\nWrong Length!\n"; | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|  |     // Make Sure its Uppercase | ||||||
|     ToUpperCase(prodcode); |     ToUpperCase(prodcode); | ||||||
|  |     // Output Prod Code and request unique_id | ||||||
|     std::cout << "Code set to [" << prodcode << "]"; |     std::cout << "Code set to [" << prodcode << "]"; | ||||||
|     std::cout << "\ntype project's unique id [ff3ff]\n or type random to " |     std::cout << "\ntype project's unique id [ff3ff]\n or type random to " | ||||||
|                  "generate a random one>"; |                  "generate a random one>"; | ||||||
|     std::cin >> unique_id; |     std::cin >> unique_id; | ||||||
|  |     // Check if random keyword was used | ||||||
|     bool rnd = false; |     bool rnd = false; | ||||||
|     if (unique_id == "random") { |     if (unique_id == "random") | ||||||
|  |     { | ||||||
|  |       // Generate random one | ||||||
|       unique_id = helper::GenerateUniqueId(); |       unique_id = helper::GenerateUniqueId(); | ||||||
|       rnd = true; |       rnd = true; | ||||||
|     } |     } | ||||||
|     if (unique_id.length() != 5 && !rnd) { |     if (unique_id.length() != 5 && !rnd) | ||||||
|  |     { | ||||||
|  |       // Handle wrong lengh | ||||||
|       std::cout << "\nWrong Length!\n"; |       std::cout << "\nWrong Length!\n"; | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|     if (!isValidHex(unique_id) && !rnd) { |     if (!isValidHex(unique_id) && !rnd) | ||||||
|  |     { | ||||||
|  |       // Handle not hex digits | ||||||
|       std::cout << "\nId is not valid\n"; |       std::cout << "\nId is not valid\n"; | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|     if (!rnd) { |     if (!rnd) | ||||||
|  |     { | ||||||
|  |       // Add 0x if not random | ||||||
|       unique_id.insert(0, "0x"); |       unique_id.insert(0, "0x"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     // Request Project type | ||||||
|     std::cout << "\nProject type: type 0 for 3dsx\nonly or 1 for cia and 3dsx>"; |     std::cout << "\nProject type: type 0 for 3dsx\nonly or 1 for cia and 3dsx>"; | ||||||
|     std::cin >> type_; |     std::cin >> type_; | ||||||
|     if (!(type_ == 0 | type_ == 1)) { |     if (!(type_ == 0 | type_ == 1)) | ||||||
|  |     { | ||||||
|       std::cout << "\nunknown type!\n"; |       std::cout << "\nunknown type!\n"; | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|  |     // Request Destination Directory | ||||||
|     std::cout << "\nProjects Directpry: type . for current>"; |     std::cout << "\nProjects Directpry: type . for current>"; | ||||||
|     std::cin >> dst_dir; |     std::cin >> dst_dir; | ||||||
|  |  | ||||||
|     std::cout << "\nDestination: " << dst_dir << "/\n"; |     std::cout << "\nDestination: " << dst_dir << "/\n"; | ||||||
|  |  | ||||||
|     std::filesystem::create_directories( |     // Generate default dirs and files | ||||||
|         std::filesystem::path(dst_dir + "/app")); |     GenerateProjectDir(dst_dir, type_); | ||||||
|     std::filesystem::create_directories( |  | ||||||
|         std::filesystem::path(dst_dir + "/gfx")); |  | ||||||
|         std::filesystem::create_directories(dst_dir + "/source"); |  | ||||||
|     std::filesystem::create_directories(dst_dir + "/include"); |  | ||||||
|     std::ofstream gfx_keep(dst_dir + "/gfx/.gitkeep"); |  | ||||||
|     gfx_keep.close(); |  | ||||||
|     std::filesystem::create_directories( |  | ||||||
|         std::filesystem::path(dst_dir + "/romfs/gfx")); |  | ||||||
|     std::ofstream rgfx_keep(dst_dir + "/romfs/gfx/.gitkeep"); |  | ||||||
|     rgfx_keep.close(); |  | ||||||
|  |  | ||||||
|     if (type_ == 1) { |     // Generate RSF if cia mode | ||||||
|  |     if (type_ == 1) | ||||||
|  |     { | ||||||
|       char *ret = new char[10000]; |       char *ret = new char[10000]; | ||||||
|       sprintf(ret, ciaRSF, prj_name.c_str(), prodcode.c_str(), |       sprintf(ret, ciaRSF, prj_name.c_str(), prodcode.c_str(), | ||||||
|               default_romfs_path, unique_id.c_str()); |               default_romfs_path, unique_id.c_str()); | ||||||
| @@ -207,45 +273,37 @@ void ProcessArgs(int argc, char *argv[]) { | |||||||
|       test << ret; |       test << ret; | ||||||
|       test.close(); |       test.close(); | ||||||
|       delete[] ret; |       delete[] ret; | ||||||
|       std::ofstream sample_source(dst_dir + "/source/main.cpp"); |  | ||||||
|       sample_source << sample_code; |  | ||||||
|       sample_source.close(); |  | ||||||
|       std::ofstream sample_hdr(dst_dir + "/include/common.hpp"); |  | ||||||
|       sample_hdr << sample_header; |  | ||||||
|       sample_hdr.close(); |  | ||||||
|       helper::ArrayToFile(banner_audio, banner_audio_size, |  | ||||||
|                           dst_dir + "/app/banner_audio.wav"); |  | ||||||
|       helper::ArrayToFile(logo_lz11, logo_lz11_size, |  | ||||||
|                           dst_dir + "/app/logo.lz11"); |  | ||||||
|       helper::ArrayToFile(banner, banner_size, dst_dir + "/app/banner.png"); |  | ||||||
|     } |     } | ||||||
|     helper::ArrayToFile(icon, icon_size, dst_dir + "/app/icon.png"); |     // Create build.json | ||||||
|     NpiProject npr; |     NpiProject npr; | ||||||
|     Prj_InitDefault(npr); |     Prj_InitDefault(npr); | ||||||
|     npr.name = prj_name; |     npr.name = prj_name; | ||||||
|     npr.prod = prodcode; |     npr.prod = prodcode; | ||||||
|     npr.unique_id = unique_id; |     npr.unique_id = unique_id; | ||||||
|  |  | ||||||
|     helper::GenerateTemplateFile(dst_dir + "/build.json", npr); |     helper::GenerateTemplateFile(dst_dir + "/build.json", npr); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   else if (std::string(argv[1]) == "build") { |   else if (std::string(argv[1]) == "build") | ||||||
|  |   { | ||||||
|  |     // Run over build.json and build project | ||||||
|     helper::CompileProject(fix_path(std::filesystem::current_path().string())); |     helper::CompileProject(fix_path(std::filesystem::current_path().string())); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   // Check for makerom and bannertool | ||||||
|   else if (std::string(argv[1]) == "check-tools") |   else if (std::string(argv[1]) == "check-tools") | ||||||
|     CheckTools(); |     CheckTools(); | ||||||
|  |   // Cleanup | ||||||
|   else if (std::string(argv[1]) == "clean") |   else if (std::string(argv[1]) == "clean") | ||||||
|     helper::CleanProject(fix_path(std::filesystem::current_path().string())); |     helper::CleanProject(fix_path(std::filesystem::current_path().string())); | ||||||
| } | } | ||||||
|  |  | ||||||
| int main(int argc, char *argv[]) { | // Main Entrypoint | ||||||
|   //Lapi::Init(); | int main(int argc, char *argv[]) | ||||||
|   //Lapi::Exit(); | { | ||||||
|   //return 0; |   // Process Input | ||||||
|   // std::cout << std::filesystem::current_path() << std::endl; |  | ||||||
|   ProcessArgs(argc, argv); |   ProcessArgs(argc, argv); | ||||||
|  |  | ||||||
|  |   // Finished | ||||||
|   std::cout << "Exitting...\n"; |   std::cout << "Exitting...\n"; | ||||||
|   return 0; |   return 0; | ||||||
| } | } | ||||||
| @@ -16,7 +16,7 @@ const char *sample_code = | |||||||
|     "   gfxInitDefault();\n" |     "   gfxInitDefault();\n" | ||||||
|     "   consoleInit(GFX_TOP, NULL);\n" |     "   consoleInit(GFX_TOP, NULL);\n" | ||||||
|     "   printf(\"Hello World!\\n\");\n" |     "   printf(\"Hello World!\\n\");\n" | ||||||
|     "   printf(\"Press START to exit!\\n\")" |     "   printf(\"Press START to exit!\\n\");\n" | ||||||
|     "   while(aptMainLoop()) {\n" |     "   while(aptMainLoop()) {\n" | ||||||
|     "       hidScanInput();\n" |     "       hidScanInput();\n" | ||||||
|     "       if(hidKeysDown() & KEY_START) break;\n" |     "       if(hidKeysDown() & KEY_START) break;\n" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user