r5sdk/r5dev/vscript/CMakeLists.txt
Kawe Mazidjatari 1c32339305 Squirrel: reverse more squirrel types and structures
This patch removes a lot of old code. Context is now exclusively grabbed from the CSquirrelVM instance. This patch also comes with a few new types: SQArray and SQTable!

The implementation also allows pushing Vector3D's on the stack, but these are handled slightly differently.. The largest field in tagSQObjectValue is 8 bytes, Vector3D is 12 bytes unaligned, but the tagSQObjectValue field in the tagSQObject struct is aligned to a 8 byte boundary while the field prior is only 4 bytes, Vector3D starts right after the type field in the tagSQObject (at the padding) to keep the whole structure the same size, therefore a new field has been added in between the padding (_pad) with a simple Vector3D accessor.

Also added a hook to allow registering proper script enums.
2024-04-05 18:31:06 +02:00

58 lines
1.9 KiB
CMake

cmake_minimum_required( VERSION 3.16 )
add_module( "lib" "vscript" "vpc" ${FOLDER_CONTEXT} TRUE TRUE )
start_sources()
add_sources( SOURCE_GROUP "Private"
"vscript.cpp"
"vscript.h"
)
add_sources( SOURCE_GROUP "Squirrel_RE"
"languages/squirrel_re/vsquirrel.cpp"
"languages/squirrel_re/vsquirrel.h"
)
add_sources( SOURCE_GROUP "Squirrel_RE/squirrel"
"languages/squirrel_re/squirrel/sqapi.cpp"
"languages/squirrel_re/squirrel/sqdebug.cpp"
#"languages/squirrel_re/squirrel/sqcompiler.cpp"
"languages/squirrel_re/squirrel/sqfuncstate.cpp"
#"languages/squirrel_re/squirrel/sqlexer.cpp"
"languages/squirrel_re/squirrel/sqobject.cpp"
"languages/squirrel_re/squirrel/sqstring.cpp"
"languages/squirrel_re/squirrel/sqtable.cpp"
"languages/squirrel_re/squirrel/sqmem.cpp"
"languages/squirrel_re/squirrel/sqvm.cpp"
)
add_sources( SOURCE_GROUP "Squirrel_RE/sqstdlib"
"languages/squirrel_re/sqstdlib/sqstdaux.cpp"
)
add_sources( SOURCE_GROUP "Squirrel_RE/include"
"languages/squirrel_re/vsquirrel.cpp"
"languages/squirrel_re/vsquirrel.h"
#"languages/squirrel_re/include/sqcompiler.h"
"languages/squirrel_re/include/sqfuncstate.h"
#"languages/squirrel_re/include/sqlexer.h"
"languages/squirrel_re/include/sqarray.h"
"languages/squirrel_re/include/squtils.h"
"languages/squirrel_re/include/sqobject.h"
"languages/squirrel_re/include/sqopcodes.h"
"languages/squirrel_re/include/sqstate.h"
"languages/squirrel_re/include/sqstdaux.h"
"languages/squirrel_re/include/sqstring.h"
"languages/squirrel_re/include/sqtable.h"
"languages/squirrel_re/include/squirrel.h"
"languages/squirrel_re/include/sqvm.h"
)
add_sources( SOURCE_GROUP "Public"
"${ENGINE_SOURCE_DIR}/public/vscript/ivscript.h"
)
end_sources()
target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/vscript/languages/squirrel_re/include/" )