New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
standardise mspack source file layout #2103
base: master
Are you sure you want to change the base?
Conversation
The original library doesn't have this layout, this will make updating it more complicated. |
the current implementation of |
The |
the locations are not subjective, and follow the layout of other code within the project itself. separating header files from library files can help avoid incidental including of the incorrect files, especially if header file names have the same name as a common system header (the xenia project does). This PR aligns the codebase with the style of other code within the project. xenia currently does not have any style guide for build system or project maintenance, and vibe checking PRs as they come seems to be somewhat questionable as a form of project standardisation. |
While maintaining consistency within the Xenia project is important at least for code navigation simplicity, I'm not sure if this applies to third-party components — as they're by design not the Xenia project, but rather, projects of other developers maintained not by us. We are merely importing them, and any modifications — be they directory tree changes, or something larger like code formatting or naming changes — make the process of importing new versions of them more difficult as they introduce merge conflicts, while not providing any noticeable gains — one more or less directory with a name like Moreover, we already occasionally get bitten by the fact that we're using our own Premake scripts for third-party modules instead of the original build pipelines of the projects. Updating something like FFmpeg in our case is a story in itself — we already need to run our custom converter of its build files into Premake, and also to generate the configuration header files for multiple targets manually, and to verify that nothing is broken in the end (for example, we've already experienced issues building its assembly code for Android, as unlike the build system originally used by FFmpeg, we initially didn't have the hidden visibility compiler option specified by our Premake scripts, thus ended up with some runtime relocations which are not allowed in Android libraries as they must be position-independent). However, this is the price we have to pay to avoid having to make all new and existing contributors deal with the total, much bigger chaos of setting up the build systems for all the dependencies separately in whichever OS environment they're using, or having to automate this process which is roughly as complicated. The directory structure inconsistencies don't result in anything like that, however. |
standardise the layout of the mspack source files, simplifies the process of creating distributions.