Skip to content

Conversation

MathewBensonCode
Copy link
Contributor

@MathewBensonCode MathewBensonCode commented Aug 13, 2025

Changes made to enable cross platform builds

  • Upgrade submodule dependencies to newer versions as upstream generally have fixed issues with them. For example assimp -Werror issues and GLM requiring old CMake Flags
  • Rename variables that have the same name as the naming type as this wasn't working with GCC.
  • Replicate Linux CI workflow using Ninja Generator for Linux
  • Remove hard requirement for gcc11 and let the default compiler on the system to be used

@jnyfah
Copy link
Collaborator

jnyfah commented Aug 19, 2025

@MathewBensonCode I think to make it easier you can break this PR into smaller PR's that focus on one thing at a time
maybe first work on

  1. adding linux support and ensuring that the panzerfaust/launcher and the editor works correctly
  2. Once the Linux support PR is merged you can work on adding linux workflows
  3. finally fix the submodule

that way its not overwhelming and things are fixed one at a time
let me know if you have any questions or issues

@JeanPhilippeKernel JeanPhilippeKernel added area-linux Work on Linux system area-macOS Work on macOS system critical labels Aug 19, 2025
MathewBensonCode pushed a commit to MathewBensonCode/RendererEngine that referenced this pull request Aug 20, 2025
MathewBensonCode pushed a commit to MathewBensonCode/RendererEngine that referenced this pull request Aug 21, 2025
- install llvm20 for linux workflow and configure clang-format search
  paths for different linux options.

- ShaderC download for linux matches the other systems and the previous
  hack to use system versions reverted.

- Renamed the cmake imported targets for the ZEngine and Tetragrama
  dependencies.

- Reatructured compile options and definitions for imgui, imguizmo and
  zengine

- removed some erroneously included changes as requested.

clang-format-20 ubuntu
@MathewBensonCode
Copy link
Contributor Author

I have tried to capture the requested changes in a single commit which we can now look into splitting up into smaller PRs as necessary.

I found it a little tricky to split up because the changes were related but we can now discuss this further and you can let me know what you have in mind.

MathewBensonCode pushed a commit to MathewBensonCode/RendererEngine that referenced this pull request Aug 21, 2025
- install llvm20 for linux workflow and configure clang-format search
  paths for different linux options.

- ShaderC download for linux matches the other systems and the previous
  hack to use system versions reverted.

- Renamed the cmake imported targets for the ZEngine and Tetragrama
  dependencies.

- Reatructured compile options and definitions for imgui, imguizmo and
  zengine

- removed some erroneously included changes as requested.

clang-format-20 ubuntu
@MathewBensonCode MathewBensonCode changed the title Enable CrossPlatform Builds and CI (#345 and #355) Enable CrossPlatform Builds and CI (#354 and #355) Aug 21, 2025
@MathewBensonCode MathewBensonCode changed the title Enable CrossPlatform Builds and CI (#354 and #355) Enable CrossPlatform Builds and CI Aug 21, 2025
@MathewBensonCode MathewBensonCode marked this pull request as draft August 21, 2025 17:46
@MathewBensonCode MathewBensonCode marked this pull request as ready for review August 25, 2025 06:47
- Renamed variables that have the same name as the naming type as this wasn't compiling on GCC.
- Replicated Linux CI workflow using Ninja Generator for Linux
- Removed hard requirement for gcc and clang version 11 and use CMAKE_CXX_STANDARD = 20
  enforce this.
- Enabled Linux Output Paths in Panzerfaust.csproj
- Add Search Paths for clang-format specific to possible location in
  different linux versions.(list may be incomplete for other
  distributions)
Copy link
Collaborator

@jnyfah jnyfah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i dont know why i cant comment on the file, but shared.ps1 add linux to the GlslangValidatorCandidates line 161

`
$GlslangValidatorCandidates = @(
'glslangValidator'

    if ($IsWindows) {
        Join-Path -Path $shaderCCompilerPath -ChildPath "\bin\glslangValidator.exe" # On Windows, the pipeline build might pick up this option...
    }
    if ($IsMacOS) {
        Join-Path -Path $shaderCCompilerPath -ChildPath "\bin\glslangValidator" # On macOS, the pipeline build might pick up this option...
    }
    if ($IsLinux) {
       Join-Path -Path $shaderCCompilerPath -ChildPath "\bin\glslangValidator"
    }
)

`

Copy link
Collaborator

@jnyfah jnyfah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

everything looks good to me, just make the changes on the glslangcandidate

@JeanPhilippeKernel JeanPhilippeKernel self-requested a review August 29, 2025 14:41
@jnyfah jnyfah merged commit 39ebde2 into JeanPhilippeKernel:develop Aug 29, 2025
22 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in ZEngine Board Aug 29, 2025
@MathewBensonCode MathewBensonCode deleted the compile_on_linux branch September 1, 2025 10:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-linux Work on Linux system area-macOS Work on macOS system critical DevOps enhancement New feature or request Feature request New feature
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants