Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
dfc76de
Adding initial support for Linux (#609)
adriengivry Nov 7, 2025
644c820
Removed deprecated LinkTimeOptimization
adriengivry Nov 14, 2025
64b9545
Added missing includes
adriengivry Nov 14, 2025
8dfbd92
Fixed toolset filter
adriengivry Nov 14, 2025
110e972
Sanitizing paths for POSIX/Windows interoperability (#611)
adriengivry Nov 17, 2025
965e2fa
Fixed save file dialog
adriengivry Nov 18, 2025
50100c9
Added CTRL as a valid key to orbit
adriengivry Nov 18, 2025
b734342
Added clang support and made it default on Linux
adriengivry Nov 18, 2025
99904ae
Fixed message box not being displayed
adriengivry Nov 18, 2025
235f044
Disabled "Tools" (including Tracy profiler front end) on non-windows …
adriengivry Nov 18, 2025
8ee07b8
Added Linux scripts for gen_proj/build/make_release
adriengivry Nov 18, 2025
4f3ed95
Better project structure (#615)
adriengivry Nov 18, 2025
cda598a
Updated msbuild workflow and added linux workflow
adriengivry Nov 18, 2025
aa6ae08
Fixed Linux workflow
adriengivry Nov 18, 2025
b9b82c3
Fixed GitHub workflows to also run after new commits
adriengivry Nov 18, 2025
e4551cd
Added libgl1-mesa-dev package to linux workflow
adriengivry Nov 18, 2025
0e2e8a3
Added libx11-dev to linux workflow
adriengivry Nov 18, 2025
0f8d085
Added missing libxcursor-dev to linux workflow
adriengivry Nov 18, 2025
b28c19e
Added missing libxrandr-dev to Linux workflow
adriengivry Nov 18, 2025
c9f2d2b
Added libxinerama-dev to Linux workflow
adriengivry Nov 18, 2025
bc6087b
Added libxi-dev to Linux workflow
adriengivry Nov 18, 2025
18512f5
Fixed broken linux linkoptions
adriengivry Nov 18, 2025
b29f598
Updated README
adriengivry Nov 18, 2025
431ef74
Fixing shader compilation on ARM64 (#616)
adriengivry Nov 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
38 changes: 38 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Linux Clang

on:
pull_request:
types: [ready_for_review, synchronize]
push:
branches:
- main

env:
# Path to the solution file relative to the root of the project.
SOLUTION_FILE_PATH: ./

# Configuration type to build.
# You can convert this to a build matrix if you need coverage of multiple configuration types.
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
BUILD_CONFIGURATION: release
BUILD_PLATFORM: x64

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5

- name: Install Dependencies
run: sudo apt-get update && sudo apt-get install -y libgl1-mesa-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev

- name: Generate premake5 solution
working-directory: ${{env.SOLUTION_FILE_PATH}}
run: ./gen_proj_linux.sh

- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: make -j$(nproc) config=${{env.BUILD_CONFIGURATION}}_${{env.BUILD_PLATFORM}}
10 changes: 5 additions & 5 deletions .github/workflows/msbuild.yml → .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
name: MSBuild
name: Windows MSBuild

on:
pull_request:
types: ready_for_review
types: [ready_for_review, synchronize]
push:
branches:
- main

env:
# Path to the solution file relative to the root of the project.
SOLUTION_FILE_PATH: Sources\Overload
SOLUTION_FILE_PATH: .\

# Configuration type to build.
# You can convert this to a build matrix if you need coverage of multiple configuration types.
Expand All @@ -21,11 +21,11 @@ jobs:
runs-on: windows-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Generate premake5 solution
working-directory: ${{env.SOLUTION_FILE_PATH}}
run: ..\..\Dependencies\premake5\bin\premake5.exe vs2022
run: .\gen_proj_win32.bat

- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ imgui.ini
*.vcxproj*
*.sln
*.vcxitems*
/Releases/
/Releases/
Makefile
4 changes: 4 additions & 0 deletions Dependencies/assimp/contrib/zlib/gzguts.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
# include <stddef.h>
#endif

#ifdef __unix__
# include <unistd.h>
#endif

#if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32)
# include <io.h>
#endif
Expand Down
24 changes: 21 additions & 3 deletions Dependencies/glfw/premake5.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,27 @@ project "glfw"
"include"
}

defines {
"_GLFW_WIN32"
}
filter { "system:windows" }
defines { "_GLFW_WIN32" }
removefiles {
"src/cocoa_*",
"src/posix_time.h",
"src/x11_*",
"src/glx_*",
"src/nsgl_*"
}
filter {}

filter { "system:linux" }
defines { "_GLFW_X11", "_GNU_SOURCE" }
removefiles {
"src/win32_*",
"src/cocoa_*",
"src/posix_time.h",
"src/wgl_*",
"src/nsgl_*"
}
filter {}

filter { "configurations:Debug" }
defines { "DEBUG" }
Expand Down
Binary file added Dependencies/premake5/bin/premake5
Binary file not shown.
16 changes: 14 additions & 2 deletions Dependencies/sol/include/sol/function_types_stateless.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,13 @@ namespace sol { namespace function_detail {
}

template <bool is_yielding, bool no_trampoline>
static int call(lua_State* L) noexcept(std::is_nothrow_copy_assignable_v<T>) {
static int call(lua_State* L)
#if SOL_IS_ON(SOL_COMPILER_CLANG)
// apparent regression in clang 18 - llvm/llvm-project#91362
#else
noexcept(std::is_nothrow_copy_assignable_v<T>)
#endif
{
int nr;
if constexpr (no_trampoline) {
nr = real_call(L);
Expand Down Expand Up @@ -360,7 +366,13 @@ namespace sol { namespace function_detail {
}

template <bool is_yielding, bool no_trampoline>
static int call(lua_State* L) noexcept(std::is_nothrow_copy_assignable_v<T>) {
static int call(lua_State* L)
#if SOL_IS_ON(SOL_COMPILER_CLANG)
// apparent regression in clang 18 - llvm/llvm-project#91362
#else
noexcept(std::is_nothrow_copy_assignable_v<T>)
#endif
{
int nr;
if constexpr (no_trampoline) {
nr = real_call(L);
Expand Down
1 change: 1 addition & 0 deletions Dependencies/tracy/client/TracyFastVector.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define __TRACYFASTVECTOR_HPP__

#include <assert.h>
#include <cstring>
#include <stddef.h>

#include "../common/TracyAlloc.hpp"
Expand Down
29 changes: 29 additions & 0 deletions Dependencies/tracy/libbacktrace/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright (C) 2012-2016 Free Software Foundation, Inc.

# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:

# (1) Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.

# (2) Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.

# (3) The name of the author may not be used to
# endorse or promote products derived from this software without
# specific prior written permission.

# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
174 changes: 174 additions & 0 deletions Dependencies/tracy/libbacktrace/alloc.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
/* alloc.c -- Memory allocation without mmap.
Copyright (C) 2012-2021 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Google.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

(1) Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

(2) Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.

(3) The name of the author may not be used to
endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. */

#include "config.h"

#include <errno.h>
#include <stdlib.h>
#include <sys/types.h>

#include "backtrace.hpp"
#include "internal.hpp"

#include "../common/TracyAlloc.hpp"

namespace tracy
{

/* Allocation routines to use on systems that do not support anonymous
mmap. This implementation just uses malloc, which means that the
backtrace functions may not be safely invoked from a signal
handler. */

/* Allocate memory like malloc. If ERROR_CALLBACK is NULL, don't
report an error. */

void *
backtrace_alloc (struct backtrace_state *state ATTRIBUTE_UNUSED,
size_t size, backtrace_error_callback error_callback,
void *data)
{
void *ret;

ret = tracy_malloc (size);
if (ret == NULL)
{
if (error_callback)
error_callback (data, "malloc", errno);
}
return ret;
}

/* Free memory. */

void
backtrace_free (struct backtrace_state *state ATTRIBUTE_UNUSED,
void *p, size_t size ATTRIBUTE_UNUSED,
backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
void *data ATTRIBUTE_UNUSED)
{
tracy_free (p);
}

/* Grow VEC by SIZE bytes. */

void *
backtrace_vector_grow (struct backtrace_state *state ATTRIBUTE_UNUSED,
size_t size, backtrace_error_callback error_callback,
void *data, struct backtrace_vector *vec)
{
void *ret;

if (size > vec->alc)
{
size_t alc;
void *base;

if (vec->size == 0)
alc = 32 * size;
else if (vec->size >= 4096)
alc = vec->size + 4096;
else
alc = 2 * vec->size;

if (alc < vec->size + size)
alc = vec->size + size;

base = tracy_realloc (vec->base, alc);
if (base == NULL)
{
error_callback (data, "realloc", errno);
return NULL;
}

vec->base = base;
vec->alc = alc - vec->size;
}

ret = (char *) vec->base + vec->size;
vec->size += size;
vec->alc -= size;
return ret;
}

/* Finish the current allocation on VEC. */

void *
backtrace_vector_finish (struct backtrace_state *state,
struct backtrace_vector *vec,
backtrace_error_callback error_callback,
void *data)
{
void *ret;

/* With this allocator we call realloc in backtrace_vector_grow,
which means we can't easily reuse the memory here. So just
release it. */
if (!backtrace_vector_release (state, vec, error_callback, data))
return NULL;
ret = vec->base;
vec->base = NULL;
vec->size = 0;
vec->alc = 0;
return ret;
}

/* Release any extra space allocated for VEC. */

int
backtrace_vector_release (struct backtrace_state *state ATTRIBUTE_UNUSED,
struct backtrace_vector *vec,
backtrace_error_callback error_callback,
void *data)
{
vec->alc = 0;

if (vec->size == 0)
{
/* As of C17, realloc with size 0 is marked as an obsolescent feature, use
free instead. */
tracy_free (vec->base);
vec->base = NULL;
return 1;
}

vec->base = tracy_realloc (vec->base, vec->size);
if (vec->base == NULL)
{
error_callback (data, "realloc", errno);
return 0;
}

return 1;
}

}
Loading