# Outputs: # BS_GENERATED_ENGINE_H_FILES # BS_GENERATED_ENGINE_CPP_FILES # BS_GENERATED_EDITOR_H_FILES # BS_GENERATED_EDITOR_CPP_FILES # BS_GENERATED_ENGINE_CS_FILES # BS_GENERATED_EDITOR_CS_FILES set(BS_SCRIPT_PARSER_INCLUDE_DIRS "") set(BS_SCRIPT_PARSER_SOURCE_FILES "") function(prepend var prefix) SET(listVar "") FOREACH(f ${ARGN}) LIST(APPEND listVar "${prefix}/${f}") ENDFOREACH(f) SET(${var} "${listVar}" PARENT_SCOPE) endfunction() function(addForGeneration name) set(BS_SCRIPT_PARSER_INCLUDE_DIRS ${BS_SCRIPT_PARSER_INCLUDE_DIRS} "${name}/Include" PARENT_SCOPE) include(${name}/CMakeSources.cmake) string(TOUPPER ${name} LIBNAME) set(CPP_FILES "") FOREACH(f ${BS_${LIBNAME}_SRC}) IF("${f}" MATCHES ".*\.cpp") LIST(APPEND CPP_FILES ${f}) ENDIF() ENDFOREACH(f) set(ABS_SOURCE_FILES "") prepend(ABS_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${name} ${CPP_FILES}) set(BS_SCRIPT_PARSER_SOURCE_FILES ${BS_SCRIPT_PARSER_SOURCE_FILES} ${ABS_SOURCE_FILES} PARENT_SCOPE) endfunction() addForGeneration(BansheeUtility) addForGeneration(BansheeCore) addForGeneration(BansheeEngine) addForGeneration(BansheeEditor) addForGeneration(SBansheeEngine) addForGeneration(SBansheeEditor) set(BS_SCRIPT_PARSER_INCLUDE_DIRS ${BS_SCRIPT_PARSER_INCLUDE_DIRS} "BansheeMono/Include") list(REMOVE_DUPLICATES BS_SCRIPT_PARSER_INCLUDE_DIRS) list(REMOVE_DUPLICATES BS_SCRIPT_PARSER_SOURCE_FILES) set(BS_GENERATED_FILES_OUTPUT_DIR ${PROJECT_BINARY_DIR}/Generated) prepend(BS_INCLUDE_DIRS "-I${PROJECT_SOURCE_DIR}" ${BS_SCRIPT_PARSER_INCLUDE_DIRS}) #execute_process( # COMMAND ${PROJECT_SOURCE_DIR}/../Dependencies/tools/SBGen # ${BS_SCRIPT_PARSER_SOURCE_FILES} # -output ${BS_GENERATED_FILES_OUTPUT_DIR} # -- ${BS_INCLUDE_DIRS} # -DBS_STATIC_LIB # WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} # RESULT_VARIABLE SBGEN_RETURN_VALUE #) #if (NOT SBGEN_RETURN_VALUE EQUAL 0) # message(FATAL_ERROR "Failed to generate script bindings.") #endif() file(GLOB BS_GENERATED_ENGINE_H_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cpp/Engine/Include) file(GLOB BS_GENERATED_ENGINE_CPP_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cpp/Engine/Source) file(GLOB BS_GENERATED_EDITOR_H_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cpp/Editor/Include) file(GLOB BS_GENERATED_EDITOR_CPP_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cpp/Editor/Source) file(GLOB BS_GENERATED_ENGINE_CS_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cs/Engine) file(GLOB BS_GENERATED_EDITOR_CS_FILES ${BS_GENERATED_FILES_OUTPUT_DIR}/Cs/Editor)