GenerateScriptBindings.cmake 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # Outputs:
  2. # BS_GENERATED_ENGINE_H_FILES
  3. # BS_GENERATED_ENGINE_CPP_FILES
  4. # BS_GENERATED_EDITOR_H_FILES
  5. # BS_GENERATED_EDITOR_CPP_FILES
  6. # BS_GENERATED_ENGINE_CS_FILES
  7. # BS_GENERATED_EDITOR_CS_FILES
  8. set(BS_SCRIPT_PARSER_INCLUDE_DIRS "")
  9. set(BS_SCRIPT_PARSER_SOURCE_FILES "")
  10. function(prepend var prefix)
  11. SET(listVar "")
  12. FOREACH(f ${ARGN})
  13. LIST(APPEND listVar "${prefix}/${f}")
  14. ENDFOREACH(f)
  15. SET(${var} "${listVar}" PARENT_SCOPE)
  16. endfunction()
  17. function(addForGeneration name)
  18. set(BS_SCRIPT_PARSER_INCLUDE_DIRS ${BS_SCRIPT_PARSER_INCLUDE_DIRS} "${name}/Include" PARENT_SCOPE)
  19. include(${name}/CMakeSources.cmake)
  20. string(TOUPPER ${name} LIBNAME)
  21. set(CPP_FILES "")
  22. FOREACH(f ${BS_${LIBNAME}_SRC})
  23. IF("${f}" MATCHES ".*\.cpp")
  24. LIST(APPEND CPP_FILES ${f})
  25. ENDIF()
  26. ENDFOREACH(f)
  27. set(ABS_SOURCE_FILES "")
  28. prepend(ABS_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${name} ${CPP_FILES})
  29. set(BS_SCRIPT_PARSER_SOURCE_FILES ${BS_SCRIPT_PARSER_SOURCE_FILES} ${ABS_SOURCE_FILES} PARENT_SCOPE)
  30. endfunction()
  31. addForGeneration(BansheeUtility)
  32. addForGeneration(BansheeCore)
  33. addForGeneration(BansheeEngine)
  34. addForGeneration(BansheeEditor)
  35. addForGeneration(SBansheeEngine)
  36. addForGeneration(SBansheeEditor)
  37. set(BS_SCRIPT_PARSER_INCLUDE_DIRS ${BS_SCRIPT_PARSER_INCLUDE_DIRS} "BansheeMono/Include")
  38. list(REMOVE_DUPLICATES BS_SCRIPT_PARSER_INCLUDE_DIRS)
  39. list(REMOVE_DUPLICATES BS_SCRIPT_PARSER_SOURCE_FILES)
  40. set(BS_GENERATED_FILES_OUTPUT_DIR ${PROJECT_BINARY_DIR}/Generated)
  41. prepend(BS_INCLUDE_DIRS "-I${PROJECT_SOURCE_DIR}" ${BS_SCRIPT_PARSER_INCLUDE_DIRS})
  42. #execute_process(
  43. # COMMAND ${PROJECT_SOURCE_DIR}/../Dependencies/tools/SBGen
  44. # ${BS_SCRIPT_PARSER_SOURCE_FILES}
  45. # -output ${BS_GENERATED_FILES_OUTPUT_DIR}
  46. # -- ${BS_INCLUDE_DIRS}
  47. # -DBS_STATIC_LIB
  48. # WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  49. # RESULT_VARIABLE SBGEN_RETURN_VALUE
  50. #)
  51. #if (NOT SBGEN_RETURN_VALUE EQUAL 0)
  52. # message(FATAL_ERROR "Failed to generate script bindings.")
  53. #endif()
  54. file(GLOB BS_GENERATED_ENGINE_H_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cpp/Engine/Include)
  55. file(GLOB BS_GENERATED_ENGINE_CPP_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cpp/Engine/Source)
  56. file(GLOB BS_GENERATED_EDITOR_H_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cpp/Editor/Include)
  57. file(GLOB BS_GENERATED_EDITOR_CPP_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cpp/Editor/Source)
  58. file(GLOB BS_GENERATED_ENGINE_CS_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cs/Engine)
  59. file(GLOB BS_GENERATED_EDITOR_CS_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cs/Editor)