Open Nopey opened 7 years ago
You guessed right. We started converting filenames to all lower case but decided to defer finishing that up so to be able to release 0.1.0 a bit sooner. The internal case number to finish up that conversion is SLNET-113 (currently planned for 0.2.0).
As you also point out correctly, in order to keep backwards compatibility with RakNet, we'll keep the RakNet redirect-header files with their original case names (note that the header files under src/Source are already simple redirects their counterparts which are now located under src/Source/include/slikenet). These will be removed in version 2.0.0 (where we will drop the RakNet backwards compatibility support - internal case number: SLNET-109).
We also started in 0.1.0 the process to rename RakNet related names (most notably: RakNet namespace -> SLNet namespace). This too was deferred to be completed/continued in 0.2.0. Part of that is to handle typedefs (but also other things like class names and macros) - internal case number: SLNET-114.
Your cmake scripts are installing the slikenet headers as raknet, and the raknet-esque headers in Source/ are not being installed at all. As well, the raknet-esque headers in Source/ are including the slikenet headers with a relative path. ex:
#include "include/slikenet/peerinterface.h"
should probably be
#include <slikenet/peerinterface.h>
@quotes vs. angle-bracket include style: This is actually intended, so that the preprocessor correctly starts looking for the include file relative to the redirect-header (i.e. under src/Source/include/slikenet/_FindFirst.h). Using the angle-bracket form would change the priority to search for whatever is in the compiler's include-path list first (see https://msdn.microsoft.com/en-us/library/36k2cdd4.aspx ). Or is something wrong here?
@CMake issue: yes, unfortunately there are still several open ends with the CMake integration. I'll prioritize at least the part for getting the include headers right in the version which is currently in development (internal case number: SLNET-115).
SLNET-115 has now been resolved in the SVN/GitHub repository and should be in the 0.1.1 release. compatibility headers are now installed to [xxx]/include/raknet and [xxx]/include/raknet/slikenet whith the "real" includes going into [xxx]/include/raknet/include/slikenet
This allows user of RakNet simply keeping pointing to [xxx]/include/raknet without any other necessary modifications while users who switched over to use SLikeNet without the compatibility layer should point to include [xxx]/include/raknet/include (and have their header includes point to <slikenet/foo.h>. This part of the structure is something we plan to improve in 0.2.0.
SLikeNet 0.1.1 which contains the fix for SLNET-115 has just been released.
The header file
peerinterface.h
(formerlyRakPeerInterface.h
) has an all lowercase name, that is in stark contrast with the majority of the rest of the commonly used headers. Is there a message being conveyed with the lower case vs camel caps filenames, or have you not gotten around to naming all of the headers consistently? I honestly prefer lower caps header files, but it does break drop-in compatibility with RakNet if you rename things. Perhaps you could make theraknet/*
header files files simply include the appropriate header in aslikenet
folder of headers, all with consistent naming. (Bonus: Have the raknet header filestypedef
old names to point at new names, allowing for you to restructure parts of the API)