Skip to content

Code Restructure To Enable Linux and MacOS Builds, Plus Reduce Disk Usage and/or Build Times , Plus Help Readability of Source Files #455

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

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

MathewBensonCode
Copy link

  • Move from github-submodule structure to use CMake's native dependency management facilities. (https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html). Ideally the dependencies are to be installed using native mechanisms like vcpkg on windows, the linux distribution package manager or homebrew for mac. CMake will find the installed versions as a first option but build the dependencies if not available in the Build Directory at Build time. The linux_build code action is an example of this working in linux.

  • Restructure The #include statements to indicate the project source, this prevents confusion and is easier to read. It is also a consistent way to describe the included header and to reason about the include structure. This also is to pave the way to converting to modules

  • Explicit Code file declaration in CMake as opposed to File Globbing which is only run once during build system generation. When creating a new file, it is suggested to specify it in the CMake File which will enhance tracking and ensure that it is picked up at build time due to changes in the CMake Files.

  • Changed Bitmap.h to utf-8 from iso-8859

  • Changed from MSVC style of pre-compiled headers, just using plain header includes for portability. Another benefit is storage savings as the pch file was taking up too much space(in my experience)

  • I changed a few types and enums that we're throwing errors in g++ due to the typename and variable name being the same by adding "Enum" to the enum name and "Type" to the struct/class name. This may make the naming convention inconsistent, but it is something to be considered to be changed for all types so that there is a consistent naming convention similar to the vulkan style where there is a style for functions, types and constants

@MathewBensonCode MathewBensonCode marked this pull request as draft June 17, 2025 11:14
@MathewBensonCode MathewBensonCode force-pushed the develop branch 28 times, most recently from 4a5b2aa to 3b8e54e Compare July 2, 2025 13:29
…d Help Readability

Closes JeanPhilippeKernel#354
Closes JeanPhilippeKernel#355

- Move from github-submodule structure to use CMake's native
  dependency management facilities. (https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html). Ideally the dependencies are to be installed using native mechanisms like vcpkg on windows, the linux distribution package manager or homebrew for mac. CMake will find the installed versions as a first option but build the dependencies if not available in the Build Directory at Build time. The linux_build code action is an example of this working in linux.

- Restructure The #include statements to indicate the project source,
  this prevents confusion and is easier to read at the source file. It is also a consistent
  way to describe the included header and to reason about the include
  structure. This also is to pave the way to converting to modules.

- Explicit Code file declaration in CMake as opposed to File Globbing
  which is only run once during build system generation. When creating a
  new file, it is suggested to specify it in the CMake File which will
  enhance tracking and ensure that it is picked up at build time due to
  changes in the CMake Files.

- Changed Bitmap.h to utf-8 from iso-8859

- Changed from MSVC style of pre-compiled headers, just using plain
  header includes for portability. Another benefit is storage savings as
  the pch file was taking up too much space(in my experience)

- Changed CI workflow to remove separate test job and instead do the
  testing within the same instance that does the build

- Also removed the clang-format CI step as a dependency of the other
  build systems. This was to first ensure successful building and
  testing on the various platforms. should likely be incorporated into
  the individual system build steps
@MathewBensonCode MathewBensonCode changed the title Code Restructure To Reduce Disk Usage and Help Readability Code Restructure To Enable Linux and MacOS Builds, Plus Reduce Disk Usage and/or Build Times , Plus Help Readability of Source Files Jul 2, 2025
@MathewBensonCode MathewBensonCode marked this pull request as ready for review July 2, 2025 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants