diff options
author | Tiger Wang <ziwei.tiger@outlook.com> | 2020-05-16 21:59:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-16 21:59:10 +0200 |
commit | 9e8598fb1ca359143600d6bb2e8b317126a86bcc (patch) | |
tree | 677c51b708937ee8fbcdb2da8e180e874878d77a /CMake/GenerateBindings.cmake | |
parent | Travis: Fix ccache on debug builds (#4741) (diff) | |
download | cuberite-9e8598fb1ca359143600d6bb2e8b317126a86bcc.tar cuberite-9e8598fb1ca359143600d6bb2e8b317126a86bcc.tar.gz cuberite-9e8598fb1ca359143600d6bb2e8b317126a86bcc.tar.bz2 cuberite-9e8598fb1ca359143600d6bb2e8b317126a86bcc.tar.lz cuberite-9e8598fb1ca359143600d6bb2e8b317126a86bcc.tar.xz cuberite-9e8598fb1ca359143600d6bb2e8b317126a86bcc.tar.zst cuberite-9e8598fb1ca359143600d6bb2e8b317126a86bcc.zip |
Diffstat (limited to 'CMake/GenerateBindings.cmake')
-rw-r--r-- | CMake/GenerateBindings.cmake | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/CMake/GenerateBindings.cmake b/CMake/GenerateBindings.cmake new file mode 100644 index 000000000..153f1a58a --- /dev/null +++ b/CMake/GenerateBindings.cmake @@ -0,0 +1,112 @@ +# Enumerate every Lua-exported class. +# Changes to these files will cause binding regen: +set(BINDING_DEPENDENCIES + Bindings/AllToLua.pkg + Bindings/BindingsProcessor.lua + Bindings/LuaFunctions.h + Bindings/LuaWindow.h + Bindings/Plugin.h + Bindings/PluginLua.h + Bindings/PluginManager.h + BiomeDef.h + BlockArea.h + BlockEntities/BeaconEntity.h + BlockEntities/BedEntity.h + BlockEntities/BlockEntity.h + BlockEntities/BlockEntityWithItems.h + BlockEntities/BrewingstandEntity.h + BlockEntities/ChestEntity.h + BlockEntities/CommandBlockEntity.h + BlockEntities/DispenserEntity.h + BlockEntities/DropSpenserEntity.h + BlockEntities/DropperEntity.h + BlockEntities/FurnaceEntity.h + BlockEntities/HopperEntity.h + BlockEntities/JukeboxEntity.h + BlockEntities/MobSpawnerEntity.h + BlockEntities/NoteEntity.h + BlockEntities/SignEntity.h + BlockEntities/MobHeadEntity.h + BlockEntities/FlowerPotEntity.h + BlockType.h + BlockInfo.h + BoundingBox.h + ChatColor.h + ChunkDef.h + ClientHandle.h + Color.h + CompositeChat.h + CraftingRecipes.h + Cuboid.h + Defines.h + EffectID.h + Enchantments.h + Entities/Boat.h + Entities/ArrowEntity.h + Entities/Entity.h + Entities/ExpOrb.h + Entities/EntityEffect.h + Entities/ExpBottleEntity.h + Entities/FallingBlock.h + Entities/FireChargeEntity.h + Entities/FireworkEntity.h + Entities/Floater.h + Entities/GhastFireballEntity.h + Entities/HangingEntity.h + Entities/ItemFrame.h + Entities/LeashKnot.h + Entities/Pawn.h + Entities/Player.h + Entities/Painting.h + Entities/Pickup.h + Entities/ProjectileEntity.h + Entities/SplashPotionEntity.h + Entities/ThrownEggEntity.h + Entities/ThrownEnderPearlEntity.h + Entities/ThrownSnowballEntity.h + Entities/TNTEntity.h + Entities/WitherSkullEntity.h + Generating/ChunkDesc.h + IniFile.h + Inventory.h + Item.h + ItemGrid.h + Map.h + MapManager.h + Mobs/Monster.h + Mobs/MonsterTypes.h + OSSupport/File.h + Protocol/MojangAPI.h + Root.h + Scoreboard.h + Server.h + Statistics.h + StringUtils.h + UI/Window.h + UUID.h + Vector3.h + WebAdmin.h + World.h +) + +# List all the files that are generated as part of the Bindings build process: +set(BINDING_OUTPUTS + Bindings.cpp + Bindings.h + LuaState_Declaration.inc + LuaState_Implementation.cpp + LuaState_Typedefs.inc +) + +# Make the file paths absolute and pointing to the bindings folder: +set(BINDINGS_FOLDER "${PROJECT_SOURCE_DIR}/src/Bindings/") +list(TRANSFORM BINDING_OUTPUTS PREPEND ${BINDINGS_FOLDER}) +list(TRANSFORM BINDING_DEPENDENCIES PREPEND "${PROJECT_SOURCE_DIR}/src/") + +# Generate the bindings: +add_custom_command( + OUTPUT ${BINDING_OUTPUTS} + COMMAND luaexe BindingsProcessor.lua + WORKING_DIRECTORY ${BINDINGS_FOLDER} + DEPENDS ${BINDING_DEPENDENCIES} luaexe +) |