diff --git a/deps/cyberpunk_cmake b/deps/cyberpunk_cmake index dd230b6b..073d4d6c 160000 --- a/deps/cyberpunk_cmake +++ b/deps/cyberpunk_cmake @@ -1 +1 @@ -Subproject commit dd230b6b7933fde34beabda92d60c49d26ee24fe +Subproject commit 073d4d6c082e0840076e4b80cd16ad25718f60d9 diff --git a/tools/builder.exe b/tools/builder.exe deleted file mode 100644 index 768eb3e5..00000000 Binary files a/tools/builder.exe and /dev/null differ diff --git a/tools/builder/INIReader.h b/tools/builder/INIReader.h deleted file mode 100644 index f22cc243..00000000 --- a/tools/builder/INIReader.h +++ /dev/null @@ -1,462 +0,0 @@ -// Read an INI file into easy-to-access name/value pairs. - -// inih and INIReader are released under the New BSD license (see LICENSE.txt). -// Go to the project home page for more info: -// -// https://github.com/benhoyt/inih -/* inih -- simple .INI file parser - -inih is released under the New BSD license (see LICENSE.txt). Go to the project -home page for more info: - -https://github.com/benhoyt/inih - -*/ - -#ifndef __INI_H__ -#define __INI_H__ - -/* Make this header file easier to include in C++ code */ -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* Typedef for prototype of handler function. */ -typedef int (*ini_handler)(void* user, const char* section, - const char* name, const char* value); - -/* Typedef for prototype of fgets-style reader function. */ -typedef char* (*ini_reader)(char* str, int num, void* stream); - -/* Parse given INI-style file. May have [section]s, name=value pairs - (whitespace stripped), and comments starting with ';' (semicolon). Section - is "" if name=value pair parsed before any section heading. name:value - pairs are also supported as a concession to Python's configparser. - - For each name=value pair parsed, call handler function with given user - pointer as well as section, name, and value (data only valid for duration - of handler call). Handler should return nonzero on success, zero on error. - - Returns 0 on success, line number of first error on parse error (doesn't - stop on first error), -1 on file open error, or -2 on memory allocation - error (only when INI_USE_STACK is zero). -*/ -int ini_parse(const char* filename, ini_handler handler, void* user); - -/* Same as ini_parse(), but takes a FILE* instead of filename. This doesn't - close the file when it's finished -- the caller must do that. */ -int ini_parse_file(FILE* file, ini_handler handler, void* user); - -/* Same as ini_parse(), but takes an ini_reader function pointer instead of - filename. Used for implementing custom or string-based I/O. */ -int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, - void* user); - -/* Nonzero to allow multi-line value parsing, in the style of Python's - configparser. If allowed, ini_parse() will call the handler with the same - name for each subsequent line parsed. */ -#ifndef INI_ALLOW_MULTILINE -#define INI_ALLOW_MULTILINE 1 -#endif - -/* Nonzero to allow a UTF-8 BOM sequence (0xEF 0xBB 0xBF) at the start of - the file. See http://code.google.com/p/inih/issues/detail?id=21 */ -#ifndef INI_ALLOW_BOM -#define INI_ALLOW_BOM 1 -#endif - -/* Nonzero to allow inline comments (with valid inline comment characters - specified by INI_INLINE_COMMENT_PREFIXES). Set to 0 to turn off and match - Python 3.2+ configparser behaviour. */ -#ifndef INI_ALLOW_INLINE_COMMENTS -#define INI_ALLOW_INLINE_COMMENTS 1 -#endif -#ifndef INI_INLINE_COMMENT_PREFIXES -#define INI_INLINE_COMMENT_PREFIXES ";" -#endif - -/* Nonzero to use stack, zero to use heap (malloc/free). */ -#ifndef INI_USE_STACK -#define INI_USE_STACK 1 -#endif - -/* Stop parsing on first error (default is to keep parsing). */ -#ifndef INI_STOP_ON_FIRST_ERROR -#define INI_STOP_ON_FIRST_ERROR 0 -#endif - -/* Maximum line length for any line in INI file. */ -#ifndef INI_MAX_LINE -#define INI_MAX_LINE 200 -#endif - -#ifdef __cplusplus -} -#endif - -/* inih -- simple .INI file parser - -inih is released under the New BSD license (see LICENSE.txt). Go to the project -home page for more info: - -https://github.com/benhoyt/inih - -*/ - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include -#include - -#if !INI_USE_STACK -#include -#endif - -#define MAX_SECTION 50 -#define MAX_NAME 50 - -/* Strip whitespace chars off end of given string, in place. Return s. */ -inline static char* rstrip(char* s) -{ - char* p = s + strlen(s); - while (p > s && isspace((unsigned char)(*--p))) - *p = '\0'; - return s; -} - -/* Return pointer to first non-whitespace char in given string. */ -inline static char* lskip(const char* s) -{ - while (*s && isspace((unsigned char)(*s))) - s++; - return (char*)s; -} - -/* Return pointer to first char (of chars) or inline comment in given string, - or pointer to null at end of string if neither found. Inline comment must - be prefixed by a whitespace character to register as a comment. */ -inline static char* find_chars_or_comment(const char* s, const char* chars) -{ -#if INI_ALLOW_INLINE_COMMENTS - int was_space = 0; - while (*s && (!chars || !strchr(chars, *s)) && - !(was_space && strchr(INI_INLINE_COMMENT_PREFIXES, *s))) { - was_space = isspace((unsigned char)(*s)); - s++; - } -#else - while (*s && (!chars || !strchr(chars, *s))) { - s++; - } -#endif - return (char*)s; -} - -/* Version of strncpy that ensures dest (size bytes) is null-terminated. */ -inline static char* strncpy0(char* dest, const char* src, size_t size) -{ - strncpy_s(dest, size, src, size); - dest[size - 1] = '\0'; - return dest; -} - -/* See documentation in header file. */ -inline int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, - void* user) -{ - /* Uses a fair bit of stack (use heap instead if you need to) */ -#if INI_USE_STACK - char line[INI_MAX_LINE]; -#else - char* line; -#endif - char section[MAX_SECTION] = ""; - char prev_name[MAX_NAME] = ""; - - char* start; - char* end; - char* name; - char* value; - int lineno = 0; - int error = 0; - -#if !INI_USE_STACK - line = (char*)malloc(INI_MAX_LINE); - if (!line) { - return -2; - } -#endif - - /* Scan through stream line by line */ - while (reader(line, INI_MAX_LINE, stream) != NULL) { - lineno++; - - start = line; -#if INI_ALLOW_BOM - if (lineno == 1 && (unsigned char)start[0] == 0xEF && - (unsigned char)start[1] == 0xBB && - (unsigned char)start[2] == 0xBF) { - start += 3; - } -#endif - start = lskip(rstrip(start)); - - if (*start == ';' || *start == '#') { - /* Per Python configparser, allow both ; and # comments at the - start of a line */ - } -#if INI_ALLOW_MULTILINE - else if (*prev_name && *start && start > line) { - -#if INI_ALLOW_INLINE_COMMENTS - end = find_chars_or_comment(start, NULL); - if (*end) - *end = '\0'; - rstrip(start); -#endif - - /* Non-blank line with leading whitespace, treat as continuation - of previous name's value (as per Python configparser). */ - if (!handler(user, section, prev_name, start) && !error) - error = lineno; - } -#endif - else if (*start == '[') { - /* A "[section]" line */ - end = find_chars_or_comment(start + 1, "]"); - if (*end == ']') { - *end = '\0'; - strncpy0(section, start + 1, sizeof(section)); - *prev_name = '\0'; - } - else if (!error) { - /* No ']' found on section line */ - error = lineno; - } - } - else if (*start) { - /* Not a comment, must be a name[=:]value pair */ - end = find_chars_or_comment(start, "=:"); - if (*end == '=' || *end == ':') { - *end = '\0'; - name = rstrip(start); - value = lskip(end + 1); -#if INI_ALLOW_INLINE_COMMENTS - end = find_chars_or_comment(value, NULL); - if (*end) - *end = '\0'; -#endif - rstrip(value); - - /* Valid name[=:]value pair found, call handler */ - strncpy0(prev_name, name, sizeof(prev_name)); - if (!handler(user, section, name, value) && !error) - error = lineno; - } - else if (!error) { - /* No '=' or ':' found on name[=:]value line */ - error = lineno; - } - } - -#if INI_STOP_ON_FIRST_ERROR - if (error) - break; -#endif - } - -#if !INI_USE_STACK - free(line); -#endif - - return error; -} - -/* See documentation in header file. */ -inline int ini_parse_file(FILE* file, ini_handler handler, void* user) -{ - return ini_parse_stream((ini_reader)fgets, file, handler, user); -} - -/* See documentation in header file. */ -inline int ini_parse(const char* filename, ini_handler handler, void* user) -{ - FILE* file; - int error; - - error = fopen_s(&file, filename, "r"); - if (!file) - return -1; - error = ini_parse_file(file, handler, user); - fclose(file); - return error; -} - -#endif /* __INI_H__ */ - - -#ifndef __INIREADER_H__ -#define __INIREADER_H__ - -#include -#include -#include - -// Read an INI file into easy-to-access name/value pairs. (Note that I've gone -// for simplicity here rather than speed, but it should be pretty decent.) -class INIReader -{ -public: - // Empty Constructor - INIReader() {}; - - // Construct INIReader and parse given filename. See ini.h for more info - // about the parsing. - explicit INIReader(const std::string& filename); - - // Construct INIReader and parse given file. See ini.h for more info - // about the parsing. - explicit INIReader(FILE *file); - - // Return the result of ini_parse(), i.e., 0 on success, line number of - // first error on parse error, or -1 on file open error. - int ParseError() const; - - // Return the list of sections found in ini file - const std::set& Sections() const; - - // Get a string value from INI file, returning default_value if not found. - std::string Get(const std::string& section, const std::string& name, - const std::string& default_value) const; - - // Get an integer (long) value from INI file, returning default_value if - // not found or not a valid integer (decimal "1234", "-1234", or hex "0x4d2"). - long GetInteger(const std::string& section, const std::string& name, long default_value) const; - - // Get a real (floating point double) value from INI file, returning - // default_value if not found or not a valid floating point value - // according to strtod(). - double GetReal(const std::string& section, const std::string& name, double default_value) const; - - // Get a single precision floating point number value from INI file, returning - // default_value if not found or not a valid floating point value - // according to strtof(). - float GetFloat(const std::string& section, const std::string& name, float default_value) const; - - // Get a boolean value from INI file, returning default_value if not found or if - // not a valid true/false value. Valid true values are "true", "yes", "on", "1", - // and valid false values are "false", "no", "off", "0" (not case sensitive). - bool GetBoolean(const std::string& section, const std::string& name, bool default_value) const; - -protected: - int _error; - std::map _values; - std::set _sections; - static std::string MakeKey(const std::string& section, const std::string& name); - static int ValueHandler(void* user, const char* section, const char* name, - const char* value); -}; - -#endif // __INIREADER_H__ - - -#ifndef __INIREADER__ -#define __INIREADER__ - -#include -#include -#include - -inline INIReader::INIReader(const std::string& filename) -{ - _error = ini_parse(filename.c_str(), ValueHandler, this); -} - -inline INIReader::INIReader(FILE *file) -{ - _error = ini_parse_file(file, ValueHandler, this); -} - -inline int INIReader::ParseError() const -{ - return _error; -} - -inline const std::set& INIReader::Sections() const -{ - return _sections; -} - -inline std::string INIReader::Get(const std::string& section, const std::string& name, const std::string& default_value) const -{ - std::string key = MakeKey(section, name); - return _values.count(key) ? _values.at(key) : default_value; -} - -inline long INIReader::GetInteger(const std::string& section, const std::string& name, long default_value) const -{ - std::string valstr = Get(section, name, ""); - const char* value = valstr.c_str(); - char* end; - // This parses "1234" (decimal) and also "0x4D2" (hex) - long n = strtol(value, &end, 0); - return end > value ? n : default_value; -} - -inline double INIReader::GetReal(const std::string& section, const std::string& name, double default_value) const -{ - std::string valstr = Get(section, name, ""); - const char* value = valstr.c_str(); - char* end; - double n = strtod(value, &end); - return end > value ? n : default_value; -} - -inline float INIReader::GetFloat(const std::string& section, const std::string& name, float default_value) const -{ - std::string valstr = Get(section, name, ""); - const char* value = valstr.c_str(); - char* end; - float n = strtof(value, &end); - return end > value ? n : default_value; -} - -inline bool INIReader::GetBoolean(const std::string& section, const std::string& name, bool default_value) const -{ - std::string valstr = Get(section, name, ""); - // Convert to lower case to make string comparisons case-insensitive - std::transform(valstr.begin(), valstr.end(), valstr.begin(), ::tolower); - if (valstr == "true" || valstr == "yes" || valstr == "on" || valstr == "1") - return true; - else if (valstr == "false" || valstr == "no" || valstr == "off" || valstr == "0") - return false; - else - return default_value; -} - -inline std::string INIReader::MakeKey(const std::string& section, const std::string& name) -{ - std::string key = section + "=" + name; - // Convert to lower case to make section/name lookups case-insensitive - std::transform(key.begin(), key.end(), key.begin(), ::tolower); - return key; -} - -inline int INIReader::ValueHandler(void* user, const char* section, const char* name, - const char* value) -{ - INIReader* reader = (INIReader*)user; - std::string key = MakeKey(section, name); - if (reader->_values[key].size() > 0) - reader->_values[key] += "\n"; - reader->_values[key] += value; - reader->_sections.insert(section); - return 1; -} - -#endif // __INIREADER__ diff --git a/tools/builder/builder.cpp b/tools/builder/builder.cpp deleted file mode 100644 index 513fc98c..00000000 --- a/tools/builder/builder.cpp +++ /dev/null @@ -1,220 +0,0 @@ -#include -#include -#include -#include -#include -#include "INIReader.h" - -using namespace std; -namespace fs = std::filesystem; - -vector installedFiles; -vector installedFolders; - -void clear_build() { - fs::remove_all("build"); -} - -void build_archive() { - fs::create_directories("build/archive/pc/mod"); - // fs::copy("wolvenkit/packed/archive/pc/mod/let_there_be_flight.archive", - // "build/archive/pc/mod/let_there_be_flight.archive", - // fs::copy_options::update_existing); - fs::copy("wolvenkit/packed/mods/let_there_be_flight/archives/let_there_be_flight.archive", - "build/archive/pc/mod/let_there_be_flight.archive", - fs::copy_options::update_existing); - cout << "Copied archive file: let_there_be_flight.archive" << endl; - fs::copy("wolvenkit/packed/archive/pc/mod/let_there_be_flight.archive.xl", - "build/archive/pc/mod/let_there_be_flight.archive.xl", - fs::copy_options::update_existing); - cout << "Copied archive file: let_there_be_flight.archive.xl" << endl; - - installedFiles.push_back("archive/pc/mod/let_there_be_flight.archive"); - installedFiles.push_back("archive/pc/mod/let_there_be_flight.archive.xl"); -} - -void build_redscript() { - fs::create_directories("build/r6/scripts/let_there_be_flight"); - stringstream contents; - contents << "// Let There Be Flight" << endl - << "// (C) 2022 Jack Humbert" << endl - << "// https://github.com/jackhumbert/let_there_be_flight" << endl - << "// This file was automatically generated on " - << std::chrono::system_clock::now() << endl - << endl; - for (const auto &entry : - fs::directory_iterator("src/redscript/let_there_be_flight")) { - ifstream file(entry.path()); - if (file) { - contents << "// " << entry.path().filename().string() << endl - << endl - << file.rdbuf() << endl - << endl; - cout << "Added redscript file: " << entry.path().filename().string() - << endl; - file.close(); - } else { - cout << "Could not read file: " << entry.path().filename().string() - << endl; - } - } - ofstream compiledFile("build/r6/scripts/let_there_be_flight/let_there_be_flight.packed.reds"); - installedFolders.push_back("r6/scripts/let_there_be_flight"); - compiledFile << contents.rdbuf(); - - compiledFile.close(); - - - ofstream moduleFile( - "build/r6/scripts/let_there_be_flight/let_there_be_flight.module.reds"); - moduleFile << "module LetThereBeFlight" << endl; - - moduleFile.close(); - - //fs::copy("src/redscript/codeware", "build/r6/scripts/codeware", - // fs::copy_options::update_existing | fs::copy_options::recursive); - //installedFolders.push_back("r6/scripts/codeware"); -} - -void build_tweaks() { - fs::create_directories("build/r6/tweaks"); - stringstream contents; - contents << "# Let There Be Flight" << endl - << "# (C) 2022 Jack Humbert" << endl - << "# https://github.com/jackhumbert/let_there_be_flight" << endl - << "# This file was automatically generated on " - << std::chrono::system_clock::now() << endl - << endl; - for (const auto &entry : - fs::directory_iterator("src/tweaks")) { - ifstream file(entry.path()); - if (file) { - contents << "# " << entry.path().filename().string() << endl - << endl - << file.rdbuf() << endl - << endl; - cout << "Added tweak file: " << entry.path().filename().string() - << endl; - file.close(); - } else { - cout << "Could not read file: " << entry.path().filename().string() - << endl; - } - } - ofstream compiledFile("build/r6/tweaks/let_there_be_flight.yaml"); - installedFiles.push_back("r6/tweaks/let_there_be_flight.yaml"); - compiledFile << contents.rdbuf(); - - compiledFile.close(); -} - -void build_fmod() { - fs::create_directories("build/red4ext/plugins/let_there_be_flight"); - vector files; - for (const auto &entry : fs::directory_iterator("fmod_studio/API")) { - fs::copy(entry.path(), "build/red4ext/plugins/let_there_be_flight/" + entry.path().filename().string(), - fs::copy_options::update_existing); - cout << "Copied FMOD file: " << entry.path().filename().string() << endl; - } - - fs::create_directories("build/red4ext/plugins/let_there_be_flight"); - for (const auto &entry : fs::directory_iterator("fmod_studio/Build/Desktop")) { - fs::copy(entry.path(), "build/red4ext/plugins/let_there_be_flight/" + entry.path().filename().string(), - fs::copy_options::update_existing); - cout << "Copied FMOD file: " << entry.path().filename().string() << endl; - } - installedFolders.push_back("red4ext/plugins/let_there_be_flight"); -} - -void build_red4ext() { - fs::copy("src/red4ext/build/release/bin/flight_control.dll", "build/red4ext/plugins/let_there_be_flight/let_there_be_flight.dll", fs::copy_options::update_existing); - cout << "Copied RED4ext file: let_there_be_flight.dll" << endl; -} - -void build_input() { - fs::create_directories("build/r6/input"); - fs::copy("src/input/let_there_be_flight.xml", - "build/r6/input/let_there_be_flight.xml", - fs::copy_options::update_existing); - cout << "Copied input file: let_there_be_flight.xml" << endl; - - installedFiles.push_back("r6/input/let_there_be_flight.xml"); -} - -void build_info() { - fs::copy("readme.md", "build/red4ext/plugins/let_there_be_flight/readme.md", - fs::copy_options::update_existing); - cout << "Copied input file: readme.md" << endl; - fs::copy("license.md", "build/red4ext/plugins/let_there_be_flight/license.md", - fs::copy_options::update_existing); - cout << "Copied input file: license.md" << endl; -} - -void build_uninstaller() { - stringstream contents; - contents << "DEL /S /Q"; - for (const auto &file : installedFiles) { - contents << " ..\\..\\..\\" << fs::path(file).make_preferred().string(); - } - contents << endl << "@RD /S /Q"; - for (const auto &folder : installedFolders) { - contents << " ..\\..\\..\\" << fs::path(folder).make_preferred().string(); - } - - ofstream uninstaller( - "build/red4ext/plugins/let_there_be_flight/uninstall.bat"); - uninstaller << contents.rdbuf(); - uninstaller.close(); -} - -int main() { - - //auto reader = INIReader::INIReader("build.ini"); - - //if (reader.ParseError() != 0) { - // cout << "Couldn't read build.ini" << endl; - //} else { - // auto project_name_safe = reader.Get("mod", "project_name_safe", ""); - // auto sections = reader.Sections(); - // for (const auto §ion : sections) { - // cout << "[" << section << "]" << endl; - // if (section == "mod" || section == "core") - // continue; - // auto path = reader.Get(section, "path", ""); - // if (path == "") - // continue; - // auto build_path = "build/" + path; - // fs::create_directories(build_path); - // auto file = reader.Get(section, "file", ""); - // if (file != "") { - // auto file_path = path + fs::path(file).filename().string(); - // fs::copy(file, file_path, fs::copy_options::update_existing); - // cout << "Copied " << section << " file : " << file << endl; - // installedFiles.push_back(file_path); - // } - // auto folder = reader.Get(section, "folder", ""); - // if (folder != "") { - // cout << "Folder: " << build_path << endl; - // for (const auto &entry : fs::directory_iterator(folder)) { - // fs::copy(entry.path(), build_path + entry.path().filename().string(), - // fs::copy_options::update_existing); - // cout << "Copied " << section - // << " file : " << entry.path().filename().string() << endl; - // installedFolders.push_back(path); - // } - // } - // } - //} - - //clear_build(); - build_archive(); - build_redscript(); - build_tweaks(); - build_fmod(); - build_red4ext(); - build_input(); - build_info(); - build_uninstaller(); - - return EXIT_SUCCESS; -} \ No newline at end of file diff --git a/tools/builder/builder.sln b/tools/builder/builder.sln deleted file mode 100644 index 54d307b4..00000000 --- a/tools/builder/builder.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.2.32526.322 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "builder", "builder.vcxproj", "{C4422975-490E-4207-84F3-5DFCEF316DD0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4422975-490E-4207-84F3-5DFCEF316DD0}.Debug|x64.ActiveCfg = Debug|x64 - {C4422975-490E-4207-84F3-5DFCEF316DD0}.Debug|x64.Build.0 = Debug|x64 - {C4422975-490E-4207-84F3-5DFCEF316DD0}.Debug|x86.ActiveCfg = Debug|Win32 - {C4422975-490E-4207-84F3-5DFCEF316DD0}.Debug|x86.Build.0 = Debug|Win32 - {C4422975-490E-4207-84F3-5DFCEF316DD0}.Release|x64.ActiveCfg = Release|x64 - {C4422975-490E-4207-84F3-5DFCEF316DD0}.Release|x64.Build.0 = Release|x64 - {C4422975-490E-4207-84F3-5DFCEF316DD0}.Release|x86.ActiveCfg = Release|Win32 - {C4422975-490E-4207-84F3-5DFCEF316DD0}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {768E372B-1286-43B6-AC27-465DC5105AC8} - EndGlobalSection -EndGlobal diff --git a/tools/builder/builder.vcxproj b/tools/builder/builder.vcxproj deleted file mode 100644 index bf64cac3..00000000 --- a/tools/builder/builder.vcxproj +++ /dev/null @@ -1,148 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - Win32Proj - {c4422975-490e-4207-84f3-5dfcef316dd0} - builder - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - stdcpp20 - stdc17 - - - Console - true - - - xcopy /s /y x64\Debug\builder.exe ..\ - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - stdcpp20 - stdc17 - - - Console - true - true - true - - - xcopy /s /y x64\Release\builder.exe ..\ - - - - - - - - - - - - \ No newline at end of file diff --git a/tools/builder/builder.vcxproj.filters b/tools/builder/builder.vcxproj.filters deleted file mode 100644 index a058bc88..00000000 --- a/tools/builder/builder.vcxproj.filters +++ /dev/null @@ -1,27 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Source Files - - - - - Header Files - - - \ No newline at end of file diff --git a/tools/libclang.dll b/tools/libclang.dll deleted file mode 100644 index 2597f84d..00000000 Binary files a/tools/libclang.dll and /dev/null differ diff --git a/tools/redscript-cli.exe b/tools/redscript-cli.exe deleted file mode 100644 index 7a50901d..00000000 Binary files a/tools/redscript-cli.exe and /dev/null differ diff --git a/tools/zoltan-clang.exe b/tools/zoltan-clang.exe deleted file mode 100644 index c36fc94e..00000000 Binary files a/tools/zoltan-clang.exe and /dev/null differ