SubDir P4 script ; SubDirHdrs $(P4) client ; SubDirHdrs $(P4) script lua-5.3 ; local C++FLAGS = [ C++FLAGS+STD $(C++_VERSION_MAX) ] ; # Scripting is both exposed to the public API and requires C++17, so # we have to override the above local C++FLAGS when running the compat # check so we can see that the stub functions work. if $(C++_LANGUAGE_COMPAT_CHECK) = 1 { C++FLAGS = [ FRemoveAny $(C++FLAGS) : -std=$(C++_VERSION_MAX) /std:$(C++_VERSION_MAX) ] ; C++FLAGS = [ C++FLAGS+STD $(C++_VERSION_BASELINE) ] ; } Library $(P4SCRIPT) : clientapilua.cc errorlua.cc p4script53.cc p4script.cc ; Library $(P4SCRIPT_SQLITE) : sqlite3.c lsqlite3.cc ; ObjectC++Flags p4script53.cc : -I $(P4)/script/lua-5.3 -I $(P4)/client ; # This is the LuaSQLite version, not the SQLite library itself. ObjectDefines p4script53.cc : SQLITE_VERSION=95 ; # https://www.sqlite.org/compile.html # Some, like SQLITE_OMIT_DECLTYPE and SQLITE_OMIT_DEPRECATED are required by # LuaSQLite3 so we leave them in. ObjectDefines sqlite3.c : SQLITE_THREADSAFE=0 ; ObjectDefines sqlite3.c : SQLITE_DEFAULT_MEMSTATUS=0 ; ObjectDefines sqlite3.c : SQLITE_DEFAULT_WAL_SYNCHRONOUS=1 ; ObjectDefines sqlite3.c : SQLITE_LIKE_DOESNT_MATCH_BLOBS ; ObjectDefines sqlite3.c : SQLITE_OMIT_SHARED_CACHE ; ObjectDefines sqlite3.c : SQLITE_DEFAULT_FILE_PERMISSIONS=0600 ; ObjectDefines sqlite3.c : SQLITE_ENABLE_API_ARMOR ; ObjectDefines sqlite3.c : SQLITE_ENABLE_JSON1 ; # -Os: https://www.sqlite.org/footprint.html ObjectCcFlags sqlite3.c : -Os ; ObjectC++Flags lsqlite3.cc : -I $(P4)/script/lua-5.3 ; ObjectC++Flags lsqlite3.cc : -I $(P4)/script/ ; # The version should be "0.9.5", but getting that past Jam and shell quoting # hasn't worked. #ObjectDefines lsqlite3.cc : LSQLITE_VERSION=95 ; SubInclude P4 script libs ;