first commit
This commit is contained in:
commit
ef612dcc19
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
build
|
||||
include/SDL3
|
||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "SDL"]
|
||||
path = SDL
|
||||
url = https://github.com/libsdl-org/SDL.git
|
||||
1
SDL
Submodule
1
SDL
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 3dc48a4890d37560e4159f50b7a6eadc9b9c1936
|
||||
70
build.sh
Executable file
70
build.sh
Executable file
@ -0,0 +1,70 @@
|
||||
#!/bin/bash
|
||||
set -eu
|
||||
|
||||
for arg in "$@"; do declare $arg="1"; done
|
||||
|
||||
if [ ! -v release ]; then debug=1; fi
|
||||
if [ ! -v clang ]; then gcc=1; fi
|
||||
|
||||
if [ -v release ]; then
|
||||
build_mode="-g"
|
||||
echo "[Release Mode]"
|
||||
fi
|
||||
if [ -v debug ];
|
||||
build_mode="-O2"
|
||||
then echo "[Debug Mode]"
|
||||
fi
|
||||
|
||||
script_dir="$(dirname -- "${BASH_SOURCE[0]}" )"
|
||||
cd $script_dir
|
||||
|
||||
mkdir -p build
|
||||
mkdir -p include
|
||||
|
||||
# SDL
|
||||
if ! [ -f "build/libSDL3.a" ]; then
|
||||
cmake -S SDL -B SDL/build -DSDL_STATIC=ON -DSDL_SHARED=OFF
|
||||
|
||||
cd SDL/build
|
||||
make
|
||||
cd ../..
|
||||
|
||||
cp SDL/build/libSDL3.a build
|
||||
cp -r SDL/include/SDL3 include
|
||||
fi
|
||||
|
||||
if [ -v gcc ]; then
|
||||
if ! [ -x "$(command -v g++)" ]; then
|
||||
echo "Unable to find gcc compiler, try again with the clang flag or install gcc."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
compiler_flags="-fzero-init-padding-bits=unions"
|
||||
compiler="g++"
|
||||
elif [ -v clang ]; then
|
||||
if ! [ -x "$(command -v clang++)" ]; then
|
||||
echo "Unable to find clang compiler, try again with the gcc flag or install clang"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
compiler_flags=""
|
||||
compiler="clang++"
|
||||
fi
|
||||
|
||||
if [ -x "$(command -v mold)" ]; then
|
||||
linker="mold";
|
||||
elif [ -x "$(command -v lld)" ]; then
|
||||
linker="lld";
|
||||
elif [ -x "$(command -v ld)" ]; then
|
||||
linker="ld"
|
||||
else
|
||||
echo "Unable to find a linker, please install mold, lld or ld"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
src="main.cpp"
|
||||
out="build/Renderer"
|
||||
linker_flags="-lGL -Lbuild -l:libSDL3.a"
|
||||
flags="-std=c++23 ${build_mode} ${compiler_flags} -Iinclude -fuse-ld=${linker} -o${out}"
|
||||
|
||||
$compiler $src $linker_flags $flags
|
||||
32
main.cpp
Normal file
32
main.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
#include <cstdio>
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
|
||||
bool
|
||||
Init()
|
||||
{
|
||||
const char* error = NULL;
|
||||
|
||||
SDL_SetAppMetadata("Renderer", "0.0", "com.sleepyday.renderer");
|
||||
|
||||
if(!SDL_Init(SDL_INIT_VIDEO))
|
||||
{
|
||||
error = SDL_GetError();
|
||||
goto InitFailure;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
InitFailure:
|
||||
printf("Failed to initialize: [%s]", error);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char** argv)
|
||||
{
|
||||
Init();
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user