CMakeLists.txt 2.2 KB

1234567891011121314151617181920212223242526272829
  1. INCLUDE(FindPythonModule)
  2. FIND_PACKAGE(PythonInterp REQUIRED)
  3. FIND_PYTHON_MODULE(ply REQUIRED)
  4. IF(NOT PY_PLY)
  5. MESSAGE(SEND_ERROR "The Python PLY (Python Lex-Yacc) module is required to generate Lua bindings.")
  6. ENDIF(NOT PY_PLY)
  7. FILE(GLOB HEADER_DEPENDENCIES_CORE ../../../Core/Contents/Include/*.h)
  8. FILE(GLOB HEADER_DEPENDENCIES_2DPHYSICS ../../../Modules/Contents/2DPhysics/Include/*.h)
  9. FILE(GLOB HEADER_DEPENDENCIES_3DPHYSICS ../../../Modules/Contents/3DPhysics/Include/*.h)
  10. FILE(GLOB HEADER_DEPENDENCIES_UI ../../../Modules/Contents/UI/Include/*.h)
  11. ADD_CUSTOM_COMMAND(
  12. OUTPUT luaGenerateCmd
  13. COMMAND ${PYTHON_EXECUTABLE} create_lua_library.py ../../../Core/Contents/Include Polycode Polycode.h polycore Polycore ../../Contents/LUA/API ../../Contents/LUA/API/Polycode ../../Contents/LUA/Include ../../Contents/LUA/Source
  14. COMMAND ${PYTHON_EXECUTABLE} create_lua_library.py ../../../Modules/Contents/2DPhysics/Include/ Physics2D Polycode2DPhysics.h physics2d Physics2D ../../../Modules/Bindings/2DPhysics/API ../../../Modules/Bindings/2DPhysics/API/Physics2D ../../../Modules/Bindings/2DPhysics/Include ../../../Modules/Bindings/2DPhysics/Source
  15. COMMAND ${PYTHON_EXECUTABLE} create_lua_library.py ../../../Modules/Contents/3DPhysics/Include/ Physics3D Polycode3DPhysics.h physics3d Physics3D ../../../Modules/Bindings/3DPhysics/API ../../../Modules/Bindings/3DPhysics/API/Physics3D ../../../Modules/Bindings/3DPhysics/Include ../../../Modules/Bindings/3DPhysics/Source
  16. COMMAND ${PYTHON_EXECUTABLE} create_lua_library.py ../../../Modules/Contents/UI/Include/ UI PolycodeUI.h UI UI ../../../Modules/Bindings/UI/API ../../../Modules/Bindings/UI/API/UI ../../../Modules/Bindings/UI/Include ../../../Modules/Bindings/UI/Source
  17. COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/luaGenerateCmd # Generate the given output file(empty file), to keep track of whether we need to rebuild.
  18. DEPENDS ${HEADER_DEPENDENCIES_CORE} ${HEADER_DEPENDENCIES_2DPHYSICS} ${HEADER_DEPENDENCIES_3DPHYSICS} ${HEADER_DEPENDENCIES_UI}
  19. WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
  20. )
  21. ADD_CUSTOM_TARGET(PolycodeLuaGenerate
  22. DEPENDS Polycore luaGenerateCmd
  23. COMMENT "Generating Lua API"
  24. SOURCES create_lua_library.py)