diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 0000000..037e0e1 --- /dev/null +++ b/.bazelrc @@ -0,0 +1 @@ +build --cxxopt='-std=c++17' diff --git a/WORKSPACE b/WORKSPACE new file mode 100644 index 0000000..85115f4 --- /dev/null +++ b/WORKSPACE @@ -0,0 +1,351 @@ +workspace( + name = "extremetuxracer", +) + +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "sfml", + urls = [ + "https://github.com/SFML/SFML/archive/refs/tags/2.5.1.tar.gz", + ], + strip_prefix = "SFML-2.5.1", + sha256 = "438c91a917cc8aa19e82c6f59f8714da353c488584a007d401efac8368e1c785", + build_file_content = """ + +cc_library( + name = "stb_image", + hdrs = [ + "extlibs/headers/stb_image/stb_image.h", + "extlibs/headers/stb_image/stb_image_write.h", + ], + strip_include_prefix = "extlibs/headers/stb_image", +) + +cc_library( + name = "config", + hdrs = [ + "include/SFML/Config.hpp", + ], + strip_include_prefix = "include/", + includes = [ "src" ], +) + +cc_library( + name = "audio", + hdrs = [ + "include/SFML/Audio.hpp", + "include/SFML/Audio/AlResource.hpp", + "include/SFML/Audio/InputSoundFile.hpp", + "include/SFML/Audio/Export.hpp", + "include/SFML/Audio/Listener.hpp", + "include/SFML/Audio/Music.hpp", + "include/SFML/Audio/OutputSoundFile.hpp", + "include/SFML/Audio/Sound.hpp", + "include/SFML/Audio/SoundBuffer.hpp", + "include/SFML/Audio/SoundBufferRecorder.hpp", + "include/SFML/Audio/SoundFileFactory.hpp", + "include/SFML/Audio/SoundFileFactory.inl", + "include/SFML/Audio/SoundFileReader.hpp", + "include/SFML/Audio/SoundFileWriter.hpp", + "include/SFML/Audio/SoundRecorder.hpp", + "include/SFML/Audio/SoundStream.hpp", + "include/SFML/Audio/SoundSource.hpp", + ], + srcs = [ + "src/SFML/Audio/ALCheck.hpp", + "src/SFML/Audio/AudioDevice.hpp", + "src/SFML/Audio/SoundFileReaderFlac.hpp", + "src/SFML/Audio/SoundFileReaderOgg.hpp", + "src/SFML/Audio/SoundFileReaderWav.hpp", + "src/SFML/Audio/SoundFileWriterFlac.hpp", + "src/SFML/Audio/SoundFileWriterOgg.hpp", + "src/SFML/Audio/SoundFileWriterWav.hpp", + + "src/SFML/Audio/ALCheck.cpp", + "src/SFML/Audio/AlResource.cpp", + "src/SFML/Audio/AudioDevice.cpp", + "src/SFML/Audio/InputSoundFile.cpp", + "src/SFML/Audio/Music.cpp", + "src/SFML/Audio/OutputSoundFile.cpp", + "src/SFML/Audio/Sound.cpp", + "src/SFML/Audio/SoundBuffer.cpp", + "src/SFML/Audio/SoundFileFactory.cpp", + "src/SFML/Audio/SoundFileReaderFlac.cpp", + "src/SFML/Audio/SoundFileReaderOgg.cpp", + "src/SFML/Audio/SoundFileReaderWav.cpp", + "src/SFML/Audio/SoundFileWriterFlac.cpp", + "src/SFML/Audio/SoundFileWriterOgg.cpp", + "src/SFML/Audio/SoundFileWriterWav.cpp", + "src/SFML/Audio/SoundSource.cpp", + "src/SFML/Audio/SoundStream.cpp", + ], + strip_include_prefix = "include/", + includes = [ "src" ], + deps = [ + ":config", + ":system", + ], + copts = [ + "-I/usr/include/AL", + ], + linkopts = [ + "-lFLAC", + "-logg", + "-lopenal", + "-lvorbis", + "-lvorbisenc", + "-lvorbisfile", + ], + visibility = [ + "//visibility:public", + ], +) + +cc_library( + name = "system", + hdrs = [ + "include/SFML/System.hpp", + "include/SFML/System/Clock.hpp", + "include/SFML/System/Err.hpp", + "include/SFML/System/Export.hpp", + "include/SFML/System/FileInputStream.hpp", + "include/SFML/System/InputStream.hpp", + "include/SFML/System/Lock.hpp", + "include/SFML/System/MemoryInputStream.hpp", + "include/SFML/System/Mutex.hpp", + "include/SFML/System/NonCopyable.hpp", + "include/SFML/System/Sleep.hpp", + "include/SFML/System/String.hpp", + "include/SFML/System/String.inl", + "include/SFML/System/Time.hpp", + "include/SFML/System/Thread.hpp", + "include/SFML/System/Thread.inl", + "include/SFML/System/ThreadLocal.hpp", + "include/SFML/System/ThreadLocalPtr.hpp", + "include/SFML/System/ThreadLocalPtr.inl", + "include/SFML/System/Utf.hpp", + "include/SFML/System/Utf.inl", + "include/SFML/System/Vector2.hpp", + "include/SFML/System/Vector2.inl", + "include/SFML/System/Vector3.hpp", + "include/SFML/System/Vector3.inl", + ], + srcs = [ + "src/SFML/System/Clock.cpp", + "src/SFML/System/Err.cpp", + "src/SFML/System/FileInputStream.cpp", + "src/SFML/System/Lock.cpp", + "src/SFML/System/MemoryInputStream.cpp", + "src/SFML/System/Mutex.cpp", + "src/SFML/System/Sleep.cpp", + "src/SFML/System/String.cpp", + "src/SFML/System/Time.cpp", + "src/SFML/System/Thread.cpp", + "src/SFML/System/ThreadLocal.cpp", + + "src/SFML/System/Unix/ClockImpl.hpp", + "src/SFML/System/Unix/MutexImpl.hpp", + "src/SFML/System/Unix/SleepImpl.hpp", + "src/SFML/System/Unix/ThreadImpl.hpp", + "src/SFML/System/Unix/ThreadLocalImpl.hpp", + + "src/SFML/System/Unix/ClockImpl.cpp", + "src/SFML/System/Unix/MutexImpl.cpp", + "src/SFML/System/Unix/SleepImpl.cpp", + "src/SFML/System/Unix/ThreadImpl.cpp", + "src/SFML/System/Unix/ThreadLocalImpl.cpp", + ], + strip_include_prefix = "include/", + includes = [ "src" ], + deps = [ + ":config", + ], + linkopts = [ + "-lpthread", + ], + visibility = [ + "//visibility:public", + ], +) + +cc_library( + name = "window", + hdrs = [ + "include/SFML/OpenGL.hpp", + + "include/SFML/Window.hpp", + "include/SFML/Window/Clipboard.hpp", + "include/SFML/Window/Context.hpp", + "include/SFML/Window/ContextSettings.hpp", + "include/SFML/Window/Cursor.hpp", + "include/SFML/Window/Event.hpp", + "include/SFML/Window/Export.hpp", + "include/SFML/Window/GlResource.hpp", + "include/SFML/Window/Joystick.hpp", + "include/SFML/Window/Keyboard.hpp", + "include/SFML/Window/Mouse.hpp", + "include/SFML/Window/Sensor.hpp", + "include/SFML/Window/Touch.hpp", + "include/SFML/Window/VideoMode.hpp", + "include/SFML/Window/Window.hpp", + "include/SFML/Window/WindowHandle.hpp", + "include/SFML/Window/WindowStyle.hpp", + ], + srcs = [ + "src/SFML/Window/CursorImpl.hpp", + "src/SFML/Window/GlContext.hpp", + "src/SFML/Window/InputImpl.hpp", + "src/SFML/Window/JoystickImpl.hpp", + "src/SFML/Window/JoystickManager.hpp", + "src/SFML/Window/SensorImpl.hpp", + "src/SFML/Window/SensorManager.hpp", + "src/SFML/Window/VideoModeImpl.hpp", + "src/SFML/Window/WindowImpl.hpp", + + "src/SFML/Window/Context.cpp", + "src/SFML/Window/Cursor.cpp", + "src/SFML/Window/GlContext.cpp", + "src/SFML/Window/GlResource.cpp", + "src/SFML/Window/Joystick.cpp", + "src/SFML/Window/JoystickManager.cpp", + "src/SFML/Window/Keyboard.cpp", + "src/SFML/Window/Mouse.cpp", + "src/SFML/Window/SensorManager.cpp", + "src/SFML/Window/VideoMode.cpp", + "src/SFML/Window/Window.cpp", + "src/SFML/Window/WindowImpl.cpp", + + "src/SFML/Window/Unix/ClipboardImpl.hpp", + "src/SFML/Window/Unix/CursorImpl.hpp", + "src/SFML/Window/Unix/Display.hpp", + "src/SFML/Window/Unix/GlxContext.hpp", + "src/SFML/Window/Unix/GlxExtensions.hpp", + "src/SFML/Window/Unix/InputImpl.hpp", + "src/SFML/Window/Unix/JoystickImpl.hpp", + "src/SFML/Window/Unix/SensorImpl.hpp", + "src/SFML/Window/Unix/WindowImplX11.hpp", + + "src/SFML/Window/Unix/ClipboardImpl.cpp", + "src/SFML/Window/Unix/CursorImpl.cpp", + "src/SFML/Window/Unix/Display.cpp", + "src/SFML/Window/Unix/GlxContext.cpp", + "src/SFML/Window/Unix/GlxExtensions.cpp", + "src/SFML/Window/Unix/InputImpl.cpp", + "src/SFML/Window/Unix/JoystickImpl.cpp", + "src/SFML/Window/Unix/SensorImpl.cpp", + "src/SFML/Window/Unix/VideoModeImpl.cpp", + "src/SFML/Window/Unix/WindowImplX11.cpp", + ], + strip_include_prefix = "include/", + includes = [ "src" ], + deps = [ + ":config", + ":system", + ], + linkopts = [ + "-ludev", + "-lGL", + "-lGLU", + "-lX11", + "-lXrandr", + ], + visibility = [ + "//visibility:public", + ], +) + +cc_library( + name = "graphics", + hdrs = [ + "include/SFML/Graphics.hpp", + "include/SFML/Graphics/BlendMode.hpp", + "include/SFML/Graphics/CircleShape.hpp", + "include/SFML/Graphics/Color.hpp", + "include/SFML/Graphics/ConvexShape.hpp", + "include/SFML/Graphics/Drawable.hpp", + "include/SFML/Graphics/Export.hpp", + "include/SFML/Graphics/Font.hpp", + "include/SFML/Graphics/Glyph.hpp", + "include/SFML/Graphics/Glsl.hpp", + "include/SFML/Graphics/Glsl.inl", + "include/SFML/Graphics/Image.hpp", + "include/SFML/Graphics/PrimitiveType.hpp", + "include/SFML/Graphics/Rect.hpp", + "include/SFML/Graphics/Rect.inl", + "include/SFML/Graphics/RectangleShape.hpp", + "include/SFML/Graphics/RenderStates.hpp", + "include/SFML/Graphics/RenderTarget.hpp", + "include/SFML/Graphics/RenderTexture.hpp", + "include/SFML/Graphics/RenderWindow.hpp", + "include/SFML/Graphics/Shader.hpp", + "include/SFML/Graphics/Shape.hpp", + "include/SFML/Graphics/Sprite.hpp", + "include/SFML/Graphics/Text.hpp", + "include/SFML/Graphics/Texture.hpp", + "include/SFML/Graphics/Transform.hpp", + "include/SFML/Graphics/Transformable.hpp", + "include/SFML/Graphics/Vertex.hpp", + "include/SFML/Graphics/VertexArray.hpp", + "include/SFML/Graphics/VertexBuffer.hpp", + "include/SFML/Graphics/View.hpp", + ], + srcs = [ + "src/SFML/Graphics/GLCheck.hpp", + "src/SFML/Graphics/ImageLoader.hpp", + "src/SFML/Graphics/TextureSaver.hpp", + "src/SFML/Graphics/GLExtensions.hpp", + "src/SFML/Graphics/GLLoader.hpp", + "src/SFML/Graphics/RenderTextureImpl.hpp", + "src/SFML/Graphics/RenderTextureImplDefault.hpp", + "src/SFML/Graphics/RenderTextureImplFBO.hpp", + + "src/SFML/Graphics/BlendMode.cpp", + "src/SFML/Graphics/Color.cpp", + "src/SFML/Graphics/Font.cpp", + "src/SFML/Graphics/Glsl.cpp", + "src/SFML/Graphics/GLCheck.cpp", + "src/SFML/Graphics/GLExtensions.cpp", + "src/SFML/Graphics/GLLoader.cpp", + "src/SFML/Graphics/Image.cpp", + "src/SFML/Graphics/ImageLoader.cpp", + "src/SFML/Graphics/RectangleShape.cpp", + "src/SFML/Graphics/RenderStates.cpp", + "src/SFML/Graphics/RenderTarget.cpp", + "src/SFML/Graphics/RenderTexture.cpp", + "src/SFML/Graphics/RenderTextureImpl.cpp", + "src/SFML/Graphics/RenderTextureImplDefault.cpp", + "src/SFML/Graphics/RenderTextureImplFBO.cpp", + "src/SFML/Graphics/RenderWindow.cpp", + "src/SFML/Graphics/Shader.cpp", + "src/SFML/Graphics/Shape.cpp", + "src/SFML/Graphics/Sprite.cpp", + "src/SFML/Graphics/Text.cpp", + "src/SFML/Graphics/Texture.cpp", + "src/SFML/Graphics/TextureSaver.cpp", + "src/SFML/Graphics/Transform.cpp", + "src/SFML/Graphics/Transformable.cpp", + "src/SFML/Graphics/Vertex.cpp", + "src/SFML/Graphics/VertexArray.cpp", + "src/SFML/Graphics/VertexBuffer.cpp", + "src/SFML/Graphics/View.cpp", + ], + strip_include_prefix = "include/", + includes = [ "src" ], + copts = [ + "-I/usr/include/freetype2", + ], + linkopts = [ + "-lfreetype", + ], + deps = [ + ":system", + ":window", + ":stb_image", + ], + visibility = [ + "//visibility:public", + ], +) +""", +) diff --git a/src/BUILD.bazel b/src/BUILD.bazel new file mode 100644 index 0000000..816789a --- /dev/null +++ b/src/BUILD.bazel @@ -0,0 +1,160 @@ +cc_binary( + name = "main", + srcs = [ + "audio.h", + "audio.cpp", + + "bh.h", + + "common.h", + "common.cpp", + + "config_screen.h", + "config_screen.cpp", + + "course.h", + "course.cpp", + + "course_render.h", + "course_render.cpp", + + "credits.h", + "credits.cpp", + + "env.h", + "env.cpp", + + "etr_types.h", + + "event.h", + "event.cpp", + + "event_select.h", + "event_select.cpp", + + "font.h", + "font.cpp", + + "gui.h", + "gui.cpp", + + "game_config.h", + "game_config.cpp", + + "game_ctrl.h", + "game_ctrl.cpp", + + "game_over.h", + "game_over.cpp", + + "game_type_select.h", + "game_type_select.cpp", + + "help.h", + "help.cpp", + + "hud.h", + "hud.cpp", + + "intro.h", + "intro.cpp", + + "keyframe.h", + "keyframe.cpp", + + "loading.h", + "loading.cpp", + + "mathlib.h", + "mathlib.cpp", + + "matrices.h", + "matrices.cpp", + + "newplayer.h", + "newplayer.cpp", + + "ogl.h", + "ogl.cpp", + + "ogl_test.h", + "ogl_test.cpp", + + "particles.h", + "particles.cpp", + + "paused.h", + "paused.cpp", + + "physics.h", + "physics.cpp", + + "quadtree.h", + "quadtree.cpp", + + "race_select.h", + "race_select.cpp", + + "racing.h", + "racing.cpp", + + "regist.h", + "regist.cpp", + + "reset.h", + "reset.cpp", + + "score.h", + "score.cpp", + + "splash_screen.h", + "splash_screen.cpp", + + "spx.h", + "spx.cpp", + + "states.h", + "states.cpp", + + "textures.h", + "textures.cpp", + + "tool_char.h", + "tool_char.cpp", + + "tool_frame.h", + "tool_frame.cpp", + + "tools.h", + "tools.cpp", + + "track_marks.h", + "track_marks.cpp", + + "translation.h", + "translation.cpp", + + "tux.h", + "tux.cpp", + + "vectors.h", + "vectors.cpp", + + "version.h", + + "view.h", + "view.cpp", + + "winsys.h", + "winsys.cpp", + + "main.cpp", + ], + local_defines = [ + 'ETR_DATA_DIR=\\"/home/less_shelter\\"', + ], + deps = [ + "@sfml//:audio", + "@sfml//:graphics", + ], +)