Merge pull request #105897 from akien-mga/mingw-remove-undef-hacks

Remove WinAPI `#undef` hacks needed for mingw-std-threads
This commit is contained in:
Thaddeus Crews 2025-04-30 09:18:42 -05:00
commit b2829f3256
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC
15 changed files with 46 additions and 73 deletions

View file

@ -302,9 +302,9 @@ void DependencyEditorOwners::_list_rmb_clicked(int p_item, const Vector2 &p_pos,
}
if (only_scenes_selected) {
file_options->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRN("Open Scene", "Open Scenes", selected_items.size()), FILE_OPEN);
file_options->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRN("Open Scene", "Open Scenes", selected_items.size()), FILE_OPEN_);
} else if (selected_items.size() == 1) {
file_options->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTR("Open"), FILE_OPEN);
file_options->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTR("Open"), FILE_OPEN_);
} else {
return;
}
@ -333,7 +333,7 @@ void DependencyEditorOwners::_empty_clicked(const Vector2 &p_pos, MouseButton p_
void DependencyEditorOwners::_file_option(int p_option) {
switch (p_option) {
case FILE_OPEN: {
case FILE_OPEN_: {
PackedInt32Array selected_items = owners->get_selected_items();
for (int i = 0; i < selected_items.size(); i++) {
int item_idx = selected_items[i];

View file

@ -64,10 +64,6 @@ public:
DependencyEditor();
};
#ifdef MINGW_ENABLED
#undef FILE_OPEN
#endif
class DependencyEditorOwners : public AcceptDialog {
GDCLASS(DependencyEditorOwners, AcceptDialog);
@ -84,7 +80,7 @@ class DependencyEditorOwners : public AcceptDialog {
private:
enum FileMenu {
FILE_OPEN
FILE_OPEN_,
};
public:

View file

@ -2323,7 +2323,7 @@ void FileSystemDock::_file_option(int p_option, const Vector<String> &p_selected
}
} break;
case FILE_OPEN: {
case FILE_OPEN_: {
// Open folders.
TreeItem *selected = tree->get_root();
selected = tree->get_next_selected(selected);
@ -3211,18 +3211,18 @@ void FileSystemDock::_file_and_folders_fill_popup(PopupMenu *p_popup, const Vect
if (all_files) {
if (all_files_scenes) {
if (filenames.size() == 1) {
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRC("Open Scene"), FILE_OPEN);
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRC("Open Scene"), FILE_OPEN_);
p_popup->add_icon_item(get_editor_theme_icon(SNAME("CreateNewSceneFrom")), TTRC("New Inherited Scene"), FILE_INHERIT);
if (GLOBAL_GET("application/run/main_scene") != filenames[0]) {
p_popup->add_icon_item(get_editor_theme_icon(SNAME("PlayScene")), TTRC("Set as Main Scene"), FILE_MAIN_SCENE);
}
} else {
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRC("Open Scenes"), FILE_OPEN);
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRC("Open Scenes"), FILE_OPEN_);
}
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Instance")), TTRC("Instantiate"), FILE_INSTANTIATE);
p_popup->add_separator();
} else if (filenames.size() == 1) {
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRC("Open"), FILE_OPEN);
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRC("Open"), FILE_OPEN_);
p_popup->add_separator();
}
@ -3255,7 +3255,7 @@ void FileSystemDock::_file_and_folders_fill_popup(PopupMenu *p_popup, const Vect
bool root_path_not_selected = p_paths[0] != "res://" && (p_paths.size() <= 1 || p_paths[1] != "res://");
if (all_folders && foldernames.size() > 0) {
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRC("Expand Folder"), FILE_OPEN);
p_popup->add_icon_item(get_editor_theme_icon(SNAME("Load")), TTRC("Expand Folder"), FILE_OPEN_);
if (foldernames.size() == 1) {
p_popup->add_icon_item(get_editor_theme_icon(SNAME("GuiTreeArrowDown")), TTRC("Expand Hierarchy"), FOLDER_EXPAND_ALL);

View file

@ -101,7 +101,7 @@ public:
private:
enum FileMenu {
FILE_OPEN,
FILE_OPEN_, // Conflict with WinAPI.
FILE_INHERIT,
FILE_MAIN_SCENE,
FILE_INSTANTIATE,

View file

@ -1196,7 +1196,7 @@ void ScriptEditor::_file_dialog_action(const String &p_file) {
}
[[fallthrough]];
}
case FILE_OPEN: {
case FILE_OPEN_: {
open_file(p_file);
file_dialog_option = -1;
} break;
@ -1281,10 +1281,10 @@ void ScriptEditor::_menu_option(int p_option) {
file_dialog->popup_file_dialog();
open_textfile_after_create = true;
} break;
case FILE_OPEN: {
case FILE_OPEN_: {
file_dialog->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE);
file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
file_dialog_option = FILE_OPEN;
file_dialog_option = FILE_OPEN_;
List<String> extensions;
ResourceLoader::get_recognized_extensions_for_type("Script", &extensions);
@ -4258,7 +4258,7 @@ ScriptEditor::ScriptEditor(WindowWrapper *p_wrapper) {
file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/new", TTRC("New Script..."), KeyModifierMask::CMD_OR_CTRL | Key::N), FILE_NEW);
file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/new_textfile", TTRC("New Text File..."), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::N), FILE_NEW_TEXTFILE);
file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/open", TTRC("Open...")), FILE_OPEN);
file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/open", TTRC("Open...")), FILE_OPEN_);
file_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_editor/reopen_closed_script"), FILE_REOPEN_CLOSED);
recent_scripts = memnew(PopupMenu);

View file

@ -230,17 +230,13 @@ class EditorScriptCodeCompletionCache;
class FindInFilesDialog;
class FindInFilesPanel;
#ifdef MINGW_ENABLED
#undef FILE_OPEN
#endif
class ScriptEditor : public PanelContainer {
GDCLASS(ScriptEditor, PanelContainer);
enum {
FILE_NEW,
FILE_NEW_TEXTFILE,
FILE_OPEN,
FILE_OPEN_, // Conflict with WinAPI.
FILE_REOPEN_CLOSED,
FILE_OPEN_RECENT,
FILE_SAVE,

View file

@ -397,7 +397,7 @@ void ShaderEditorPlugin::_setup_popup_menu(PopupMenuType p_type, PopupMenu *p_me
p_menu->add_shortcut(ED_SHORTCUT("shader_editor/new", TTRC("New Shader..."), KeyModifierMask::CMD_OR_CTRL | Key::N), FILE_NEW);
p_menu->add_shortcut(ED_SHORTCUT("shader_editor/new_include", TTRC("New Shader Include..."), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::N), FILE_NEW_INCLUDE);
p_menu->add_separator();
p_menu->add_shortcut(ED_SHORTCUT("shader_editor/open", TTRC("Load Shader File..."), KeyModifierMask::CMD_OR_CTRL | Key::O), FILE_OPEN);
p_menu->add_shortcut(ED_SHORTCUT("shader_editor/open", TTRC("Load Shader File..."), KeyModifierMask::CMD_OR_CTRL | Key::O), FILE_OPEN_);
p_menu->add_shortcut(ED_SHORTCUT("shader_editor/open_include", TTRC("Load Shader Include File..."), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::O), FILE_OPEN_INCLUDE);
}
@ -518,7 +518,7 @@ void ShaderEditorPlugin::_menu_item_pressed(int p_index) {
shader_create_dialog->config(base_path.path_join("new_shader"), false, false, 2);
shader_create_dialog->popup_centered();
} break;
case FILE_OPEN: {
case FILE_OPEN_: {
InspectorDock::get_singleton()->open_resource("Shader");
} break;
case FILE_OPEN_INCLUDE: {

View file

@ -44,10 +44,6 @@ class HBoxContainer;
class VisualShaderEditor;
class WindowWrapper;
#ifdef MINGW_ENABLED
#undef FILE_OPEN
#endif
class ShaderEditorPlugin : public EditorPlugin {
GDCLASS(ShaderEditorPlugin, EditorPlugin);
@ -64,7 +60,7 @@ class ShaderEditorPlugin : public EditorPlugin {
enum {
FILE_NEW,
FILE_NEW_INCLUDE,
FILE_OPEN,
FILE_OPEN_,
FILE_OPEN_INCLUDE,
FILE_SAVE,
FILE_SAVE_AS,

View file

@ -4900,7 +4900,7 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
popup_menu->set_item_disabled(NodeMenuOptions::CUT, selected_deletable_graph_elements.is_empty());
popup_menu->set_item_disabled(NodeMenuOptions::COPY, selected_deletable_graph_elements.is_empty());
popup_menu->set_item_disabled(NodeMenuOptions::PASTE, copy_buffer_empty);
popup_menu->set_item_disabled(NodeMenuOptions::DELETE, selected_deletable_graph_elements.is_empty());
popup_menu->set_item_disabled(NodeMenuOptions::DELETE_, selected_deletable_graph_elements.is_empty());
popup_menu->set_item_disabled(NodeMenuOptions::DUPLICATE, selected_deletable_graph_elements.is_empty());
popup_menu->set_item_disabled(NodeMenuOptions::CLEAR_COPY_BUFFER, copy_buffer_empty);
@ -6042,7 +6042,7 @@ void VisualShaderEditor::_node_menu_id_pressed(int p_idx) {
case NodeMenuOptions::PASTE:
_paste_nodes(true, menu_point);
break;
case NodeMenuOptions::DELETE:
case NodeMenuOptions::DELETE_:
_delete_nodes_request(TypedArray<StringName>());
break;
case NodeMenuOptions::DUPLICATE:
@ -6713,7 +6713,7 @@ VisualShaderEditor::VisualShaderEditor() {
popup_menu->add_item(TTR("Cut"), NodeMenuOptions::CUT);
popup_menu->add_item(TTR("Copy"), NodeMenuOptions::COPY);
popup_menu->add_item(TTR("Paste"), NodeMenuOptions::PASTE);
popup_menu->add_item(TTR("Delete"), NodeMenuOptions::DELETE);
popup_menu->add_item(TTR("Delete"), NodeMenuOptions::DELETE_);
popup_menu->add_item(TTR("Duplicate"), NodeMenuOptions::DUPLICATE);
popup_menu->add_item(TTR("Clear Copy Buffer"), NodeMenuOptions::CLEAR_COPY_BUFFER);
popup_menu->connect(SceneStringName(id_pressed), callable_mp(this, &VisualShaderEditor::_node_menu_id_pressed));

View file

@ -328,17 +328,13 @@ class VisualShaderEditor : public ShaderEditor {
PASTE_PARAMS_TO_MATERIAL,
};
#ifdef MINGW_ENABLED
#undef DELETE
#endif
enum NodeMenuOptions {
ADD,
SEPARATOR, // ignore
CUT,
COPY,
PASTE,
DELETE,
DELETE_, // Conflict with WinAPI.
DUPLICATE,
CLEAR_COPY_BUFFER,
SEPARATOR2, // ignore

View file

@ -468,7 +468,7 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l
if (prev_text == GDScriptTokenizer::get_token_name(GDScriptTokenizer::Token::FUNC)) {
in_function_declaration = true;
}
} else if (prev_text == GDScriptTokenizer::get_token_name(GDScriptTokenizer::Token::VAR) || prev_text == GDScriptTokenizer::get_token_name(GDScriptTokenizer::Token::FOR) || prev_text == GDScriptTokenizer::get_token_name(GDScriptTokenizer::Token::CONST)) {
} else if (prev_text == GDScriptTokenizer::get_token_name(GDScriptTokenizer::Token::VAR) || prev_text == GDScriptTokenizer::get_token_name(GDScriptTokenizer::Token::FOR) || prev_text == GDScriptTokenizer::get_token_name(GDScriptTokenizer::Token::TK_CONST)) {
in_var_const_declaration = true;
}

View file

@ -536,7 +536,7 @@ void GDScriptParser::synchronize() {
case GDScriptTokenizer::Token::FUNC:
case GDScriptTokenizer::Token::STATIC:
case GDScriptTokenizer::Token::VAR:
case GDScriptTokenizer::Token::CONST:
case GDScriptTokenizer::Token::TK_CONST:
case GDScriptTokenizer::Token::SIGNAL:
//case GDScriptTokenizer::Token::IF: // Can also be inside expressions.
case GDScriptTokenizer::Token::FOR:
@ -1020,7 +1020,7 @@ void GDScriptParser::parse_class_body(bool p_is_multiline) {
current_class->has_static_data = true;
}
break;
case GDScriptTokenizer::Token::CONST:
case GDScriptTokenizer::Token::TK_CONST:
parse_class_member(&GDScriptParser::parse_constant, AnnotationInfo::CONSTANT, "constant");
break;
case GDScriptTokenizer::Token::SIGNAL:
@ -1895,7 +1895,7 @@ GDScriptParser::Node *GDScriptParser::parse_statement() {
advance();
result = parse_variable(false, false);
break;
case GDScriptTokenizer::Token::CONST:
case GDScriptTokenizer::Token::TK_CONST:
advance();
result = parse_constant(false);
break;
@ -2155,9 +2155,9 @@ GDScriptParser::ForNode *GDScriptParser::parse_for() {
}
if (n_for->datatype_specifier == nullptr) {
consume(GDScriptTokenizer::Token::IN, R"(Expected "in" or ":" after "for" variable name.)");
consume(GDScriptTokenizer::Token::TK_IN, R"(Expected "in" or ":" after "for" variable name.)");
} else {
consume(GDScriptTokenizer::Token::IN, R"(Expected "in" after "for" variable type specifier.)");
consume(GDScriptTokenizer::Token::TK_IN, R"(Expected "in" after "for" variable type specifier.)");
}
n_for->list = parse_expression(false);
@ -2810,7 +2810,7 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_binary_not_in_operator(Exp
UnaryOpNode *operation = alloc_node<UnaryOpNode>();
reset_extents(operation, p_previous_operand);
update_extents(operation);
consume(GDScriptTokenizer::Token::IN, R"(Expected "in" after "not" in content-test operator.)");
consume(GDScriptTokenizer::Token::TK_IN, R"(Expected "in" after "not" in content-test operator.)");
ExpressionNode *in_operation = parse_binary_operator(p_previous_operand, p_can_assign);
operation->operation = UnaryOpNode::OP_LOGIC_NOT;
operation->variant_op = Variant::OP_NOT;
@ -2890,7 +2890,7 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_binary_operator(Expression
operation->operation = BinaryOpNode::OP_LOGIC_OR;
operation->variant_op = Variant::OP_OR;
break;
case GDScriptTokenizer::Token::IN:
case GDScriptTokenizer::Token::TK_IN:
operation->operation = BinaryOpNode::OP_CONTENT_TEST;
operation->variant_op = Variant::OP_IN;
break;
@ -3685,7 +3685,7 @@ GDScriptParser::TypeNode *GDScriptParser::parse_type(bool p_allow_void) {
TypeNode *type = alloc_node<TypeNode>();
make_completion_context(p_allow_void ? COMPLETION_TYPE_NAME_OR_VOID : COMPLETION_TYPE_NAME, type);
if (!match(GDScriptTokenizer::Token::IDENTIFIER)) {
if (match(GDScriptTokenizer::Token::VOID)) {
if (match(GDScriptTokenizer::Token::TK_VOID)) {
if (p_allow_void) {
complete_extents(type);
TypeNode *void_type = type;
@ -4116,11 +4116,11 @@ GDScriptParser::ParseRule *GDScriptParser::get_rule(GDScriptTokenizer::Token::Ty
{ nullptr, nullptr, PREC_NONE }, // BREAKPOINT,
{ nullptr, nullptr, PREC_NONE }, // CLASS,
{ nullptr, nullptr, PREC_NONE }, // CLASS_NAME,
{ nullptr, nullptr, PREC_NONE }, // CONST,
{ nullptr, nullptr, PREC_NONE }, // TK_CONST,
{ nullptr, nullptr, PREC_NONE }, // ENUM,
{ nullptr, nullptr, PREC_NONE }, // EXTENDS,
{ &GDScriptParser::parse_lambda, nullptr, PREC_NONE }, // FUNC,
{ nullptr, &GDScriptParser::parse_binary_operator, PREC_CONTENT_TEST }, // IN,
{ nullptr, &GDScriptParser::parse_binary_operator, PREC_CONTENT_TEST }, // TK_IN,
{ nullptr, &GDScriptParser::parse_type_test, PREC_TYPE_TEST }, // IS,
{ nullptr, nullptr, PREC_NONE }, // NAMESPACE,
{ &GDScriptParser::parse_preload, nullptr, PREC_NONE }, // PRELOAD,
@ -4130,7 +4130,7 @@ GDScriptParser::ParseRule *GDScriptParser::get_rule(GDScriptTokenizer::Token::Ty
{ &GDScriptParser::parse_call, nullptr, PREC_NONE }, // SUPER,
{ nullptr, nullptr, PREC_NONE }, // TRAIT,
{ nullptr, nullptr, PREC_NONE }, // VAR,
{ nullptr, nullptr, PREC_NONE }, // VOID,
{ nullptr, nullptr, PREC_NONE }, // TK_VOID,
{ &GDScriptParser::parse_yield, nullptr, PREC_NONE }, // YIELD,
// Punctuation
{ &GDScriptParser::parse_array, &GDScriptParser::parse_subscript, PREC_SUBSCRIPT }, // BRACKET_OPEN,

View file

@ -107,11 +107,11 @@ static const char *token_names[] = {
"breakpoint", // BREAKPOINT,
"class", // CLASS,
"class_name", // CLASS_NAME,
"const", // CONST,
"const", // TK_CONST,
"enum", // ENUM,
"extends", // EXTENDS,
"func", // FUNC,
"in", // IN,
"in", // TK_IN,
"is", // IS,
"namespace", // NAMESPACE
"preload", // PRELOAD,
@ -121,7 +121,7 @@ static const char *token_names[] = {
"super", // SUPER,
"trait", // TRAIT,
"var", // VAR,
"void", // VOID,
"void", // TK_VOID,
"yield", // YIELD,
// Punctuation
"[", // BRACKET_OPEN,
@ -221,7 +221,7 @@ bool GDScriptTokenizer::Token::is_node_name() const {
case BREAKPOINT:
case CLASS_NAME:
case CLASS:
case CONST:
case TK_CONST:
case CONST_PI:
case CONST_INF:
case CONST_NAN:
@ -234,7 +234,7 @@ bool GDScriptTokenizer::Token::is_node_name() const {
case FOR:
case FUNC:
case IF:
case IN:
case TK_IN:
case IS:
case MATCH:
case NAMESPACE:
@ -250,7 +250,7 @@ bool GDScriptTokenizer::Token::is_node_name() const {
case TRAIT:
case UNDERSCORE:
case VAR:
case VOID:
case TK_VOID:
case WHILE:
case WHEN:
case YIELD:
@ -505,7 +505,7 @@ GDScriptTokenizer::Token GDScriptTokenizerText::annotation() {
KEYWORD_GROUP('c') \
KEYWORD("class", Token::CLASS) \
KEYWORD("class_name", Token::CLASS_NAME) \
KEYWORD("const", Token::CONST) \
KEYWORD("const", Token::TK_CONST) \
KEYWORD("continue", Token::CONTINUE) \
KEYWORD_GROUP('e') \
KEYWORD("elif", Token::ELIF) \
@ -517,7 +517,7 @@ GDScriptTokenizer::Token GDScriptTokenizerText::annotation() {
KEYWORD("func", Token::FUNC) \
KEYWORD_GROUP('i') \
KEYWORD("if", Token::IF) \
KEYWORD("in", Token::IN) \
KEYWORD("in", Token::TK_IN) \
KEYWORD("is", Token::IS) \
KEYWORD_GROUP('m') \
KEYWORD("match", Token::MATCH) \
@ -540,7 +540,7 @@ GDScriptTokenizer::Token GDScriptTokenizerText::annotation() {
KEYWORD("trait", Token::TRAIT) \
KEYWORD_GROUP('v') \
KEYWORD("var", Token::VAR) \
KEYWORD("void", Token::VOID) \
KEYWORD("void", Token::TK_VOID) \
KEYWORD_GROUP('w') \
KEYWORD("while", Token::WHILE) \
KEYWORD("when", Token::WHEN) \

View file

@ -35,12 +35,6 @@
#include "core/templates/vector.h"
#include "core/variant/variant.h"
#ifdef MINGW_ENABLED
#undef CONST
#undef IN
#undef VOID
#endif
class GDScriptTokenizer {
public:
enum CursorPlace {
@ -117,11 +111,11 @@ public:
BREAKPOINT,
CLASS,
CLASS_NAME,
CONST,
TK_CONST, // Conflict with WinAPI.
ENUM,
EXTENDS,
FUNC,
IN,
TK_IN, // Conflict with WinAPI.
IS,
NAMESPACE,
PRELOAD,
@ -131,7 +125,7 @@ public:
SUPER,
TRAIT,
VAR,
VOID,
TK_VOID, // Conflict with WinAPI.
YIELD,
// Punctuation
BRACKET_OPEN,

View file

@ -43,11 +43,6 @@
#include "main/main.h"
#include "scene/gui/line_edit.h"
#ifdef MINGW_ENABLED
#define near
#define far
#endif
#ifdef WINDOWS_ENABLED
#include <shlwapi.h>
#endif