Added saving and loading

This commit is contained in:
Erris
2026-02-19 23:45:10 +01:00
parent e0396fedd1
commit a897d5c798
99 changed files with 889 additions and 9784 deletions

View File

@@ -1,8 +0,0 @@
source ../.envrc
export BINARY_NAME=opengl-tuto
export BUILD_TYPE=Debug
export PROJECT_NAME=opengl-tuto
export CMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
export imgui_DIR=./build

View File

@@ -1,63 +0,0 @@
let SessionLoad = 1
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~/projects/open_engine/application
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
let s:shortmess_save = &shortmess
if &shortmess =~ 'A'
set shortmess=aoOA
else
set shortmess=aoO
endif
badd +1 conanfile.txt
argglobal
%argdel
$argadd conanfile.txt
edit conanfile.txt
wincmd t
let s:save_winminheight = &winminheight
let s:save_winminwidth = &winminwidth
set winminheight=0
set winheight=1
set winminwidth=0
set winwidth=1
argglobal
setlocal foldmethod=manual
setlocal foldexpr=0
setlocal foldmarker={{{,}}}
setlocal foldignore=#
setlocal foldlevel=0
setlocal foldminlines=1
setlocal foldnestmax=20
setlocal foldenable
silent! normal! zE
let &fdl = &fdl
let s:l = 3 - ((2 * winheight(0) + 30) / 60)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 3
normal! 0
tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20
let &shortmess = s:shortmess_save
let &winminheight = s:save_winminheight
let &winminwidth = s:save_winminwidth
let s:sx = expand("<sfile>:p:r")."x.vim"
if filereadable(s:sx)
exe "source " . fnameescape(s:sx)
endif
let &g:so = s:so_save | let &g:siso = s:siso_save
set hlsearch
nohlsearch
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :

View File

@@ -1,9 +0,0 @@
{
"version": 4,
"vendor": {
"conan": {}
},
"include": [
"build/CMakePresets.json"
]
}

View File

@@ -1 +0,0 @@
---@meta

View File

@@ -1,53 +0,0 @@
local velocity = 5
function HandleMouse(camera, delta_time)
local mouse_sensitivity = 0.2
local xoffset, yoffset = Input:GetMouseOffset()
xoffset = xoffset * mouse_sensitivity;
yoffset = yoffset * mouse_sensitivity;
local pitch, yaw = camera:GetPitchYaw()
yaw = yaw + xoffset;
pitch = pitch + yoffset;
if pitch > 89.0 then
pitch = 89.0;
if pitch < -89.0 then
pitch = -89.0;
end
end
camera:SetPitchYaw(pitch, yaw)
end
function Update()
local delta_time = Time:DeltaTime();
--local inp = Input:GetKeyStatus(GLFW_KEY_W)
local transform = Parent:GetTransform()
local camera = Parent:GetCamera()
local forward = camera:forward()
local right = camera:right()
local translation
HandleMouse(camera, delta_time)
if Input:GetKeyStatus(GLFW_KEY_W) == 1 then
translation = normalize(forward * vec3:new(1.0, 0.0, 1.0)) * velocity * delta_time
end
if Input:GetKeyStatus(GLFW_KEY_S) == 1 then
translation = normalize(forward * vec3:new(1.0, 0.0, 1.0)) * -velocity * delta_time
end
if Input:GetKeyStatus(GLFW_KEY_A) == 1 then
translation = normalize(right * vec3:new(1.0, 0.0, 1.0)) * -velocity * delta_time
end
if Input:GetKeyStatus(GLFW_KEY_D) == 1 then
translation = normalize(right * vec3:new(1.0, 0.0, 1.0)) * velocity * delta_time
end
transform:Translate(translation)
end

View File

@@ -1,28 +0,0 @@
io.write("script loaded successfully\n")
local time_elapsed = 0
function Start(trans)
io.write("lua: Start\n")
end
function Update()
time_elapsed = time_elapsed + Time:DeltaTime()
local x = math.sin(time_elapsed * 2) * 2
local z = math.cos(time_elapsed * 2) * 2
local transform = Parent:GetTransform()
transform.position = vec3:new(x, 1.0, z - 7.0)
local light = Parent:GetPointLight()
local r = 0.5 * (1 + math.sin(time_elapsed * 2.5) * 1.1)
local g = 0.5 * (1 + math.cos(time_elapsed * 1.5) * 1.2)
local b = 0.5 * (1 + math.sin(time_elapsed * 3.5) * 1.3)
r = 1.0
g = 1.0
b = 1.0
light.color = vec3:new(r, g, b)
end
-- Todo: faire bouger le cube
-- Get inputs to script

View File

@@ -1,12 +0,0 @@
#version 330 core
layout(location = 0) out vec4 color;
in vec3 v_Position;
in vec4 v_Color;
void main()
{
color = vec4(v_Position * 0.5 + 0.5, 1.0f);
color = v_Color;
}

View File

@@ -1,8 +0,0 @@
#version 330 core
out vec4 FragColor;
uniform vec3 objectColor;
void main() {
FragColor = vec4(objectColor, 1.0);
}

View File

@@ -1,11 +0,0 @@
#version 330 core
layout (location = 0) in vec3 aPos;
uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;
void main() {
gl_Position = projection * view * model * vec4(aPos, 1.0);
}

View File

@@ -1,16 +0,0 @@
#version 330 core
layout(location = 0) in vec3 a_Position;
layout(location = 1) in vec4 a_Color;
uniform mat4 u_ViewProjection;
out vec3 v_Position;
out vec4 v_Color;
void main()
{
v_Position = a_Position;
v_Color = a_Color;
gl_Position = u_ViewProjection * vec4(a_Position, 1.0);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

View File

@@ -1,3 +0,0 @@
# ninja log v7
0 25 1768009863648297358 build.ninja 15c99e15691f412f
0 25 1768009863648297358 /home/erris/projects/open_engine/application/build/cmake_install.cmake 15c99e15691f412f

View File

@@ -1,408 +0,0 @@
# This is the CMakeCache file.
# For build in directory: /home/erris/projects/open_engine/application/build
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/llvm-addr2line
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/llvm-ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=Debug
//LLVM archiver
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/llvm-ar
//`clang-scan-deps` dependency scanner
CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS:FILEPATH=/usr/bin/clang-scan-deps
//Generate index for LLVM archive
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/llvm-ranlib
//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=-m64 -stdlib=libstdc++
//Flags used by the CXX compiler during DEBUG builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
//Flags used by the CXX compiler during MINSIZEREL builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the CXX compiler during RELEASE builds.
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the CXX compiler during RELWITHDEBINFO builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//LLVM archiver
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/llvm-ar
//`clang-scan-deps` dependency scanner
CMAKE_C_COMPILER_CLANG_SCAN_DEPS:FILEPATH=/usr/bin/clang-scan-deps
//Generate index for LLVM archive
CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/llvm-ranlib
//Flags used by the C compiler during all build types.
CMAKE_C_FLAGS:STRING=-m64
//Flags used by the C compiler during DEBUG builds.
CMAKE_C_FLAGS_DEBUG:STRING=-g
//Flags used by the C compiler during MINSIZEREL builds.
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the C compiler during RELEASE builds.
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the C compiler during RELWITHDEBINFO builds.
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Path to a program.
CMAKE_DLLTOOL:FILEPATH=/usr/bin/llvm-dlltool
//Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=-m64
//Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of build database during the build.
CMAKE_EXPORT_BUILD_DATABASE:BOOL=
//No help, variable specified on the command line.
CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/erris/projects/open_engine/application/build/CMakeFiles/pkgRedirects
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld.lld
//Program used to build from build.ninja files.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/ninja
//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/llvm-nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/llvm-objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/llvm-objdump
//Value Computed by CMake
CMAKE_PROJECT_COMPAT_VERSION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=SandBox
//Value Computed by CMake
CMAKE_PROJECT_SPDX_LICENSE:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_VERSION:STATIC=0.1.0
//Value Computed by CMake
CMAKE_PROJECT_VERSION_MAJOR:STATIC=0
//Value Computed by CMake
CMAKE_PROJECT_VERSION_MINOR:STATIC=1
//Value Computed by CMake
CMAKE_PROJECT_VERSION_PATCH:STATIC=0
//Value Computed by CMake
CMAKE_PROJECT_VERSION_TWEAK:STATIC=
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/llvm-ranlib
//Path to a program.
CMAKE_READELF:FILEPATH=/usr/bin/llvm-readelf
//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=-m64
//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the archiver during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the archiver during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the archiver during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the archiver during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the archiver during the creation of static libraries
// during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/llvm-strip
//Path to a program.
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
//The CMake toolchain file
CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/erris/projects/open_engine/application/build/conan_toolchain.cmake
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Value Computed by CMake
SandBox_BINARY_DIR:STATIC=/home/erris/projects/open_engine/application/build
//Value Computed by CMake
SandBox_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
SandBox_SOURCE_DIR:STATIC=/home/erris/projects/open_engine/application
//The directory containing a CMake configuration file for fmt.
fmt_DIR:PATH=/home/erris/projects/open_engine/application/build
//The directory containing a CMake configuration file for imgui.
imgui_DIR:PATH=/home/erris/projects/open_engine/application/build
//The directory containing a CMake configuration file for spdlog.
spdlog_DIR:PATH=/home/erris/projects/open_engine/application/build
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_ADDR2LINE
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/erris/projects/open_engine/application/build
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=2
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS
CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_CLANG_SCAN_DEPS
CMAKE_C_COMPILER_CLANG_SCAN_DEPS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_BUILD_DATABASE
CMAKE_EXPORT_BUILD_DATABASE-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Ninja
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/erris/projects/open_engine/application
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//Name of CMakeLists files to read
CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_READELF
CMAKE_READELF-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/usr/share/cmake
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_TAPI
CMAKE_TAPI-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1

View File

@@ -1,84 +0,0 @@
set(CMAKE_C_COMPILER "/usr/bin/clang")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "Clang")
set(CMAKE_C_COMPILER_VERSION "21.1.6")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
set(CMAKE_C_STANDARD_LATEST "23")
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
set(CMAKE_C_PLATFORM_ID "Linux")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
set(CMAKE_C_COMPILER_APPLE_SYSROOT "")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_C_COMPILER_ARCHITECTURE_ID "x86_64")
set(CMAKE_AR "/usr/bin/llvm-ar")
set(CMAKE_C_COMPILER_AR "/usr/bin/llvm-ar")
set(CMAKE_RANLIB "/usr/bin/llvm-ranlib")
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/llvm-ranlib")
set(CMAKE_LINKER "/usr/bin/ld.lld")
set(CMAKE_LINKER_LINK "")
set(CMAKE_LINKER_LLD "")
set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld")
set(CMAKE_C_COMPILER_LINKER_ID "GNU")
set(CMAKE_C_COMPILER_LINKER_VERSION 2.45.1)
set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU)
set(CMAKE_MT "")
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
set(CMAKE_COMPILER_IS_GNUCC )
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_C_COMPILER_ENV_VAR "CC")
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
set(CMAKE_C_LINKER_DEPFILE_SUPPORTED TRUE)
set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
set(CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/clang/21/include;/usr/local/include;/usr/include")
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1;/usr/lib64;/lib64;/lib;/usr/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

View File

@@ -1,108 +0,0 @@
set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "Clang")
set(CMAKE_CXX_COMPILER_VERSION "21.1.6")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
set(CMAKE_CXX_STANDARD_LATEST "26")
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23;cxx_std_26")
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
set(CMAKE_CXX26_COMPILE_FEATURES "cxx_std_26")
set(CMAKE_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
set(CMAKE_CXX_COMPILER_APPLE_SYSROOT "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID "x86_64")
set(CMAKE_AR "/usr/bin/llvm-ar")
set(CMAKE_CXX_COMPILER_AR "/usr/bin/llvm-ar")
set(CMAKE_RANLIB "/usr/bin/llvm-ranlib")
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/llvm-ranlib")
set(CMAKE_LINKER "/usr/bin/ld.lld")
set(CMAKE_LINKER_LINK "")
set(CMAKE_LINKER_LLD "")
set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld")
set(CMAKE_CXX_COMPILER_LINKER_ID "GNU")
set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.45.1)
set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU)
set(CMAKE_MT "")
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
set(CMAKE_COMPILER_IS_GNUCXX )
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
foreach (lang IN ITEMS C OBJC OBJCXX)
if (CMAKE_${lang}_COMPILER_ID_RUN)
foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
endforeach()
endif()
endforeach()
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED TRUE)
set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/15.2.1;/usr/include/c++/15.2.1/x86_64-pc-linux-gnu;/usr/include/c++/15.2.1/backward;/usr/lib/clang/21/include;/usr/local/include;/usr/include")
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1;/usr/lib64;/lib64;/lib;/usr/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "/usr/lib/clang/21")
set(CMAKE_CXX_COMPILER_IMPORT_STD "")
### Imported target for C++23 standard library
set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Experimental `import std` support not enabled when detecting toolchain; it must be set before `CXX` is enabled (usually a `project()` call)")
### Imported target for C++26 standard library
set(CMAKE_CXX26_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Experimental `import std` support not enabled when detecting toolchain; it must be set before `CXX` is enabled (usually a `project()` call)")

View File

@@ -1,15 +0,0 @@
set(CMAKE_HOST_SYSTEM "Linux-6.18.3-arch1-1")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "6.18.3-arch1-1")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
include("/home/erris/projects/open_engine/application/build/conan_toolchain.cmake")
set(CMAKE_SYSTEM "Linux-6.18.3-arch1-1")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "6.18.3-arch1-1")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

View File

@@ -1,934 +0,0 @@
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__CLASSIC_C__)
/* cv-qualifiers did not exist in K&R C */
# define const
# define volatile
#endif
#if !defined(__has_include)
/* If the compiler does not have __has_include, pretend the answer is
always no. */
# define __has_include(x) 0
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
except that a few beta releases use the old format with V=2021. */
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
/* The third version component from --version is an update index,
but no macro is provided for it. */
# define COMPILER_VERSION_PATCH DEC(0)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
# define COMPILER_ID "IntelLLVM"
#if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
#endif
#if defined(__GNUC__)
# define SIMULATE_ID "GNU"
#endif
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
* VVVV is no smaller than the current year when a version is released.
*/
#if __INTEL_LLVM_COMPILER < 1000000L
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
#else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
#endif
#if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
#endif
#if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
#elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
#endif
#if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
#endif
#if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
#endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_C)
# define COMPILER_ID "SunPro"
# if __SUNPRO_C >= 0x5100
/* __SUNPRO_C = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# endif
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
/* __HP_cc = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
/* __DECC_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__open_xl__) && defined(__clang__)
# define COMPILER_ID "IBMClang"
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
# define COMPILER_ID "XL"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__NVCOMPILER)
# define COMPILER_ID "NVHPC"
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
# if defined(__NVCOMPILER_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
# endif
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(__clang__) && defined(__cray__)
# define COMPILER_ID "CrayClang"
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__CLANG_FUJITSU)
# define COMPILER_ID "FujitsuClang"
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__FUJITSU)
# define COMPILER_ID "Fujitsu"
# if defined(__FCC_version__)
# define COMPILER_VERSION __FCC_version__
# elif defined(__FCC_major__)
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# endif
# if defined(__fcc_version)
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
# elif defined(__FCC_VERSION)
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
# endif
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__TASKING__)
# define COMPILER_ID "Tasking"
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
#elif defined(__ORANGEC__)
# define COMPILER_ID "OrangeC"
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
#elif defined(__RENESAS__)
# define COMPILER_ID "Renesas"
/* __RENESAS_VERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF)
#elif defined(__TINYC__)
# define COMPILER_ID "TinyCC"
#elif defined(__BCC__)
# define COMPILER_ID "Bruce"
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__) && defined(__ti__)
# define COMPILER_ID "TIClang"
# define COMPILER_VERSION_MAJOR DEC(__ti_major__)
# define COMPILER_VERSION_MINOR DEC(__ti_minor__)
# define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
# define COMPILER_ID "LCC"
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
# if defined(__LCC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
# endif
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
# define SIMULATE_ID "GNU"
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
# endif
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(_ADI_COMPILER)
# define COMPILER_ID "ADSP"
#if defined(__VERSIONNUM__)
/* __VERSIONNUM__ = 0xVVRRPPTT */
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__DCC__) && defined(_DIAB_TOOL)
# define COMPILER_ID "Diab"
# define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__)
# define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__)
# define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__)
# define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__)
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
# define COMPILER_ID "SDCC"
# if defined(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
# else
/* SDCC = VRP */
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__MSYS__)
# define PLATFORM_ID "MSYS"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# elif defined(__VXWORKS__)
# define PLATFORM_ID "VxWorks"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
# elif defined(_ADI_COMPILER)
# define PLATFORM_ID "ADSP"
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_ARM64EC)
# define ARCHITECTURE_ID "ARM64EC"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__ICCV850__)
# define ARCHITECTURE_ID "V850"
# elif defined(__ICC8051__)
# define ARCHITECTURE_ID "8051"
# elif defined(__ICCSTM8__)
# define ARCHITECTURE_ID "STM8"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__clang__) && defined(__ti__)
# if defined(__ARM_ARCH)
# define ARCHITECTURE_ID "ARM"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__TI_COMPILER_VERSION__)
# if defined(__TI_ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__MSP430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__TMS320C28XX__)
# define ARCHITECTURE_ID "TMS320C28x"
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
# define ARCHITECTURE_ID "TMS320C6x"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
# elif defined(__ADSPSHARC__)
# define ARCHITECTURE_ID "SHARC"
# elif defined(__ADSPBLACKFIN__)
# define ARCHITECTURE_ID "Blackfin"
#elif defined(__TASKING__)
# if defined(__CTC__) || defined(__CPTC__)
# define ARCHITECTURE_ID "TriCore"
# elif defined(__CMCS__)
# define ARCHITECTURE_ID "MCS"
# elif defined(__CARM__) || defined(__CPARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__CARC__)
# define ARCHITECTURE_ID "ARC"
# elif defined(__C51__)
# define ARCHITECTURE_ID "8051"
# elif defined(__CPCP__)
# define ARCHITECTURE_ID "PCP"
# else
# define ARCHITECTURE_ID ""
# endif
#elif defined(__RENESAS__)
# if defined(__CCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__CCRL__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__CCRH__)
# define ARCHITECTURE_ID "RH850"
# else
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number. */
#ifdef COMPILER_VERSION
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
/* Construct a string literal encoding the version number components. */
#elif defined(COMPILER_VERSION_MAJOR)
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#elif defined(COMPILER_VERSION_INTERNAL_STR)
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#define C_STD_99 199901L
#define C_STD_11 201112L
#define C_STD_17 201710L
#define C_STD_23 202311L
#ifdef __STDC_VERSION__
# define C_STD __STDC_VERSION__
#endif
#if !defined(__STDC__) && !defined(__clang__) && !defined(__RENESAS__)
# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
# define C_VERSION "90"
# else
# define C_VERSION
# endif
#elif C_STD > C_STD_17
# define C_VERSION "23"
#elif C_STD > C_STD_11
# define C_VERSION "17"
#elif C_STD > C_STD_99
# define C_VERSION "11"
#elif C_STD >= C_STD_99
# define C_VERSION "99"
#else
# define C_VERSION "90"
#endif
const char* info_language_standard_default =
"INFO" ":" "standard_default[" C_VERSION "]";
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
!defined(__STRICT_ANSI__)
"ON"
#else
"OFF"
#endif
"]";
/*--------------------------------------------------------------------------*/
#ifdef ID_VOID_MAIN
void main() {}
#else
# if defined(__CLASSIC_C__)
int main(argc, argv) int argc; char *argv[];
# else
int main(int argc, char* argv[])
# endif
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR)
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
require += info_cray[argc];
#endif
require += info_language_standard_default[argc];
require += info_language_extensions_default[argc];
(void)argv;
return require;
}
#endif

View File

@@ -1,949 +0,0 @@
/* This source file must have a .cpp extension so that all C++ compilers
recognize the extension without flags. Borland does not know .cxx for
example. */
#ifndef __cplusplus
# error "A C compiler has been selected for C++."
#endif
#if !defined(__has_include)
/* If the compiler does not have __has_include, pretend the answer is
always no. */
# define __has_include(x) 0
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
except that a few beta releases use the old format with V=2021. */
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
/* The third version component from --version is an update index,
but no macro is provided for it. */
# define COMPILER_VERSION_PATCH DEC(0)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
# define COMPILER_ID "IntelLLVM"
#if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
#endif
#if defined(__GNUC__)
# define SIMULATE_ID "GNU"
#endif
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
* VVVV is no smaller than the current year when a version is released.
*/
#if __INTEL_LLVM_COMPILER < 1000000L
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
#else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
#endif
#if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
#endif
#if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
#elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
#endif
#if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
#endif
#if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
#endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_CC)
# define COMPILER_ID "SunPro"
# if __SUNPRO_CC >= 0x5100
/* __SUNPRO_CC = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# endif
#elif defined(__HP_aCC)
# define COMPILER_ID "HP"
/* __HP_aCC = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
#elif defined(__DECCXX)
# define COMPILER_ID "Compaq"
/* __DECCXX_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__open_xl__) && defined(__clang__)
# define COMPILER_ID "IBMClang"
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
# define COMPILER_ID "XL"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__NVCOMPILER)
# define COMPILER_ID "NVHPC"
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
# if defined(__NVCOMPILER_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
# endif
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(__clang__) && defined(__cray__)
# define COMPILER_ID "CrayClang"
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__CLANG_FUJITSU)
# define COMPILER_ID "FujitsuClang"
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__FUJITSU)
# define COMPILER_ID "Fujitsu"
# if defined(__FCC_version__)
# define COMPILER_VERSION __FCC_version__
# elif defined(__FCC_major__)
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# endif
# if defined(__fcc_version)
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
# elif defined(__FCC_VERSION)
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
# endif
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__TASKING__)
# define COMPILER_ID "Tasking"
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
#elif defined(__ORANGEC__)
# define COMPILER_ID "OrangeC"
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
#elif defined(__RENESAS__)
# define COMPILER_ID "Renesas"
/* __RENESAS_VERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF)
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__) && defined(__ti__)
# define COMPILER_ID "TIClang"
# define COMPILER_VERSION_MAJOR DEC(__ti_major__)
# define COMPILER_VERSION_MINOR DEC(__ti_minor__)
# define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
# define COMPILER_ID "LCC"
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
# if defined(__LCC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
# endif
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
# define SIMULATE_ID "GNU"
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
# endif
#elif defined(__GNUC__) || defined(__GNUG__)
# define COMPILER_ID "GNU"
# if defined(__GNUC__)
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# else
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(_ADI_COMPILER)
# define COMPILER_ID "ADSP"
#if defined(__VERSIONNUM__)
/* __VERSIONNUM__ = 0xVVRRPPTT */
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__DCC__) && defined(_DIAB_TOOL)
# define COMPILER_ID "Diab"
# define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__)
# define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__)
# define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__)
# define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__)
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__MSYS__)
# define PLATFORM_ID "MSYS"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# elif defined(__VXWORKS__)
# define PLATFORM_ID "VxWorks"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
# elif defined(_ADI_COMPILER)
# define PLATFORM_ID "ADSP"
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_ARM64EC)
# define ARCHITECTURE_ID "ARM64EC"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__ICCV850__)
# define ARCHITECTURE_ID "V850"
# elif defined(__ICC8051__)
# define ARCHITECTURE_ID "8051"
# elif defined(__ICCSTM8__)
# define ARCHITECTURE_ID "STM8"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__clang__) && defined(__ti__)
# if defined(__ARM_ARCH)
# define ARCHITECTURE_ID "ARM"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__TI_COMPILER_VERSION__)
# if defined(__TI_ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__MSP430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__TMS320C28XX__)
# define ARCHITECTURE_ID "TMS320C28x"
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
# define ARCHITECTURE_ID "TMS320C6x"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
# elif defined(__ADSPSHARC__)
# define ARCHITECTURE_ID "SHARC"
# elif defined(__ADSPBLACKFIN__)
# define ARCHITECTURE_ID "Blackfin"
#elif defined(__TASKING__)
# if defined(__CTC__) || defined(__CPTC__)
# define ARCHITECTURE_ID "TriCore"
# elif defined(__CMCS__)
# define ARCHITECTURE_ID "MCS"
# elif defined(__CARM__) || defined(__CPARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__CARC__)
# define ARCHITECTURE_ID "ARC"
# elif defined(__C51__)
# define ARCHITECTURE_ID "8051"
# elif defined(__CPCP__)
# define ARCHITECTURE_ID "PCP"
# else
# define ARCHITECTURE_ID ""
# endif
#elif defined(__RENESAS__)
# if defined(__CCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__CCRL__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__CCRH__)
# define ARCHITECTURE_ID "RH850"
# else
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number. */
#ifdef COMPILER_VERSION
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
/* Construct a string literal encoding the version number components. */
#elif defined(COMPILER_VERSION_MAJOR)
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#elif defined(COMPILER_VERSION_INTERNAL_STR)
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#define CXX_STD_98 199711L
#define CXX_STD_11 201103L
#define CXX_STD_14 201402L
#define CXX_STD_17 201703L
#define CXX_STD_20 202002L
#define CXX_STD_23 202302L
#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
# if _MSVC_LANG > CXX_STD_17
# define CXX_STD _MSVC_LANG
# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
# define CXX_STD CXX_STD_20
# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
# define CXX_STD CXX_STD_20
# elif _MSVC_LANG > CXX_STD_14
# define CXX_STD CXX_STD_17
# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# elif defined(__INTEL_CXX11_MODE__)
# define CXX_STD CXX_STD_11
# else
# define CXX_STD CXX_STD_98
# endif
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
# if _MSVC_LANG > __cplusplus
# define CXX_STD _MSVC_LANG
# else
# define CXX_STD __cplusplus
# endif
#elif defined(__NVCOMPILER)
# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
# define CXX_STD CXX_STD_20
# else
# define CXX_STD __cplusplus
# endif
#elif defined(__INTEL_COMPILER) || defined(__PGI)
# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
# define CXX_STD CXX_STD_17
# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# else
# define CXX_STD __cplusplus
# endif
#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# else
# define CXX_STD __cplusplus
# endif
#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
# define CXX_STD CXX_STD_11
#else
# define CXX_STD __cplusplus
#endif
const char* info_language_standard_default = "INFO" ":" "standard_default["
#if CXX_STD > CXX_STD_23
"26"
#elif CXX_STD > CXX_STD_20
"23"
#elif CXX_STD > CXX_STD_17
"20"
#elif CXX_STD > CXX_STD_14
"17"
#elif CXX_STD > CXX_STD_11
"14"
#elif CXX_STD >= CXX_STD_11
"11"
#else
"98"
#endif
"]";
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
!defined(__STRICT_ANSI__)
"ON"
#else
"OFF"
#endif
"]";
/*--------------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR)
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
require += info_cray[argc];
#endif
require += info_language_standard_default[argc];
require += info_language_extensions_default[argc];
(void)argv;
return require;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
{
"InstallScripts" :
[
"/home/erris/projects/open_engine/application/build/cmake_install.cmake"
],
"Parallel" : false
}

View File

@@ -1,3 +0,0 @@
/home/erris/projects/open_engine/application/build/CMakeFiles/sand_box.dir
/home/erris/projects/open_engine/application/build/CMakeFiles/edit_cache.dir
/home/erris/projects/open_engine/application/build/CMakeFiles/rebuild_cache.dir

View File

@@ -1 +0,0 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

View File

@@ -1,96 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Ninja" Generator, CMake Version 4.2
# This file contains all the rules used to get the outputs files
# built from the input files.
# It is included in the main 'build.ninja'.
# =============================================================================
# Project: SandBox
# Configurations: Debug
# =============================================================================
# =============================================================================
#############################################
# Rule for generating CXX dependencies.
rule CXX_SCAN__sand_box_Debug
depfile = $DEP_FILE
command = "/usr/bin/clang-scan-deps" -format=p1689 -- /usr/bin/clang++ $DEFINES $INCLUDES $FLAGS -x c++ $in -c -o $OBJ_FILE -resource-dir "/usr/lib/clang/21" -MT $DYNDEP_INTERMEDIATE_FILE -MD -MF $DEP_FILE > $DYNDEP_INTERMEDIATE_FILE.tmp && mv $DYNDEP_INTERMEDIATE_FILE.tmp $DYNDEP_INTERMEDIATE_FILE
description = Scanning $in for CXX dependencies
#############################################
# Rule to generate ninja dyndep files for CXX.
rule CXX_DYNDEP__sand_box_Debug
command = /usr/bin/cmake -E cmake_ninja_dyndep --tdi=CMakeFiles/sand_box.dir/CXXDependInfo.json --lang=CXX --modmapfmt=clang --dd=$out @$out.rsp
description = Generating CXX dyndep file $out
rspfile = $out.rsp
rspfile_content = $in
restat = 1
#############################################
# Rule for compiling CXX files.
rule CXX_COMPILER__sand_box_scanned_Debug
depfile = $DEP_FILE
deps = gcc
command = ${LAUNCHER}${CODE_CHECK}/usr/bin/clang++ $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE @$DYNDEP_MODULE_MAP_FILE -o $out -c $in
description = Building CXX object $out
#############################################
# Rule for compiling CXX files.
rule CXX_COMPILER__sand_box_unscanned_Debug
depfile = $DEP_FILE
deps = gcc
command = ${LAUNCHER}${CODE_CHECK}/usr/bin/clang++ $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
description = Building CXX object $out
#############################################
# Rule for linking CXX executable.
rule CXX_EXECUTABLE_LINKER__sand_box_Debug
depfile = $DEP_FILE
deps = gcc
command = $PRE_LINK && /usr/bin/clang++ $FLAGS $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
description = Linking CXX executable $TARGET_FILE
restat = $RESTAT
#############################################
# Rule for running custom commands.
rule CUSTOM_COMMAND
command = $COMMAND
description = $DESC
#############################################
# Rule for re-running cmake.
rule RERUN_CMAKE
command = /usr/bin/cmake --regenerate-during-build -S/home/erris/projects/open_engine/application -B/home/erris/projects/open_engine/application/build
description = Re-running CMake...
generator = 1
#############################################
# Rule for cleaning all built files.
rule CLEAN
command = /usr/bin/ninja $FILE_ARG -t clean $TARGETS
description = Cleaning all built files...
#############################################
# Rule for printing all primary targets available.
rule HELP
command = /usr/bin/ninja -t targets
description = All primary targets available:

View File

@@ -1,30 +0,0 @@
{
"bmi-installation" : null,
"compiler-frontend-variant" : "GNU",
"compiler-id" : "Clang",
"compiler-simulate-id" : "",
"config" : "Debug",
"cxx-modules" : {},
"database-info" : null,
"dir-cur-bld" : "/home/erris/projects/open_engine/application/build",
"dir-cur-src" : "/home/erris/projects/open_engine/application",
"dir-top-bld" : "/home/erris/projects/open_engine/application/build",
"dir-top-src" : "/home/erris/projects/open_engine/application",
"exports" : [],
"forward-modules-from-target-dirs" : [],
"include-dirs" :
[
"/home/erris/projects/open_engine/application/include"
],
"language" : "CXX",
"linked-target-dirs" : [],
"module-dir" : "/home/erris/projects/open_engine/application/build/CMakeFiles/sand_box.dir",
"sources" :
{
"CMakeFiles/sand_box.dir/src/sandbox.cpp.o" :
{
"language" : "CXX",
"source" : "/home/erris/projects/open_engine/application/src/sandbox.cpp"
}
}
}

View File

@@ -1,5 +0,0 @@
{
"revision": 0,
"rules": [],
"version": 1
}

View File

@@ -1,37 +0,0 @@
{
"version": 3,
"vendor": {
"conan": {}
},
"cmakeMinimumRequired": {
"major": 3,
"minor": 15,
"patch": 0
},
"configurePresets": [
{
"name": "conan-default",
"displayName": "'conan-default' config",
"description": "'conan-default' configure using 'Unix Makefiles' generator",
"generator": "Unix Makefiles",
"cacheVariables": {
"CMAKE_POLICY_DEFAULT_CMP0091": "NEW"
},
"toolchainFile": "conan_toolchain.cmake",
"binaryDir": "/home/erris/projects/open_engine/application/build"
}
],
"buildPresets": [
{
"name": "conan-default",
"configurePreset": "conan-default",
"jobs": 16
}
],
"testPresets": [
{
"name": "conan-default",
"configurePreset": "conan-default"
}
]
}

View File

@@ -1,166 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Ninja" Generator, CMake Version 4.2
# This file contains all the build statements describing the
# compilation DAG.
# =============================================================================
# Write statements declared in CMakeLists.txt:
#
# Which is the root file.
# =============================================================================
# =============================================================================
# Project: SandBox
# Configurations: Debug
# =============================================================================
#############################################
# Minimal version of Ninja required by this file
ninja_required_version = 1.5
#############################################
# Set configuration variable for custom commands.
CONFIGURATION = Debug
# =============================================================================
# Include auxiliary files.
#############################################
# Include rules file.
include CMakeFiles/rules.ninja
# =============================================================================
#############################################
# Logical path to working directory; prefix for absolute paths.
cmake_ninja_workdir = /home/erris/projects/open_engine/application/build/
# =============================================================================
# Object build statements for EXECUTABLE target sand_box
#############################################
# Order-only phony target for sand_box
build cmake_object_order_depends_target_sand_box: phony || .
build CMakeFiles/sand_box.dir/src/sandbox.cpp.o.ddi: CXX_SCAN__sand_box_Debug /home/erris/projects/open_engine/application/src/sandbox.cpp || cmake_object_order_depends_target_sand_box
DEFINES = -D_GLIBCXX_USE_CXX11_ABI=0
DEP_FILE = CMakeFiles/sand_box.dir/src/sandbox.cpp.o.ddi.d
DYNDEP_INTERMEDIATE_FILE = CMakeFiles/sand_box.dir/src/sandbox.cpp.o.ddi
FLAGS = -m64 -stdlib=libstdc++ -g -std=c++20
INCLUDES = -I/home/erris/projects/open_engine/application/include
OBJ_FILE = CMakeFiles/sand_box.dir/src/sandbox.cpp.o
PREPROCESSED_OUTPUT_FILE = CMakeFiles/sand_box.dir/src/sandbox.cpp.o.ddi.i
build CMakeFiles/sand_box.dir/src/sandbox.cpp.o: CXX_COMPILER__sand_box_scanned_Debug /home/erris/projects/open_engine/application/src/sandbox.cpp | CMakeFiles/sand_box.dir/src/sandbox.cpp.o.modmap || cmake_object_order_depends_target_sand_box CMakeFiles/sand_box.dir/CXX.dd
CONFIG = Debug
DEFINES = -D_GLIBCXX_USE_CXX11_ABI=0
DEP_FILE = CMakeFiles/sand_box.dir/src/sandbox.cpp.o.d
DYNDEP_MODULE_MAP_FILE = CMakeFiles/sand_box.dir/src/sandbox.cpp.o.modmap
FLAGS = -m64 -stdlib=libstdc++ -g -std=c++20
INCLUDES = -I/home/erris/projects/open_engine/application/include
OBJECT_DIR = CMakeFiles/sand_box.dir
OBJECT_FILE_DIR = CMakeFiles/sand_box.dir/src
TARGET_SUPPORT_DIR = CMakeFiles/sand_box.dir
dyndep = CMakeFiles/sand_box.dir/CXX.dd
build CMakeFiles/sand_box.dir/CXX.dd | CMakeFiles/sand_box.dir/CXXModules.json CMakeFiles/sand_box.dir/src/sandbox.cpp.o.modmap: CXX_DYNDEP__sand_box_Debug CMakeFiles/sand_box.dir/src/sandbox.cpp.o.ddi | /home/erris/projects/open_engine/application/build/CMakeFiles/sand_box.dir/CXXDependInfo.json
# =============================================================================
# Link build statements for EXECUTABLE target sand_box
#############################################
# Link the executable sand_box
build sand_box: CXX_EXECUTABLE_LINKER__sand_box_Debug CMakeFiles/sand_box.dir/src/sandbox.cpp.o
CONFIG = Debug
DEP_FILE = CMakeFiles/sand_box.dir/link.d
FLAGS = -m64 -stdlib=libstdc++ -g
LINK_FLAGS = -m64 -Xlinker --dependency-file=CMakeFiles/sand_box.dir/link.d
LINK_LIBRARIES = -Wl,-rpath,/home/erris/projects/open_engine/application/lib -lopen_engine
LINK_PATH = -L/home/erris/projects/open_engine/application/lib
OBJECT_DIR = CMakeFiles/sand_box.dir
POST_BUILD = :
PRE_LINK = :
TARGET_FILE = sand_box
TARGET_PDB = sand_box.dbg
TARGET_SUPPORT_DIR = CMakeFiles/sand_box.dir
#############################################
# Utility command for edit_cache
build CMakeFiles/edit_cache.util: CUSTOM_COMMAND
COMMAND = cd /home/erris/projects/open_engine/application/build && /usr/bin/ccmake -S/home/erris/projects/open_engine/application -B/home/erris/projects/open_engine/application/build
DESC = Running CMake cache editor...
pool = console
restat = 1
build edit_cache: phony CMakeFiles/edit_cache.util
#############################################
# Utility command for rebuild_cache
build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
COMMAND = cd /home/erris/projects/open_engine/application/build && /usr/bin/cmake --regenerate-during-build -S/home/erris/projects/open_engine/application -B/home/erris/projects/open_engine/application/build
DESC = Running CMake to regenerate build system...
pool = console
restat = 1
build rebuild_cache: phony CMakeFiles/rebuild_cache.util
# =============================================================================
# Target aliases.
# =============================================================================
# Folder targets.
# =============================================================================
#############################################
# Folder: /home/erris/projects/open_engine/application/build
build all: phony sand_box
# =============================================================================
# Built-in targets
#############################################
# Re-run CMake if any of its inputs changed.
build build.ninja /home/erris/projects/open_engine/application/build/cmake_install.cmake: RERUN_CMAKE | /home/erris/projects/open_engine/application/CMakeLists.txt /usr/share/cmake/Modules/CMakeCInformation.cmake /usr/share/cmake/Modules/CMakeCXXInformation.cmake /usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake /usr/share/cmake/Modules/CMakeGenericSystem.cmake /usr/share/cmake/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake/Modules/CMakeLanguageInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake/Modules/Compiler/Clang-C.cmake /usr/share/cmake/Modules/Compiler/Clang-CXX.cmake /usr/share/cmake/Modules/Compiler/Clang.cmake /usr/share/cmake/Modules/Compiler/GNU.cmake /usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake/Modules/Linker/GNU-C.cmake /usr/share/cmake/Modules/Linker/GNU-CXX.cmake /usr/share/cmake/Modules/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Clang-C.cmake /usr/share/cmake/Modules/Platform/Linux-Clang-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake/Modules/Platform/Linux.cmake /usr/share/cmake/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/4.2.1/CMakeCCompiler.cmake CMakeFiles/4.2.1/CMakeCXXCompiler.cmake CMakeFiles/4.2.1/CMakeSystem.cmake cmakedeps_macros.cmake conan_toolchain.cmake fmt-Target-none.cmake fmt-config-version.cmake fmt-config.cmake fmt-none-x86_64-data.cmake fmtTargets.cmake imgui-Target-none.cmake imgui-config-version.cmake imgui-config.cmake imgui-none-x86_64-data.cmake imguiTargets.cmake spdlog-Target-none.cmake spdlog-config-version.cmake spdlog-config.cmake spdlog-none-x86_64-data.cmake spdlogTargets.cmake
pool = console
#############################################
# A missing CMake input file is not an error.
build /home/erris/projects/open_engine/application/CMakeLists.txt /usr/share/cmake/Modules/CMakeCInformation.cmake /usr/share/cmake/Modules/CMakeCXXInformation.cmake /usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake /usr/share/cmake/Modules/CMakeGenericSystem.cmake /usr/share/cmake/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake/Modules/CMakeLanguageInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake/Modules/Compiler/Clang-C.cmake /usr/share/cmake/Modules/Compiler/Clang-CXX.cmake /usr/share/cmake/Modules/Compiler/Clang.cmake /usr/share/cmake/Modules/Compiler/GNU.cmake /usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake/Modules/Linker/GNU-C.cmake /usr/share/cmake/Modules/Linker/GNU-CXX.cmake /usr/share/cmake/Modules/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Clang-C.cmake /usr/share/cmake/Modules/Platform/Linux-Clang-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake/Modules/Platform/Linux.cmake /usr/share/cmake/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/4.2.1/CMakeCCompiler.cmake CMakeFiles/4.2.1/CMakeCXXCompiler.cmake CMakeFiles/4.2.1/CMakeSystem.cmake cmakedeps_macros.cmake conan_toolchain.cmake fmt-Target-none.cmake fmt-config-version.cmake fmt-config.cmake fmt-none-x86_64-data.cmake fmtTargets.cmake imgui-Target-none.cmake imgui-config-version.cmake imgui-config.cmake imgui-none-x86_64-data.cmake imguiTargets.cmake spdlog-Target-none.cmake spdlog-config-version.cmake spdlog-config.cmake spdlog-none-x86_64-data.cmake spdlogTargets.cmake: phony
#############################################
# Clean all the built files.
build clean: CLEAN
#############################################
# Print all primary targets available.
build help: HELP
#############################################
# Make the all target the default.
default all

View File

@@ -1,66 +0,0 @@
# Install script for directory: /home/erris/projects/open_engine/application
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "0")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
# Set path to fallback-tool for dependency-resolution.
if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/usr/bin/llvm-objdump")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
if(CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/erris/projects/open_engine/application/build/install_local_manifest.txt"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()
if(CMAKE_INSTALL_COMPONENT)
if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
unset(CMAKE_INST_COMP_HASH)
endif()
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/erris/projects/open_engine/application/build/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()

View File

@@ -1,101 +0,0 @@
macro(conan_find_apple_frameworks FRAMEWORKS_FOUND FRAMEWORKS FRAMEWORKS_DIRS)
if(APPLE)
foreach(_FRAMEWORK ${FRAMEWORKS})
# https://cmake.org/pipermail/cmake-developers/2017-August/030199.html
find_library(CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND NAMES ${_FRAMEWORK} PATHS ${FRAMEWORKS_DIRS} CMAKE_FIND_ROOT_PATH_BOTH)
if(CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND)
list(APPEND ${FRAMEWORKS_FOUND} ${CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND})
message(VERBOSE "Framework found! ${FRAMEWORKS_FOUND}")
else()
message(FATAL_ERROR "Framework library ${_FRAMEWORK} not found in paths: ${FRAMEWORKS_DIRS}")
endif()
endforeach()
endif()
endmacro()
function(conan_package_library_targets libraries package_libdir package_bindir library_type
is_host_windows deps_target out_libraries_target config_suffix package_name no_soname_mode)
set(_out_libraries_target "")
foreach(_LIBRARY_NAME ${libraries})
if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND NOT DEFINED MINGW AND CMAKE_VERSION VERSION_LESS "3.29")
# Backport logic from https://github.com/Kitware/CMake/commit/c6efbd78d86798573654d1a791f76de0e71bd93f
# which is only needed on versions older than 3.29
# this allows finding static library files created by meson
# We are not affected by PATH-derived folders, because we call find_library with NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
set(_original_find_library_suffixes "${CMAKE_FIND_LIBRARY_SUFFIXES}")
set(_original_find_library_prefixes "${CMAKE_FIND_LIBRARY_PREFIXES}")
set(CMAKE_FIND_LIBRARY_PREFIXES "" "lib")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.lib" ".lib" ".a")
endif()
find_library(CONAN_FOUND_LIBRARY NAMES ${_LIBRARY_NAME} PATHS ${package_libdir}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
if(DEFINED _original_find_library_suffixes)
set(CMAKE_FIND_LIBRARY_SUFFIXES "${_original_find_library_suffixes}")
set(CMAKE_FIND_LIBRARY_PREFIXES "${_original_find_library_prefixes}")
unset(_original_find_library_suffixes)
unset(_original_find_library_prefixes)
endif()
if(CONAN_FOUND_LIBRARY)
message(VERBOSE "Conan: Library ${_LIBRARY_NAME} found ${CONAN_FOUND_LIBRARY}")
# Create a micro-target for each lib/a found
# Allow only some characters for the target name
string(REGEX REPLACE "[^A-Za-z0-9.+_-]" "_" _LIBRARY_NAME ${_LIBRARY_NAME})
set(_LIB_NAME CONAN_LIB::${package_name}_${_LIBRARY_NAME}${config_suffix})
if(is_host_windows AND library_type STREQUAL "SHARED")
# Store and reset the variable, so it doesn't leak
set(_OLD_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES .dll ${CMAKE_FIND_LIBRARY_SUFFIXES})
find_library(CONAN_SHARED_FOUND_LIBRARY NAMES ${_LIBRARY_NAME} PATHS ${package_bindir}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_OLD_CMAKE_FIND_LIBRARY_SUFFIXES})
if(NOT CONAN_SHARED_FOUND_LIBRARY)
message(DEBUG "DLL library not found, creating UNKNOWN IMPORTED target, searched for: ${_LIBRARY_NAME}")
if(NOT TARGET ${_LIB_NAME})
add_library(${_LIB_NAME} UNKNOWN IMPORTED)
endif()
set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_FOUND_LIBRARY})
else()
if(NOT TARGET ${_LIB_NAME})
add_library(${_LIB_NAME} SHARED IMPORTED)
endif()
set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_SHARED_FOUND_LIBRARY})
set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_IMPLIB${config_suffix} ${CONAN_FOUND_LIBRARY})
message(DEBUG "Found DLL and STATIC at ${CONAN_SHARED_FOUND_LIBRARY}, ${CONAN_FOUND_LIBRARY}")
endif()
unset(CONAN_SHARED_FOUND_LIBRARY CACHE)
else()
if(NOT TARGET ${_LIB_NAME})
# library_type can be STATIC, still UNKNOWN (if no package type available in the recipe) or SHARED (but no windows)
add_library(${_LIB_NAME} ${library_type} IMPORTED)
endif()
message(DEBUG "Created target ${_LIB_NAME} ${library_type} IMPORTED")
set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_FOUND_LIBRARY} IMPORTED_NO_SONAME ${no_soname_mode})
endif()
list(APPEND _out_libraries_target ${_LIB_NAME})
message(VERBOSE "Conan: Found: ${CONAN_FOUND_LIBRARY}")
else()
message(FATAL_ERROR "Library '${_LIBRARY_NAME}' not found in package. If '${_LIBRARY_NAME}' is a system library, declare it with 'cpp_info.system_libs' property")
endif()
unset(CONAN_FOUND_LIBRARY CACHE)
endforeach()
# Add the dependencies target for all the imported libraries
foreach(_T ${_out_libraries_target})
set_property(TARGET ${_T} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${deps_target})
endforeach()
set(${out_libraries_target} ${_out_libraries_target} PARENT_SCOPE)
endfunction()
macro(check_build_type_defined)
# Check that the -DCMAKE_BUILD_TYPE argument is always present
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT isMultiConfig AND NOT CMAKE_BUILD_TYPE)
message(FATAL_ERROR "Please, set the CMAKE_BUILD_TYPE variable when calling to CMake "
"adding the '-DCMAKE_BUILD_TYPE=<build_type>' argument.")
endif()
endmacro()

View File

@@ -1,8 +0,0 @@
[
{
"directory": "/home/erris/projects/open_engine/application/build",
"command": "/usr/bin/clang++ -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/erris/projects/open_engine/application/include -m64 -stdlib=libstdc++ -g -std=c++20 @CMakeFiles/sand_box.dir/src/sandbox.cpp.o.modmap -o CMakeFiles/sand_box.dir/src/sandbox.cpp.o -c /home/erris/projects/open_engine/application/src/sandbox.cpp",
"file": "/home/erris/projects/open_engine/application/src/sandbox.cpp",
"output": "/home/erris/projects/open_engine/application/build/CMakeFiles/sand_box.dir/src/sandbox.cpp.o"
}
]

View File

@@ -1,196 +0,0 @@
# Conan automatically generated toolchain file
# DO NOT EDIT MANUALLY, it will be overwritten
# Avoid including toolchain file several times (bad if appending to variables like
# CMAKE_CXX_FLAGS. See https://github.com/android/ndk/issues/323
include_guard()
message(STATUS "Using Conan toolchain: ${CMAKE_CURRENT_LIST_FILE}")
if(${CMAKE_VERSION} VERSION_LESS "3.15")
message(FATAL_ERROR "The 'CMakeToolchain' generator only works with CMake >= 3.15")
endif()
########## 'user_toolchain' block #############
# Include one or more CMake user toolchain from tools.cmake.cmaketoolchain:user_toolchain
########## 'generic_system' block #############
# Definition of system, platform and toolset
########## 'compilers' block #############
set(CMAKE_C_COMPILER "clang")
set(CMAKE_CXX_COMPILER "clang++")
########## 'arch_flags' block #############
# Define C++ flags, C flags and linker flags from 'settings.arch'
message(STATUS "Conan toolchain: Defining architecture flag: -m64")
string(APPEND CONAN_CXX_FLAGS " -m64")
string(APPEND CONAN_C_FLAGS " -m64")
string(APPEND CONAN_SHARED_LINKER_FLAGS " -m64")
string(APPEND CONAN_EXE_LINKER_FLAGS " -m64")
########## 'libcxx' block #############
# Definition of libcxx from 'compiler.libcxx' setting, defining the
# right CXX_FLAGS for that libcxx
message(STATUS "Conan toolchain: Defining libcxx as C++ flags: -stdlib=libstdc++")
string(APPEND CONAN_CXX_FLAGS " -stdlib=libstdc++")
message(STATUS "Conan toolchain: Adding glibcxx compile definition: _GLIBCXX_USE_CXX11_ABI=0")
add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0)
########## 'cppstd' block #############
# Define the C++ and C standards from 'compiler.cppstd' and 'compiler.cstd'
function(conan_modify_std_watch variable access value current_list_file stack)
set(conan_watched_std_variable "20")
if (${variable} STREQUAL "CMAKE_C_STANDARD")
set(conan_watched_std_variable "")
endif()
if ("${access}" STREQUAL "MODIFIED_ACCESS" AND NOT "${value}" STREQUAL "${conan_watched_std_variable}")
message(STATUS "Warning: Standard ${variable} value defined in conan_toolchain.cmake to ${conan_watched_std_variable} has been modified to ${value} by ${current_list_file}")
endif()
unset(conan_watched_std_variable)
endfunction()
message(STATUS "Conan toolchain: C++ Standard 20 with extensions OFF")
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
variable_watch(CMAKE_CXX_STANDARD conan_modify_std_watch)
########## 'extra_flags' block #############
# Include extra C++, C and linker flags from configuration tools.build:<type>flags
# and from CMakeToolchain.extra_<type>_flags
# Conan conf flags start:
# Conan conf flags end
########## 'cmake_flags_init' block #############
# Define CMAKE_<XXX>_FLAGS from CONAN_<XXX>_FLAGS
foreach(config IN LISTS CMAKE_CONFIGURATION_TYPES)
string(TOUPPER ${config} config)
if(DEFINED CONAN_CXX_FLAGS_${config})
string(APPEND CMAKE_CXX_FLAGS_${config}_INIT " ${CONAN_CXX_FLAGS_${config}}")
endif()
if(DEFINED CONAN_C_FLAGS_${config})
string(APPEND CMAKE_C_FLAGS_${config}_INIT " ${CONAN_C_FLAGS_${config}}")
endif()
if(DEFINED CONAN_SHARED_LINKER_FLAGS_${config})
string(APPEND CMAKE_SHARED_LINKER_FLAGS_${config}_INIT " ${CONAN_SHARED_LINKER_FLAGS_${config}}")
endif()
if(DEFINED CONAN_EXE_LINKER_FLAGS_${config})
string(APPEND CMAKE_EXE_LINKER_FLAGS_${config}_INIT " ${CONAN_EXE_LINKER_FLAGS_${config}}")
endif()
endforeach()
if(DEFINED CONAN_CXX_FLAGS)
string(APPEND CMAKE_CXX_FLAGS_INIT " ${CONAN_CXX_FLAGS}")
endif()
if(DEFINED CONAN_C_FLAGS)
string(APPEND CMAKE_C_FLAGS_INIT " ${CONAN_C_FLAGS}")
endif()
if(DEFINED CONAN_SHARED_LINKER_FLAGS)
string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${CONAN_SHARED_LINKER_FLAGS}")
endif()
if(DEFINED CONAN_EXE_LINKER_FLAGS)
string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${CONAN_EXE_LINKER_FLAGS}")
endif()
if(DEFINED CONAN_OBJCXX_FLAGS)
string(APPEND CMAKE_OBJCXX_FLAGS_INIT " ${CONAN_OBJCXX_FLAGS}")
endif()
if(DEFINED CONAN_OBJC_FLAGS)
string(APPEND CMAKE_OBJC_FLAGS_INIT " ${CONAN_OBJC_FLAGS}")
endif()
########## 'extra_variables' block #############
# Definition of extra CMake variables from tools.cmake.cmaketoolchain:extra_variables
########## 'try_compile' block #############
# Blocks after this one will not be added when running CMake try/checks
get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
if(_CMAKE_IN_TRY_COMPILE)
message(STATUS "Running toolchain IN_TRY_COMPILE")
return()
endif()
########## 'find_paths' block #############
# Define paths to find packages, programs, libraries, etc.
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/conan_cmakedeps_paths.cmake")
message(STATUS "Conan toolchain: Including CMakeDeps generated conan_cmakedeps_paths.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/conan_cmakedeps_paths.cmake")
else()
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
# Definition of CMAKE_MODULE_PATH
# the generators folder (where conan generates files, like this toolchain)
list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
# Definition of CMAKE_PREFIX_PATH, CMAKE_XXXXX_PATH
# The Conan local "generators" folder, where this toolchain is saved.
list(PREPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR} )
list(PREPEND CMAKE_LIBRARY_PATH "/home/erris/.conan2/p/b/imguic69fe98538919/p/lib" "/home/erris/.conan2/p/b/spdlof53067f4b30d1/p/lib" "/home/erris/.conan2/p/b/fmt5642fd8dce3e5/p/lib")
list(PREPEND CMAKE_INCLUDE_PATH "/home/erris/.conan2/p/b/imguic69fe98538919/p/include" "/home/erris/.conan2/p/b/spdlof53067f4b30d1/p/include" "/home/erris/.conan2/p/b/fmt5642fd8dce3e5/p/include")
set(CONAN_RUNTIME_LIB_DIRS "/home/erris/.conan2/p/b/imguic69fe98538919/p/lib" "/home/erris/.conan2/p/b/spdlof53067f4b30d1/p/lib" "/home/erris/.conan2/p/b/fmt5642fd8dce3e5/p/lib" )
endif()
########## 'pkg_config' block #############
# Define pkg-config from 'tools.gnu:pkg_config' executable and paths
if (DEFINED ENV{PKG_CONFIG_PATH})
set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_LIST_DIR}:$ENV{PKG_CONFIG_PATH}")
else()
set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_LIST_DIR}:")
endif()
########## 'rpath' block #############
# Defining CMAKE_SKIP_RPATH
########## 'output_dirs' block #############
# Definition of CMAKE_INSTALL_XXX folders
set(CMAKE_INSTALL_BINDIR "bin")
set(CMAKE_INSTALL_SBINDIR "bin")
set(CMAKE_INSTALL_LIBEXECDIR "bin")
set(CMAKE_INSTALL_LIBDIR "lib")
set(CMAKE_INSTALL_INCLUDEDIR "include")
set(CMAKE_INSTALL_OLDINCLUDEDIR "include")
########## 'variables' block #############
# Definition of CMake variables from CMakeToolchain.variables values
# Variables
# Variables per configuration
########## 'preprocessor' block #############
# Preprocessor definitions from CMakeToolchain.preprocessor_definitions values
# Preprocessor definitions per configuration
if(CMAKE_POLICY_DEFAULT_CMP0091) # Avoid unused and not-initialized warnings
endif()

View File

@@ -1 +0,0 @@
. "/home/erris/projects/open_engine/application/build/conanbuildenv-x86_64.sh"

View File

@@ -1,14 +0,0 @@
script_folder="/home/erris/projects/open_engine/application/build"
echo "echo Restoring environment" > "$script_folder/deactivate_conanbuildenv-x86_64.sh"
for v in
do
is_defined="true"
value=$(printenv $v) || is_defined="" || true
if [ -n "$value" ] || [ -n "$is_defined" ]
then
echo export "$v='$value'" >> "$script_folder/deactivate_conanbuildenv-x86_64.sh"
else
echo unset $v >> "$script_folder/deactivate_conanbuildenv-x86_64.sh"
fi
done

View File

@@ -1,7 +0,0 @@
message(STATUS "Conan: Using CMakeDeps conandeps_legacy.cmake aggregator via include()")
message(STATUS "Conan: It is recommended to use explicit find_package() per dependency instead")
find_package(imgui)
find_package(spdlog)
set(CONANDEPS_LEGACY imgui::imgui spdlog::spdlog )

View File

@@ -1 +0,0 @@
. "/home/erris/projects/open_engine/application/build/conanrunenv-x86_64.sh"

View File

@@ -1,14 +0,0 @@
script_folder="/home/erris/projects/open_engine/application/build"
echo "echo Restoring environment" > "$script_folder/deactivate_conanrunenv-x86_64.sh"
for v in
do
is_defined="true"
value=$(printenv $v) || is_defined="" || true
if [ -n "$value" ] || [ -n "$is_defined" ]
then
echo export "$v='$value'" >> "$script_folder/deactivate_conanrunenv-x86_64.sh"
else
echo unset $v >> "$script_folder/deactivate_conanrunenv-x86_64.sh"
fi
done

View File

@@ -1 +0,0 @@
. "/home/erris/projects/open_engine/application/build/deactivate_conanbuildenv-x86_64.sh"

View File

@@ -1 +0,0 @@
. "/home/erris/projects/open_engine/application/build/deactivate_conanrunenv-x86_64.sh"

View File

@@ -1,103 +0,0 @@
# Avoid multiple calls to find_package to append duplicated properties to the targets
include_guard()########### VARIABLES #######################################################################
#############################################################################################
set(fmt_FRAMEWORKS_FOUND_NONE "") # Will be filled later
conan_find_apple_frameworks(fmt_FRAMEWORKS_FOUND_NONE "${fmt_FRAMEWORKS_NONE}" "${fmt_FRAMEWORK_DIRS_NONE}")
set(fmt_LIBRARIES_TARGETS "") # Will be filled later
######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET fmt_DEPS_TARGET)
add_library(fmt_DEPS_TARGET INTERFACE IMPORTED)
endif()
set_property(TARGET fmt_DEPS_TARGET
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:None>:${fmt_FRAMEWORKS_FOUND_NONE}>
$<$<CONFIG:None>:${fmt_SYSTEM_LIBS_NONE}>
$<$<CONFIG:None>:>)
####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the
####### fmt_DEPS_TARGET to all of them
conan_package_library_targets("${fmt_LIBS_NONE}" # libraries
"${fmt_LIB_DIRS_NONE}" # package_libdir
"${fmt_BIN_DIRS_NONE}" # package_bindir
"${fmt_LIBRARY_TYPE_NONE}"
"${fmt_IS_HOST_WINDOWS_NONE}"
fmt_DEPS_TARGET
fmt_LIBRARIES_TARGETS # out_libraries_targets
"_NONE"
"fmt" # package_name
"${fmt_NO_SONAME_MODE_NONE}") # soname
# FIXME: What is the result of this for multi-config? All configs adding themselves to path?
set(CMAKE_MODULE_PATH ${fmt_BUILD_DIRS_NONE} ${CMAKE_MODULE_PATH})
########## COMPONENTS TARGET PROPERTIES None ########################################
########## COMPONENT fmt::fmt #############
set(fmt_fmt_fmt_FRAMEWORKS_FOUND_NONE "")
conan_find_apple_frameworks(fmt_fmt_fmt_FRAMEWORKS_FOUND_NONE "${fmt_fmt_fmt_FRAMEWORKS_NONE}" "${fmt_fmt_fmt_FRAMEWORK_DIRS_NONE}")
set(fmt_fmt_fmt_LIBRARIES_TARGETS "")
######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET fmt_fmt_fmt_DEPS_TARGET)
add_library(fmt_fmt_fmt_DEPS_TARGET INTERFACE IMPORTED)
endif()
set_property(TARGET fmt_fmt_fmt_DEPS_TARGET
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:None>:${fmt_fmt_fmt_FRAMEWORKS_FOUND_NONE}>
$<$<CONFIG:None>:${fmt_fmt_fmt_SYSTEM_LIBS_NONE}>
$<$<CONFIG:None>:${fmt_fmt_fmt_DEPENDENCIES_NONE}>
)
####### Find the libraries declared in cpp_info.component["xxx"].libs,
####### create an IMPORTED target for each one and link the 'fmt_fmt_fmt_DEPS_TARGET' to all of them
conan_package_library_targets("${fmt_fmt_fmt_LIBS_NONE}"
"${fmt_fmt_fmt_LIB_DIRS_NONE}"
"${fmt_fmt_fmt_BIN_DIRS_NONE}" # package_bindir
"${fmt_fmt_fmt_LIBRARY_TYPE_NONE}"
"${fmt_fmt_fmt_IS_HOST_WINDOWS_NONE}"
fmt_fmt_fmt_DEPS_TARGET
fmt_fmt_fmt_LIBRARIES_TARGETS
"_NONE"
"fmt_fmt_fmt"
"${fmt_fmt_fmt_NO_SONAME_MODE_NONE}")
########## TARGET PROPERTIES #####################################
set_property(TARGET fmt::fmt
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:None>:${fmt_fmt_fmt_OBJECTS_NONE}>
$<$<CONFIG:None>:${fmt_fmt_fmt_LIBRARIES_TARGETS}>
)
if("${fmt_fmt_fmt_LIBS_NONE}" STREQUAL "")
# If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
# linked to the imported targets and we need to do it to the global target
set_property(TARGET fmt::fmt
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
fmt_fmt_fmt_DEPS_TARGET)
endif()
set_property(TARGET fmt::fmt APPEND PROPERTY INTERFACE_LINK_OPTIONS
$<$<CONFIG:None>:${fmt_fmt_fmt_LINKER_FLAGS_NONE}>)
set_property(TARGET fmt::fmt APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<$<CONFIG:None>:${fmt_fmt_fmt_INCLUDE_DIRS_NONE}>)
set_property(TARGET fmt::fmt APPEND PROPERTY INTERFACE_LINK_DIRECTORIES
$<$<CONFIG:None>:${fmt_fmt_fmt_LIB_DIRS_NONE}>)
set_property(TARGET fmt::fmt APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS
$<$<CONFIG:None>:${fmt_fmt_fmt_COMPILE_DEFINITIONS_NONE}>)
set_property(TARGET fmt::fmt APPEND PROPERTY INTERFACE_COMPILE_OPTIONS
$<$<CONFIG:None>:${fmt_fmt_fmt_COMPILE_OPTIONS_NONE}>)
########## AGGREGATED GLOBAL TARGET WITH THE COMPONENTS #####################
set_property(TARGET fmt::fmt APPEND PROPERTY INTERFACE_LINK_LIBRARIES fmt::fmt)
########## For the modules (FindXXX)
set(fmt_LIBRARIES_NONE fmt::fmt)

View File

@@ -1,11 +0,0 @@
set(PACKAGE_VERSION "12.0.0")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

View File

@@ -1,41 +0,0 @@
########## MACROS ###########################################################################
#############################################################################################
# Requires CMake > 3.15
if(${CMAKE_VERSION} VERSION_LESS "3.15")
message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15")
endif()
if(fmt_FIND_QUIETLY)
set(fmt_MESSAGE_MODE VERBOSE)
else()
set(fmt_MESSAGE_MODE STATUS)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/fmtTargets.cmake)
include(CMakeFindDependencyMacro)
check_build_type_defined()
foreach(_DEPENDENCY ${fmt_FIND_DEPENDENCY_NAMES} )
# Check that we have not already called a find_package with the transitive dependency
if(NOT ${_DEPENDENCY}_FOUND)
find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE})
endif()
endforeach()
set(fmt_VERSION_STRING "12.0.0")
set(fmt_INCLUDE_DIRS ${fmt_INCLUDE_DIRS_NONE} )
set(fmt_INCLUDE_DIR ${fmt_INCLUDE_DIRS_NONE} )
set(fmt_LIBRARIES ${fmt_LIBRARIES_NONE} )
set(fmt_DEFINITIONS ${fmt_DEFINITIONS_NONE} )
# Only the last installed configuration BUILD_MODULES are included to avoid the collision
foreach(_BUILD_MODULE ${fmt_BUILD_MODULES_PATHS_NONE} )
message(${fmt_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'")
include(${_BUILD_MODULE})
endforeach()

View File

@@ -1,81 +0,0 @@
########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG #####################
#############################################################################################
list(APPEND fmt_COMPONENT_NAMES fmt::fmt)
list(REMOVE_DUPLICATES fmt_COMPONENT_NAMES)
if(DEFINED fmt_FIND_DEPENDENCY_NAMES)
list(APPEND fmt_FIND_DEPENDENCY_NAMES )
list(REMOVE_DUPLICATES fmt_FIND_DEPENDENCY_NAMES)
else()
set(fmt_FIND_DEPENDENCY_NAMES )
endif()
########### VARIABLES #######################################################################
#############################################################################################
set(fmt_PACKAGE_FOLDER_NONE "/home/erris/.conan2/p/b/fmt5642fd8dce3e5/p")
set(fmt_BUILD_MODULES_PATHS_NONE )
set(fmt_INCLUDE_DIRS_NONE "${fmt_PACKAGE_FOLDER_NONE}/include")
set(fmt_RES_DIRS_NONE )
set(fmt_DEFINITIONS_NONE )
set(fmt_SHARED_LINK_FLAGS_NONE )
set(fmt_EXE_LINK_FLAGS_NONE )
set(fmt_OBJECTS_NONE )
set(fmt_COMPILE_DEFINITIONS_NONE )
set(fmt_COMPILE_OPTIONS_C_NONE )
set(fmt_COMPILE_OPTIONS_CXX_NONE )
set(fmt_LIB_DIRS_NONE "${fmt_PACKAGE_FOLDER_NONE}/lib")
set(fmt_BIN_DIRS_NONE )
set(fmt_LIBRARY_TYPE_NONE STATIC)
set(fmt_IS_HOST_WINDOWS_NONE 0)
set(fmt_LIBS_NONE fmt)
set(fmt_SYSTEM_LIBS_NONE m)
set(fmt_FRAMEWORK_DIRS_NONE )
set(fmt_FRAMEWORKS_NONE )
set(fmt_BUILD_DIRS_NONE )
set(fmt_NO_SONAME_MODE_NONE FALSE)
# COMPOUND VARIABLES
set(fmt_COMPILE_OPTIONS_NONE
"$<$<COMPILE_LANGUAGE:CXX>:${fmt_COMPILE_OPTIONS_CXX_NONE}>"
"$<$<COMPILE_LANGUAGE:C>:${fmt_COMPILE_OPTIONS_C_NONE}>")
set(fmt_LINKER_FLAGS_NONE
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:${fmt_SHARED_LINK_FLAGS_NONE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:${fmt_SHARED_LINK_FLAGS_NONE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:${fmt_EXE_LINK_FLAGS_NONE}>")
set(fmt_COMPONENTS_NONE fmt::fmt)
########### COMPONENT fmt::fmt VARIABLES ############################################
set(fmt_fmt_fmt_INCLUDE_DIRS_NONE "${fmt_PACKAGE_FOLDER_NONE}/include")
set(fmt_fmt_fmt_LIB_DIRS_NONE "${fmt_PACKAGE_FOLDER_NONE}/lib")
set(fmt_fmt_fmt_BIN_DIRS_NONE )
set(fmt_fmt_fmt_LIBRARY_TYPE_NONE STATIC)
set(fmt_fmt_fmt_IS_HOST_WINDOWS_NONE 0)
set(fmt_fmt_fmt_RES_DIRS_NONE )
set(fmt_fmt_fmt_DEFINITIONS_NONE )
set(fmt_fmt_fmt_OBJECTS_NONE )
set(fmt_fmt_fmt_COMPILE_DEFINITIONS_NONE )
set(fmt_fmt_fmt_COMPILE_OPTIONS_C_NONE "")
set(fmt_fmt_fmt_COMPILE_OPTIONS_CXX_NONE "")
set(fmt_fmt_fmt_LIBS_NONE fmt)
set(fmt_fmt_fmt_SYSTEM_LIBS_NONE m)
set(fmt_fmt_fmt_FRAMEWORK_DIRS_NONE )
set(fmt_fmt_fmt_FRAMEWORKS_NONE )
set(fmt_fmt_fmt_DEPENDENCIES_NONE )
set(fmt_fmt_fmt_SHARED_LINK_FLAGS_NONE )
set(fmt_fmt_fmt_EXE_LINK_FLAGS_NONE )
set(fmt_fmt_fmt_NO_SONAME_MODE_NONE FALSE)
# COMPOUND VARIABLES
set(fmt_fmt_fmt_LINKER_FLAGS_NONE
$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:${fmt_fmt_fmt_SHARED_LINK_FLAGS_NONE}>
$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:${fmt_fmt_fmt_SHARED_LINK_FLAGS_NONE}>
$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:${fmt_fmt_fmt_EXE_LINK_FLAGS_NONE}>
)
set(fmt_fmt_fmt_COMPILE_OPTIONS_NONE
"$<$<COMPILE_LANGUAGE:CXX>:${fmt_fmt_fmt_COMPILE_OPTIONS_CXX_NONE}>"
"$<$<COMPILE_LANGUAGE:C>:${fmt_fmt_fmt_COMPILE_OPTIONS_C_NONE}>")

View File

@@ -1,25 +0,0 @@
# Load the debug and release variables
file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/fmt-*-data.cmake")
foreach(f ${DATA_FILES})
include(${f})
endforeach()
# Create the targets for all the components
foreach(_COMPONENT ${fmt_COMPONENT_NAMES} )
if(NOT TARGET ${_COMPONENT})
add_library(${_COMPONENT} INTERFACE IMPORTED)
message(${fmt_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'")
endif()
endforeach()
if(NOT TARGET fmt::fmt)
add_library(fmt::fmt INTERFACE IMPORTED)
message(${fmt_MESSAGE_MODE} "Conan: Target declared 'fmt::fmt'")
endif()
# Load the debug and release library finders
file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/fmt-Target-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()

View File

@@ -1,71 +0,0 @@
# Avoid multiple calls to find_package to append duplicated properties to the targets
include_guard()########### VARIABLES #######################################################################
#############################################################################################
set(imgui_FRAMEWORKS_FOUND_NONE "") # Will be filled later
conan_find_apple_frameworks(imgui_FRAMEWORKS_FOUND_NONE "${imgui_FRAMEWORKS_NONE}" "${imgui_FRAMEWORK_DIRS_NONE}")
set(imgui_LIBRARIES_TARGETS "") # Will be filled later
######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET imgui_DEPS_TARGET)
add_library(imgui_DEPS_TARGET INTERFACE IMPORTED)
endif()
set_property(TARGET imgui_DEPS_TARGET
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:None>:${imgui_FRAMEWORKS_FOUND_NONE}>
$<$<CONFIG:None>:${imgui_SYSTEM_LIBS_NONE}>
$<$<CONFIG:None>:>)
####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the
####### imgui_DEPS_TARGET to all of them
conan_package_library_targets("${imgui_LIBS_NONE}" # libraries
"${imgui_LIB_DIRS_NONE}" # package_libdir
"${imgui_BIN_DIRS_NONE}" # package_bindir
"${imgui_LIBRARY_TYPE_NONE}"
"${imgui_IS_HOST_WINDOWS_NONE}"
imgui_DEPS_TARGET
imgui_LIBRARIES_TARGETS # out_libraries_targets
"_NONE"
"imgui" # package_name
"${imgui_NO_SONAME_MODE_NONE}") # soname
# FIXME: What is the result of this for multi-config? All configs adding themselves to path?
set(CMAKE_MODULE_PATH ${imgui_BUILD_DIRS_NONE} ${CMAKE_MODULE_PATH})
########## GLOBAL TARGET PROPERTIES None ########################################
set_property(TARGET imgui::imgui
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:None>:${imgui_OBJECTS_NONE}>
$<$<CONFIG:None>:${imgui_LIBRARIES_TARGETS}>
)
if("${imgui_LIBS_NONE}" STREQUAL "")
# If the package is not declaring any "cpp_info.libs" the package deps, system libs,
# frameworks etc are not linked to the imported targets and we need to do it to the
# global target
set_property(TARGET imgui::imgui
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
imgui_DEPS_TARGET)
endif()
set_property(TARGET imgui::imgui
APPEND PROPERTY INTERFACE_LINK_OPTIONS
$<$<CONFIG:None>:${imgui_LINKER_FLAGS_NONE}>)
set_property(TARGET imgui::imgui
APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<$<CONFIG:None>:${imgui_INCLUDE_DIRS_NONE}>)
# Necessary to find LINK shared libraries in Linux
set_property(TARGET imgui::imgui
APPEND PROPERTY INTERFACE_LINK_DIRECTORIES
$<$<CONFIG:None>:${imgui_LIB_DIRS_NONE}>)
set_property(TARGET imgui::imgui
APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS
$<$<CONFIG:None>:${imgui_COMPILE_DEFINITIONS_NONE}>)
set_property(TARGET imgui::imgui
APPEND PROPERTY INTERFACE_COMPILE_OPTIONS
$<$<CONFIG:None>:${imgui_COMPILE_OPTIONS_NONE}>)
########## For the modules (FindXXX)
set(imgui_LIBRARIES_NONE imgui::imgui)

View File

@@ -1,21 +0,0 @@
set(PACKAGE_VERSION "1.92.5-docking")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
if("1.92.5-docking" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1})
else()
set(CVF_VERSION_MAJOR "1.92.5-docking")
endif()
if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

View File

@@ -1,41 +0,0 @@
########## MACROS ###########################################################################
#############################################################################################
# Requires CMake > 3.15
if(${CMAKE_VERSION} VERSION_LESS "3.15")
message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15")
endif()
if(imgui_FIND_QUIETLY)
set(imgui_MESSAGE_MODE VERBOSE)
else()
set(imgui_MESSAGE_MODE STATUS)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/imguiTargets.cmake)
include(CMakeFindDependencyMacro)
check_build_type_defined()
foreach(_DEPENDENCY ${imgui_FIND_DEPENDENCY_NAMES} )
# Check that we have not already called a find_package with the transitive dependency
if(NOT ${_DEPENDENCY}_FOUND)
find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE})
endif()
endforeach()
set(imgui_VERSION_STRING "1.92.5-docking")
set(imgui_INCLUDE_DIRS ${imgui_INCLUDE_DIRS_NONE} )
set(imgui_INCLUDE_DIR ${imgui_INCLUDE_DIRS_NONE} )
set(imgui_LIBRARIES ${imgui_LIBRARIES_NONE} )
set(imgui_DEFINITIONS ${imgui_DEFINITIONS_NONE} )
# Only the last installed configuration BUILD_MODULES are included to avoid the collision
foreach(_BUILD_MODULE ${imgui_BUILD_MODULES_PATHS_NONE} )
message(${imgui_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'")
include(${_BUILD_MODULE})
endforeach()

View File

@@ -1,49 +0,0 @@
########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG #####################
#############################################################################################
set(imgui_COMPONENT_NAMES "")
if(DEFINED imgui_FIND_DEPENDENCY_NAMES)
list(APPEND imgui_FIND_DEPENDENCY_NAMES )
list(REMOVE_DUPLICATES imgui_FIND_DEPENDENCY_NAMES)
else()
set(imgui_FIND_DEPENDENCY_NAMES )
endif()
########### VARIABLES #######################################################################
#############################################################################################
set(imgui_PACKAGE_FOLDER_NONE "/home/erris/.conan2/p/b/imguic69fe98538919/p")
set(imgui_BUILD_MODULES_PATHS_NONE )
set(imgui_INCLUDE_DIRS_NONE "${imgui_PACKAGE_FOLDER_NONE}/include")
set(imgui_RES_DIRS_NONE )
set(imgui_DEFINITIONS_NONE )
set(imgui_SHARED_LINK_FLAGS_NONE )
set(imgui_EXE_LINK_FLAGS_NONE )
set(imgui_OBJECTS_NONE )
set(imgui_COMPILE_DEFINITIONS_NONE )
set(imgui_COMPILE_OPTIONS_C_NONE )
set(imgui_COMPILE_OPTIONS_CXX_NONE )
set(imgui_LIB_DIRS_NONE "${imgui_PACKAGE_FOLDER_NONE}/lib")
set(imgui_BIN_DIRS_NONE )
set(imgui_LIBRARY_TYPE_NONE STATIC)
set(imgui_IS_HOST_WINDOWS_NONE 0)
set(imgui_LIBS_NONE imgui)
set(imgui_SYSTEM_LIBS_NONE m)
set(imgui_FRAMEWORK_DIRS_NONE )
set(imgui_FRAMEWORKS_NONE )
set(imgui_BUILD_DIRS_NONE )
set(imgui_NO_SONAME_MODE_NONE FALSE)
# COMPOUND VARIABLES
set(imgui_COMPILE_OPTIONS_NONE
"$<$<COMPILE_LANGUAGE:CXX>:${imgui_COMPILE_OPTIONS_CXX_NONE}>"
"$<$<COMPILE_LANGUAGE:C>:${imgui_COMPILE_OPTIONS_C_NONE}>")
set(imgui_LINKER_FLAGS_NONE
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:${imgui_SHARED_LINK_FLAGS_NONE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:${imgui_SHARED_LINK_FLAGS_NONE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:${imgui_EXE_LINK_FLAGS_NONE}>")
set(imgui_COMPONENTS_NONE )

View File

@@ -1,25 +0,0 @@
# Load the debug and release variables
file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/imgui-*-data.cmake")
foreach(f ${DATA_FILES})
include(${f})
endforeach()
# Create the targets for all the components
foreach(_COMPONENT ${imgui_COMPONENT_NAMES} )
if(NOT TARGET ${_COMPONENT})
add_library(${_COMPONENT} INTERFACE IMPORTED)
message(${imgui_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'")
endif()
endforeach()
if(NOT TARGET imgui::imgui)
add_library(imgui::imgui INTERFACE IMPORTED)
message(${imgui_MESSAGE_MODE} "Conan: Target declared 'imgui::imgui'")
endif()
# Load the debug and release library finders
file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/imgui-Target-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()

View File

@@ -1,103 +0,0 @@
# Avoid multiple calls to find_package to append duplicated properties to the targets
include_guard()########### VARIABLES #######################################################################
#############################################################################################
set(spdlog_FRAMEWORKS_FOUND_NONE "") # Will be filled later
conan_find_apple_frameworks(spdlog_FRAMEWORKS_FOUND_NONE "${spdlog_FRAMEWORKS_NONE}" "${spdlog_FRAMEWORK_DIRS_NONE}")
set(spdlog_LIBRARIES_TARGETS "") # Will be filled later
######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET spdlog_DEPS_TARGET)
add_library(spdlog_DEPS_TARGET INTERFACE IMPORTED)
endif()
set_property(TARGET spdlog_DEPS_TARGET
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:None>:${spdlog_FRAMEWORKS_FOUND_NONE}>
$<$<CONFIG:None>:${spdlog_SYSTEM_LIBS_NONE}>
$<$<CONFIG:None>:fmt::fmt>)
####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the
####### spdlog_DEPS_TARGET to all of them
conan_package_library_targets("${spdlog_LIBS_NONE}" # libraries
"${spdlog_LIB_DIRS_NONE}" # package_libdir
"${spdlog_BIN_DIRS_NONE}" # package_bindir
"${spdlog_LIBRARY_TYPE_NONE}"
"${spdlog_IS_HOST_WINDOWS_NONE}"
spdlog_DEPS_TARGET
spdlog_LIBRARIES_TARGETS # out_libraries_targets
"_NONE"
"spdlog" # package_name
"${spdlog_NO_SONAME_MODE_NONE}") # soname
# FIXME: What is the result of this for multi-config? All configs adding themselves to path?
set(CMAKE_MODULE_PATH ${spdlog_BUILD_DIRS_NONE} ${CMAKE_MODULE_PATH})
########## COMPONENTS TARGET PROPERTIES None ########################################
########## COMPONENT spdlog::spdlog #############
set(spdlog_spdlog_spdlog_FRAMEWORKS_FOUND_NONE "")
conan_find_apple_frameworks(spdlog_spdlog_spdlog_FRAMEWORKS_FOUND_NONE "${spdlog_spdlog_spdlog_FRAMEWORKS_NONE}" "${spdlog_spdlog_spdlog_FRAMEWORK_DIRS_NONE}")
set(spdlog_spdlog_spdlog_LIBRARIES_TARGETS "")
######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET spdlog_spdlog_spdlog_DEPS_TARGET)
add_library(spdlog_spdlog_spdlog_DEPS_TARGET INTERFACE IMPORTED)
endif()
set_property(TARGET spdlog_spdlog_spdlog_DEPS_TARGET
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_FRAMEWORKS_FOUND_NONE}>
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_SYSTEM_LIBS_NONE}>
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_DEPENDENCIES_NONE}>
)
####### Find the libraries declared in cpp_info.component["xxx"].libs,
####### create an IMPORTED target for each one and link the 'spdlog_spdlog_spdlog_DEPS_TARGET' to all of them
conan_package_library_targets("${spdlog_spdlog_spdlog_LIBS_NONE}"
"${spdlog_spdlog_spdlog_LIB_DIRS_NONE}"
"${spdlog_spdlog_spdlog_BIN_DIRS_NONE}" # package_bindir
"${spdlog_spdlog_spdlog_LIBRARY_TYPE_NONE}"
"${spdlog_spdlog_spdlog_IS_HOST_WINDOWS_NONE}"
spdlog_spdlog_spdlog_DEPS_TARGET
spdlog_spdlog_spdlog_LIBRARIES_TARGETS
"_NONE"
"spdlog_spdlog_spdlog"
"${spdlog_spdlog_spdlog_NO_SONAME_MODE_NONE}")
########## TARGET PROPERTIES #####################################
set_property(TARGET spdlog::spdlog
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_OBJECTS_NONE}>
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_LIBRARIES_TARGETS}>
)
if("${spdlog_spdlog_spdlog_LIBS_NONE}" STREQUAL "")
# If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
# linked to the imported targets and we need to do it to the global target
set_property(TARGET spdlog::spdlog
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
spdlog_spdlog_spdlog_DEPS_TARGET)
endif()
set_property(TARGET spdlog::spdlog APPEND PROPERTY INTERFACE_LINK_OPTIONS
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_LINKER_FLAGS_NONE}>)
set_property(TARGET spdlog::spdlog APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_INCLUDE_DIRS_NONE}>)
set_property(TARGET spdlog::spdlog APPEND PROPERTY INTERFACE_LINK_DIRECTORIES
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_LIB_DIRS_NONE}>)
set_property(TARGET spdlog::spdlog APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_COMPILE_DEFINITIONS_NONE}>)
set_property(TARGET spdlog::spdlog APPEND PROPERTY INTERFACE_COMPILE_OPTIONS
$<$<CONFIG:None>:${spdlog_spdlog_spdlog_COMPILE_OPTIONS_NONE}>)
########## AGGREGATED GLOBAL TARGET WITH THE COMPONENTS #####################
set_property(TARGET spdlog::spdlog APPEND PROPERTY INTERFACE_LINK_LIBRARIES spdlog::spdlog)
########## For the modules (FindXXX)
set(spdlog_LIBRARIES_NONE spdlog::spdlog)

View File

@@ -1,21 +0,0 @@
set(PACKAGE_VERSION "1.16.0")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
if("1.16.0" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1})
else()
set(CVF_VERSION_MAJOR "1.16.0")
endif()
if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

View File

@@ -1,41 +0,0 @@
########## MACROS ###########################################################################
#############################################################################################
# Requires CMake > 3.15
if(${CMAKE_VERSION} VERSION_LESS "3.15")
message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15")
endif()
if(spdlog_FIND_QUIETLY)
set(spdlog_MESSAGE_MODE VERBOSE)
else()
set(spdlog_MESSAGE_MODE STATUS)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/spdlogTargets.cmake)
include(CMakeFindDependencyMacro)
check_build_type_defined()
foreach(_DEPENDENCY ${spdlog_FIND_DEPENDENCY_NAMES} )
# Check that we have not already called a find_package with the transitive dependency
if(NOT ${_DEPENDENCY}_FOUND)
find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE})
endif()
endforeach()
set(spdlog_VERSION_STRING "1.16.0")
set(spdlog_INCLUDE_DIRS ${spdlog_INCLUDE_DIRS_NONE} )
set(spdlog_INCLUDE_DIR ${spdlog_INCLUDE_DIRS_NONE} )
set(spdlog_LIBRARIES ${spdlog_LIBRARIES_NONE} )
set(spdlog_DEFINITIONS ${spdlog_DEFINITIONS_NONE} )
# Only the last installed configuration BUILD_MODULES are included to avoid the collision
foreach(_BUILD_MODULE ${spdlog_BUILD_MODULES_PATHS_NONE} )
message(${spdlog_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'")
include(${_BUILD_MODULE})
endforeach()

View File

@@ -1,86 +0,0 @@
########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG #####################
#############################################################################################
list(APPEND spdlog_COMPONENT_NAMES spdlog::spdlog)
list(REMOVE_DUPLICATES spdlog_COMPONENT_NAMES)
if(DEFINED spdlog_FIND_DEPENDENCY_NAMES)
list(APPEND spdlog_FIND_DEPENDENCY_NAMES fmt)
list(REMOVE_DUPLICATES spdlog_FIND_DEPENDENCY_NAMES)
else()
set(spdlog_FIND_DEPENDENCY_NAMES fmt)
endif()
set(fmt_FIND_MODE "NO_MODULE")
########### VARIABLES #######################################################################
#############################################################################################
set(spdlog_PACKAGE_FOLDER_NONE "/home/erris/.conan2/p/b/spdlof53067f4b30d1/p")
set(spdlog_BUILD_MODULES_PATHS_NONE )
set(spdlog_INCLUDE_DIRS_NONE "${spdlog_PACKAGE_FOLDER_NONE}/include")
set(spdlog_RES_DIRS_NONE )
set(spdlog_DEFINITIONS_NONE "-DSPDLOG_FMT_EXTERNAL"
"-DSPDLOG_COMPILED_LIB")
set(spdlog_SHARED_LINK_FLAGS_NONE )
set(spdlog_EXE_LINK_FLAGS_NONE )
set(spdlog_OBJECTS_NONE )
set(spdlog_COMPILE_DEFINITIONS_NONE "SPDLOG_FMT_EXTERNAL"
"SPDLOG_COMPILED_LIB")
set(spdlog_COMPILE_OPTIONS_C_NONE )
set(spdlog_COMPILE_OPTIONS_CXX_NONE )
set(spdlog_LIB_DIRS_NONE "${spdlog_PACKAGE_FOLDER_NONE}/lib")
set(spdlog_BIN_DIRS_NONE )
set(spdlog_LIBRARY_TYPE_NONE STATIC)
set(spdlog_IS_HOST_WINDOWS_NONE 0)
set(spdlog_LIBS_NONE spdlog)
set(spdlog_SYSTEM_LIBS_NONE pthread)
set(spdlog_FRAMEWORK_DIRS_NONE )
set(spdlog_FRAMEWORKS_NONE )
set(spdlog_BUILD_DIRS_NONE )
set(spdlog_NO_SONAME_MODE_NONE FALSE)
# COMPOUND VARIABLES
set(spdlog_COMPILE_OPTIONS_NONE
"$<$<COMPILE_LANGUAGE:CXX>:${spdlog_COMPILE_OPTIONS_CXX_NONE}>"
"$<$<COMPILE_LANGUAGE:C>:${spdlog_COMPILE_OPTIONS_C_NONE}>")
set(spdlog_LINKER_FLAGS_NONE
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:${spdlog_SHARED_LINK_FLAGS_NONE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:${spdlog_SHARED_LINK_FLAGS_NONE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:${spdlog_EXE_LINK_FLAGS_NONE}>")
set(spdlog_COMPONENTS_NONE spdlog::spdlog)
########### COMPONENT spdlog::spdlog VARIABLES ############################################
set(spdlog_spdlog_spdlog_INCLUDE_DIRS_NONE "${spdlog_PACKAGE_FOLDER_NONE}/include")
set(spdlog_spdlog_spdlog_LIB_DIRS_NONE "${spdlog_PACKAGE_FOLDER_NONE}/lib")
set(spdlog_spdlog_spdlog_BIN_DIRS_NONE )
set(spdlog_spdlog_spdlog_LIBRARY_TYPE_NONE STATIC)
set(spdlog_spdlog_spdlog_IS_HOST_WINDOWS_NONE 0)
set(spdlog_spdlog_spdlog_RES_DIRS_NONE )
set(spdlog_spdlog_spdlog_DEFINITIONS_NONE "-DSPDLOG_FMT_EXTERNAL"
"-DSPDLOG_COMPILED_LIB")
set(spdlog_spdlog_spdlog_OBJECTS_NONE )
set(spdlog_spdlog_spdlog_COMPILE_DEFINITIONS_NONE "SPDLOG_FMT_EXTERNAL"
"SPDLOG_COMPILED_LIB")
set(spdlog_spdlog_spdlog_COMPILE_OPTIONS_C_NONE "")
set(spdlog_spdlog_spdlog_COMPILE_OPTIONS_CXX_NONE "")
set(spdlog_spdlog_spdlog_LIBS_NONE spdlog)
set(spdlog_spdlog_spdlog_SYSTEM_LIBS_NONE pthread)
set(spdlog_spdlog_spdlog_FRAMEWORK_DIRS_NONE )
set(spdlog_spdlog_spdlog_FRAMEWORKS_NONE )
set(spdlog_spdlog_spdlog_DEPENDENCIES_NONE fmt::fmt)
set(spdlog_spdlog_spdlog_SHARED_LINK_FLAGS_NONE )
set(spdlog_spdlog_spdlog_EXE_LINK_FLAGS_NONE )
set(spdlog_spdlog_spdlog_NO_SONAME_MODE_NONE FALSE)
# COMPOUND VARIABLES
set(spdlog_spdlog_spdlog_LINKER_FLAGS_NONE
$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:${spdlog_spdlog_spdlog_SHARED_LINK_FLAGS_NONE}>
$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:${spdlog_spdlog_spdlog_SHARED_LINK_FLAGS_NONE}>
$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:${spdlog_spdlog_spdlog_EXE_LINK_FLAGS_NONE}>
)
set(spdlog_spdlog_spdlog_COMPILE_OPTIONS_NONE
"$<$<COMPILE_LANGUAGE:CXX>:${spdlog_spdlog_spdlog_COMPILE_OPTIONS_CXX_NONE}>"
"$<$<COMPILE_LANGUAGE:C>:${spdlog_spdlog_spdlog_COMPILE_OPTIONS_C_NONE}>")

View File

@@ -1,25 +0,0 @@
# Load the debug and release variables
file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/spdlog-*-data.cmake")
foreach(f ${DATA_FILES})
include(${f})
endforeach()
# Create the targets for all the components
foreach(_COMPONENT ${spdlog_COMPONENT_NAMES} )
if(NOT TARGET ${_COMPONENT})
add_library(${_COMPONENT} INTERFACE IMPORTED)
message(${spdlog_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'")
endif()
endforeach()
if(NOT TARGET spdlog::spdlog)
add_library(spdlog::spdlog INTERFACE IMPORTED)
message(${spdlog_MESSAGE_MODE} "Conan: Target declared 'spdlog::spdlog'")
endif()
# Load the debug and release library finders
file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/spdlog-Target-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()

View File

@@ -1,8 +0,0 @@
[
{
"directory": "/home/erris/projects/open_engine/application/build",
"command": "/usr/bin/clang++ -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/erris/projects/open_engine/application/include -m64 -stdlib=libstdc++ -g -std=c++20 @CMakeFiles/sand_box.dir/src/sandbox.cpp.o.modmap -o CMakeFiles/sand_box.dir/src/sandbox.cpp.o -c /home/erris/projects/open_engine/application/src/sandbox.cpp",
"file": "/home/erris/projects/open_engine/application/src/sandbox.cpp",
"output": "/home/erris/projects/open_engine/application/build/CMakeFiles/sand_box.dir/src/sandbox.cpp.o"
}
]

View File

@@ -1,7 +0,0 @@
[requires]
imgui/1.92.5-docking
spdlog/1.16.0
[generators]
CMakeDeps
CMakeToolchain

View File

@@ -1,77 +0,0 @@
[Window][Debug##Default]
Pos=60,60
Size=166,153
Collapsed=0
[Window][Dear ImGui Demo]
Pos=899,10
Size=358,368
Collapsed=0
[Window][Dear ImGui Style Editor]
Pos=136,23
Size=353,682
Collapsed=0
[Window][Example: Log]
Pos=431,613
Size=409,223
Collapsed=0
DockId=0x00000006,0
[Window][My First Tool]
Pos=181,56
Size=388,464
Collapsed=0
[Window][DockSpace Demo]
Size=1259,688
Collapsed=0
[Window][Dear ImGui Debug Log]
Pos=1349,371
Size=644,567
Collapsed=0
[Window][Example: Console]
Pos=0,19
Size=519,669
Collapsed=0
DockId=0x00000003,0
[Window][Example: Assets Browser]
Pos=842,613
Size=326,223
Collapsed=0
DockId=0x00000009,0
[Window][Example: Property editor]
Pos=0,19
Size=429,817
Collapsed=0
DockId=0x00000005,0
[Window][Example: Property editor/##tree_37EC733C]
IsChild=1
Size=300,782
[Table][0xB6880529,2]
RefScale=13
Column 0 Sort=0v
[Table][0x2048C668,2]
RefScale=13
Column 0 Width=4
Column 1 Weight=2.0000
[Docking][Data]
DockSpace ID=0xC0DFADC4 Pos=0,19 Size=1259,669 Split=X Selected=0x5E5F7166
DockNode ID=0x00000005 Parent=0xC0DFADC4 SizeRef=429,817 Selected=0x256ED220
DockNode ID=0x0000000A Parent=0xC0DFADC4 SizeRef=1143,817 Split=X
DockNode ID=0x00000003 Parent=0x0000000A SizeRef=519,669 Selected=0x1BCA3180
DockNode ID=0x00000004 Parent=0x0000000A SizeRef=751,669 Split=Y
DockNode ID=0x00000007 Parent=0x00000004 SizeRef=860,592 CentralNode=1
DockNode ID=0x00000008 Parent=0x00000004 SizeRef=860,223 Split=X Selected=0x38CCB771
DockNode ID=0x00000006 Parent=0x00000008 SizeRef=649,223 Selected=0x38CCB771
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=517,223 Selected=0xD2C213DD

View File

@@ -1,286 +0,0 @@
let SessionLoad = 1
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~/projects/open_engine
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
let s:shortmess_save = &shortmess
if &shortmess =~ 'A'
set shortmess=aoOA
else
set shortmess=aoO
endif
badd +1 ~/projects/open_engine
badd +4 ~/projects/open_engine/.clangd
badd +4 ~/projects/open_engine/open_engine/src/open_engine/opengl/opengl_shader.cpp
badd +212 ~/projects/open_engine/application/include/sandbox.hpp
badd +67 ~/projects/open_engine/open_engine/src/open_engine/renderer/shader.cpp
badd +45 ~/projects/open_engine/open_engine/include/open_engine/opengl/opengl_shader.hpp
badd +23 ~/projects/open_engine/open_engine/include/open_engine/input/linux_input.hpp
badd +105 ~/projects/open_engine/open_engine/src/open_engine/input/linux_input.cpp
badd +31 ~/projects/open_engine/open_engine/include/open_engine/input/input_system.hpp
badd +1 ~/projects/open_engine/open_engine/include/open_engine.hpp
badd +29 ~/projects/open_engine/open_engine/include/open_engine/renderer/shader.hpp
badd +3392 ~/projects/open_engine/open_engine/vendor/glad/include/glad/glad.h
badd +3 ~/projects/open_engine/assets/shaders/texture.glsl
badd +39 ~/projects/open_engine/open_engine/include/open_engine/logging.hpp
badd +1 ~/projects/open_engine/open_engine/src/open_engine/application.cpp
badd +1 ~/projects/open_engine/open_engine/include/open_engine/pch.hpp
badd +35 /usr/include/alloca.h
badd +1 ~/projects/open_engine/DAP\ Watches
badd +1 ~/projects/open_engine/DAP\ Stacks
badd +1 ~/projects/open_engine/DAP\ Breakpoints
badd +1 ~/projects/open_engine/DAP\ Scopes
badd +1 ~/projects/open_engine/DAP\ Console
badd +1 ~/projects/open_engine/\[dap-repl-27]
badd +1529 /usr/include/c++/15.2.1/bits/shared_ptr_base.h
badd +40 ~/projects/open_engine/open_engine/CMakeLists.txt
badd +1 ~/projects/open_engine/.envrc
badd +1 ~/projects/open_engine/.project_config
badd +17 ~/projects/open_engine/imgui.ini
badd +1 ~/projects/open_engine/compile_commands.json
badd +28 ~/projects/open_engine/open_engine/include/open_engine/core.hpp
badd +96 ~/projects/open_engine/open_engine/src/open_engine/window/linux_window.cpp
badd +36 ~/projects/open_engine/open_engine/include/open_engine/window/window.hpp
badd +609 /usr/include/GLFW/glfw3.h
badd +650 ~/.conan2/p/b/imguic69fe98538919/p/include/imgui.h
argglobal
%argdel
$argadd ~/projects/open_engine
set stal=2
tabnew +setlocal\ bufhidden=wipe
tabnew +setlocal\ bufhidden=wipe
tabnew +setlocal\ bufhidden=wipe
tabrewind
edit ~/projects/open_engine/open_engine/include/open_engine/input/input_system.hpp
let s:save_splitbelow = &splitbelow
let s:save_splitright = &splitright
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
wincmd _ | wincmd |
split
1wincmd k
wincmd w
let &splitbelow = s:save_splitbelow
let &splitright = s:save_splitright
wincmd t
let s:save_winminheight = &winminheight
let s:save_winminwidth = &winminwidth
set winminheight=0
set winheight=1
set winminwidth=0
set winwidth=1
exe 'vert 1resize ' . ((&columns * 124 + 127) / 255)
exe '2resize ' . ((&lines * 29 + 31) / 62)
exe 'vert 2resize ' . ((&columns * 2 + 127) / 255)
exe '3resize ' . ((&lines * 29 + 31) / 62)
exe 'vert 3resize ' . ((&columns * 2 + 127) / 255)
argglobal
balt ~/projects/open_engine/open_engine/src/open_engine/input/linux_input.cpp
setlocal foldmethod=manual
setlocal foldexpr=0
setlocal foldmarker={{{,}}}
setlocal foldignore=#
setlocal foldlevel=0
setlocal foldminlines=1
setlocal foldnestmax=20
setlocal foldenable
silent! normal! zE
let &fdl = &fdl
let s:l = 28 - ((27 * winheight(0) + 29) / 59)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 28
normal! 062|
lcd ~/projects/open_engine
wincmd w
argglobal
if bufexists(fnamemodify("~/projects/open_engine/open_engine/src/open_engine/input/linux_input.cpp", ":p")) | buffer ~/projects/open_engine/open_engine/src/open_engine/input/linux_input.cpp | else | edit ~/projects/open_engine/open_engine/src/open_engine/input/linux_input.cpp | endif
if &buftype ==# 'terminal'
silent file ~/projects/open_engine/open_engine/src/open_engine/input/linux_input.cpp
endif
balt /usr/include/GLFW/glfw3.h
setlocal foldmethod=manual
setlocal foldexpr=0
setlocal foldmarker={{{,}}}
setlocal foldignore=#
setlocal foldlevel=0
setlocal foldminlines=1
setlocal foldnestmax=20
setlocal foldenable
silent! normal! zE
let &fdl = &fdl
let s:l = 105 - ((27 * winheight(0) + 14) / 29)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 105
normal! 05|
lcd ~/projects/open_engine
wincmd w
argglobal
if bufexists(fnamemodify("~/projects/open_engine/open_engine/include/open_engine/input/linux_input.hpp", ":p")) | buffer ~/projects/open_engine/open_engine/include/open_engine/input/linux_input.hpp | else | edit ~/projects/open_engine/open_engine/include/open_engine/input/linux_input.hpp | endif
if &buftype ==# 'terminal'
silent file ~/projects/open_engine/open_engine/include/open_engine/input/linux_input.hpp
endif
balt ~/projects/open_engine/open_engine/include/open_engine/input/input_system.hpp
setlocal foldmethod=manual
setlocal foldexpr=0
setlocal foldmarker={{{,}}}
setlocal foldignore=#
setlocal foldlevel=0
setlocal foldminlines=1
setlocal foldnestmax=20
setlocal foldenable
silent! normal! zE
let &fdl = &fdl
let s:l = 23 - ((18 * winheight(0) + 14) / 29)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 23
normal! 086|
lcd ~/projects/open_engine
wincmd w
exe 'vert 1resize ' . ((&columns * 124 + 127) / 255)
exe '2resize ' . ((&lines * 29 + 31) / 62)
exe 'vert 2resize ' . ((&columns * 2 + 127) / 255)
exe '3resize ' . ((&lines * 29 + 31) / 62)
exe 'vert 3resize ' . ((&columns * 2 + 127) / 255)
tabnext
edit ~/projects/open_engine/open_engine/src/open_engine/application.cpp
let s:save_splitbelow = &splitbelow
let s:save_splitright = &splitright
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
let &splitbelow = s:save_splitbelow
let &splitright = s:save_splitright
wincmd t
let s:save_winminheight = &winminheight
let s:save_winminwidth = &winminwidth
set winminheight=0
set winheight=1
set winminwidth=0
set winwidth=1
exe 'vert 1resize ' . ((&columns * 126 + 127) / 255)
exe 'vert 2resize ' . ((&columns * 0 + 127) / 255)
argglobal
balt ~/projects/open_engine/open_engine/src/open_engine/window/linux_window.cpp
setlocal foldmethod=manual
setlocal foldexpr=0
setlocal foldmarker={{{,}}}
setlocal foldignore=#
setlocal foldlevel=0
setlocal foldminlines=1
setlocal foldnestmax=20
setlocal foldenable
silent! normal! zE
let &fdl = &fdl
let s:l = 49 - ((33 * winheight(0) + 29) / 59)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 49
normal! 044|
lcd ~/projects/open_engine
wincmd w
argglobal
if bufexists(fnamemodify("~/projects/open_engine/open_engine/src/open_engine/window/linux_window.cpp", ":p")) | buffer ~/projects/open_engine/open_engine/src/open_engine/window/linux_window.cpp | else | edit ~/projects/open_engine/open_engine/src/open_engine/window/linux_window.cpp | endif
if &buftype ==# 'terminal'
silent file ~/projects/open_engine/open_engine/src/open_engine/window/linux_window.cpp
endif
balt ~/projects/open_engine/open_engine/src/open_engine/application.cpp
setlocal foldmethod=manual
setlocal foldexpr=0
setlocal foldmarker={{{,}}}
setlocal foldignore=#
setlocal foldlevel=0
setlocal foldminlines=1
setlocal foldnestmax=20
setlocal foldenable
silent! normal! zE
let &fdl = &fdl
let s:l = 97 - ((29 * winheight(0) + 29) / 59)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 97
normal! 044|
lcd ~/projects/open_engine
wincmd w
exe 'vert 1resize ' . ((&columns * 126 + 127) / 255)
exe 'vert 2resize ' . ((&columns * 0 + 127) / 255)
tabnext
edit ~/projects/open_engine/application/include/sandbox.hpp
wincmd t
let s:save_winminheight = &winminheight
let s:save_winminwidth = &winminwidth
set winminheight=0
set winheight=1
set winminwidth=0
set winwidth=1
argglobal
setlocal foldmethod=manual
setlocal foldexpr=0
setlocal foldmarker={{{,}}}
setlocal foldignore=#
setlocal foldlevel=0
setlocal foldminlines=1
setlocal foldnestmax=20
setlocal foldenable
silent! normal! zE
let &fdl = &fdl
let s:l = 212 - ((29 * winheight(0) + 29) / 59)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 212
normal! 055|
lcd ~/projects/open_engine/application/include
tabnext
edit ~/projects/open_engine/assets/shaders/texture.glsl
argglobal
setlocal foldmethod=manual
setlocal foldexpr=0
setlocal foldmarker={{{,}}}
setlocal foldignore=#
setlocal foldlevel=0
setlocal foldminlines=1
setlocal foldnestmax=20
setlocal foldenable
silent! normal! zE
let &fdl = &fdl
let s:l = 6 - ((5 * winheight(0) + 29) / 59)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 6
normal! 0
lcd ~/projects/open_engine
tabnext 3
set stal=1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20
let &shortmess = s:shortmess_save
let s:sx = expand("<sfile>:p:r")."x.vim"
if filereadable(s:sx)
exe "source " . fnameescape(s:sx)
endif
let &g:so = s:so_save | let &g:siso = s:siso_save
set hlsearch
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :

View File

@@ -1,27 +0,0 @@
#ifndef LAYER_SWITCHER_HPP
#define LAYER_SWITCHER_HPP
#include <open_engine.hpp>
class ControlLayer : public OpenEngine::Layer
{
public:
ControlLayer(OpenEngine::Ref<OpenEngine::Layer> layer);
ControlLayer();
~ControlLayer() = default;
void OnUpdate() override;
void OnEvent(OpenEngine::Event& event) override;
void OnImGuiRender() override;
void OnAttach() override;
void OnDetach() override;
private:
bool SwitchLayer(OpenEngine::KeyPressedEvent& event);
bool SwitchExistingLayer(OpenEngine::KeyPressedEvent& event);
bool StopRunning(OpenEngine::KeyPressedEvent& event);
OpenEngine::Ref<OpenEngine::Layer> active_layer;
};
#endif // LAYER_SWITCHER_HPP

View File

@@ -1,152 +0,0 @@
#ifndef MODDING_HPP
#define MODDING_HPP
#include <dlfcn.h>
#include <open_engine.hpp>
#include <unistd.h>
#include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.0/runtimes/arch-x64/native/nethost.h"
#include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.0/runtimes/arch-x64/native/hostfxr.h"
#include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.0/runtimes/arch-x64/native/coreclr_delegates.h"
class Modding : public OpenEngine::Layer
{
public:
Modding()
: OpenEngine::Layer("modding")
{
};
~Modding()
{
};
void* get_export(void* sample_lib, const char* name) {
// dlsym is the Linux version of GetProcAddress
void* f = dlsym(sample_lib, name);
if (!f) {
OE_ERROR("Failed to find symbol: {} Error: {}", name, dlerror());
}
return f;
};
// Using the nethost library, discover the location of hostfxr and get exports
bool load_hostfxr()
{
// Pre-allocate a large buffer for the path to hostfxr
char_t buffer[250];
size_t buffer_size = sizeof(buffer) / sizeof(char_t);
int rc = get_hostfxr_path(buffer, &buffer_size, nullptr);
if (rc != 0)
return false;
// Load hostfxr and get desired exports
auto* lib = dlopen(buffer, RTLD_NOW);
init_fptr = (hostfxr_initialize_for_runtime_config_fn)get_export(lib, "hostfxr_initialize_for_runtime_config");
get_delegate_fptr = (hostfxr_get_runtime_delegate_fn)get_export(lib, "hostfxr_get_runtime_delegate");
close_fptr = (hostfxr_close_fn)get_export(lib, "hostfxr_close");
return (init_fptr && get_delegate_fptr && close_fptr);
};
load_assembly_and_get_function_pointer_fn get_dotnet_load_assembly(const char_t *config_path)
{
// Load .NET Core
void *load_assembly_and_get_function_pointer = nullptr;
hostfxr_handle cxt = nullptr;
int rc = init_fptr(config_path, nullptr, &cxt);
if (rc != 0 || cxt == nullptr)
{
OE_ERROR("Init failed");
close_fptr(cxt);
return nullptr;
}
// Get the load assembly function pointer
rc = get_delegate_fptr(
cxt,
hdt_load_assembly_and_get_function_pointer,
&load_assembly_and_get_function_pointer);
if (rc != 0 || load_assembly_and_get_function_pointer == nullptr)
OE_ERROR("Get delegate failed");
close_fptr(cxt);
return (load_assembly_and_get_function_pointer_fn)load_assembly_and_get_function_pointer;
}
component_entry_point_fn LoadMethod(const char* method)
{
component_entry_point_fn method_ptr;
int rc = load_assembly_and_get_function_pointer(
dotnet_lib_path,
dotnet_type,
method,
UNMANAGEDCALLERSONLY_METHOD /*delegate_type_name*/,
nullptr,
(void**)&method_ptr);
if (rc != 0) {
OE_ERROR("Failed to load method {}", method);
return nullptr;
}
return method_ptr;
}
void OnAttach() override
{
load_hostfxr();
load_assembly_and_get_function_pointer = get_dotnet_load_assembly("assets/scripts/mod_loader.runtimeconfig.json");
component_entry_point_fn init = LoadMethod("Init");
init(nullptr, 0);
hello = LoadMethod("Hello");
load_mod = LoadMethod("LoadMod");
load_mod(nullptr, 0);
}
void OnDetach() override
{
}
void OnUpdate() override
{
static float time = 0;
time += OpenEngine::Time::DeltaTime();
if (time >= 1) {
hello(nullptr, 0);
time = 0;
}
}
void OnEvent(OpenEngine::Event& event) override
{
//OpenEngine::EventDispatcher dispatcher(event);
//dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(Sandbox2DLayer::StopRunning));
}
void OnImGuiRender() override
{
}
private:
hostfxr_initialize_for_runtime_config_fn init_fptr;
hostfxr_get_runtime_delegate_fn get_delegate_fptr;
hostfxr_close_fn close_fptr;
load_assembly_and_get_function_pointer_fn load_assembly_and_get_function_pointer;
component_entry_point_fn hello = nullptr;
component_entry_point_fn load_mod = nullptr;
const char_t* dotnet_lib_path = "assets/scripts/mod_loader.dll";
const char_t* dotnet_type = "OpenEngine.ModLoader, mod_loader";
const char_t* dotnet_type_method = "Init";
};
#endif // MODDING_HPP

View File

@@ -1,252 +0,0 @@
#ifndef OVERLAY_HPP
#define OVERLAY_HPP
/*
"""
Portions of this software are copyright © 2025 The FreeType
Project (https://freetype.org). All rights reserved.
"""
*/
#include <open_engine.hpp>
#include "shmup.hpp"
#include <glm/ext/matrix_clip_space.hpp>
#include "freetype/fttypes.h"
#include <freetype2/ft2build.h>
#include FT_FREETYPE_H
#include <glad/glad.h>
#include <map>
struct Character {
unsigned int texture_id; // ID handle of the glyph texture
glm::ivec2 size; // Size of glyph
glm::ivec2 bearing; // Offset from baseline to left/top of glyph
FT_Long advance; // Offset to advance to next glyph
};
class Overlay : public OpenEngine::Layer
{
public:
Overlay(OpenEngine::Ref<Shmup>& shmup)
: game_layer(shmup)
{};
~Overlay() {};
void RenderText(std::string text, float x, float y, float scale, glm::vec3 color)
{
// activate corresponding render state
text_shader->Bind();
text_shader->SetVec3("textColor", glm::vec3(color.x, color.y, color.z));
glActiveTexture(GL_TEXTURE0);
glBindVertexArray(VAO);
// iterate through all characters
std::string::const_iterator c;
for (c = text.begin(); c != text.end(); c++)
{
Character ch = characters[*c];
float xpos = x + ch.bearing.x * scale;
float ypos = y - (ch.size.y - ch.bearing.y) * scale;
float w = ch.size.x * scale;
float h = ch.size.y * scale;
// update VBO for each character
float vertices[6][4] = {
{ xpos, ypos + h, 0.0f, 0.0f },
{ xpos, ypos, 0.0f, 1.0f },
{ xpos + w, ypos, 1.0f, 1.0f },
{ xpos, ypos + h, 0.0f, 0.0f },
{ xpos + w, ypos, 1.0f, 1.0f },
{ xpos + w, ypos + h, 1.0f, 0.0f }
};
// render glyph texture over quad
glBindTexture(GL_TEXTURE_2D, ch.texture_id);
// update content of VBO memory
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(vertices), vertices);
glBindBuffer(GL_ARRAY_BUFFER, 0);
// render quad
glDrawArrays(GL_TRIANGLES, 0, 6);
// now advance cursors for next glyph (note that advance is number of 1/64 pixels)
x += (ch.advance >> 6) * scale; // bitshift by 6 to get value in pixels (2^6 = 64)
}
glBindVertexArray(0);
glBindTexture(GL_TEXTURE_2D, 0);
}
glm::vec2 GetTextSize(const std::string& text, float scale)
{
float width = 0.0f;
float height = 0.0f;
for (char c : text)
{
Character ch = characters[c];
width += (ch.advance >> 6) * scale; // Accumulate total width
// Track the maximum height
float char_height = ch.size.y * scale;
if (char_height > height)
height = char_height;
}
return glm::vec2(width, height);
}
void RenderTextCentered(std::string text, float center_x, float center_y, float scale, glm::vec3 color)
{
glm::vec2 text_size = GetTextSize(text, scale);
// Calculate top-left position to make text centered
float x = center_x - (text_size.x / 2.0f);
float y = center_y - (text_size.y / 2.0f);
RenderText(text, x, y, scale, color);
}
private:
void OnAttach() override
{
OE_INFO("Loading Freetype...");
int error;
FT_Library ft;
error = FT_Init_FreeType(&ft);
if (error != 0) {
OE_ERROR("FREETYPE: Could not init FreeType Library");
return;
}
FT_Face face;
error = FT_New_Face(ft, "/usr/share/fonts/TTF/JetBrainsMono-Regular.ttf", 0, &face);
if (error != 0) {
OE_ERROR("FREETYPE: Failed to load font");
return;
}
FT_Set_Pixel_Sizes(face, 0, 48);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
for (unsigned char c = 0; c < 128; c++)
{
// load character glyph
if (FT_Load_Char(face, c, FT_LOAD_RENDER))
{
OE_ERROR("FREETYTPE: Failed to load Glyph: {}", c);
continue;
}
// generate texture
unsigned int texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(
GL_TEXTURE_2D,
0,
GL_RED,
face->glyph->bitmap.width,
face->glyph->bitmap.rows,
0,
GL_RED,
GL_UNSIGNED_BYTE,
face->glyph->bitmap.buffer
);
// set texture options
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
// now store character for later use
Character character = {
texture,
glm::ivec2(face->glyph->bitmap.width, face->glyph->bitmap.rows),
glm::ivec2(face->glyph->bitmap_left, face->glyph->bitmap_top),
face->glyph->advance.x
};
characters.insert(std::pair<char, Character>(c, character));
}
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
FT_Done_Face(face);
FT_Done_FreeType(ft);
text_shader = OpenEngine::Shader::Create("assets/shaders/text.glsl");
glGenVertexArrays(1, &VAO);
glGenBuffers(1, &VBO);
glBindVertexArray(VAO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 6 * 4, NULL, GL_DYNAMIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 4 * sizeof(float), 0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
};
void OnUpdate() override
{
text_shader->Bind();
int width = OpenEngine::Application::Get().GetWindow().GetWidth();
int height = OpenEngine::Application::Get().GetWindow().GetHeight();
projection = glm::ortho(0.0f, static_cast<float>(width),
0.0f, static_cast<float>(height));
text_shader->SetMat4("u_ViewProjection", projection);
float x = height - 40;
float y = 0;
switch (game_layer->GetGameState()) {
case GameState::GameOver:
{
auto& window = OpenEngine::Application::Get().GetWindow();
int width = window.GetWidth();
int height = window.GetHeight();
float x = width / 2.0f;
float y = height / 2.0f;
RenderTextCentered("Game Over!", x, y, 1.0f, glm::vec3(0.8f, 0.2f, 0.3f));
break;
}
case GameState::Paused:
RenderTextCentered("Paused", x, y, 1.0f, glm::vec3(0.8f, 0.2f, 0.3f));
break;
case GameState::Playing:
break;
}
std::string s_score = "Score: " + std::to_string(game_layer->GetScore());
std::string s_lives = std::to_string(game_layer->GetLives()) + " lives";
RenderText(s_score, 10, OpenEngine::Application::Get().GetWindow().GetHeight() - 50, 1.0f, {0.8f, 0.2f, 0.3f});
RenderText(
s_lives,
OpenEngine::Application::Get().GetWindow().GetWidth() - 220,
OpenEngine::Application::Get().GetWindow().GetHeight() - 50,
1.0f,
{0.8f, 0.2f, 0.3f});
};
void OnEvent(OpenEngine::Event& event) override
{
};
private:
std::map<char, Character> characters;
OpenEngine::Ref<OpenEngine::Shader> text_shader;
glm::mat4 projection;
OpenEngine::Ref<Shmup> game_layer;
unsigned int VAO, VBO;
};
#endif // OVERLAY_HPP

View File

@@ -1,261 +0,0 @@
#ifndef SANDBOX_HPP
#define SANDBOX_HPP
#include <open_engine.hpp>
#include "open_engine/core/time.hpp"
#include <glm/ext/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <glm/fwd.hpp>
#include <imgui.h>
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <string>
#include <unordered_map>
#include <vector>
class SandboxLayer : public OpenEngine::Layer
{
public:
OpenEngine::Ref<OpenEngine::VertexArray> CreateSquare()
{
OpenEngine::Ref<OpenEngine::VertexArray> square_vertex_array(OpenEngine::VertexArray::Create());
float square_vertices[5 * 4] = {
-0.5f, -0.5f, 0.0f, 0.0f, 0.0f,
0.5f, -0.5f, 0.0f, 1.0f, 0.0f,
0.5f, 0.5f, 0.0f, 1.0f, 1.0f,
-0.5f, 0.5f, 0.0f, 0.0f, 1.0f,
};
OpenEngine::Ref<OpenEngine::VertexBuffer> vertex_buffer = OpenEngine::VertexBuffer::Create(square_vertices, sizeof(square_vertices));
OpenEngine::BufferLayout layout = {
{ OpenEngine::ShaderDataType::Float3, "a_Position" },
{ OpenEngine::ShaderDataType::Float2, "a_TextCoord" }
};
vertex_buffer->SetLayout(layout);
square_vertex_array->AddVertexBuffer(vertex_buffer);
uint32_t indices[6] = { 0, 1, 2, 2, 3, 0 };
OpenEngine::Ref<OpenEngine::IndexBuffer> index_buffer = OpenEngine::IndexBuffer::Create(indices, sizeof(indices) / sizeof(uint32_t));
square_vertex_array->SetIndexBuffer(index_buffer);
return square_vertex_array;
}
void OnDetach() override
{
OE_DEBUG("OnDetach {}", __PRETTY_FUNCTION__);
}
SandboxLayer()
: Layer("sandbox"),
camera((float)OpenEngine::Application::Get().GetWindow().GetWidth() /
OpenEngine::Application::Get().GetWindow().GetHeight(), 1.0f)
{
OE_PROFILE_FUNCTION();
//vertex_array.reset(OpenEngine::VertexArray::Create());
{
OE_PROFILE_SCOPE("Creating Square");
square = CreateSquare();
}
//float vertices[3 * 7] = {
// -0.5f, -0.5f, 0.0f, 0.8f, 0.2f, 0.8f, 1.0f,
// 0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f,
// 0.0f, 0.5f, 0.0f, 0.8f, 0.8f, 0.2f, 1.0f
//};
//OpenEngine::Ref<OpenEngine::VertexBuffer> vertex_buffer;
//vertex_buffer.reset(OpenEngine::VertexBuffer::Create(vertices, sizeof(vertices)));
//OpenEngine::BufferLayout layout = {
// {OpenEngine::ShaderDataType::Float3, "a_Position"},
// {OpenEngine::ShaderDataType::Float4, "a_Color"}
//};
//vertex_buffer->SetLayout(layout);
//vertex_array->AddVertexBuffer(vertex_buffer);
//uint32_t indices[3] = { 0, 1, 2 };
//OpenEngine::Ref<OpenEngine::IndexBuffer> index_buffer;
//index_buffer.reset(OpenEngine::IndexBuffer::Create(indices, sizeof(indices) / sizeof(uint32_t)));
//shader = OpenEngine::Shader::Create("./assets/shaders/texture.glsl");
//vertex_array->SetIndexBuffer(index_buffer);
//texture_shader = OpenEngine::Shader::Create("./assets/shaders/texture.glsl");
auto texture_shader = shader_library.Load("./assets/shaders/texture.glsl");
{
OE_PROFILE_SCOPE("Creating Textures");
texture = OpenEngine::Texture2D::Create("./assets/textures/container.jpg");
face = OpenEngine::Texture2D::Create("./assets/textures/awesomeface.png");
}
{
OE_PROFILE_SCOPE("Setting up shader uniforms");
texture_shader->Bind();
texture_shader->SetInt("u_Texture", 0);
texture_shader->SetVec4("u_Color", glm::vec4(1.0f));
texture_shader->SetFloat("u_TilingFactor", 1.0f);
}
{
OE_PROFILE_SCOPE("Listing Joysticks");
for (auto joystick : OpenEngine::Input::GetJoystickList())
OE_DEBUG("Joystick {}: {}", joystick.first, joystick.second);
}
bindings = {
{"fwd/bckwd", 1},
{"right/left", 0},
{"yaw", 2}
};
}
void moveCamera()
{
if (current_joystick != -1) {
float raw_axis = OpenEngine::Input::GetJoystickAxis(current_joystick, bindings["yaw"]);
float rotation = remap(raw_axis, -1, 1, -180, 180);
camera.GetCamera().SetRotation(rotation);
}
}
void moveSquare(glm::vec3& position)
{
float velocity = 1 * OpenEngine::Time::DeltaTime();
if (OpenEngine::Input::IsKeyPressed(OE_KEY_I))
position.y += velocity;
if (OpenEngine::Input::IsKeyPressed(OE_KEY_Y))
position.x -= velocity;
if (OpenEngine::Input::IsKeyPressed(OE_KEY_U))
position.y -= velocity;
if (OpenEngine::Input::IsKeyPressed(OE_KEY_O))
position.x += velocity;
}
void moveSquareF(glm::vec3& position)
{
if (current_joystick != -1) {
float test = OpenEngine::Input::GetJoystickAxis(current_joystick, bindings["fwd/bckwd"]);
position.y = test;
float test2 = OpenEngine::Input::GetJoystickAxis(current_joystick, bindings["right/left"]);
position.x = test2;
}
}
float remap(float value, float minInput, float maxInput, float minOutput, float maxOutput) {
// 1. Normalize the input to a 0.0 - 1.0 range
float t = (value - minInput) / (maxInput - minInput);
// 2. Use glm::mix to interpolate between the output range
return glm::mix(minOutput, maxOutput, t);
}
void OnUpdate() override
{
static glm::mat4 scale = glm::scale(glm::mat4(1.0f), glm::vec3(1.0f));
OpenEngine::RenderCommand::SetClearColor({1.0f, 0.0f, 1.0f, 1.0f});
OpenEngine::RenderCommand::Clear();
OpenEngine::Renderer::BeginScene(camera.GetCamera());
//shader->Bind();
//vertex_array->Bind();
moveCamera();
//glm::mat4 transform = glm::translate(glm::mat4(1.0f), triangle_position);
//OpenEngine::Renderer::Submit(shader, vertex_array, transform);
auto texture_shader = shader_library.Get("texture");
texture_shader->Bind();
//texture->Bind();
glm::mat4 square_transform = glm::translate(glm::mat4(1.0f), square_pos) * scale;
//OpenEngine::Renderer::Submit(texture_shader, square, square_transform);
moveSquare(square_pos);
moveSquareF(square_pos);
face->Bind();
OpenEngine::Renderer::Submit(texture_shader, square, square_transform);
OpenEngine::Renderer::EndScene();
//if (OpenEngine::Input::IsKeyPressed(OE_KEY_ESCAPE))
// OpenEngine::Application::Get().StopRunning();
camera.OnUpdate();
}
void OnEvent(OpenEngine::Event& event) override
{
OpenEngine::EventDispatcher dispatcher(event);
camera.OnEvent(event);
}
void OnImGuiRender() override
{
static std::vector<std::string> axis_labels;
static std::vector<const char*> axis_pointers;
if (axis_labels.empty()) {
axis_labels.reserve(MAX_AXIS);
axis_pointers.reserve(MAX_AXIS);
for (int i = 0; i < MAX_AXIS; ++i) {
axis_labels.push_back("Axis " + std::to_string(i + 1));
axis_pointers.push_back(axis_labels.back().c_str());
}
}
auto joysticks = OpenEngine::Input::GetJoystickList();
ImGui::Begin("Settings");
ImGui::ColorEdit3("Square Color", glm::value_ptr(square_color));
ImGui::TextColored(ImVec4(1,1,0,1), "Important Stuff");
ImGui::BeginChild("Child");
ImGui::Text("-1");
ImGui::RadioButton("None", &current_joystick, -1);
for (const auto& joystick : joysticks) {
ImGui::PushID(joystick.first);
ImGui::Text("%d", joystick.first);
ImGui::RadioButton(joystick.second.c_str(), &current_joystick, joystick.first);
ImGui::PopID();
}
ImGui::Text("Bindings");
for (auto& binding : bindings)
ImGui::Combo(binding.first.c_str(), (int*)&binding.second, axis_pointers.data(), (int)axis_pointers.size());
ImGui::EndChild();
ImGui::End();
}
OpenEngine::ShaderLibrary shader_library;
//OpenEngine::Ref<OpenEngine::Shader> shader;
//OpenEngine::OrthographicCamera camera = {-1.6f, 1.6f, -0.9f, 0.9f};
OpenEngine::OrthographicCameraController camera = {1280.0f / 1440.0f, 1.0f};
//OpenEngine::Ref<OpenEngine::VertexArray> vertex_array;
OpenEngine::Ref<OpenEngine::VertexArray> square;
glm::vec3 triangle_position{0.0f};
glm::vec3 square_pos{0.0f};
glm::vec3 square_color{0.0f};
OpenEngine::Ref<OpenEngine::Texture2D> texture, face;
//OpenEngine::Ref<OpenEngine::Shader> texture_shader;
int current_joystick = -1;
std::unordered_map<std::string, unsigned int> bindings;
};
class Sandbox : public OpenEngine::Application
{
public:
Sandbox();
~Sandbox();
};
#endif // SANDBOX_HPP

View File

@@ -1,132 +0,0 @@
#ifndef SANDBOX2D_HPP
#define SANDBOX2D_HPP
#include <open_engine.hpp>
#include <dlfcn.h>
#include "imgui.h"
#include "open_engine/core/time.hpp"
#include "open_engine/logging.hpp"
#include "open_engine/renderer/renderer2d.hpp"
#include <glm/ext/matrix_transform.hpp>
#include <glm/glm.hpp>
class Sandbox2DLayer : public OpenEngine::Layer
{
public:
Sandbox2DLayer()
: OpenEngine::Layer("sandbox_2d"),
camera((float)OpenEngine::Application::Get().GetWindow().GetWidth() /
OpenEngine::Application::Get().GetWindow().GetHeight(), 1.0f)
{
}
~Sandbox2DLayer() {};
void OnAttach() override
{
OE_PROFILE_FUNCTION();
bindings = {
{"fwd/bckwd", 1},
{"right/left", 0},
{"yaw", 2}
};
{
OE_PROFILE_SCOPE("Texture2D Creation");
face = OpenEngine::Texture2D::Create("assets/textures/awesomeface.png");
}
}
void OnDetach() override
{
}
void OnUpdate() override
{
OE_PROFILE_FUNCTION()
{
OE_PROFILE_SCOPE("Setting up Rendering");
OpenEngine::RenderCommand::SetClearColor({0.11f, 0.11f, 0.15f, 1.0f});
OpenEngine::RenderCommand::Clear();
OpenEngine::Renderer2D::BeginScene(camera.GetCamera());
}
static float angle = 0.0f;
float ts = OpenEngine::Time::DeltaTime();
if (angle >= 360)
angle = 0;
angle += (ts * 500.0f);
{
OE_PROFILE_SCOPE("Drawing Quads");
OpenEngine::Transform tr1 = {glm::vec3(0.5f, 0.5f, 0.2f), glm::vec3(0.3f), 20.0f};
OpenEngine::Transform tr2 = {glm::vec3(-0.2f, -0.2f, 0.1f), glm::vec3(0.5f, 0.2f, 1.0f), angle};
OpenEngine::Transform tr3 = {glm::vec3(0.0f, 0.0f, -0.1f), glm::vec3(1.0f, 1.0f, 1.0f), 45.0f};
OpenEngine::Renderer2D::DrawQuad({glm::vec3(0.5f, 0.5f, 0.0f), glm::vec3(0.3f), 20.0f}, glm::vec4(color[0], color[1], color[2], color[3]));
OpenEngine::Renderer2D::DrawQuad(tr2, {0.5f, 0.3f, 0.8f, 1.0f});
OpenEngine::Renderer2D::DrawQuad(tr3, face);
}
OpenEngine::Renderer2D::EndScene();
}
bool StopRunning(OpenEngine::KeyPressedEvent& event)
{
if (event.GetKeyCode() == OE_KEY_ESCAPE) {
OpenEngine::Application::Get().Close();
return true;
}
return false;
}
void OnEvent(OpenEngine::Event& event) override
{
OE_PROFILE_FUNCTION();
OpenEngine::EventDispatcher dispatcher(event);
//dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(Sandbox2DLayer::StopRunning));
{
OE_PROFILE_SCOPE("Camera OnEvent");
camera.OnEvent(event);
}
}
void OnImGuiRender() override
{
OE_PROFILE_FUNCTION();
ImGui::Begin("Square settings");
ImGui::ColorEdit4("Square color", color);
for (auto& result : profiling_results)
{
char label[50];
strcpy(label, "%.3fms ");
strcat(label, result.name);
ImGui::Text(label, result.duration);
}
profiling_results.clear();
ImGui::End();
}
private:
//OpenEngine::ShaderLibrary shader_library;
glm::vec3 square_pos = glm::vec3(0.0f);
glm::vec4 square_color = glm::vec4(1.0f);
float color[4] = {0.5f, 0.3f, 0.4f, 1.0f};
OpenEngine::Ref<OpenEngine::Texture2D> face;
std::unordered_map<std::string, unsigned int> bindings;
OpenEngine::OrthographicCameraController camera;
std::vector<OpenEngine::Time::ProfilingResult> profiling_results;
};
#endif // SANDBOX2D_HPP

View File

@@ -1,386 +0,0 @@
#ifndef SHMUP_HPP
#define SHMUP_HPP
#include <GL/gl.h>
#include <open_engine.hpp>
#include <fstream>
#include <dlfcn.h>
#include <glm/ext/matrix_transform.hpp>
#include <glm/glm.hpp>
#include <random>
#include <string>
#include <unistd.h>
#include <vector>
enum class GameState
{
Playing,
Paused,
GameOver
};
class Shmup : public OpenEngine::Layer
{
public:
Shmup()
: camera((float)OpenEngine::Application::Get().GetWindow().GetWidth() /
OpenEngine::Application::Get().GetWindow().GetHeight(), 1.0f)
{
}
~Shmup() {};
void OnAttach() override
{
OE_PROFILE_FUNCTION();
{
OE_PROFILE_SCOPE("Texture2D Creation");
ship = OpenEngine::Texture2D::Create("assets/textures/shmup/ship.png");
enemy_ship = OpenEngine::Texture2D::Create("assets/textures/shmup/enemy_ship.png");
bullet_tx = OpenEngine::Texture2D::Create("assets/textures/shmup/bullet.png");
}
LoadMap();
}
void OnDetach() override
{
}
struct Bounds {
glm::vec2 min; // Bottom-Left
glm::vec2 max; // Top-Right
};
Bounds GetBounds(glm::vec2 position, glm::vec2 scale) {
Bounds b;
// Because the original vertices are -0.5 to 0.5,
// the distance from center to edge is exactly scale * 0.5
glm::vec2 halfScale = scale * 0.5f;
b.min = position - halfScale;
b.max = position + halfScale;
return b;
}
bool CheckCollision(const Bounds& a, const Bounds& b) {
bool overlapX = a.max.x >= b.min.x && b.max.x >= a.min.x;
bool overlapY = a.max.y >= b.min.y && b.max.y >= a.min.y;
return overlapX && overlapY;
}
void MovePlayerShip()
{
double delta = OpenEngine::Time::DeltaTime();
if (OpenEngine::Input::IsKeyPressed(OpenEngine::KeyCode::Up)) {
tr1.position.y += 1 * delta;
}
if (OpenEngine::Input::IsKeyPressed(OpenEngine::KeyCode::Down)) {
tr1.position.y -= 1 * delta;
}
if (OpenEngine::Input::IsKeyPressed(OpenEngine::KeyCode::Right)) {
tr1.position.x += 1 * delta;
}
if (OpenEngine::Input::IsKeyPressed(OpenEngine::KeyCode::Left)) {
tr1.position.x -= 1 * delta;
}
if (tr1.position.y <= -0.9)
tr1.position.y = -0.9;
if (tr1.position.y >= -0.3)
tr1.position.y = -0.3;
if (tr1.position.x <= -0.8)
tr1.position.x = -0.8;
if (tr1.position.x >= 0.8)
tr1.position.x = 0.8;
}
bool MovePlayerShipDiscrete(OpenEngine::KeyPressedEvent& event)
{
if (state == GameState::Playing) {
double delta = OpenEngine::Time::DeltaTime();
if (event.GetKeyCode() == OpenEngine::KeyCode::Right) {
tr1.position.x += 0.1f;
return true;
}
if (event.GetKeyCode() == OpenEngine::KeyCode::Left) {
tr1.position.x -= 0.1f;
return true;
}
if (tr1.position.y <= -0.9)
tr1.position.y = -0.9;
if (tr1.position.y >= -0.3)
tr1.position.y = -0.3;
if (tr1.position.x <= -0.8)
tr1.position.x = -0.8;
if (tr1.position.x >= 0.8)
tr1.position.x = 0.8;
}
return false;
}
void MoveEntities(double time_step) {
double delta = time_step;
// Updating enemy positions
for (auto& enemy : enemies) {
enemy.position.y -= 0.3 * delta;
if (state == GameState::Playing && (enemy.position.y <= -1.1 || CheckCollision(
GetBounds(enemy.position, enemy.size),
GetBounds(tr1.position, tr1.size))))
lives--;
}
// Updating friendly bullets positions
for (auto& bullet : bullets) {
bullet.position.y += 1.1 * delta;
}
}
void UpdateEntity()
{
double delta = OpenEngine::Time::DeltaTime();
MoveEntities(delta);
// Deletes enemies offscreen
std::erase_if(enemies, [](const auto& enemy) {
return enemy.position.y <= -1.1f;
});
// Deletes bullets offscreen
std::erase_if(bullets, [](const auto& bullet) {
return bullet.position.y >= 1.2f;
});
// Lowers lives upon collision between player and enemy
for (auto& enemy : enemies) {
if (state == GameState::Playing) {
if (enemy.position.y <= -1.1)
lives--;
if (CheckCollision(
GetBounds(enemy.position, enemy.size),
GetBounds(tr1.position, tr1.size)))
lives = 0;
}
}
// Deletes enemy and bullet and increases score after collision
for (auto& bullet : bullets) {
for (auto& enemy : enemies) {
Bounds bullet_bounds = GetBounds(bullet.position, bullet.size);
Bounds enemy_bounds = GetBounds(enemy.position, enemy.size);
if (CheckCollision(bullet_bounds, enemy_bounds)) {
std::erase_if(bullets, [&](const OpenEngine::Transform& _bullet) {
return _bullet.position == bullet.position;
});
std::erase_if(enemies, [&](const auto& _enemy) {
return _enemy.position == enemy.position;
});
score++;
}
}
}
}
void Render()
{
OE_PROFILE_FUNCTION()
{
OE_PROFILE_SCOPE("Setting up Rendering");
OpenEngine::RenderCommand::SetClearColor({0.11f, 0.11f, 0.15f, 1.0f});
//OpenEngine::RenderCommand::SetClearColor({1.0f, 0.11f, 0.15f, 1.0f});
OpenEngine::RenderCommand::Clear();
OpenEngine::Renderer2D::BeginScene(camera.GetCamera());
}
{
OE_PROFILE_SCOPE("Drawing Quads");
OpenEngine::Renderer2D::DrawQuad(tr1, ship);
for (auto& enemy : enemies)
OpenEngine::Renderer2D::DrawQuad(enemy, enemy_ship);
for (auto& bullet : bullets)
OpenEngine::Renderer2D::DrawQuad(bullet, bullet_tx);
}
OpenEngine::Renderer2D::EndScene();
}
void OnUpdate() override
{
float delta = OpenEngine::Time::DeltaTime();
Render();
UpdateEntity();
if (state == GameState::Playing) {
if (spawn_cooldown >= spawn_min_time) {
//SpawnEnemyRandom();
ReadMap();
spawn_cooldown = 0;
if (spawn_min_time > 0.5)
spawn_min_time -= 0.01;
}
//MovePlayerShip();
if (shooting)
SpawnBullet();
shot_cooldown += delta;
spawn_cooldown += delta;
}
if (lives <= 0)
state = GameState::GameOver;
}
void Reset()
{
tr1 = {glm::vec3(0.0f, -0.9f, -0.1f), glm::vec3(0.1f), 0.0f};
score = 0;
lives = 5;
bullets.clear();
enemies.clear();
state = GameState::Playing;
}
void SpawnEnemyRandom()
{
static std::uniform_int_distribution<int> dist{-8, 8};
SpawnEnemy(dist(rd));
};
void SpawnEnemy(int x)
{
OpenEngine::Transform enemy_tr({{x/10.0f, 1.2f, 0.1f}, glm::vec3(0.1f), 180.0f});
enemies.emplace_back(enemy_tr);
};
void LoadMap(const char* path = "assets/maps/lvl1.txt")
{
std::string buffer;
std::ifstream map_file(path);
while (std::getline(map_file, buffer)) {
map.emplace_back(buffer);
}
};
void ReadMap()
{
static int line_n = 0;
if (line_n >= map.size())
return;
auto line = map[line_n];
int position = -8;
for (int i = 0; i < line.length(); i++) {
if (line[i] == '#')
SpawnEnemy(position);
position++;
}
line_n++;
};
void SpawnBullet()
{
if (shot_cooldown >= 0.2) {
OpenEngine::Transform bullet_tr;
bullet_tr.size = glm::vec3(0.03f);
bullet_tr.position.x = tr1.position.x;
bullet_tr.position.y = tr1.position.y + 0.1;
bullets.emplace_back(bullet_tr);
shot_cooldown = 0;
}
}
bool ProcessKeyPressedEvents(OpenEngine::KeyPressedEvent& event)
{
if (event.GetKeyCode() == OpenEngine::KeyCode::Space) {
shooting = true;
return true;
}
if (state == GameState::GameOver && event.GetKeyCode() == OpenEngine::KeyCode::Enter) {
Reset();
return true;
}
return false;
};
bool ProcessKeyReleased(OpenEngine::KeyReleasedEvent& event)
{
if (event.GetKeyCode() == OpenEngine::KeyCode::Space)
shooting = false;
return false;
}
void OnEvent(OpenEngine::Event& event) override
{
OE_PROFILE_FUNCTION();
OpenEngine::EventDispatcher dispatcher(event);
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(Shmup::MovePlayerShipDiscrete));
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(Shmup::ProcessKeyPressedEvents));
dispatcher.Dispatch<OpenEngine::KeyReleasedEvent>(BIND_EVENT_FN(Shmup::ProcessKeyReleased));
{
OE_PROFILE_SCOPE("Camera OnEvent");
camera.OnEvent(event);
}
}
//void OnImGuiRender() override
//{
// ImGuiIO io = ImGui::GetIO();
// static auto m_Font = io.Fonts->AddFontFromFileTTF("/usr/share/fonts/TTF/JetBrainsMono-Regular.ttf", 120.0f);
// ImGui::GetForegroundDrawList()->AddText(m_Font, 48.0f, {5.0f, 5.0f}, 0xffffffff, "test");
//}
GameState GetGameState() { return state; };
int GetScore() { return score; };
int GetLives() { return lives; };
private:
OpenEngine::Ref<OpenEngine::Texture2D> ship;
OpenEngine::Ref<OpenEngine::Texture2D> enemy_ship;
OpenEngine::Ref<OpenEngine::Texture2D> bullet_tx;
OpenEngine::Transform tr1 = {glm::vec3(0.0f, -0.9f, -0.1f), glm::vec3(0.1f), 0.0f};
std::vector<OpenEngine::Transform> enemies, bullets;
int score = 0;
int lives = 5;
bool shooting = false;
float spawn_cooldown = 0, shot_cooldown = 0;
float spawn_min_time = 1.0f;
std::vector<std::string> map;
std::random_device rd;
std::mt19937 e{rd()}; // or std::default_random_engine e{rd()};
OpenEngine::OrthographicCameraController camera;
GameState state = GameState::Playing;
//OpenEngine::Ref<Overlay> overlay;
};
#endif // SHMUP_HPP

View File

@@ -1,31 +0,0 @@
default: build_and_run
alias c := config
alias b := build
alias r := run
alias br := build_and_run
alias cln := clean
alias v := valgrind
run:
@echo Running ${BINARY_NAME}
@./build/${BINARY_NAME}
build:
time cmake --build build --config ${BUILD_TYPE}
build_and_run: build
just run
clean:
rm build -rf
config:
@echo Configuring project with build type: ${BUILD_TYPE}
cmake -S . -G Ninja -B build \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DCMAKE_EXPORT_COMPILE_COMMANDS=${COMPILE_COMMANDS} \
; cp build/compile_commands.json .
valgrind: build
valgrind --track-origins=yes ./build/${BINARY_NAME}

Binary file not shown.

Binary file not shown.

View File

@@ -1,86 +0,0 @@
#include <open_engine/core.hpp>
#include <control_layer.hpp>
#include <sandbox2d.hpp>
#include <sandbox.hpp>
ControlLayer::ControlLayer(OpenEngine::Ref<OpenEngine::Layer> layer)
: active_layer(layer), OpenEngine::Layer("control_layer")
//ControlLayer::ControlLayer()
{
}
void ControlLayer::OnUpdate()
{
}
bool ControlLayer::SwitchLayer(OpenEngine::KeyPressedEvent& event)
{
OE_PROFILE_FUNCTION();
auto& app = OpenEngine::Application::Get();
OpenEngine::Ref<Layer> layer;
if (event.GetKeyCode() == OE_KEY_1) {
OE_PROFILE_SCOPE("Press Key 1");
OE_DEBUG("Sandbox2D Layer");
{
OE_PROFILE_SCOPE("Creating SB2D");
layer = OpenEngine::CreateRef<Sandbox2DLayer>();
}
app.QueueLayerPush(layer);
app.QueueLayerPop(active_layer);
active_layer = layer;
return true;
} else if (event.GetKeyCode() == OE_KEY_2) {
OE_PROFILE_SCOPE("Press Key 2");
OE_DEBUG("Sandbox Layer");
{
OE_PROFILE_SCOPE("Creating SB");
layer = OpenEngine::CreateRef<SandboxLayer>();
}
app.QueueLayerPush(layer);
app.QueueLayerPop(active_layer);
active_layer = layer;
return true;
}
return false;
}
bool ControlLayer::StopRunning(OpenEngine::KeyPressedEvent& event)
{
if (event.GetKeyCode() == OE_KEY_ESCAPE) {
OpenEngine::Application::Get().Close();
return true;
}
return true;
}
void ControlLayer::OnEvent(OpenEngine::Event& event)
{
OpenEngine::EventDispatcher dispatcher(event);
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(ControlLayer::SwitchLayer));
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(ControlLayer::StopRunning));
}
void ControlLayer::OnImGuiRender()
{
}
void ControlLayer::OnAttach()
{
}
void ControlLayer::OnDetach()
{
}

View File

@@ -1,36 +0,0 @@
#include <memory>
#include <sandbox2d.hpp>
#include <sandbox.hpp>
#include <control_layer.hpp>
#include <overlay.hpp>
#include <modding.hpp>
#include <shmup.hpp>
#include <open_engine/entry_point.hpp>
Sandbox::Sandbox()
{
OpenEngine::Ref<Sandbox2DLayer> initial_layer = std::make_shared<Sandbox2DLayer>();
//OpenEngine::Ref<Shmup> initial_layer = OpenEngine::CreateRef<Shmup>();
//OpenEngine::Ref<Overlay> overlay = OpenEngine::CreateRef<Overlay>(shmup);
//OpenEngine::Ref<Overlay> overlay = OpenEngine::CreateRef<Overlay>(initial_layer);
OpenEngine::Ref<OpenEngine::Layer> control_layer = std::make_shared<ControlLayer>(initial_layer);
//OpenEngine::Ref<ControlLayer> control_layer = std::make_shared<ControlLayer>();
OpenEngine::Ref<OpenEngine::Layer> modding_layer = std::make_shared<Modding>();
//QueueLayerPush(shmup);
QueueLayerPush(initial_layer);
QueueLayerPush(control_layer);
QueueLayerPush(modding_layer);
//QueueOverlayPush(overlay);
}
Sandbox::~Sandbox()
{
}
OpenEngine::Application* OpenEngine::CreateApplication()
{
OE_INFO("Sandbox Starting...");
return new Sandbox();
}

View File

@@ -2,6 +2,7 @@
imgui/1.92.5-docking imgui/1.92.5-docking
spdlog/1.16.0 spdlog/1.16.0
entt/3.16.0 entt/3.16.0
yaml-cpp/0.8.0
[generators] [generators]
CMakeDeps CMakeDeps

View File

@@ -2,7 +2,9 @@ cmake_minimum_required(VERSION 3.28)
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 20)
set(PROJECT_EXECUTABLE_NAME sand_box) set(PROJECT_EXECUTABLE_NAME oe_editor)
set(CMAKE_BUILD_RPATH ".")
project(SandBox project(SandBox
VERSION 0.1.0 VERSION 0.1.0
@@ -10,6 +12,7 @@ project(SandBox
find_package(imgui REQUIRED CONFIG) find_package(imgui REQUIRED CONFIG)
find_package(spdlog REQUIRED CONFIG) find_package(spdlog REQUIRED CONFIG)
find_package(EnTT REQUIRED)
file(GLOB_RECURSE SRC_FILES "src/*.cpp") file(GLOB_RECURSE SRC_FILES "src/*.cpp")
add_executable(${PROJECT_EXECUTABLE_NAME} add_executable(${PROJECT_EXECUTABLE_NAME}
@@ -18,6 +21,8 @@ add_executable(${PROJECT_EXECUTABLE_NAME}
target_include_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE target_include_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE
"${PROJECT_SOURCE_DIR}/include" "${PROJECT_SOURCE_DIR}/include"
"${PROJECT_SOURCE_DIR}/editor/include"
"/usr/include/freetype2/"
) )
target_link_libraries(${PROJECT_EXECUTABLE_NAME} PRIVATE target_link_libraries(${PROJECT_EXECUTABLE_NAME} PRIVATE
@@ -26,9 +31,11 @@ target_link_libraries(${PROJECT_EXECUTABLE_NAME} PRIVATE
open_engine open_engine
dl dl
nethost nethost
freetype
EnTT::EnTT
) )
target_link_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE target_link_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE
${PROJECT_SOURCE_DIR}/lib ${PROJECT_SOURCE_DIR}/lib
/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.0/runtimes/arch-x64/native /usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.3/runtimes/arch-x64/native
) )

View File

@@ -1,10 +1,11 @@
#ifndef EDITOR_HPP #ifndef EDITOR_HPP
#define EDITOR_HPP #define EDITOR_HPP
#include "open_engine/ref_scope.hpp"
#include "panels/scene_hierarchy.hpp"
#include <open_engine.hpp> #include <open_engine.hpp>
#include "panels/scene_hierarchy.hpp"
//#include <imfilebrowser.h>
#include <glm/ext/matrix_transform.hpp> #include <glm/ext/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp> #include <glm/gtc/type_ptr.hpp>
#include <glm/matrix.hpp> #include <glm/matrix.hpp>
@@ -27,16 +28,18 @@ namespace OpenEngine {
{ {
auto delta = Time::DeltaTime(); auto delta = Time::DeltaTime();
auto& position = GetComponent<TransformComponent>().translation; if (HasComponent<TransformComponent>()) {
auto& position = GetComponent<TransformComponent>().translation;
if (Input::IsKeyPressed(KeyCode::Up)) if (Input::IsKeyPressed(KeyCode::Up))
position.y += 5.0 * delta; position.y += 5.0 * delta;
if (Input::IsKeyPressed(KeyCode::Down)) if (Input::IsKeyPressed(KeyCode::Down))
position.y -= 5.0 * delta; position.y -= 5.0 * delta;
if (Input::IsKeyPressed(KeyCode::Right)) if (Input::IsKeyPressed(KeyCode::Right))
position.x += 5.0 * delta; position.x += 5.0 * delta;
if (Input::IsKeyPressed(KeyCode::Left)) if (Input::IsKeyPressed(KeyCode::Left))
position.x -= 5.0 * delta; position.x -= 5.0 * delta;
}
}; };
void OnDestroy() void OnDestroy()
@@ -48,16 +51,11 @@ namespace OpenEngine {
{ {
public: public:
EditorLayer() EditorLayer()
: Layer("editor_layer")/*, : Layer("editor_layer")
camera((float)Application::Get().GetWindow().GetWidth() / {
Application::Get().GetWindow().GetHeight(), 1.0f) }
*/
{
}
~EditorLayer() {}; ~EditorLayer() {};
entt::registry registry;
void OnAttach() override void OnAttach() override
{ {
OE_PROFILE_FUNCTION(); OE_PROFILE_FUNCTION();
@@ -70,15 +68,15 @@ namespace OpenEngine {
scene = CreateRef<Scene>(); scene = CreateRef<Scene>();
sq_entity = scene->CreateEntity("square"); //sq_entity = scene->CreateEntity("square");
sq_entity.AddComponents<TransformComponent>(); //sq_entity.AddComponents<TransformComponent>();
sq_entity.AddComponents<SpriteRendererComponent>(glm::vec4(1.0f, 0.0f, 0.0f, 1.0f)); //sq_entity.AddComponents<SpriteRendererComponent>(glm::vec4(1.0f, 0.0f, 0.0f, 1.0f));
camera_bis = scene->CreateEntity("Main camera"); //camera_bis = scene->CreateEntity("Main camera");
camera_bis.AddComponents<TransformComponent>(); //camera_bis.AddComponents<TransformComponent>();
camera_bis.AddComponents<CameraComponent>(); //camera_bis.AddComponents<CameraComponent>();
camera_bis.AddComponents<NativeScriptComponent>().Bind<CameraController>(); //camera_bis.AddComponents<NativeScriptComponent>().Bind<CameraController>();
scene_hierarchy.SetContext(scene); scene_hierarchy.SetContext(scene);
} }
@@ -258,10 +256,68 @@ namespace OpenEngine {
ImGui::End(); ImGui::End();
}; };
/*
void test2()
{
// (optional) set browser properties
fileDialog.SetTitle("title");
fileDialog.SetTypeFilters({ ".oes" });
fileDialog.Open();
};
*/
void OnImGuiRender() override void OnImGuiRender() override
{ {
OE_PROFILE_FUNCTION(); OE_PROFILE_FUNCTION();
{
// Testing file pickers
if (ImGui::BeginMainMenuBar()) {
if (ImGui::BeginMenu("File")) {
if (ImGui::MenuItem("Save As", "Ctrl+S")) {
std::string file = FileDialogs::SaveFile("useless");
OE_TRACE("saving to filename: {}", file);
if (!file.empty()) {
SceneSerializer serializer(scene);
serializer.Serialize(file);
}
}
if (ImGui::MenuItem("Load", "Ctrl+O")) {
std::string file = FileDialogs::OpenFile("useless");
OE_DEBUG("loading filename: {}", file);
if (!file.empty()) {
scene = CreateRef<Scene>();
scene->OnViewportResize((uint32_t)viewport_size.x, (uint32_t)viewport_size.y);
scene_hierarchy.SetContext(scene);
SceneSerializer serializer(scene);
serializer.Deserialize(file);
}
}
if (ImGui::MenuItem("New Scene", "Ctrl+N")) {
scene = CreateRef<Scene>();
scene->OnViewportResize((uint32_t)viewport_size.x, (uint32_t)viewport_size.y);
scene_hierarchy.SetContext(scene);
}
ImGui::Separator();
if (ImGui::MenuItem("Exit"))
Application::Get().Close();
ImGui::EndMenu();
}
ImGui::EndMainMenuBar();
}
/*
fileDialog.Display();
if(fileDialog.HasSelected())
{
OE_TRACE("Selected filename {}", fileDialog.GetSelected().string());
fileDialog.ClearSelected();
}
*/
}
ImGui::DockSpaceOverViewport(); ImGui::DockSpaceOverViewport();
DrawStats(); DrawStats();
@@ -279,12 +335,13 @@ namespace OpenEngine {
glm::vec2 viewport_size = { 0.0f, 0.0f }; glm::vec2 viewport_size = { 0.0f, 0.0f };
Ref<OpenEngine::FrameBuffer> framebuffer; Ref<OpenEngine::FrameBuffer> framebuffer;
SceneHierarchy scene_hierarchy; SceneHierarchy scene_hierarchy;
//OrthographicCameraController camera;
Entity camera_bis; Entity camera_bis;
Ref<Scene> scene; Ref<Scene> scene;
Entity sq_entity; Entity sq_entity;
//ImGui::FileBrowser fileDialog;
}; };
} }
@@ -296,3 +353,24 @@ class EditorApp : public OpenEngine::Application
}; };
#endif // EDITOR_HPP #endif // EDITOR_HPP
/*
#include <cstdio>
#include <string>
std::string OpenFile() {
char buffer[1024];
// This command opens a native GTK file picker and returns the path
FILE* pipe = popen("zenity --file-selection", "r");
if (!pipe) return "";
if (fgets(buffer, sizeof(buffer), pipe) != NULL) {
std::string path = buffer;
path.erase(path.find_last_not_of("\n") + 1); // Clean newline
pclose(pipe);
return path;
}
pclose(pipe);
return "";
}
*/

View File

@@ -5,9 +5,9 @@
#include <open_engine.hpp> #include <open_engine.hpp>
#include <unistd.h> #include <unistd.h>
#include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.0/runtimes/arch-x64/native/nethost.h" #include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.3/runtimes/arch-x64/native/nethost.h"
#include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.0/runtimes/arch-x64/native/hostfxr.h" #include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.3/runtimes/arch-x64/native/hostfxr.h"
#include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.0/runtimes/arch-x64/native/coreclr_delegates.h" #include "/usr/share/dotnet/packs/Microsoft.NETCore.App.Host.arch-x64/10.0.3/runtimes/arch-x64/native/coreclr_delegates.h"
class Modding : public OpenEngine::Layer class Modding : public OpenEngine::Layer
{ {

View File

@@ -2,7 +2,6 @@
#define SCENE_HIERARCHY_HPP #define SCENE_HIERARCHY_HPP
#include "imgui.h" #include "imgui.h"
#include <array>
#include <open_engine.hpp> #include <open_engine.hpp>
namespace OpenEngine { namespace OpenEngine {
@@ -23,12 +22,42 @@ namespace OpenEngine {
template <typename T> template <typename T>
void DrawComponentDrawer(Entity& entity, const char* header) void DrawComponentDrawer(Entity& entity, const char* header)
{ {
if (entity.HasComponent<T>()) bool component_marked_deletion = false;
if (ImGui::TreeNodeEx((void*)typeid(T).hash_code(), ImGuiTreeNodeFlags_DefaultOpen, "%s", header)) { ImVec2 region_available = ImGui::GetContentRegionAvail();
ImGuiTreeNodeFlags tree_node_flags = ImGuiTreeNodeFlags_DefaultOpen
| ImGuiTreeNodeFlags_Framed
| ImGuiTreeNodeFlags_AllowOverlap;
if (entity.HasComponent<T>()) {
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2{ 4, 4 });
float line_height = ImGui::GetFontSize() + ImGui::GetStyle().FramePadding.y * 2.0f;
bool opened = ImGui::TreeNodeEx((void*)typeid(T).hash_code(), tree_node_flags, "%s", header);
ImGui::SameLine(region_available.x - line_height * 0.5f);
ImGui::PushStyleColor(ImGuiCol_Button, { 0.290f, 0.301f, 0.388f, 1.0f });
if (ImGui::Button("...", ImVec2{ line_height, line_height }))
ImGui::OpenPopup("component_settings");
ImGui::PopStyleColor();
ImGui::PopStyleVar();
if (ImGui::BeginPopup("component_settings")) {
if (ImGui::MenuItem("Remove component"))
component_marked_deletion = true;
ImGui::EndPopup();
}
if (opened) {
entity.GetComponents<T>().OnImGuiRender(entity); entity.GetComponents<T>().OnImGuiRender(entity);
ImGui::TreePop(); ImGui::TreePop();
ImGui::Separator();
} }
ImGui::Separator();
}
if (component_marked_deletion)
entity.RemoveComponents<T>();
} }
private: private:

View File

@@ -1,3 +1,5 @@
#include "open_engine/scene/components.hpp"
#include "open_engine/scene/entity.hpp"
#include <panels/scene_hierarchy.hpp> #include <panels/scene_hierarchy.hpp>
#include <cstring> #include <cstring>
@@ -13,55 +15,98 @@ namespace OpenEngine {
void SceneHierarchy::SetContext(const Ref<Scene>& context) void SceneHierarchy::SetContext(const Ref<Scene>& context)
{ {
scene = context; scene = context;
selected_context = {};
}
void ComponentPopup(Entity& selected_context)
{
ImGui::SeparatorText("Add");
if (!selected_context.HasComponent<TransformComponent>())
if (ImGui::MenuItem("Transform")) {
selected_context.AddComponents<TransformComponent>();
ImGui::CloseCurrentPopup();
}
if (!selected_context.HasComponent<SpriteRendererComponent>())
if (ImGui::MenuItem("Sprite")) {
selected_context.AddComponents<SpriteRendererComponent>();
ImGui::CloseCurrentPopup();
}
if (!selected_context.HasComponent<CameraComponent>())
if (ImGui::MenuItem("Camera")) {
selected_context.AddComponents<CameraComponent>();
ImGui::CloseCurrentPopup();
}
}
void EntityPopup(Ref<Scene>& scene)
{
ImGui::SeparatorText("Add");
if (ImGui::MenuItem("Empty entity")) {
scene->CreateEntity("Empty entity");
ImGui::CloseCurrentPopup();
}
} }
void SceneHierarchy::OnImGuiRender() void SceneHierarchy::OnImGuiRender()
{ {
ImGui::Begin("Scene"); // Scene hierarchy
if (ImGui::Begin("Scene")) {
for (auto entity_entt : scene->GetRegistry().view<TagComponent>()) { // Draw all enitity tree names
Entity entity{ entity_entt, scene.get() }; for (auto entity_entt : scene->GetRegistry().view<TagComponent>()) {
Entity entity{ entity_entt, scene.get() };
DrawEntityNode(entity); DrawEntityNode(entity);
}
if ((ImGui::IsMouseDown(0) && ImGui::IsWindowHovered())
|| (ImGui::IsKeyDown(ImGuiKey_Escape) && ImGui::IsWindowHovered()))
{
selected_context = {};
renamed_entity = {};
}
if (ImGui::BeginPopupContextWindow(0, ImGuiPopupFlags_MouseButtonRight | ImGuiPopupFlags_NoOpenOverItems))
{
if (ImGui::MenuItem("Create Empty Entity"))
{
scene->CreateEntity("Empty entity");
} }
ImGui::EndPopup();
// On click not on item, deselect
if ((ImGui::IsMouseDown(0) && ImGui::IsWindowHovered())
|| (ImGui::IsKeyDown(ImGuiKey_Escape) && ImGui::IsWindowHovered())) {
selected_context = {};
renamed_entity = {};
}
// On Right click open entity creation window
if (ImGui::BeginPopupContextWindow(0, ImGuiPopupFlags_MouseButtonRight | ImGuiPopupFlags_NoOpenOverItems)) {
EntityPopup(scene);
ImGui::EndPopup();
}
// Centred fullwidth bottom button to add entity
float button_height = ImGui::GetFrameHeight();
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + ImGui::GetContentRegionAvail().y - button_height);
if (ImGui::Button("Add Entity", ImVec2(ImGui::GetContentRegionAvail().x, 0.0f)))
ImGui::OpenPopup("add_entity");
if (ImGui::BeginPopup("add_entity")) {
EntityPopup(scene);
ImGui::EndPopup();
}
ImGui::End();
} }
ImGui::End(); // Property window
ImGui::Begin("Properties"); ImGui::Begin("Properties");
if (selected_context) { if (selected_context) {
DrawComponents(selected_context); DrawComponents(selected_context);
if (ImGui::BeginPopupContextWindow(0, ImGuiPopupFlags_MouseButtonRight | ImGuiPopupFlags_NoOpenOverItems)) if (ImGui::BeginPopupContextWindow(0, ImGuiPopupFlags_MouseButtonRight | ImGuiPopupFlags_NoOpenOverItems)) {
{ ComponentPopup(selected_context);
if (ImGui::MenuItem("Add transform")) ImGui::EndPopup();
{ }
selected_context.AddComponents<TransformComponent>();
} // Centred fullwidth bottom button to add component
if (ImGui::MenuItem("Add Sprite")) float button_height = ImGui::GetFrameHeight();
{ ImGui::SetCursorPosY(ImGui::GetCursorPosY() + ImGui::GetContentRegionAvail().y - button_height);
selected_context.AddComponents<SpriteRendererComponent>();
} if (ImGui::Button("Add Component", ImVec2(ImGui::GetContentRegionAvail().x, 0.0f)))
if (ImGui::MenuItem("Add camera")) ImGui::OpenPopup("add_component");
{
selected_context.AddComponents<CameraComponent>(); if (ImGui::BeginPopup("add_component")) {
} ComponentPopup(selected_context);
ImGui::EndPopup(); ImGui::EndPopup();
} }
} }
@@ -73,6 +118,7 @@ namespace OpenEngine {
{ {
auto& tag = entity.GetComponents<TagComponent>().tag; auto& tag = entity.GetComponents<TagComponent>().tag;
bool entity_marked_deletion = false;
if (renamed_entity == entity && selected_context == entity) { if (renamed_entity == entity && selected_context == entity) {
char buffer[255]; char buffer[255];
std::memset(buffer, 0, sizeof(buffer)); std::memset(buffer, 0, sizeof(buffer));
@@ -93,13 +139,18 @@ namespace OpenEngine {
renamed_entity = {}; renamed_entity = {};
ImGui::PopStyleVar(); ImGui::PopStyleVar();
} else { } else {
ImGuiTreeNodeFlags flags = ((selected_context == entity) ? ImGuiTreeNodeFlags_Selected : 0) | ImGuiTreeNodeFlags_OpenOnArrow; ImGuiTreeNodeFlags flags = ((selected_context == entity) ? ImGuiTreeNodeFlags_Selected : 0) | ImGuiTreeNodeFlags_OpenOnArrow;
flags |= ImGuiTreeNodeFlags_SpanAvailWidth; flags |= ImGuiTreeNodeFlags_SpanAvailWidth | ImGuiTreeNodeFlags_SpanAvailWidth;
bool opened = ImGui::TreeNodeEx((void*)(uint64_t)(uint32_t)entity, flags, "%s", tag.c_str()); bool opened = ImGui::TreeNodeEx((void*)(uint64_t)(uint32_t)entity, flags, "%s", tag.c_str());
if (ImGui::BeginPopupContextItem()) {
if (ImGui::MenuItem("Delete entity"))
entity_marked_deletion = true;
ImGui::EndPopup();
}
if (ImGui::IsItemHovered() && ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left)) { if (ImGui::IsItemHovered() && ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left)) {
// FocusViewportOnEntity(entity); // future implementation // FocusViewportOnEntity(entity); // future implementation
renamed_entity = {}; renamed_entity = {};
@@ -120,10 +171,15 @@ namespace OpenEngine {
last_selected_time = current_time; last_selected_time = current_time;
} }
} }
if (opened) if (opened)
ImGui::TreePop(); ImGui::TreePop();
} }
if (entity_marked_deletion) {
scene->DeleteEntity(entity);
if (selected_context == entity)
selected_context = {};
}
} }
void SceneHierarchy::DrawComponents(Entity& entity) void SceneHierarchy::DrawComponents(Entity& entity)

157
imgui.ini
View File

@@ -1,59 +1,144 @@
[Window][WindowOverViewport_11111111] [Window][WindowOverViewport_11111111]
Pos=0,0 Pos=0,24
Size=1272,1386 Size=1272,1362
Collapsed=0 Collapsed=0
[Window][Statistics]
Pos=0,0
Size=404,149
Collapsed=0
DockId=0x00000001,0
[Window][Debug##Default] [Window][Debug##Default]
Pos=60,60 Pos=431,670
Size=400,400 Size=400,400
Collapsed=0 Collapsed=0
[Window][Square settings] [Window][Statistics]
Pos=1037,307 Pos=0,24
Size=235,1079 Size=343,227
Collapsed=0 Collapsed=0
DockId=0x00000008,0 DockId=0x00000003,0
[Window][Properties]
Pos=829,24
Size=443,738
Collapsed=0
DockId=0x00000007,0
[Window][Viewport] [Window][Viewport]
Pos=406,0 Pos=345,24
Size=391,1059 Size=482,1362
Collapsed=0 Collapsed=0
DockId=0x00000009,0 DockId=0x00000009,0
[Window][Dear ImGui Demo] [Window][Dear ImGui Demo]
Pos=406,1061 Pos=829,764
Size=391,325 Size=443,622
Collapsed=0
DockId=0x00000008,0
[Window][Scene]
Pos=0,253
Size=343,1133
Collapsed=0
DockId=0x00000004,0
[Window][Dear ImGui Style Editor]
Pos=60,60
Size=591,1380
Collapsed=0
[Window][Example: Console]
Pos=345,786
Size=761,600
Collapsed=0 Collapsed=0
DockId=0x0000000A,0 DockId=0x0000000A,0
[Window][Scene] [Window][Example: Log]
Pos=0,151 Pos=375,209
Size=404,1235 Size=500,400
Collapsed=0 Collapsed=0
DockId=0x00000002,0
[Window][Properties] [Window][title##filebrowser_140732545916536]
Pos=799,0 Pos=290,472
Size=473,1386 Size=700,450
Collapsed=0
[Window][dummy window]
Pos=0,525
Size=343,861
Collapsed=0
[Window][title##filebrowser_140732777490360]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_140724674745064]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_140734304330456]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94826634853176]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_93985610707192]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94189918777656]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94796664553720]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94694593474872]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94281956523384]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94833770559928]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94808591664760]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94921459991096]
Pos=286,468
Size=700,450
Collapsed=0
[Window][title##filebrowser_94787465768376]
Pos=287,467
Size=700,450
Collapsed=0 Collapsed=0
DockId=0x00000007,0
[Docking][Data] [Docking][Data]
DockSpace ID=0x08BD597D Window=0x1BBC0F80 Pos=0,0 Size=1272,1386 Split=X DockSpace ID=0x08BD597D Window=0x1BBC0F80 Pos=0,24 Size=1272,1362 Split=X
DockNode ID=0x00000003 Parent=0x08BD597D SizeRef=2085,1386 Split=X DockNode ID=0x00000005 Parent=0x08BD597D SizeRef=827,1386 Split=X
DockNode ID=0x00000005 Parent=0x00000003 SizeRef=404,1386 Split=Y Selected=0x553E127E DockNode ID=0x00000001 Parent=0x00000005 SizeRef=343,1386 Split=Y Selected=0xE601B12F
DockNode ID=0x00000001 Parent=0x00000005 SizeRef=274,149 Selected=0x553E127E DockNode ID=0x00000003 Parent=0x00000001 SizeRef=255,231 Selected=0x553E127E
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=274,1235 Selected=0xE601B12F DockNode ID=0x00000004 Parent=0x00000001 SizeRef=255,1153 Selected=0xE601B12F
DockNode ID=0x00000006 Parent=0x00000003 SizeRef=1679,1386 Split=Y Selected=0xC450F867 DockNode ID=0x00000002 Parent=0x00000005 SizeRef=482,1386 Split=Y Selected=0xC450F867
DockNode ID=0x00000009 Parent=0x00000006 SizeRef=629,1067 CentralNode=1 Selected=0xC450F867 DockNode ID=0x00000009 Parent=0x00000002 SizeRef=483,784 CentralNode=1 Selected=0xC450F867
DockNode ID=0x0000000A Parent=0x00000006 SizeRef=629,325 Selected=0x5E5F7166 DockNode ID=0x0000000A Parent=0x00000002 SizeRef=483,600 Selected=0x1BCA3180
DockNode ID=0x00000004 Parent=0x08BD597D SizeRef=473,1386 Split=Y Selected=0x5E5F7166 DockNode ID=0x00000006 Parent=0x08BD597D SizeRef=443,1386 Split=Y Selected=0x8C72BEA8
DockNode ID=0x00000007 Parent=0x00000004 SizeRef=235,305 Selected=0x8C72BEA8 DockNode ID=0x00000007 Parent=0x00000006 SizeRef=444,738 Selected=0x8C72BEA8
DockNode ID=0x00000008 Parent=0x00000004 SizeRef=235,1079 Selected=0xA5FF3A7A DockNode ID=0x00000008 Parent=0x00000006 SizeRef=444,622 Selected=0x5E5F7166

93
licenses/OFL.txt Normal file
View File

@@ -0,0 +1,93 @@
Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://openfontlicense.org
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

15
licenses/nfd-e.md Normal file
View File

@@ -0,0 +1,15 @@
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

View File

@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.28) cmake_minimum_required(VERSION 3.28)
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 23)
set(PROJECT_EXECUTABLE_NAME open_engine) set(PROJECT_EXECUTABLE_NAME open_engine)
@@ -11,6 +11,8 @@ project(OpenEngine
add_definitions( -DOE_ENABLE_ASSERTS ) add_definitions( -DOE_ENABLE_ASSERTS )
find_package(imgui REQUIRED) find_package(imgui REQUIRED)
find_package(EnTT REQUIRED)
find_package(yaml-cpp REQUIRED)
file(GLOB_RECURSE SRC_FILES "src/*.cpp") file(GLOB_RECURSE SRC_FILES "src/*.cpp")
add_library(${PROJECT_EXECUTABLE_NAME} STATIC add_library(${PROJECT_EXECUTABLE_NAME} STATIC
@@ -30,6 +32,7 @@ target_include_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE
target_include_directories(${PROJECT_EXECUTABLE_NAME} PUBLIC target_include_directories(${PROJECT_EXECUTABLE_NAME} PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/include"
"/home/erris/.conan2/p/b/imguic69fe98538919/p/include" "/home/erris/.conan2/p/b/imguic69fe98538919/p/include"
"vendor/nativefiledialog-extended/src/include"
) )
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
@@ -42,7 +45,10 @@ target_link_libraries(${PROJECT_EXECUTABLE_NAME} PUBLIC
glfw glfw
glm glm
dl dl
EnTT::EnTT
X11 X11
yaml-cpp::yaml-cpp
nfd
) )
#target_link_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE #target_link_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE
@@ -52,3 +58,5 @@ target_link_libraries(${PROJECT_EXECUTABLE_NAME} PUBLIC
add_subdirectory(vendor/glad add_subdirectory(vendor/glad
./lib ./lib
) )
add_subdirectory("vendor/nativefiledialog-extended")

View File

@@ -2,14 +2,18 @@
#define OPEN_ENGINE_HPP #define OPEN_ENGINE_HPP
#include "open_engine/orthographic_camera_controller.hpp" #include "open_engine/orthographic_camera_controller.hpp"
#include "open_engine/scene/native_scriptable_entity.hpp"
#include "open_engine/imgui/imgui_layer.hpp" #include "open_engine/imgui/imgui_layer.hpp"
#include "open_engine/events/key_event.hpp" #include "open_engine/events/key_event.hpp"
#include "open_engine/scene/components.hpp"
#include "open_engine/application.hpp" #include "open_engine/application.hpp"
#include "open_engine/ref_scope.hpp" #include "open_engine/ref_scope.hpp"
#include "open_engine/logging.hpp" #include "open_engine/logging.hpp"
#include "open_engine/scene/native_scriptable_entity.hpp"
#include "open_engine/scene/scene_serializer.hpp"
#include "open_engine/scene/components.hpp"
#include "open_engine/scene/components.hpp"
#include "open_engine/core/file_dialogs.hpp"
#include "open_engine/core/time.hpp" #include "open_engine/core/time.hpp"
#include "open_engine/core.hpp" #include "open_engine/core.hpp"
@@ -23,7 +27,6 @@
#include "open_engine/renderer/renderer2d.hpp" #include "open_engine/renderer/renderer2d.hpp"
#include "open_engine/renderer/renderer.hpp" #include "open_engine/renderer/renderer.hpp"
#include "open_engine/renderer/texture.hpp" #include "open_engine/renderer/texture.hpp"
#include "open_engine/scene/components.hpp"
#include "open_engine/renderer/buffer.hpp" #include "open_engine/renderer/buffer.hpp"
#include "open_engine/renderer/shader.hpp" #include "open_engine/renderer/shader.hpp"
#include "open_engine/scene/entity.hpp" #include "open_engine/scene/entity.hpp"

View File

@@ -0,0 +1,16 @@
#ifndef FILE_DIALOGS_HPP
#define FILE_DIALOGS_HPP
// TODO: Un-Class this?
namespace OpenEngine {
class FileDialogs
{
public:
static std::string OpenFile(const char* filters);
static std::string SaveFile(const char* filters);
};
}
#endif // FILE_DIALOGS_HPP

View File

@@ -34,7 +34,6 @@ namespace OpenEngine {
std::memset(buffer, 0, sizeof(buffer)); std::memset(buffer, 0, sizeof(buffer));
std::strncpy(buffer, tag.c_str(), sizeof(buffer)); std::strncpy(buffer, tag.c_str(), sizeof(buffer));
ImGui::Text("Name");
if (ImGui::InputText("##tagEditor", buffer, sizeof(buffer), ImGuiInputTextFlags_EnterReturnsTrue | ImGuiInputTextFlags_AutoSelectAll) if (ImGui::InputText("##tagEditor", buffer, sizeof(buffer), ImGuiInputTextFlags_EnterReturnsTrue | ImGuiInputTextFlags_AutoSelectAll)
|| (!ImGui::IsItemActive() && ImGui::IsMouseClicked(0))) || (!ImGui::IsItemActive() && ImGui::IsMouseClicked(0)))
tag = buffer; tag = buffer;
@@ -68,7 +67,9 @@ namespace OpenEngine {
void OnImGuiRender(Entity& entity) void OnImGuiRender(Entity& entity)
{ {
DrawVec3Control("Position", translation); DrawVec3Control("Position", translation);
DrawVec3Control("Rotation", rotation); glm::vec3 rotation_comp = glm::degrees(rotation);
DrawVec3Control("Rotation", rotation_comp);
rotation = glm::radians(rotation_comp);
DrawVec3Control("Scale", scale); DrawVec3Control("Scale", scale);
}; };
}; };

View File

@@ -5,6 +5,8 @@
#include "open_engine/scene/scene.hpp" #include "open_engine/scene/scene.hpp"
#include <cstdint>
#include <entt/entity/fwd.hpp>
#include <entt/entt.hpp> #include <entt/entt.hpp>
#include <utility> #include <utility>
@@ -44,6 +46,7 @@ namespace OpenEngine {
}; };
operator bool() const { return handle != entt::null; }; operator bool() const { return handle != entt::null; };
operator entt::entity() const { return handle; };
operator uint32_t() const { return (uint32_t)handle; }; operator uint32_t() const { return (uint32_t)handle; };
bool operator ==(const Entity& other) const { bool operator ==(const Entity& other) const {

View File

@@ -11,6 +11,8 @@ namespace OpenEngine {
virtual ~NativeScriptableEntity() = default; virtual ~NativeScriptableEntity() = default;
template <typename T> template <typename T>
T& GetComponent() { return entity.GetComponents<T>(); }; T& GetComponent() { return entity.GetComponents<T>(); };
template <typename T>
bool HasComponent() { return entity.HasComponent<T>(); };
protected: protected:
virtual void OnCreate() {}; virtual void OnCreate() {};

View File

@@ -15,6 +15,7 @@ namespace OpenEngine {
~Scene() = default; ~Scene() = default;
Entity CreateEntity(const std::string& name = std::string()); Entity CreateEntity(const std::string& name = std::string());
void DeleteEntity(Entity entity);
void OnUpdate(); void OnUpdate();
void OnViewportResize(uint32_t width, uint32_t height); void OnViewportResize(uint32_t width, uint32_t height);
@@ -26,6 +27,7 @@ namespace OpenEngine {
uint32_t viewport_width = 0, viewport_height = 0; uint32_t viewport_width = 0, viewport_height = 0;
friend class SceneSerializer;
friend class Entity; friend class Entity;
}; };
} }

View File

@@ -0,0 +1,25 @@
#ifndef SCENE_SERIALIZER_HPP
#define SCENE_SERIALIZER_HPP
#include "open_engine/ref_scope.hpp"
#include "open_engine/scene/scene.hpp"
namespace OpenEngine {
class SceneSerializer
{
public:
SceneSerializer(const Ref<Scene>& scene);
void Serialize(const std::string& file_path);
void SerializeRuntime(const std::string& file_path);
bool Deserialize(const std::string& file_path);
bool DeserializeRuntime(const std::string& file_path);
private:
Ref<Scene> context;
};
}
#endif // SCENE_SERIALIZER_HPP

View File

@@ -0,0 +1,74 @@
#include "logging.hpp"
#include "nfd.h"
#include <pch.hpp>
#include <core/file_dialogs.hpp>
#include <nfd.hpp>
namespace OpenEngine {
std::string FileDialogs::OpenFile(const char* filters)
{
NFD_Init();
std::string path;
nfdu8char_t *outPath;
nfdu8filteritem_t nfd_filters[1] = { { "Open Engine save file", "oes" } };
nfdopendialogu8args_t args = {0};
args.filterList = nfd_filters;
args.filterCount = 1;
args.defaultPath = ".";
nfdresult_t result = NFD_OpenDialogU8_With(&outPath, &args);
if (result == NFD_OKAY)
{
path = outPath;
NFD_FreePathU8(outPath);
NFD_Quit();
return path;
}
else if (result == NFD_CANCEL)
{
OE_CORE_TRACE("User canceled.");
NFD_Quit();
return std::string();
}
else
{
OE_CORE_ERROR("{}", NFD_GetError());
NFD_Quit();
return std::string();
}
}
// TODO: Debug Make work consistently
std::string FileDialogs::SaveFile(const char* filters)
{
NFD_Init();
std::string path;
nfdchar_t* savePath;
// prepare filters for the dialog
nfdfilteritem_t filterItem[1] = {{"Open Engine save file", "oes"}};
// show the dialog
nfdresult_t result = NFD_SaveDialog(&savePath, filterItem, 1, NULL, "untitled.oes");
if (result == NFD_OKAY) {
path = savePath;
NFD_FreePath(savePath);
NFD_Quit();
return path;
NFD_Quit();
} else if (result == NFD_CANCEL) {
puts("User pressed cancel.");
NFD_Quit();
return std::string();
} else {
printf("Error: %s\n", NFD_GetError());
NFD_Quit();
return std::string();
}
}
}

View File

@@ -274,6 +274,9 @@ namespace OpenEngine {
io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable;
io.Fonts->AddFontFromFileTTF("assets/fonts/opensans.ttf", 18.0f);
io.FontDefault = io.Fonts->AddFontFromFileTTF("assets/fonts/opensans.ttf", 18.0f);
ImGuiStyle& style = ImGui::GetStyle(); ImGuiStyle& style = ImGui::GetStyle();
if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) { if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) {

View File

@@ -9,6 +9,9 @@ namespace OpenEngine {
float reset_value, float column_width, float reset_value, float column_width,
const std::array<const char*, 3> labels) const std::array<const char*, 3> labels)
{ {
ImGuiIO& io = ImGui::GetIO();
auto bold_font = io.Fonts->Fonts[0];
ImGui::PushID(label); ImGui::PushID(label);
ImVec2 item_spacing = { 15.0f, 0.0f }; ImVec2 item_spacing = { 15.0f, 0.0f };
ImGui::Columns(2); ImGui::Columns(2);
@@ -28,12 +31,14 @@ namespace OpenEngine {
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 1.0f, 0.8f, 0.9f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 1.0f, 0.8f, 0.9f, 1.0f });
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.953f, 0.545f, 0.659f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.953f, 0.545f, 0.659f, 1.0f });
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4{ 0.0f, 0.0f, 0.0f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_Text, ImVec4{ 0.0f, 0.0f, 0.0f, 1.0f });
ImGui::PushFont(bold_font);
if (ImGui::Button(labels[0], button_size)) if (ImGui::Button(labels[0], button_size))
values.x = reset_value; values.x = reset_value;
ImGui::PopFont();
ImGui::PopStyleColor(4); ImGui::PopStyleColor(4);
ImGui::SameLine(); ImGui::SameLine();
ImGui::DragFloat("##X", &values.x, 0.1f); ImGui::DragFloat("##X", &values.x, 0.1f, 0.0f, 0.0f, "%.2f");
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, item_spacing); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, item_spacing);
ImGui::SameLine(); ImGui::SameLine();
@@ -42,13 +47,15 @@ namespace OpenEngine {
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.9f, 1.0f, 0.9f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.9f, 1.0f, 0.9f, 1.0f });
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.650f, 0.890f, 0.631f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.650f, 0.890f, 0.631f, 1.0f });
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4{ 0.0f, 0.0f, 0.0f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_Text, ImVec4{ 0.0f, 0.0f, 0.0f, 1.0f });
ImGui::PushFont(bold_font);
if (ImGui::Button(labels[1], button_size)) if (ImGui::Button(labels[1], button_size))
values.y = reset_value; values.y = reset_value;
ImGui::PopFont();
ImGui::PopStyleColor(4); ImGui::PopStyleColor(4);
ImGui::PopStyleVar(); ImGui::PopStyleVar();
ImGui::SameLine(); ImGui::SameLine();
ImGui::DragFloat("##Y", &values.y, 0.1f); ImGui::DragFloat("##Y", &values.y, 0.1f, 0.0f, 0.0f, "%.2f");
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, item_spacing); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, item_spacing);
ImGui::SameLine(); ImGui::SameLine();
@@ -57,13 +64,15 @@ namespace OpenEngine {
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.7f, 0.9f, 1.0f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.7f, 0.9f, 1.0f, 1.0f });
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.533f, 0.698f, 0.976f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.533f, 0.698f, 0.976f, 1.0f });
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4{ 0.0f, 0.0f, 0.0f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_Text, ImVec4{ 0.0f, 0.0f, 0.0f, 1.0f });
ImGui::PushFont(bold_font);
if (ImGui::Button(labels[2], button_size)) if (ImGui::Button(labels[2], button_size))
values.z = reset_value; values.z = reset_value;
ImGui::PopFont();
ImGui::PopStyleColor(4); ImGui::PopStyleColor(4);
ImGui::PopStyleVar(1); ImGui::PopStyleVar(1);
ImGui::SameLine(); ImGui::SameLine();
ImGui::DragFloat("##Z", &values.z, 0.1f); ImGui::DragFloat("##Z", &values.z, 0.1f, 0.0f, 0.0f, "%.2f");
ImGui::PopItemWidth(); ImGui::PopItemWidth();
ImGui::PopStyleVar(); ImGui::PopStyleVar();

View File

@@ -16,6 +16,11 @@ namespace OpenEngine {
return entity; return entity;
} }
void Scene::DeleteEntity(Entity entity)
{
registry.destroy(entity);
}
void Scene::OnUpdate() void Scene::OnUpdate()
{ {

View File

@@ -0,0 +1,255 @@
#include <pch.hpp>
#include "core.hpp"
#include <scene/scene_serializer.hpp>
#include "scene/components.hpp"
#include "scene/entity.hpp"
#include <fstream>
#include <yaml-cpp/emittermanip.h>
#include <yaml-cpp/yaml.h>
namespace YAML {
template<>
struct convert<glm::vec3>
{
static Node encode(const glm::vec3& rhs)
{
Node node;
node.push_back(rhs.x);
node.push_back(rhs.y);
node.push_back(rhs.z);
return node;
}
static bool decode(const Node& node, glm::vec3& rhs)
{
if (!node.IsSequence() || node.size() != 3)
return false;
rhs.x = node[0].as<float>();
rhs.y = node[1].as<float>();
rhs.z = node[2].as<float>();
return true;
}
};
template<>
struct convert<glm::vec4>
{
static Node encode(const glm::vec4& rhs)
{
Node node;
node.push_back(rhs.x);
node.push_back(rhs.y);
node.push_back(rhs.z);
node.push_back(rhs.w);
return node;
}
static bool decode(const Node& node, glm::vec4& rhs)
{
if (!node.IsSequence() || node.size() != 4)
return false;
rhs.x = node[0].as<float>();
rhs.y = node[1].as<float>();
rhs.z = node[2].as<float>();
rhs.w = node[3].as<float>();
return true;
}
};
}
namespace OpenEngine {
YAML::Emitter& operator<<(YAML::Emitter& out, const glm::vec3& v)
{
out << YAML::Flow;
out << YAML::BeginSeq << v.x << v.y << v.z << YAML::EndSeq;
return out;
}
YAML::Emitter& operator<<(YAML::Emitter& out, const glm::vec4& v)
{
out << YAML::Flow;
out << YAML::BeginSeq << v.x << v.y << v.z << v.w << YAML::EndSeq;
return out;
}
SceneSerializer::SceneSerializer(const Ref<Scene>& scene)
: context(scene)
{
}
static void SerializeEntity(YAML::Emitter& out, Entity entity)
{
out << YAML::BeginMap;
out << YAML::Key << "Entity" << YAML::Value << "412741205"; // Needs random
if (entity.HasComponent<TagComponent>())
{
out << YAML::Key << "TagComponent";
out << YAML::BeginMap; // TagComponent
auto& tag = entity.GetComponents<TagComponent>().tag;
out << YAML::Key << "Tag" << YAML::Value << tag;
out << YAML::EndMap; // TagComponent
}
if (entity.HasComponent<TransformComponent>())
{
out << YAML::Key << "TransformComponent";
out << YAML::BeginMap; // TransformComponent
auto& tc = entity.GetComponents<TransformComponent>();
out << YAML::Key << "Translation" << YAML::Value << tc.translation;
out << YAML::Key << "Rotation" << YAML::Value << tc.rotation;
out << YAML::Key << "Scale" << YAML::Value << tc.scale;
out << YAML::EndMap; // TransformComponent
}
if (entity.HasComponent<CameraComponent>())
{
out << YAML::Key << "CameraComponent";
out << YAML::BeginMap; // CameraComponent
auto& cameraComponent = entity.GetComponents<CameraComponent>();
auto& camera = cameraComponent.camera;
out << YAML::Key << "Camera" << YAML::Value;
out << YAML::BeginMap; // Camera
out << YAML::Key << "ProjectionType" << YAML::Value << (int)camera.GetProjectionType();
out << YAML::Key << "PerspectiveFOV" << YAML::Value << camera.GetVerticalFov();
out << YAML::Key << "PerspectiveNear" << YAML::Value << camera.GetPerspectiveNearClip();
out << YAML::Key << "PerspectiveFar" << YAML::Value << camera.GetPerspectiveFarClip();
out << YAML::Key << "OrthographicSize" << YAML::Value << camera.GetOrthographicSize();
out << YAML::Key << "OrthographicNear" << YAML::Value << camera.GetOrthographicNearClip();
out << YAML::Key << "OrthographicFar" << YAML::Value << camera.GetOrthographicFarClip();
out << YAML::EndMap; // Camera
out << YAML::Key << "Primary" << YAML::Value << cameraComponent.primary;
out << YAML::Key << "FixedAspectRatio" << YAML::Value << cameraComponent.fixed_aspect_ratio;
out << YAML::EndMap; // CameraComponent
}
if (entity.HasComponent<SpriteRendererComponent>())
{
out << YAML::Key << "SpriteRendererComponent";
out << YAML::BeginMap; // SpriteRendererComponent
auto& spriteRendererComponent = entity.GetComponents<SpriteRendererComponent>();
out << YAML::Key << "Color" << YAML::Value << spriteRendererComponent.color;
out << YAML::EndMap; // SpriteRendererComponent
}
out << YAML::EndMap;
}
void SceneSerializer::Serialize(const std::string& file_path)
{
YAML::Emitter out;
out << YAML::BeginMap;
out << YAML::Key << "Scene" << YAML::Value << "N/A";
out << YAML::Key << "Entities" << YAML::Value << YAML::BeginSeq;
for (auto entity_id : context->registry.view<entt::entity>()) {
Entity entity = { entity_id, context.get()};
if (!entity)
return;
SerializeEntity(out, entity);
}
out << YAML::EndSeq;
out << YAML::EndMap;
std::ofstream fout(file_path);
fout << out.c_str();
}
void SceneSerializer::SerializeRuntime(const std::string& file_path)
{
OE_CORE_ASSERT(false, "Not implemented yet");
}
bool SceneSerializer::Deserialize(const std::string& file_path)
{
std::ifstream stream(file_path);
std::stringstream strStream;
strStream << stream.rdbuf();
YAML::Node data = YAML::Load(strStream.str());
if (!data["Scene"])
return false;
std::string sceneName = data["Scene"].as<std::string>();
OE_CORE_TRACE("Deserializing scene '{0}'", sceneName);
auto entities = data["Entities"];
if (entities)
{
for (auto entity : entities)
{
uint64_t uuid = entity["Entity"].as<uint64_t>(); // TODO
std::string name;
auto tagComponent = entity["TagComponent"];
if (tagComponent)
name = tagComponent["Tag"].as<std::string>();
OE_CORE_TRACE("Deserialized entity with ID = {0}, name = {1}", uuid, name);
Entity deserializedEntity = context->CreateEntity(name);
auto transformComponent = entity["TransformComponent"];
if (transformComponent)
{
auto& tc = deserializedEntity.AddComponents<TransformComponent>();
tc.translation = transformComponent["Translation"].as<glm::vec3>();
tc.rotation = transformComponent["Rotation"].as<glm::vec3>();
tc.scale = transformComponent["Scale"].as<glm::vec3>();
}
auto cameraComponent = entity["CameraComponent"];
if (cameraComponent)
{
auto& cc = deserializedEntity.AddComponents<CameraComponent>();
auto camera_props = cameraComponent["Camera"];
cc.camera.SetProjectionType((SceneCamera::ProjectionType)camera_props["ProjectionType"].as<int>());
cc.camera.SetVerticalFov(camera_props["PerspectiveFOV"].as<float>());
cc.camera.SetPerspectiveNearClip(camera_props["PerspectiveNear"].as<float>());
cc.camera.SetPerspectiveFarClip(camera_props["PerspectiveFar"].as<float>());
cc.camera.SetOrthographicSize(camera_props["OrthographicSize"].as<float>());
cc.camera.SetOrthographicNearClip(camera_props["OrthographicNear"].as<float>());
cc.camera.SetOrthographicFarClip(camera_props["OrthographicFar"].as<float>());
cc.primary = cameraComponent["Primary"].as<bool>();
cc.fixed_aspect_ratio = cameraComponent["FixedAspectRatio"].as<bool>();
}
auto spriteRendererComponent = entity["SpriteRendererComponent"];
if (spriteRendererComponent)
{
auto& src = deserializedEntity.AddComponents<SpriteRendererComponent>();
src.color = spriteRendererComponent["Color"].as<glm::vec4>();
}
}
}
return true;
}
bool SceneSerializer::DeserializeRuntime(const std::string& file_path)
{
OE_CORE_ASSERT(false, "Not implemented yet");
return false;
}
}