diff --git a/libraries/AP_Scripting/AP_Scripting.cpp b/libraries/AP_Scripting/AP_Scripting.cpp
index dd460974b0f..eb358f4f082 100644
--- a/libraries/AP_Scripting/AP_Scripting.cpp
+++ b/libraries/AP_Scripting/AP_Scripting.cpp
@@ -13,6 +13,10 @@
along with this program. If not, see .
*/
+#include "AP_Scripting_config.h"
+
+#if AP_SCRIPTING_ENABLED
+
#include
#include
#include
@@ -364,3 +368,5 @@ namespace AP {
return AP_Scripting::get_singleton();
}
}
+
+#endif // AP_SCRIPTING_ENABLED
diff --git a/libraries/AP_Scripting/AP_Scripting_config.h b/libraries/AP_Scripting/AP_Scripting_config.h
new file mode 100644
index 00000000000..6eb4a7b59d1
--- /dev/null
+++ b/libraries/AP_Scripting/AP_Scripting_config.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#include
+
+#ifndef AP_SCRIPTING_ENABLED
+#define AP_SCRIPTING_ENABLED BOARD_FLASH_SIZE > 1024
+#endif
diff --git a/libraries/AP_Scripting/AP_Scripting_helpers.cpp b/libraries/AP_Scripting/AP_Scripting_helpers.cpp
index 3ab0d31bc13..01e13c99f84 100644
--- a/libraries/AP_Scripting/AP_Scripting_helpers.cpp
+++ b/libraries/AP_Scripting/AP_Scripting_helpers.cpp
@@ -1,3 +1,7 @@
+#include "AP_Scripting_config.h"
+
+#if AP_SCRIPTING_ENABLED
+
#include "AP_Scripting_helpers.h"
#include
@@ -192,3 +196,5 @@ bool Parameter::set_default(float value)
// not a supported type
return false;
}
+
+#endif // AP_SCRIPTING_ENABLED
diff --git a/libraries/AP_Scripting/generator/src/main.c b/libraries/AP_Scripting/generator/src/main.c
index 1986fd6b049..368330ebb45 100644
--- a/libraries/AP_Scripting/generator/src/main.c
+++ b/libraries/AP_Scripting/generator/src/main.c
@@ -2810,7 +2810,11 @@ int main(int argc, char **argv) {
}
fprintf(source, "// auto generated bindings, don't manually edit. See README.md for details.\n");
-
+
+ fprintf(source, "#include \n\n");
+
+ fprintf(source, "#if AP_SCRIPTING_ENABLED\n\n");
+
trace(TRACE_GENERAL, "Sanity checking parsed input");
sanity_check_userdata();
@@ -2864,6 +2868,8 @@ int main(int argc, char **argv) {
emit_sandbox();
+ fprintf(source, "#endif // AP_SCRIPTING_ENABLED\n");
+
fclose(source);
source = NULL;
@@ -2875,6 +2881,8 @@ int main(int argc, char **argv) {
free(file_name);
fprintf(header, "#pragma once\n");
fprintf(header, "// auto generated bindings, don't manually edit. See README.md for details.\n");
+ fprintf(header, "#include \n\n");
+ fprintf(header, "#if AP_SCRIPTING_ENABLED\n\n");
fprintf(header, "#include // needed for APM_BUILD_TYPE #if\n");
emit_headers(header);
fprintf(header, "#include \n");
@@ -2905,6 +2913,8 @@ int main(int argc, char **argv) {
node = node->next;
}
+ fprintf(header, "#endif // AP_SCRIPTING_ENABLED\n");
+
fclose(header);
header = NULL;
diff --git a/libraries/AP_Scripting/lua_bindings.cpp b/libraries/AP_Scripting/lua_bindings.cpp
index bc687e5b05f..d27cd3c5648 100644
--- a/libraries/AP_Scripting/lua_bindings.cpp
+++ b/libraries/AP_Scripting/lua_bindings.cpp
@@ -1,3 +1,7 @@
+#include "AP_Scripting_config.h"
+
+#if AP_SCRIPTING_ENABLED
+
#include
#include
#include
@@ -700,3 +704,5 @@ int lua_get_current_ref()
auto *scripting = AP::scripting();
return scripting->get_current_ref();
}
+
+#endif // AP_SCRIPTING_ENABLED
diff --git a/libraries/AP_Scripting/lua_boxed_numerics.cpp b/libraries/AP_Scripting/lua_boxed_numerics.cpp
index dfd010d704b..fe2304df978 100644
--- a/libraries/AP_Scripting/lua_boxed_numerics.cpp
+++ b/libraries/AP_Scripting/lua_boxed_numerics.cpp
@@ -1,3 +1,7 @@
+#include "AP_Scripting_config.h"
+
+#if AP_SCRIPTING_ENABLED
+
#include
#include "lua_boxed_numerics.h"
#include
@@ -132,3 +136,5 @@ int uint32_t___tostring(lua_State *L) {
return 1;
}
+
+#endif // AP_SCRIPTING_ENABLED
diff --git a/libraries/AP_Scripting/lua_repl.cpp b/libraries/AP_Scripting/lua_repl.cpp
index 373276ca102..c20bb4f320a 100644
--- a/libraries/AP_Scripting/lua_repl.cpp
+++ b/libraries/AP_Scripting/lua_repl.cpp
@@ -2,6 +2,9 @@
// lua/src/lua.c. It overall modified the functions to the minimum amount
// required, with the exception of fixing whitespace/indentation on if's
+#include "AP_Scripting_config.h"
+
+#if AP_SCRIPTING_ENABLED
#include "lua_scripts.h"
#include
@@ -257,3 +260,5 @@ void lua_scripts::doREPL(lua_State *L) {
repl_cleanup();
}
+
+#endif // AP_SCRIPTING_ENABLED
diff --git a/libraries/AP_Scripting/lua_scripts.cpp b/libraries/AP_Scripting/lua_scripts.cpp
index 8493e684d6e..8b56b19600d 100644
--- a/libraries/AP_Scripting/lua_scripts.cpp
+++ b/libraries/AP_Scripting/lua_scripts.cpp
@@ -13,6 +13,10 @@
along with this program. If not, see .
*/
+#include "AP_Scripting_config.h"
+
+#if AP_SCRIPTING_ENABLED
+
#include "lua_scripts.h"
#include
#include "AP_Scripting.h"
@@ -599,3 +603,5 @@ void lua_scripts::run(void) {
}
error_msg_buf_sem.give();
}
+
+#endif // AP_SCRIPTING_ENABLED
diff --git a/libraries/AP_Scripting/lua_scripts.h b/libraries/AP_Scripting/lua_scripts.h
index 14adbcf0001..b3201c53949 100644
--- a/libraries/AP_Scripting/lua_scripts.h
+++ b/libraries/AP_Scripting/lua_scripts.h
@@ -14,6 +14,10 @@
*/
#pragma once
+#include "AP_Scripting_config.h"
+
+#if AP_SCRIPTING_ENABLED
+
#include
#include
#include
@@ -132,3 +136,5 @@ public:
static AP_HAL::Semaphore* get_last_error_semaphore() { return &error_msg_buf_sem; }
};
+
+#endif // AP_SCRIPTING_ENABLED