From d93b5b9769cc8104cfdb4a083fe659702cd263f3 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Fri, 13 Feb 2015 23:17:10 -0800 Subject: [PATCH 1/3] Add a tools meta-target --- CMakeLists.txt | 5 +++++ Sources/Plasma/Apps/CMakeLists.txt | 18 ++++++++++++++---- Sources/Tools/CMakeLists.txt | 13 ++++++++++++- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 511bca95..f38d4798 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,11 @@ option(PLASMA_BUILD_TOOLS "Do we want to build the Plasma tools?" ON) option(PLASMA_BUILD_TESTS "Do we want to build the unit tests?" OFF) option(3dsm_BUILD_PLUGIN "Do we want to build the 3ds Max plugin?" OFF) +if(PLASMA_BUILD_TOOLS) + # Custom dummy target for compiling all tools + add_custom_target(tools) +endif() + if(3dsm_BUILD_PLUGIN) find_package(MaxSDK REQUIRED) add_definitions(-DBUILDING_MAXPLUGIN) diff --git a/Sources/Plasma/Apps/CMakeLists.txt b/Sources/Plasma/Apps/CMakeLists.txt index f3a1efa7..4559481f 100644 --- a/Sources/Plasma/Apps/CMakeLists.txt +++ b/Sources/Plasma/Apps/CMakeLists.txt @@ -1,8 +1,10 @@ -add_subdirectory(plClient) -add_subdirectory(plCrashHandler) +if(WIN32) + add_subdirectory(plClient) + add_subdirectory(plCrashHandler) -if(PLASMA_BUILD_LAUNCHER) - add_subdirectory(plUruLauncher) + if(PLASMA_BUILD_LAUNCHER) + add_subdirectory(plUruLauncher) + endif() endif() if(PLASMA_BUILD_TOOLS) @@ -11,4 +13,12 @@ if(PLASMA_BUILD_TOOLS) add_subdirectory(plFileEncrypt) add_subdirectory(plPageInfo) add_subdirectory(plPageOptimizer) + + add_dependencies(tools + plPythonPack + plFileSecure + plFileEncrypt + plPageInfo + plPageOptimizer + ) endif() diff --git a/Sources/Tools/CMakeLists.txt b/Sources/Tools/CMakeLists.txt index f7d07da9..ef7f2aa4 100644 --- a/Sources/Tools/CMakeLists.txt +++ b/Sources/Tools/CMakeLists.txt @@ -4,9 +4,20 @@ if(PLASMA_BUILD_TOOLS) add_subdirectory(plLocalizationEditor) add_subdirectory(plResBrowser) - add_subdirectory(plShaderAssembler) + + add_dependencies(tools + plLocalizationEditor + plResBrowser + ) + + if(WIN32) + add_subdirectory(plShaderAssembler) + add_dependencies(tools plShaderAssembler) + endif() + if(FREETYPE_FOUND) add_subdirectory(plFontConverter) + add_dependencies(tools plFontConverter) endif() endif() From b12bce00ff1b2fb3a95916476abef4ec7ea8a8bb Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Fri, 13 Feb 2015 23:50:34 -0800 Subject: [PATCH 2/3] Fix or disable components that don't build on Linux. --- CMakeLists.txt | 6 ++- Sources/Plasma/FeatureLib/CMakeLists.txt | 8 +++- Sources/Plasma/NucleusLib/CMakeLists.txt | 8 +++- .../Plasma/NucleusLib/pnNetCli/pnNcCli.cpp | 8 ++-- .../pnNetProtocol/Private/pnNpCommon.cpp | 42 +++++++++---------- Sources/Plasma/PubUtilLib/CMakeLists.txt | 8 +++- .../plNetGameLib/Private/plNglAuth.cpp | 4 +- .../PubUtilLib/plSDL/plStateVariable.cpp | 4 +- .../plSockets/plBufferedSocketWriter.cpp | 2 + 9 files changed, 54 insertions(+), 36 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f38d4798..e0d9d164 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,7 +106,11 @@ option(PLASMA_BUILD_RESOURCE_DAT "Do we want to build resource.dat?" ON) option(PLASMA_BUILD_LAUNCHER "Do we want to build plUruLauncher?" ON) option(PLASMA_BUILD_TOOLS "Do we want to build the Plasma tools?" ON) option(PLASMA_BUILD_TESTS "Do we want to build the unit tests?" OFF) -option(3dsm_BUILD_PLUGIN "Do we want to build the 3ds Max plugin?" OFF) +if(WIN32) + option(3dsm_BUILD_PLUGIN "Do we want to build the 3ds Max plugin?" OFF) +else() + set(3dsm_BUILD_PLUGIN OFF) +endif() if(PLASMA_BUILD_TOOLS) # Custom dummy target for compiling all tools diff --git a/Sources/Plasma/FeatureLib/CMakeLists.txt b/Sources/Plasma/FeatureLib/CMakeLists.txt index 39acaf4a..6d2f09fe 100644 --- a/Sources/Plasma/FeatureLib/CMakeLists.txt +++ b/Sources/Plasma/FeatureLib/CMakeLists.txt @@ -8,7 +8,9 @@ add_subdirectory(pfCharacter) add_subdirectory(pfConditional) add_subdirectory(pfConsole) add_subdirectory(pfConsoleCore) -add_subdirectory(pfCrashHandler) +if(WIN32) + add_subdirectory(pfCrashHandler) +endif() add_subdirectory(pfGameGUIMgr) add_subdirectory(pfGameMgr) add_subdirectory(pfGameScoreMgr) @@ -18,7 +20,9 @@ add_subdirectory(pfJournalBook) add_subdirectory(pfLocalizationMgr) add_subdirectory(pfMessage) add_subdirectory(pfMoviePlayer) -add_subdirectory(pfPasswordStore) +if(WIN32 OR APPLE) + add_subdirectory(pfPasswordStore) +endif() add_subdirectory(pfPatcher) add_subdirectory(pfPython) add_subdirectory(pfSurface) diff --git a/Sources/Plasma/NucleusLib/CMakeLists.txt b/Sources/Plasma/NucleusLib/CMakeLists.txt index 94c7debe..44098012 100644 --- a/Sources/Plasma/NucleusLib/CMakeLists.txt +++ b/Sources/Plasma/NucleusLib/CMakeLists.txt @@ -2,12 +2,16 @@ add_definitions(-D_LIB) add_subdirectory(inc) add_subdirectory(pnAsyncCore) -add_subdirectory(pnAsyncCoreExe) +if(WIN32) + add_subdirectory(pnAsyncCoreExe) +endif() add_subdirectory(pnDispatch) add_subdirectory(pnEncryption) add_subdirectory(pnFactory) add_subdirectory(pnGameMgr) -add_subdirectory(pnInputCore) +if(WIN32) + add_subdirectory(pnInputCore) +endif() add_subdirectory(pnKeyedObject) add_subdirectory(pnMessage) add_subdirectory(pnModifier) diff --git a/Sources/Plasma/NucleusLib/pnNetCli/pnNcCli.cpp b/Sources/Plasma/NucleusLib/pnNetCli/pnNcCli.cpp index b1f6fc7b..18a9832a 100644 --- a/Sources/Plasma/NucleusLib/pnNetCli/pnNcCli.cpp +++ b/Sources/Plasma/NucleusLib/pnNetCli/pnNcCli.cpp @@ -678,7 +678,7 @@ static void ClientConnect (NetCli * cli) { memset(&cli->seed, 0, sizeof(cli->seed)); unsigned bytes; unsigned char * data = clientSeed.GetData_LE(&bytes); - memcpy(cli->seed, data, std::min(bytes, sizeof(cli->seed))); + memcpy(cli->seed, data, std::min(size_t(bytes), sizeof(cli->seed))); delete [] data; } @@ -740,7 +740,7 @@ static bool ServerRecvConnect ( memset(&clientSeed, 0, sizeof(clientSeed)); unsigned bytes; unsigned char * data = clientSeedValue.GetData_LE(&bytes); - memcpy(clientSeed, data, std::min(bytes, sizeof(clientSeed))); + memcpy(clientSeed, data, std::min(size_t(bytes), sizeof(clientSeed))); delete [] data; } @@ -960,8 +960,8 @@ static NetCli * ConnCreate ( //=========================================================================== static void SetConnSeed ( NetCli * cli, - unsigned seedBytes, - const uint8_t seedData[] + size_t seedBytes, + const uint8_t seedData[] ) { if (seedBytes) memcpy(cli->seed, seedData, std::min(sizeof(cli->seed), seedBytes)); diff --git a/Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.cpp b/Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.cpp index fb997781..88919d60 100644 --- a/Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.cpp +++ b/Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.cpp @@ -72,7 +72,7 @@ const unsigned kNumBlobFields = 4; //============================================================================ template -static inline void IReadValue (T * value, uint8_t ** buffer, unsigned * bufsz) { +inline void IReadValue (T * value, uint8_t ** buffer, unsigned * bufsz) { ASSERT(*bufsz >= sizeof(T)); *value = *(T *)*buffer; *buffer += sizeof(T); @@ -81,7 +81,7 @@ static inline void IReadValue (T * value, uint8_t ** buffer, unsigned * bufsz) { //============================================================================ template -static inline void IReadArray (T ** buf, unsigned * elems, uint8_t ** buffer, unsigned * bufsz) { +inline void IReadArray (T ** buf, unsigned * elems, uint8_t ** buffer, unsigned * bufsz) { uint32_t bytes; IReadValue(&bytes, buffer, bufsz); ASSERT(bytes % sizeof(T) == 0); @@ -96,7 +96,7 @@ static inline void IReadArray (T ** buf, unsigned * elems, uint8_t ** buffer, un //============================================================================ template -static inline void IReadString (T ** buf, uint8_t ** buffer, unsigned * bufsz) { +inline void IReadString (T ** buf, uint8_t ** buffer, unsigned * bufsz) { unsigned elems; IReadArray(buf, &elems, buffer, bufsz); // ensure the string is null-terminated @@ -106,14 +106,14 @@ static inline void IReadString (T ** buf, uint8_t ** buffer, unsigned * bufsz) { //============================================================================ template -static inline void IWriteValue (const T & value, ARRAY(uint8_t) * buffer) { +inline void IWriteValue (const T & value, ARRAY(uint8_t) * buffer) { T * ptr = (T *) buffer->New(sizeof(T)); *ptr = value; } //============================================================================ template -static inline void IWriteArray (const T buf[], unsigned elems, ARRAY(uint8_t) * buffer) { +inline void IWriteArray (const T buf[], unsigned elems, ARRAY(uint8_t) * buffer) { unsigned bytes = elems * sizeof(T); IWriteValue(bytes, buffer); T * dst = (T *) buffer->New(bytes); @@ -122,19 +122,19 @@ static inline void IWriteArray (const T buf[], unsigned elems, ARRAY(uint8_t) * //============================================================================ template -static inline void IWriteString (const T str[], ARRAY(uint8_t) * buffer) { +inline void IWriteString (const T str[], ARRAY(uint8_t) * buffer) { IWriteArray(str, StrLen(str) + 1, buffer); } //============================================================================ template -static inline bool ICompareValue (const T & lhs, const T & rhs) { +inline bool ICompareValue (const T & lhs, const T & rhs) { return lhs == rhs; } //============================================================================ template -static inline bool ICompareString (const T lhs[], const T rhs[]) { +inline bool ICompareString (const T lhs[], const T rhs[]) { if (!lhs && !rhs) return true; if (!lhs || !rhs) @@ -144,7 +144,7 @@ static inline bool ICompareString (const T lhs[], const T rhs[]) { //============================================================================ template -static inline bool ICompareStringI (const T lhs[], const T rhs[]) { +inline bool ICompareStringI (const T lhs[], const T rhs[]) { if (!lhs && !rhs) return true; if (!lhs || !rhs) @@ -159,13 +159,13 @@ static inline bool ICompareArray (const uint8_t lhs[], const uint8_t rhs[]) { //============================================================================ template -static inline void ICopyValue (T * plhs, const T & rhs) { +inline void ICopyValue (T * plhs, const T & rhs) { *plhs = rhs; } //============================================================================ template -static inline void ICopyString (T ** plhs, const T rhs[]) { +inline void ICopyString (T ** plhs, const T rhs[]) { free(*plhs); if (rhs) *plhs = StrDup(rhs); @@ -351,25 +351,25 @@ void NetVaultNode::Clear() //============================================================================ template -static void IZero(T& dest) +inline void IZero(T& dest) { dest = 0; } template<> -static void IZero(plString& dest) +inline void IZero(plString& dest) { dest = ""; } template<> -static void IZero(plUUID& dest) +inline void IZero(plUUID& dest) { dest = kNilUuid; } template<> -static void IZero(NetVaultNode::Blob& blob) +inline void IZero(NetVaultNode::Blob& blob) { delete[] blob.buffer; blob.buffer = nullptr; @@ -484,7 +484,7 @@ bool NetVaultNode::Matches(const NetVaultNode* rhs) const //============================================================================ template -static void IRead(const uint8_t*& buf, T& dest) +inline void IRead(const uint8_t*& buf, T& dest) { const T* ptr = reinterpret_cast(buf); dest = *ptr; @@ -492,7 +492,7 @@ static void IRead(const uint8_t*& buf, T& dest) } template<> -static void IRead(const uint8_t*& buf, plString& dest) +inline void IRead(const uint8_t*& buf, plString& dest) { uint32_t size = *(reinterpret_cast(buf)); uint32_t nChars = (size / sizeof(uint16_t)) - 1; @@ -507,7 +507,7 @@ static void IRead(const uint8_t*& buf, plString& dest) } template<> -static void IRead(const uint8_t*& buf, NetVaultNode::Blob& blob) +inline void IRead(const uint8_t*& buf, NetVaultNode::Blob& blob) { blob.size = *(reinterpret_cast(buf)); buf += sizeof(uint32_t); @@ -563,14 +563,14 @@ void NetVaultNode::Read(const uint8_t* buf, size_t size) //============================================================================ template -static void IWrite(ARRAY(uint8_t)* buffer, const T& value) +inline void IWrite(ARRAY(uint8_t)* buffer, const T& value) { uint8_t* ptr = buffer->New(sizeof(T)); memcpy(ptr, &value, sizeof(T)); } template<> -static void IWrite(ARRAY(uint8_t)* buffer, const plString& value) +inline void IWrite(ARRAY(uint8_t)* buffer, const plString& value) { plStringBuffer utf16 = value.ToUtf16(); uint32_t strsz = (utf16.GetSize() + 1) * 2; @@ -581,7 +581,7 @@ static void IWrite(ARRAY(uint8_t)* buffer, const plString& value) } template<> -static void IWrite(ARRAY(uint8_t)* buffer, const NetVaultNode::Blob& blob) +inline void IWrite(ARRAY(uint8_t)* buffer, const NetVaultNode::Blob& blob) { IWrite(buffer, static_cast(blob.size)); diff --git a/Sources/Plasma/PubUtilLib/CMakeLists.txt b/Sources/Plasma/PubUtilLib/CMakeLists.txt index 49760aca..47fe21f4 100644 --- a/Sources/Plasma/PubUtilLib/CMakeLists.txt +++ b/Sources/Plasma/PubUtilLib/CMakeLists.txt @@ -15,7 +15,9 @@ add_subdirectory(plDrawable) add_subdirectory(plFile) add_subdirectory(plGImage) add_subdirectory(plGLight) -add_subdirectory(plInputCore) +if(WIN32) + add_subdirectory(plInputCore) +endif() add_subdirectory(plInterp) add_subdirectory(plIntersect) add_subdirectory(plMath) @@ -30,7 +32,9 @@ add_subdirectory(plNetMessage) add_subdirectory(plNetTransport) add_subdirectory(plParticleSystem) add_subdirectory(plPhysical) -add_subdirectory(plPhysX) +if(WIN32) + add_subdirectory(plPhysX) +endif() add_subdirectory(plPipeline) add_subdirectory(plProgressMgr) add_subdirectory(plResMgr) diff --git a/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.cpp b/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.cpp index 1912b336..019132ad 100644 --- a/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.cpp +++ b/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.cpp @@ -5269,8 +5269,8 @@ void NetCliAuthAgeRequest ( //============================================================================ void NetCliAuthGetEncryptionKey ( - uint32_t key[], - unsigned size + uint32_t key[], + size_t size ) { unsigned memSize = std::min(arrsize(s_encryptionKey), size); memSize *= sizeof(uint32_t); diff --git a/Sources/Plasma/PubUtilLib/plSDL/plStateVariable.cpp b/Sources/Plasma/PubUtilLib/plSDL/plStateVariable.cpp index b5edf383..0fefdb9d 100644 --- a/Sources/Plasma/PubUtilLib/plSDL/plStateVariable.cpp +++ b/Sources/Plasma/PubUtilLib/plSDL/plStateVariable.cpp @@ -2306,7 +2306,7 @@ void plSimpleStateVariable::DumpToObjectDebugger(bool dirtyOnly, int level) cons } pad += "\t"; - for (size_t i=0; i + plBufferedSocketWriter::plBufferedSocketWriter(int size, int bytesPerFlush, bool blockOnSend, int flushPoint) : plRingBuffer(size) , fFlushPoint(flushPoint) From d42650a32fb461415a96b4d86bbf3932722f27fb Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Sat, 14 Feb 2015 10:30:57 -0800 Subject: [PATCH 3/3] Disable pfPythonTest on non-Windows until it can be built and linked without the Windows-specific pieces. --- Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreatable.h | 2 ++ Sources/Tests/FeatureTests/CMakeLists.txt | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreatable.h b/Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreatable.h index ba2e36ab..c6248791 100644 --- a/Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreatable.h +++ b/Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreatable.h @@ -45,11 +45,13 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "pnFactory/plCreator.h" +#ifdef HS_BUILD_FOR_WIN32 #include #include "DX/plDXPipeline.h" REGISTER_NONCREATABLE( plDXPipeline ); +#endif #include "hsFogControl.h" diff --git a/Sources/Tests/FeatureTests/CMakeLists.txt b/Sources/Tests/FeatureTests/CMakeLists.txt index 2b204bc9..293fe91e 100644 --- a/Sources/Tests/FeatureTests/CMakeLists.txt +++ b/Sources/Tests/FeatureTests/CMakeLists.txt @@ -1 +1,3 @@ -add_subdirectory(pfPythonTest) +if(WIN32) + add_subdirectory(pfPythonTest) +endif()