Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tools - Add HEMTT SQF support #1630

Merged
merged 6 commits into from
Dec 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions .hemtt/project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,11 @@ include = [
[version]
git_hash = 0

# Unused in HEMTT v1.11 or higher, kept for backwards compatibility
[asc]
enabled = true
exclude = [
"/initsettings.sqf",
"/initkeybinds.sqf",
"/xeh_prep.sqf",
"/backwards_comp.sqf",
"settings/gui_createcategory.sqf",
".inc.sqf",
"diagnostic/fnc_isdebugconsoleallowed.sqf",
"xeh/fnc_initdisplay.sqf",
"xeh/fnc_startloadingscreen.sqf",
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion addons/accessory/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

if (!hasInterface) exitWith {};

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"
PabstMirror marked this conversation as resolved.
Show resolved Hide resolved

GVAR(usageHash) = createHashMap;

Expand Down
2 changes: 1 addition & 1 deletion addons/accessory/XEH_preStart.sqf
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#include "script_component.hpp"

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"
2 changes: 1 addition & 1 deletion addons/common/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ GVAR(addons) = call (uiNamespace getVariable [QGVAR(addons), {[]}]);
activateAddons GVAR(addons);

// BWC
#include "backwards_comp.sqf"
#include "backwards_comp.inc.sqf"

// fix changing direction of remote units not working with zeus
["ModuleCurator_F", "init", {
Expand Down
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions addons/diagnostic/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ LOG(MSG_INIT);

ADDON = false;

#include "XEH_PREP.sqf"
#include "initSettings.sqf"
#include "XEH_PREP.hpp"
#include "initSettings.inc.sqf"

[QGVAR(debug), {_this call CBA_fnc_debug}] call CBA_fnc_addEventHandler;

Expand Down
2 changes: 1 addition & 1 deletion addons/diagnostic/XEH_preStart.sqf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "script_component.hpp"

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"

PREP(initExtendedDebugConsole);
PREP(initTargetDebugConsole);
File renamed without changes.
4 changes: 2 additions & 2 deletions addons/disposable/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

ADDON = false;

#include "initSettings.sqf"
#include "initSettings.inc.sqf"

if (configProperties [configFile >> "CBA_DisposableLaunchers"] isEqualTo []) exitWith {};

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"

["loadout", {
params ["_unit"];
Expand Down
2 changes: 1 addition & 1 deletion addons/disposable/XEH_preStart.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ PREP(initDisplayInventory);

if (configProperties [configFile >> "CBA_DisposableLaunchers"] isEqualTo []) exitWith {};

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"
4 changes: 2 additions & 2 deletions addons/events/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ if (isServer) then {
};
};

#include "backwards_comp.sqf"
#include "initSettings.sqf"
#include "backwards_comp.inc.sqf"
#include "initSettings.inc.sqf"

ADDON = true;

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion addons/keybinding/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ SCRIPT(XEH_preInit);

if (!hasInterface) exitWith {};

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"

ADDON = false;

Expand Down
2 changes: 1 addition & 1 deletion addons/keybinding/XEH_preStart.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

if (!hasInterface) exitWith {};

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"

private _supportedKeys = [
DIK_ESCAPE,
Expand Down
2 changes: 1 addition & 1 deletion addons/network/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

ADDON = false;

#include "initSettings.sqf"
#include "initSettings.inc.sqf"

// Restore loadouts lost by the naked unit bug
[QGVAR(validateLoadout), {
Expand Down
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions addons/optics/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

ADDON = false;

#include "initSettings.sqf"
#include "initSettings.inc.sqf"

if (configProperties [configFile >> "CBA_PIPItems"] isEqualTo [] && {
configProperties [configFile >> "CBA_CarryHandleTypes"] isEqualTo []
}) exitWith {};

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"

if (!hasInterface) exitWith {};

#include "initKeybinds.sqf"
#include "initKeybinds.inc.sqf"

QGVAR(pauseOpticLayer) cutText ["", "PLAIN"];

Expand Down
2 changes: 1 addition & 1 deletion addons/optics/XEH_preStart.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ if (configProperties [configFile >> "CBA_PIPItems"] isEqualTo [] && {
configProperties [configFile >> "CBA_CarryHandleTypes"] isEqualTo []
}) exitWith {};

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions addons/settings/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ADDON = false;

// Don't prep functions if already prepped by CBA_fnc_addSetting to avoid log spam.
if (isNil QFUNC(init)) then {
#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"
};

//#define DEBUG_MODE_FULL
Expand Down Expand Up @@ -42,7 +42,7 @@ if (isNil QFUNC(init)) then {
#endif

// --- init settings namespaces
#include "initSettings.sqf"
#include "initSettings.inc.sqf"

// --- event to refresh missionNamespace value if setting has changed and call public event as well as execute setting script
[QGVAR(refreshSetting), {
Expand Down
2 changes: 1 addition & 1 deletion addons/settings/XEH_preStart.sqf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "script_component.hpp"

#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"

PREP(initDisplayMain);

Expand Down
2 changes: 1 addition & 1 deletion addons/settings/fnc_addSetting.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Author:

// Prep functions if not yet prepped to avoid race condition.
if (isNil QFUNC(init)) then {
#include "XEH_PREP.sqf"
#include "XEH_PREP.hpp"
};

call FUNC(init) == 0
2 changes: 1 addition & 1 deletion addons/settings/fnc_gui_addonChanged.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ uiNamespace setVariable [QGVAR(addonIndex), _index];
private _selectedSource = uiNamespace getVariable QGVAR(source);

if !(_display getVariable [_selectedAddon, false]) then {
#include "gui_createCategory.sqf"
#include "gui_createCategory.inc.sqf"
_display setVariable [_selectedAddon, true];
};

Expand Down
2 changes: 1 addition & 1 deletion addons/settings/fnc_init.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ if (canSuspend) exitWith {
};

// --- init settings system, makes this function useable in preInit without having to add "CBA_settings" to requiredAddons
#include "initSettings.sqf"
#include "initSettings.inc.sqf"

params [
["_setting", "", [""]],
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion addons/ui/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

ADDON = false;

#include "initSettings.sqf"
#include "initSettings.inc.sqf"

if (hasInterface) then {
call COMPILE_FILE(flexiMenu\init);
Expand Down
File renamed without changes.
6 changes: 1 addition & 5 deletions sqfc.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,7 @@
"P:/"
],
"excludeList": [
"\\initsettings.sqf",
"\\initkeybinds.sqf",
"\\xeh_prep.sqf",
"\\backwards_comp.sqf",
"settings\\gui_createcategory.sqf",
".inc.sqf",
"diagnostic\\fnc_isdebugconsoleallowed.sqf",
"xeh\\fnc_initdisplay.sqf",
"xeh\\fnc_startloadingscreen.sqf",
Expand Down
14 changes: 6 additions & 8 deletions tools/sqfvmChecker.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
addon_base_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))

files_to_ignore_lower = [
x.lower() for x in ["initSettings.sqf", "initKeybinds.sqf", "XEH_PREP.sqf", "backwards_comp.sqf", "gui_createCategory.sqf", "test_settings_comments.sqf", "test_settings_comments_eof.sqf", "test_settings_multiline.sqf", "test_settings_regular.sqf", "test_settings_unicode.sqf"]
x.lower() for x in ["test_settings_comments.sqf", "test_settings_comments_eof.sqf", "test_settings_multiline.sqf", "test_settings_regular.sqf", "test_settings_unicode.sqf"]
]
sqfvm_exe = os.path.join(addon_base_path, "sqfvm.exe")
virtual_paths = [
Expand All @@ -23,15 +23,15 @@ def get_files_to_process(basePath):
for root, _dirs, files in os.walk(os.path.join(addon_base_path, "addons")):
for file in files:
if file.endswith(".sqf") or file == "config.cpp":
if file.lower() in files_to_ignore_lower:
if file.endswith(".inc.sqf") or file.lower() in files_to_ignore_lower:
continue
skipPreprocessing = False
for addonTomlPath in [os.path.join(root, "addon.toml"), os.path.join(os.path.dirname(root), "addon.toml")]:
if os.path.isfile(addonTomlPath):
with open(addonTomlPath, "rb") as f:
tomlFile = tomllib.load(f)
try:
skipPreprocessing = not tomlFile.get('rapify')['enabled']
skipPreprocessing = tomlFile.get('tools')['sqfvm_skipConfigChecks']
except:
pass
if file == "config.cpp" and skipPreprocessing:
Expand All @@ -41,7 +41,7 @@ def get_files_to_process(basePath):
return arma_files


def process_file(filePath, skipA3Warnings=True):
def process_file(filePath, skipA3Warnings=True, skipPragmaHemtt=True):
with open(filePath, "r", encoding="utf-8", errors="ignore") as file:
content = file.read()
if content.startswith("//pragma SKIP_COMPILE"):
Expand Down Expand Up @@ -70,10 +70,8 @@ def process_file(filePath, skipA3Warnings=True):
if line.startswith("[ERR]"):
fileHasError = True
if not (
skipA3Warnings
and line.startswith("[WRN]")
and ("a3/" in line)
and (("Unexpected IFDEF" in line) or ("defined twice" in line))
(skipA3Warnings and line.startswith("[WRN]") and ("a3/" in line) and (("Unexpected IFDEF" in line) or ("defined twice" in line)))
or (skipPragmaHemtt and line.startswith("[WRN]") and ("Unknown pragma instruction 'hemtt'" in line))
):
print(" {}".format(line))
return fileHasError
Expand Down