From b46a0d9369fbaa1938f0968ab216bc2d564a9c37 Mon Sep 17 00:00:00 2001 From: fschildt Date: Mon, 21 Jul 2025 16:07:28 +0200 Subject: first commit --- cmake/CMakeLists.txt | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 cmake/CMakeLists.txt (limited to 'cmake/CMakeLists.txt') diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt new file mode 100644 index 0000000..e37f355 --- /dev/null +++ b/cmake/CMakeLists.txt @@ -0,0 +1,67 @@ +cmake_minimum_required(VERSION 3.20) + + + +project(fsarcade) + + +set(CMAKE_CXX_COMPILER clang++) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + + +# set binary directory +set(FSARCADE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/..") +set(FSARCADE_SRC_DIR "${FSARCADE_ROOT_DIR}/src") +set(IMGUI_SRC_DIR "${FSARCADE_ROOT_DIR}/external/imgui") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${FSARCADE_ROOT_DIR}/runtree) + + +add_executable(fsarcade) +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") + target_compile_options(fsarcade PRIVATE -pedantic-errors -Wall -Weffc++ -Wconversion -Wsign-conversion -Wshadow) +endif () + +target_sources(fsarcade PUBLIC + ${FSARCADE_SRC_DIR}/main.cpp + ${FSARCADE_SRC_DIR}/basic/math.cpp + ${FSARCADE_SRC_DIR}/renderer/Renderer.cpp + ${FSARCADE_SRC_DIR}/renderer/RenderGroup.cpp + ${FSARCADE_SRC_DIR}/renderer/opengl/GlRenderer.cpp + ${FSARCADE_SRC_DIR}/renderer/opengl/GlVertexBuffer.cpp + ${FSARCADE_SRC_DIR}/renderer/opengl/GlIndexBuffer.cpp + ${FSARCADE_SRC_DIR}/renderer/opengl/GlShader.cpp + ${FSARCADE_SRC_DIR}/games/Game.cpp + ${FSARCADE_SRC_DIR}/games/tetris/Tetris.cpp + ${FSARCADE_SRC_DIR}/games/tetris/Tetromino.cpp + ${FSARCADE_SRC_DIR}/games/tetris/Board.cpp + ${FSARCADE_SRC_DIR}/games/snake/Snake.cpp + ${FSARCADE_SRC_DIR}/games/minesweeper/Minesweeper.cpp + ${IMGUI_SRC_DIR}/imgui.cpp + ${IMGUI_SRC_DIR}/imgui_draw.cpp + ${IMGUI_SRC_DIR}/imgui_tables.cpp + ${IMGUI_SRC_DIR}/imgui_widgets.cpp + ${IMGUI_SRC_DIR}/backends/imgui_impl_sdl3.cpp + ${IMGUI_SRC_DIR}/backends/imgui_impl_opengl3.cpp +) +target_include_directories(fsarcade PUBLIC + ${FSARCADE_SRC_DIR} + ${IMGUI_SRC_DIR} + ${IMGUI_SRC_DIR}/backends + ${FSARCADE_ROOT_DIR}/external/stb +) + +add_library(stb_truetype STATIC ${FSARCADE_SRC_DIR}/common/stb_truetype.cpp) +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") + target_compile_options(stb_truetype PRIVATE -w) # -w suppresses all warnings +elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + target_compile_options(stb_truetype PRIVATE /W0) # /W0 suppresses all warnings +endif() +target_include_directories(stb_truetype PUBLIC + ${FSARCADE_ROOT_DIR}/external/stb +) + +target_link_libraries(fsarcade GL GLEW SDL3 dl stb_truetype) + -- cgit v1.2.3