summaryrefslogblamecommitdiffstats
path: root/src/Bindings/CMakeLists.txt
blob: 05d4c7e4f7c71a85fc804162dae812f006adfbdc (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                    
                  

                                                 
                         

         


                              
                   
                         
                           
                    
                                   
                      
                          

                          
                                  
                                      
                                


                         


         



                            
                 
                       
                         
                  

                                
                    
                        




                        
                 
 
 

                                                                             

                                                


                                                               

 
                        
                                
                                         




                                   

                      
                                       

                                               
                                             
                                      
                                             





                                            
                                           




                                          
                      



                         
                          











                                         

                                   











                                            
                    


                      

                       
                         
                              
                           
                               
                 
                       
                   
                       





                        

 
             














                                                                                                         
        
 
                                                                         
 

                                                                                                              
                                               
                                                                                                                                                                          


                                                                                                    
            
                                             
                                                                              
       
cmake_minimum_required (VERSION 2.6)
project (Cuberite)

include_directories ("${PROJECT_SOURCE_DIR}/../")
include_directories (".")

SET (SRCS
	Bindings.cpp
	DeprecatedBindings.cpp
	LuaChunkStay.cpp
	LuaJson.cpp
	LuaNameLookup.cpp
	LuaServerHandle.cpp
	LuaState.cpp
	LuaState_Implementation.cpp
	LuaTCPLink.cpp
	LuaUDPEndpoint.cpp
	LuaWindow.cpp
	ManualBindings.cpp
	ManualBindings_Network.cpp
	ManualBindings_RankManager.cpp
	ManualBindings_World.cpp
	Plugin.cpp
	PluginLua.cpp
	PluginManager.cpp
)

SET (HDRS
	Bindings.h
	DeprecatedBindings.h
	LuaChunkStay.h
	LuaFunctions.h
	LuaJson.h
	LuaNameLookup.h
	LuaServerHandle.h
	LuaState.h
	LuaState_Declaration.inc
	LuaState_Typedefs.inc
	LuaTCPLink.h
	LuaUDPEndpoint.h
	LuaWindow.h
	ManualBindings.h
	Plugin.h
	PluginLua.h
	PluginManager.h
	tolua++.h
)

# List all the files that are generated as part of the Bindings build process
set (BINDING_OUTPUTS
	${CMAKE_CURRENT_SOURCE_DIR}/Bindings.cpp
	${CMAKE_CURRENT_SOURCE_DIR}/Bindings.h
	${CMAKE_CURRENT_SOURCE_DIR}/LuaState_Declaration.inc
	${CMAKE_CURRENT_SOURCE_DIR}/LuaState_Implementation.cpp
	${CMAKE_CURRENT_SOURCE_DIR}/LuaState_Typedefs.inc
)

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/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
	../BlockID.h
	../BlockInfo.h
	../BoundingBox.h
	../ChatColor.h
	../ChunkDef.h
	../ClientHandle.h
	../CompositeChat.h
	../CraftingRecipes.h
	../Cuboid.h
	../Defines.h
	../Enchantments.h
	../Entities/ArrowEntity.h
	../Entities/Entity.h
	../Entities/EntityEffect.h
	../Entities/ExpBottleEntity.h
	../Entities/FireChargeEntity.h
	../Entities/FireworkEntity.h
	../Entities/Floater.h
	../Entities/GhastFireballEntity.h
	../Entities/HangingEntity.h
	../Entities/ItemFrame.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
	../Tracer.h
	../UI/Window.h
	../Vector3.h
	../WebAdmin.h
	../World.h
)

if (NOT MSVC)
	if (HAS_LUA_INTERPRETER)
		ADD_CUSTOM_COMMAND(
			OUTPUT ${BINDING_OUTPUTS}
			COMMAND lua BindingsProcessor.lua
			WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
			DEPENDS ${BINDING_DEPENDENCIES}
		)
	else()
		ADD_CUSTOM_COMMAND(
			OUTPUT ${BINDING_OUTPUTS}
			COMMAND tolua -L BindingsProcessor.lua -o Bindings.cpp -H Bindings.h AllToLua.pkg
			WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
			DEPENDS ${BINDING_DEPENDENCIES} tolua
		)
	endif()
endif ()

set_source_files_properties(${BINDING_OUTPUTS} PROPERTIES GENERATED TRUE)

set_source_files_properties(${CMAKE_SOURCE_DIR}/src/Bindings/Bindings.cpp PROPERTIES COMPILE_FLAGS -Wno-error)

if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
	set_source_files_properties(${CMAKE_SOURCE_DIR}/src/Bindings/Bindings.cpp PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS} "-Wno-old-style-cast -Wno-missing-prototypes")
	set_source_files_properties(LuaWindow.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
endif()

if(NOT MSVC)
	add_library(Bindings ${SRCS} ${HDRS})
	target_link_libraries(Bindings lua sqlite tolualib mbedtls HTTPServer)
endif()