Added new dependency structure support.

This commit is contained in:
Xackery 2018-07-05 10:11:02 -07:00
parent bcc42edb16
commit b83fafb745
3 changed files with 154 additions and 129 deletions

View File

@ -57,39 +57,67 @@ SET(NATS_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/nats")
#Try to find protobuf automatically
FIND_PACKAGE(Protobuf QUIET)
IF(NOT PROTOBUF_FOUND)
#IF(NOT PROTOBUF_FOUND)
SET(Protobuf_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf" CACHE PATH "Root protobuf directory" FORCE)
SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/bin/protoc.exe" CACHE PATH "Executable path" FORCE)
SET(Protobuf_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_SRC_ROOT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf/include" CACHE PATH "Include dir" FORCE)
SET(PROTOBUF_FOUND TRUE CACHE BOOL "" FORCE)
IF(NOT MSVC)
MESSAGE(STATUS "Could not find protobuf library, setting to ${Protobuf_DIR}")
ENDIF()
IF(MSVC)
IF(CMAKE_CL_64)
SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/lib_x64/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE)
SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/lib_x64/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE)
ELSE(CMAKE_CL_64)
SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/lib_x86/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE)
SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/lib_x86/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE)
ENDIF()
IF(CMAKE_CL_64)
SET(Protobuf_INCLUDE_DIR "${Protobuf_DIR}/windows/x64/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_SRC_ROOT_FOLDER "${Protobuf_DIR}/windows/x64/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/windows/x64/bin/protoc.exe" CACHE PATH "Executable path" FORCE)
SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/windows/x64/lib/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE)
SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/windows/x64/lib/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE)
ELSE(CMAKE_CL_64)
SET(Protobuf_INCLUDE_DIR "${Protobuf_DIR}/windows/x86/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_SRC_ROOT_FOLDER "${Protobuf_DIR}/windows/x86/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/windows/x86/bin/protoc.exe" CACHE PATH "Executable path" FORCE)
SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/windows/x86/lib/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE)
SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/windows/x86/lib/libprotobufd.lib" CACHE PATH "Root protobuf directory" FORCE)
ENDIF(CMAKE_CL_64)
ELSE(MSVC)
SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/lib_x64/libprotobuf.so.15" CACHE PATH "Root protobuf directory" FORCE)
SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/lib_x64/libprotobuf.so.15" CACHE PATH "Root protobuf directory" FORCE)
IF(CMAKE_CL_64)
SET(Protobuf_INCLUDE_DIR "${Protobuf_DIR}/linux/x86/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_SRC_ROOT_FOLDER "${Protobuf_DIR}/linux/x86/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/linux/x86/bin/protoc" CACHE PATH "Executable path" FORCE)
SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/linux/x86/lib/libprotobuf.so.16" CACHE PATH "Root protobuf directory" FORCE)
SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/linux/x86/lib/libprotobuf.so.16" CACHE PATH "Root protobuf directory" FORCE)
ELSE(CMAKE_CL_64)
SET(Protobuf_INCLUDE_DIR "${Protobuf_DIR}/linux/x64/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_SRC_ROOT_FOLDER "${Protobuf_DIR}/linux/x64/include" CACHE PATH "Include dir" FORCE)
SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/linux/x64/bin/protoc" CACHE PATH "Executable path" FORCE)
SET(Protobuf_LIBRARY_DEBUG "${Protobuf_DIR}/linux/x64/lib/libprotobuf.so.16" CACHE PATH "Root protobuf directory" FORCE)
SET(Protobuf_LIBRARY_RELEASE "${Protobuf_DIR}/linux/x64/lib/libprotobuf.so.16" CACHE PATH "Root protobuf directory" FORCE)
ENDIF(CMAKE_CL_64)
ENDIF()
#SET(Protobuf_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf/include" CACHE PATH "Include dir")
#SET(Protobuf_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/protobuf/include")
#SET(Protobuf_PROTOC_EXECUTABLE "${Protobuf_DIR}/bin/protoc.exe")
ENDIF()
IF(NOT Protobuf_LIBRARY_DEBUG)
MESSAGE(ERROR "Protobuf library was not found in ${Protobuf_LIBRARY_DEBUG}. Please download the depenencies and extract them as noted.")
ENDIF()
FILE(COPY ${Protobuf_LIBRARY_DEBUG} DESTINATION ${CMAKE_HOME_DIRECTORY}/bin)
#ENDIF()
INCLUDE_DIRECTORIES(SYSTEM "${Protobuf_INCLUDE_DIR}")
SET(NATS_INCLUDE_DIR "${NATS_ROOT}/include")
IF(MSVC)
IF(CMAKE_CL_64)
SET(NATS_INCLUDE_DIR "${NATS_ROOT}/windows/x64/include")
SET(NATS_LIBRARY_DEBUG "${NATS_ROOT}/windows/x64/lib/nats.lib")
ELSE(CMAKE_CL_64)
SET(NATS_INCLUDE_DIR "${NATS_ROOT}/windows/x86/include")
SET(NATS_LIBRARY_DEBUG "${NATS_ROOT}/windows/x86/lib/nats.lib")
ENDIF(CMAKE_CL_64)
ELSE(MSVC)
IF(CMAKE_CL_64)
SET(NATS_INCLUDE_DIR "${NATS_ROOT}/linux/x86/include")
SET(NATS_LIBRARY_DEBUG "${NATS_ROOT}/linux/x86/lib/libnats.so")
ELSE(CMAKE_CL_64)
SET(NATS_INCLUDE_DIR "${NATS_ROOT}/linux/x64/include")
SET(NATS_LIBRARY_DEBUG "${NATS_ROOT}/linux/x64/lib/libnats.so")
ENDIF(CMAKE_CL_64)
ENDIF()
IF(${NATS_LIBRARY_DEBUG})
MESSAGE(ERROR " NATS library was not found in ${NATS_LIBRARY_DEBUG}/libnats.so. Please download the depenencies and extract them as noted.")
ENDIF()
FILE(COPY ${NATS_LIBRARY_DEBUG} DESTINATION ${CMAKE_HOME_DIRECTORY}/bin)
IF(MSVC)
#Set our default locations for zlib/mysql based on x86/x64
@ -106,7 +134,6 @@ IF(MSVC)
ELSE()
SET(SODIUM_LIBRARY_HINTS "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/libsodium/x64/Release/v110/dynamic")
ENDIF()
SET(NATS_LIBRARY "${NATS_ROOT}/lib_x64/nats.lib")
ELSE(CMAKE_CL_64)
SET(ZLIB_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/zlib_x86")
SET(MYSQL_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/mysql_x86")
@ -121,7 +148,6 @@ IF(MSVC)
ELSE()
SET(SODIUM_LIBRARY_HINTS "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/libsodium/Win32/Release/v110/dynamic")
ENDIF()
SET(NATS_LIBRARY "${NATS_ROOT}/lib_x86/nats.lib")
ENDIF(CMAKE_CL_64)
#disable CRT warnings on windows cause they're annoying as shit and we use C functions everywhere
@ -174,7 +200,6 @@ IF(MSVC)
ADD_DEFINITIONS(-DNOMINMAX)
ELSE(MSVC)
SET(NATS_LIBRARY "${NATS_ROOT}/lib_x64/libnats.so")
#Normally set by perl but we don't use the perl flags anymore so we set it.
ADD_DEFINITIONS(-DHAS_UNION_SEMUN)
@ -354,7 +379,7 @@ IF(EQEMU_BUILD_PERL)
INCLUDE_DIRECTORIES(SYSTEM "${PERL_INCLUDE_PATH}")
ENDIF(EQEMU_BUILD_PERL)
SET(SERVER_LIBS common debug ${MySQL_LIBRARY_DEBUG} optimized ${MySQL_LIBRARY_RELEASE} ${ZLIB_LIBRARY} libuv fmt ${NATS_LIBRARY} ${PROTOBUF_LIBRARY_DEBUG})
SET(SERVER_LIBS common debug ${MySQL_LIBRARY_DEBUG} optimized ${MySQL_LIBRARY_RELEASE} ${ZLIB_LIBRARY} libuv fmt ${NATS_LIBRARY_DEBUG} ${PROTOBUF_LIBRARY_DEBUG})
FIND_PACKAGE(Sodium REQUIRED)
IF(SODIUM_FOUND)

View File

@ -402,7 +402,7 @@ mark_as_advanced(Protobuf_INCLUDE_DIR)
find_program(Protobuf_PROTOC_EXECUTABLE
NAMES protoc
DOC "The Google Protocol Buffers Compiler"
PATHS
PATHS /usr/bin
${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Release
${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug
)

View File

@ -230,7 +230,7 @@ message ChannelMessageEvent {
//OP_SpecialMesg
message SpecialMessageEvent {
string header = 1; // 04 04 00 <-- for #emote style msg
MessageType number = 2; // Color of text (see MT_*** below)
MessageType number = 2; // Color of text (see *** below)
uint32 target_spawn_id = 3; // Who is it being said to?
string sayer = 4; // Who is the source of the info
uint32 unknown12 = 5;
@ -522,104 +522,104 @@ enum DeityTypeBit {
enum MessageType {
//option allow_alias = true;
MT_Auction = 0;
MT_Group = 2; // FF|F0F0F0
MT_Shout = 3;
MT_Auction4 = 4;
MT_OOC = 5;
MT_Broadcast = 6;
MT_Tell = 7;
MT_Say = 8;
MT_Tell14 = 14;
MT_Raid = 15;
MT_Guild = 17;
MT_GMSayWeird18 = 18;
MT_LocalEmote20 = 20;
MT_Fellowship = 21;
MT_Emote = 22;
MT_Say256 = 256;
MT_Tell257 = 257;
MT_Group258 = 258;
MT_Shout259 = 259;
MT_Auction260 = 260;
MT_OOC261 = 261;
MT_Broadcast262 = 262;
MT_Tell263 = 263;
MT_Say264 = 264;
MT_YouHitOther = 265;
MT_OtherHitsYou = 266;
MT_YouMissOther = 267;
MT_OtherMissesYou = 268;
MT_Skills = 270;
MT_Disciplines = 271;
MT_Guild273 = 273;
MT_GMSay = 274;
MT_MerchantOffer = 275;
MT_MerchantBuySell = 276;
MT_Fellowship277 = 277;
MT_Emote278 = 278;
MT_OtherHits = 279;
MT_OtherMisses = 280;
MT_Who = 281;
MT_YellForHelp = 282;
MT_NonMelee = 283;
MT_WornOff = 284;
MT_MoneySplit = 285;
MT_LootMessages = 286;
MT_DiceRoll = 287;
MT_OtherSpells = 288;
MT_SpellFailure = 289;
MT_Chat = 290;
MT_Channel1 = 291;
MT_Channel2 = 292;
MT_Channel3 = 293;
MT_Channel4 = 294;
MT_Channel5 = 295;
MT_Channel6 = 296;
MT_Channel7 = 297;
MT_Channel8 = 298;
MT_Channel9 = 299;
MT_Channel10 = 300;
MT_CritMelee = 301;
MT_SpellCrits = 302;
MT_TooFarAway = 303;
MT_NPCRampage = 304;
MT_NPCFlurry = 305;
MT_NPCEnrage = 306;
MT_SayEcho = 307;
MT_TellEcho = 308;
MT_GroupEcho = 309;
MT_GuildEcho = 310;
MT_OOCEcho = 311;
MT_MT_Auction2 = 312;
MT_ShoutECho = 313;
MT_EmoteEcho = 314;
MT_Chat1Echo = 315;
MT_Chat2Echo = 316;
MT_Chat3Echo = 317;
MT_Chat4Echo = 318;
MT_Chat5Echo = 319;
MT_Chat6Echo = 320;
MT_Chat7Echo = 321;
MT_Chat8Echo = 322;
MT_Chat9Echo = 323;
MT_Chat10Echo = 324;
MT_DoTDamage = 325;
MT_ItemLink = 326;
MT_RaidSay = 327;
MT_MyPet = 328;
MT_DS = 329;
MT_Leadership = 330;
MT_PetFlurry = 331;
MT_PetCrit = 332;
MT_FocusEffect = 333;
MT_Experience = 334;
MT_System = 335;
MT_PetSpell = 336;
MT_PetResponse = 337;
MT_ItemSpeech = 338;
MT_StrikeThrough = 339;
MT_Stun = 340;
Auction = 0;
Group = 2; // FF|F0F0F0
Shout = 3;
Auction4 = 4;
OOC = 5;
Broadcast = 6;
Tell = 7;
Say = 8;
Tell14 = 14;
Raid = 15;
Guild = 17;
GMSayWeird18 = 18;
LocalEmote20 = 20;
Fellowship = 21;
Emote = 22;
Say256 = 256;
Tell257 = 257;
Group258 = 258;
Shout259 = 259;
Auction260 = 260;
OOC261 = 261;
Broadcast262 = 262;
Tell263 = 263;
Say264 = 264;
YouHitOther = 265;
OtherHitsYou = 266;
YouMissOther = 267;
OtherMissesYou = 268;
Skills = 270;
Disciplines = 271;
Guild273 = 273;
GMSay = 274;
MerchantOffer = 275;
MerchantBuySell = 276;
Fellowship277 = 277;
Emote278 = 278;
OtherHits = 279;
OtherMisses = 280;
Who = 281;
YellForHelp = 282;
NonMelee = 283;
WornOff = 284;
MoneySplit = 285;
LootMessages = 286;
DiceRoll = 287;
OtherSpells = 288;
SpellFailure = 289;
Chat = 290;
Channel1 = 291;
Channel2 = 292;
Channel3 = 293;
Channel4 = 294;
Channel5 = 295;
Channel6 = 296;
Channel7 = 297;
Channel8 = 298;
Channel9 = 299;
Channel10 = 300;
CritMelee = 301;
SpellCrits = 302;
TooFarAway = 303;
NPCRampage = 304;
NPCFlurry = 305;
NPCEnrage = 306;
SayEcho = 307;
TellEcho = 308;
GroupEcho = 309;
GuildEcho = 310;
OOCEcho = 311;
Auction2 = 312;
ShoutECho = 313;
EmoteEcho = 314;
Chat1Echo = 315;
Chat2Echo = 316;
Chat3Echo = 317;
Chat4Echo = 318;
Chat5Echo = 319;
Chat6Echo = 320;
Chat7Echo = 321;
Chat8Echo = 322;
Chat9Echo = 323;
Chat10Echo = 324;
DoTDamage = 325;
ItemLink = 326;
RaidSay = 327;
MyPet = 328;
DS = 329;
Leadership = 330;
PetFlurry = 331;
PetCrit = 332;
FocusEffect = 333;
Experience = 334;
System = 335;
PetSpell = 336;
PetResponse = 337;
ItemSpeech = 338;
StrikeThrough = 339;
Stun = 340;
}
enum BodyType {