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