diff --git a/game/server/application/SwgDatabaseServer/.gitignore b/game/server/application/SwgDatabaseServer/.gitignore new file mode 100644 index 00000000..d314b521 --- /dev/null +++ b/game/server/application/SwgDatabaseServer/.gitignore @@ -0,0 +1,2 @@ +src/shared/generated/*.h +src/shared/generated/*.cpp \ No newline at end of file diff --git a/game/server/application/SwgDatabaseServer/src/CMakeLists.txt b/game/server/application/SwgDatabaseServer/src/CMakeLists.txt index 37de5935..c41a01ad 100644 --- a/game/server/application/SwgDatabaseServer/src/CMakeLists.txt +++ b/game/server/application/SwgDatabaseServer/src/CMakeLists.txt @@ -158,21 +158,21 @@ else() endif() include_directories( - #${CMAKE_CURRENT_SOURCE_DIR}/shared/combat - #${CMAKE_CURRENT_SOURCE_DIR}/shared/core - #${CMAKE_CURRENT_SOURCE_DIR}/shared/lint + ${CMAKE_CURRENT_SOURCE_DIR}/shared/core + ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedCollision/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedCommandParser/include/public - #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedDebug/include/public + ${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedDatabaseInterface/include/public + ${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedDebug/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFile/include/public - #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFoundation/include/public - #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFoundationTypes/include/public + ${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFoundation/include/public + ${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFoundationTypes/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedGame/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedImage/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedLog/include/public - #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMath/include/public + ${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMath/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMathArchive/include/public - #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMemoryManager/include/public + ${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMemoryManager/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMessageDispatch/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedNetwork/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedNetworkMessages/include/public @@ -184,21 +184,22 @@ include_directories( #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedSkillSystem/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedTerrain/include/public #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedThread/include/public - #${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedUtility/include/public + ${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedUtility/include/public + ${SWG_ENGINE_SOURCE_DIR}/server/library/serverDatabase/include/public #${SWG_ENGINE_SOURCE_DIR}/server/library/serverGame/include/public - #${SWG_ENGINE_SOURCE_DIR}/server/library/serverNetworkMessages/include/public + ${SWG_ENGINE_SOURCE_DIR}/server/library/serverNetworkMessages/include/public #${SWG_ENGINE_SOURCE_DIR}/server/library/serverPathfinding/include/public #${SWG_ENGINE_SOURCE_DIR}/server/library/serverScript/include/public - #${SWG_ENGINE_SOURCE_DIR}/server/library/serverUtility/include/public + ${SWG_ENGINE_SOURCE_DIR}/server/library/serverUtility/include/public #${SWG_GAME_SOURCE_DIR}/shared/library/swgSharedNetworkMessages/include/public #${SWG_GAME_SOURCE_DIR}/shared/library/swgSharedUtility/include/public #${SWG_GAME_SOURCE_DIR}/server/library/swgServerNetworkMessages/include/public - #${SWG_EXTERNALS_SOURCE_DIR}/ours/library/archive/include + ${SWG_EXTERNALS_SOURCE_DIR}/ours/library/archive/include #${SWG_EXTERNALS_SOURCE_DIR}/ours/library/fileInterface/include/public - #${SWG_EXTERNALS_SOURCE_DIR}/ours/library/localization/include + ${SWG_EXTERNALS_SOURCE_DIR}/ours/library/localization/include #${SWG_EXTERNALS_SOURCE_DIR}/ours/library/localizationArchive/include/public #${SWG_EXTERNALS_SOURCE_DIR}/ours/library/singleton/include - #${SWG_EXTERNALS_SOURCE_DIR}/ours/library/unicode/include + ${SWG_EXTERNALS_SOURCE_DIR}/ours/library/unicode/include #${SWG_EXTERNALS_SOURCE_DIR}/ours/library/unicodeArchive/include/public #${Boost_INCLUDE_DIR} #${JNI_INCLUDE_DIRS} @@ -206,9 +207,113 @@ include_directories( link_directories(${STLPORT_LIBDIR}) +set(MAKE_SCHEMA_H ${SWG_ENGINE_SOURCE_DIR}/server/library/codegen/make_schema_h.pl) +file(TO_NATIVE_PATH ${MAKE_SCHEMA_H} MAKE_SCHEMA_H_NATIVE) + +set(MAKE_PACKAGES ${SWG_ENGINE_SOURCE_DIR}/server/library/codegen/make_packages.pl) +file(TO_NATIVE_PATH ${MAKE_PACKAGES} MAKE_PACKAGES_NATIVE) + +set(MAKE_QUERIES ${SWG_ENGINE_SOURCE_DIR}/server/library/codegen/make_queries.pl) +file(TO_NATIVE_PATH ${MAKE_QUERIES} MAKE_QUERIES_NATIVE) + +set(PACKAGE_DATA ${SWG_ENGINE_SOURCE_DIR}/server/library/codegen/package_data.txt) +file(TO_NATIVE_PATH ${PACKAGE_DATA} PACKAGE_DATA_NATIVE) + + + +set(SCHEMA_H_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/Schema_h.template) +file(TO_NATIVE_PATH ${SCHEMA_H_TEMPLATE} SCHEMA_H_TEMPLATE_NATIVE) + +set(SCHEMA_H_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/Schema.h) +file(TO_NATIVE_PATH ${SCHEMA_H_OUTPUT} SCHEMA_H_OUTPUT_NATIVE) + + +set(ENCODER_CPP_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/Encoder_cpp.template) +file(TO_NATIVE_PATH ${ENCODER_CPP_TEMPLATE} ENCODER_CPP_TEMPLATE_NATIVE) + +set(ENCODER_CPP_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/Encoder.cpp) +file(TO_NATIVE_PATH ${ENCODER_CPP_OUTPUT} ENCODER_CPP_OUTPUT_NATIVE) + + +set(DECODER_CPP_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/Decoder_cpp.template) +file(TO_NATIVE_PATH ${DECODER_CPP_TEMPLATE} DECODER_CPP_TEMPLATE_NATIVE) + +set(DECODER_CPP_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/Decoder.cpp) +file(TO_NATIVE_PATH ${DECODER_CPP_OUTPUT} DECODER_CPP_OUTPUT_NATIVE) + + +set(LOAD_OBJECT_CPP_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/LoadObject_cpp.template) +file(TO_NATIVE_PATH ${LOAD_OBJECT_CPP_TEMPLATE} LOAD_OBJECT_CPP_TEMPLATE_NATIVE) + +set(LOAD_OBJECT_CPP_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/LoadObject.cpp) +file(TO_NATIVE_PATH ${LOAD_OBJECT_CPP_OUTPUT} LOAD_OBJECT_CPP_OUTPUT_NATIVE) + + +set(OBJECT_QUERIES_CPP_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/ObjectQueries_cpp.template) +file(TO_NATIVE_PATH ${OBJECT_QUERIES_CPP_TEMPLATE} OBJECT_QUERIES_CPP_TEMPLATE_NATIVE) + +set(OBJECT_QUERIES_CPP_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/ObjectQueries.cpp) +file(TO_NATIVE_PATH ${OBJECT_QUERIES_CPP_OUTPUT} OBJECT_QUERIES_CPP_OUTPUT_NATIVE) + + +set(OBJECT_QUERIES_H_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/ObjectQueries_h.template) +file(TO_NATIVE_PATH ${OBJECT_QUERIES_H_TEMPLATE} OBJECT_QUERIES_H_TEMPLATE_NATIVE) + +set(OBJECT_QUERIES_H_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/shared/generated/ObjectQueries.h) +file(TO_NATIVE_PATH ${OBJECT_QUERIES_H_OUTPUT} OBJECT_QUERIES_H_OUTPUT_NATIVE) + + +add_custom_command( + OUTPUT ${SCHEMA_H_OUTPUT_NATIVE} + COMMAND ${CMAKE_COMMAND} -E copy ${SCHEMA_H_TEMPLATE_NATIVE} ${SCHEMA_H_OUTPUT_NATIVE} + COMMAND ${PERL_EXECUTABLE} "${MAKE_SCHEMA_H}" --ddldirectory "${SWG_GAME_SOURCE_DIR}/server/database/schema" --output "${SCHEMA_H_OUTPUT_NATIVE}" --windows + DEPENDS ${SCHEMA_H_OUTPUT_NATIVE} ${MAKE_SCHEMA_H} +) + +add_custom_command( + OUTPUT ${ENCODER_CPP_OUTPUT_NATIVE} + COMMAND ${CMAKE_COMMAND} -E copy ${ENCODER_CPP_TEMPLATE_NATIVE} ${ENCODER_CPP_OUTPUT_NATIVE} + COMMAND ${PERL_EXECUTABLE} "${MAKE_PACKAGES_NATIVE}" --datafile "${PACKAGE_DATA_NATIVE}" --encoder "${ENCODER_CPP_OUTPUT_NATIVE}" --windows + DEPENDS ${ENCODER_CPP_TEMPLATE_NATIVE} ${MAKE_PACKAGES_NATIVE} ${PACKAGE_DATA_NATIVE} +) + +add_custom_command( + OUTPUT ${DECODER_CPP_OUTPUT_NATIVE} + COMMAND ${CMAKE_COMMAND} -E copy ${DECODER_CPP_TEMPLATE_NATIVE} ${DECODER_CPP_OUTPUT_NATIVE} + COMMAND ${PERL_EXECUTABLE} "${MAKE_PACKAGES_NATIVE}" --datafile "${PACKAGE_DATA_NATIVE}" --decoder "${DECODER_CPP_OUTPUT_NATIVE}" --windows + DEPENDS ${DECODER_CPP_TEMPLATE_NATIVE} ${MAKE_PACKAGES_NATIVE} ${PACKAGE_DATA_NATIVE} +) + +add_custom_command( + OUTPUT ${LOAD_OBJECT_CPP_OUTPUT_NATIVE} + COMMAND ${CMAKE_COMMAND} -E copy ${LOAD_OBJECT_CPP_TEMPLATE_NATIVE} ${LOAD_OBJECT_CPP_OUTPUT_NATIVE} + COMMAND ${PERL_EXECUTABLE} "${MAKE_PACKAGES_NATIVE}" --datafile "${PACKAGE_DATA_NATIVE}" --loadobject "${LOAD_OBJECT_CPP_OUTPUT_NATIVE}" --windows + DEPENDS ${LOAD_OBJECT_CPP_TEMPLATE_NATIVE} ${MAKE_PACKAGES_NATIVE} ${PACKAGE_DATA_NATIVE} +) + +add_custom_command( + OUTPUT ${OBJECT_QUERIES_CPP_OUTPUT_NATIVE} + COMMAND ${CMAKE_COMMAND} -E copy ${OBJECT_QUERIES_CPP_TEMPLATE_NATIVE} ${OBJECT_QUERIES_CPP_OUTPUT_NATIVE} + COMMAND ${PERL_EXECUTABLE} "${MAKE_QUERIES}" --plsql "${SWG_GAME_SOURCE_DIR}/server/database/packages/persister.plsqlh" --source "${OBJECT_QUERIES_CPP_OUTPUT_NATIVE}" --windows + DEPENDS ${OBJECT_QUERIES_CPP_TEMPLATE_NATIVE} ${MAKE_QUERIES} +) + +add_custom_command( + OUTPUT ${OBJECT_QUERIES_H_OUTPUT_NATIVE} + COMMAND ${CMAKE_COMMAND} -E copy ${OBJECT_QUERIES_H_TEMPLATE_NATIVE} ${OBJECT_QUERIES_H_OUTPUT_NATIVE} + COMMAND ${PERL_EXECUTABLE} "${MAKE_QUERIES}" --plsql "${SWG_GAME_SOURCE_DIR}/server/database/packages/persister.plsqlh" --header "${OBJECT_QUERIES_H_OUTPUT_NATIVE}" --windows + DEPENDS ${OBJECT_QUERIES_H_TEMPLATE_NATIVE} ${MAKE_QUERIES} +) + add_executable(SwgDatabaseServer ${SHARED_SOURCES} ${PLATFORM_SOURCES} + ${SCHEMA_H_OUTPUT} + ${ENCODER_CPP_OUTPUT} + ${DECODER_CPP_OUTPUT} + ${LOAD_OBJECT_CPP_OUTPUT} + ${OBJECT_QUERIES_CPP_OUTPUT} + ${OBJECT_QUERIES_H_OUTPUT} ) target_link_libraries(SwgDatabaseServer