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

View File

@ -402,7 +402,7 @@ mark_as_advanced(Protobuf_INCLUDE_DIR)
find_program(Protobuf_PROTOC_EXECUTABLE find_program(Protobuf_PROTOC_EXECUTABLE
NAMES protoc NAMES protoc
DOC "The Google Protocol Buffers Compiler" 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}Release
${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug
) )

View File

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