summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-10-19 23:13:55 +0200
committerStanislaw Halik <sthalik@misaki.pl>2022-10-19 23:13:55 +0200
commitdcac560e53d82ca8d7c8952b0a7c695ae43d09c2 (patch)
treed4c37de7453b1254c95ed82ca3b503bf7df365ea
parent25dcbef044e7db59b7fc0299f1a6c4bd97c582ee (diff)
a
-rw-r--r--CMakeLists.txt163
-rw-r--r--cmake/.gitkeep0
-rw-r--r--external/CMakeLists.txt141
-rw-r--r--main/loader-impl.cpp2
-rw-r--r--resources.conf2
-rw-r--r--src/loader.hpp2
6 files changed, 160 insertions, 150 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f3a57e64..49d207b9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,8 +1,8 @@
-list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
-cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
-project(game)
-
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
+project(floormat)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_DEFAULT 23)
@@ -34,13 +34,13 @@ if(MSVC)
add_definitions(-D_USE_MATH_DEFINES=1)
endif()
-set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS OFF)
-set_directory_properties(PROPERTIES CORRADE_CXX_STANDARD 20)
-set_directory_properties(PROPERTIES INTERFACE_CORRADE_CXX_STANDARD 20)
+if(COMMAND fm_hook_pre_external)
+ fm_hook_pre_external()
+endif()
-foreach(_module corrade magnum magnum-integration magnum-plugins)
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/modules")
-endforeach()
+set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS OFF)
+set_directory_properties(PROPERTIES CORRADE_CXX_STANDARD ${CMAKE_CXX_STANDARD})
+set_directory_properties(PROPERTIES INTERFACE_CORRADE_CXX_STANDARD ${CMAKE_CXX_STANDARD})
function(sets type)
set(i 0)
@@ -60,126 +60,22 @@ endfunction()
cmake_policy(SET CMP0063 NEW)
-sets(PATH ImGui_DIR "${CMAKE_SOURCE_DIR}/imgui")
-sets(PATH ImGui_INCLUDE_DIR "${ImGui_DIR}")
-
if(MSVC)
- add_compile_options(/permissive-)
+ add_compile_options(-permissive-)
add_compile_options(
-wd4244 # warning C4244: 'argument': conversion from 'int' to 'float', possible loss of data
-wd4312 # warning C4312: 'reinterpret_cast': conversion from 'GLenum' to 'void *' of greater size
-wd4251 # warning C4251: 't::f': class 'x' needs to have dll-interface to be used by clients of class 'y'
-wd4456 # warning C4456: declaration of 'x' hides previous local declaration
)
- string(APPEND CMAKE_STATIC_LINKER_FLAGS " -IGNORE:4006") #warning LNK4006: main already defined in x.cpp.obj; second definition ignored
add_compile_options(-external:W0 -external:anglebrackets)
-
if(CMAKE_SIZEOF_VOID_P GREATER_EQUAL 8)
add_link_options(-HIGHENTROPYVA)
endif()
endif()
-sets(BOOL
- CORRADE_BUILD_STATIC OFF
- CORRADE_BUILD_TESTS OFF
- CORRADE_BUILD_DEPRECATED OFF
-
- CORRADE_MSVC_COMPATIBILITY OFF
-
- CORRADE_UTILITY_USE_ANSI_COLORS ON
- CORRADE_WITH_TESTSUITE ON
-
- MAGNUM_BUILD_STATIC OFF
- MAGNUM_BUILD_TESTS OFF
-
- MAGNUM_WITH_ANYIMAGECONVERTER ON
- MAGNUM_WITH_ANYIMAGEIMPORTER ON
- MAGNUM_WITH_DISTANCEFIELDCONVERTER ON
- MAGNUM_WITH_FONTCONVERTER ON
- MAGNUM_WITH_GL_INFO ON
- MAGNUM_WITH_IMAGECONVERTER ON
- MAGNUM_WITH_MAGNUMFONT ON
- MAGNUM_WITH_MAGNUMFONTCONVERTER ON
- MAGNUM_WITH_OBJIMPORTER ON
- MAGNUM_WITH_OPENGLTESTER ON
- MAGNUM_WITH_SDL2APPLICATION ON
- MAGNUM_WITH_SHADERCONVERTER ON
- MAGNUM_WITH_SHADERS ON
- MAGNUM_WITH_SHADERTOOLS ON
- MAGNUM_WITH_TGAIMAGECONVERTER ON
- MAGNUM_WITH_TGAIMPORTER ON
- MAGNUM_WITH_WINDOWLESSWGLAPPLICATION ON
-
- MAGNUM_WITH_DDSIMPORTER ON
- MAGNUM_WITH_GLTFIMPORTER ON
- MAGNUM_WITH_ICOIMPORTER ON
- MAGNUM_WITH_PRIMITIVEIMPORTER ON
- MAGNUM_WITH_STBIMAGECONVERTER ON
- MAGNUM_WITH_STBIMAGEIMPORTER ON
- MAGNUM_WITH_STBTRUETYPEFONT ON
- MAGNUM_WITH_TINYGLTFIMPORTER OFF
-
- MAGNUM_WITH_BULLET OFF
- MAGNUM_WITH_DART OFF
- MAGNUM_WITH_EIGEN OFF
- MAGNUM_WITH_GLM OFF
- MAGNUM_WITH_IMGUI ON
-)
-
-sets(BOOL
- SDL_ASSERTIONS release
-
- SDL_3DNOW OFF
- SDL_ALTIVEC OFF
- #SDL_ASSEMBLY OFF
- SDL_ATOMIC OFF
- SDL_AUDIO OFF
- SDL_CPUINFO OFF
- SDL_DIRECTX OFF
- SDL_DISKAUDIO OFF
- SDL_DUMMYAUDIO OFF
- SDL_DUMMYVIDEO OFF
- SDL_FILE OFF
- SDL_FILESYSTEM OFF
- SDL_HAPTIC OFF
- SDL_HIDAPI OFF
- SDL_HIDAPI_JOYSTICK OFF
- SDL_JOYSTICK OFF
- SDL_LIBC ON
- SDL_LOADSO ON
- SDL_LOCALE OFF
- SDL_MISC OFF
- #SDL_MMX OFF
- SDL_OPENGL ON
- SDL_OPENGLES OFF
- SDL_POWER OFF
- SDL_RENDER OFF
- SDL_RENDER_D3D OFF
- SDL_SENSOR OFF
- #SDL_SSE OFF
- #SDL_SSE2 OFF
- #SDL_SSE3 OFF
- #SDL_SSEMATH OFF
- SDL_SYSTEM_ICONV OFF
- SDL_TEST OFF
- SDL_THREADS ON
- SDL_TIMERS OFF
- SDL_VIDEO ON
- SDL_VIRTUAL_JOYSTICK OFF
- SDL_VULKAN OFF
- SDL_WASAPI OFF
- SDL_XINPUT OFF
-
- SDL2_DISABLE_INSTALL OFF
- SDL2_DISABLE_SDL2MAIN ON
-)
-
-sets(BOOL
- JSON_Diagnostics ON
- JSON_Install ON
- JSON_MultipleHeaders ON
- JSON_SystemInclude ON
-)
+set(FLOORMAT_SUBMODULE_DEPENDENCIES ON CACHE BOOL
+ "Use dependencies included in the source directory (needs git submodule update --init).")
function(fm_load_userconfig)
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
@@ -196,28 +92,7 @@ function(fm_load_userconfig)
endfunction()
fm_load_userconfig()
-if(NOT MSVC)
- add_compile_options(-fdiagnostics-color=always)
-endif()
-
-find_package(ImGui QUIET REQUIRED)
-
-add_subdirectory(json)
-
-add_subdirectory(sdl2)
-find_package(SDL2 QUIET REQUIRED)
-
-add_subdirectory(corrade)
-find_package(Corrade QUIET REQUIRED)
-
-add_subdirectory(magnum)
-find_package(Magnum QUIET REQUIRED)
-
-add_subdirectory(magnum-plugins)
-find_package(MagnumPlugins QUIET REQUIRED)
-
-add_subdirectory(magnum-integration)
-find_package(MagnumIntegration QUIET REQUIRED ImGui)
+add_subdirectory(external)
include_directories(.)
include_directories(src)
@@ -228,14 +103,8 @@ else()
add_definitions(-include compat/prelude.hpp)
endif()
-if(MSVC)
- target_compile_options(CorradeTestSuite PUBLIC -EHsc)
- target_link_options(CorradeTestSuite PUBLIC -WX:NO)
- add_compile_options(-W4)
-else()
- add_compile_options(-Wall -Wextra -Wpedantic -Wno-old-style-cast -Wno-padded -Wno-ignored-attributes)
- add_compile_options(-fcolor-diagnostics)
- add_compile_options(-ferror-limit=5)
+if(CMAKE_CXX_COMPILER_ID MATCHES "Clang$")
+ set_property(DIRECTORY APPEND PROPERTY COMPILE_FLAGS -Wignored-attributes -Werror -ferror-limit=5)
endif()
add_subdirectory(src)
diff --git a/cmake/.gitkeep b/cmake/.gitkeep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/cmake/.gitkeep
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
new file mode 100644
index 00000000..d70503a0
--- /dev/null
+++ b/external/CMakeLists.txt
@@ -0,0 +1,141 @@
+project(floormat-external)
+
+foreach(_module corrade magnum magnum-integration magnum-plugins)
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${_module}/modules")
+endforeach()
+
+if(MSVC)
+ add_link_options(-WX:NO)
+else()
+ add_compile_options(-Wno-error)
+endif()
+
+if(FLOORMAT_SUBMODULE_DEPENDENCIES)
+ sets(BOOL
+ CORRADE_BUILD_STATIC OFF
+ CORRADE_BUILD_TESTS OFF
+ CORRADE_BUILD_DEPRECATED OFF
+
+ CORRADE_MSVC_COMPATIBILITY OFF
+
+ CORRADE_UTILITY_USE_ANSI_COLORS ON
+ CORRADE_WITH_TESTSUITE ON
+
+ MAGNUM_BUILD_STATIC OFF
+ MAGNUM_BUILD_TESTS OFF
+
+ MAGNUM_WITH_ANYIMAGECONVERTER ON
+ MAGNUM_WITH_ANYIMAGEIMPORTER ON
+ MAGNUM_WITH_DISTANCEFIELDCONVERTER ON
+ MAGNUM_WITH_FONTCONVERTER ON
+ MAGNUM_WITH_GL_INFO ON
+ MAGNUM_WITH_IMAGECONVERTER ON
+ MAGNUM_WITH_MAGNUMFONT ON
+ MAGNUM_WITH_MAGNUMFONTCONVERTER ON
+ MAGNUM_WITH_OBJIMPORTER ON
+ MAGNUM_WITH_OPENGLTESTER ON
+ MAGNUM_WITH_SDL2APPLICATION ON
+ MAGNUM_WITH_SHADERCONVERTER ON
+ MAGNUM_WITH_SHADERS ON
+ MAGNUM_WITH_SHADERTOOLS ON
+ MAGNUM_WITH_TGAIMAGECONVERTER ON
+ MAGNUM_WITH_TGAIMPORTER ON
+ MAGNUM_WITH_WINDOWLESSWGLAPPLICATION ON
+
+ MAGNUM_WITH_DDSIMPORTER ON
+ MAGNUM_WITH_GLTFIMPORTER ON
+ MAGNUM_WITH_ICOIMPORTER ON
+ MAGNUM_WITH_PRIMITIVEIMPORTER ON
+ MAGNUM_WITH_STBIMAGECONVERTER ON
+ MAGNUM_WITH_STBIMAGEIMPORTER ON
+ MAGNUM_WITH_STBTRUETYPEFONT ON
+ MAGNUM_WITH_TINYGLTFIMPORTER OFF
+
+ MAGNUM_WITH_BULLET OFF
+ MAGNUM_WITH_DART OFF
+ MAGNUM_WITH_EIGEN OFF
+ MAGNUM_WITH_GLM OFF
+ MAGNUM_WITH_IMGUI ON
+ )
+
+ sets(BOOL
+ SDL_ASSERTIONS release
+
+ SDL_3DNOW OFF
+ SDL_ALTIVEC OFF
+ #SDL_ASSEMBLY OFF
+ SDL_ATOMIC OFF
+ SDL_AUDIO OFF
+ SDL_CPUINFO OFF
+ SDL_DIRECTX OFF
+ SDL_DISKAUDIO OFF
+ SDL_DUMMYAUDIO OFF
+ SDL_DUMMYVIDEO OFF
+ SDL_FILE OFF
+ SDL_FILESYSTEM OFF
+ SDL_HAPTIC OFF
+ SDL_HIDAPI OFF
+ SDL_HIDAPI_JOYSTICK OFF
+ SDL_JOYSTICK OFF
+ SDL_LIBC ON
+ SDL_LOADSO ON
+ SDL_LOCALE OFF
+ SDL_MISC OFF
+ #SDL_MMX OFF
+ SDL_OPENGL ON
+ SDL_OPENGLES OFF
+ SDL_POWER OFF
+ SDL_RENDER OFF
+ SDL_RENDER_D3D OFF
+ SDL_SENSOR OFF
+ #SDL_SSE OFF
+ #SDL_SSE2 OFF
+ #SDL_SSE3 OFF
+ #SDL_SSEMATH OFF
+ SDL_SYSTEM_ICONV OFF
+ SDL_TEST OFF
+ SDL_THREADS ON
+ SDL_TIMERS OFF
+ SDL_VIDEO ON
+ SDL_VIRTUAL_JOYSTICK OFF
+ SDL_VULKAN OFF
+ SDL_WASAPI OFF
+ SDL_XINPUT OFF
+
+ SDL2_DISABLE_INSTALL OFF
+ SDL2_DISABLE_SDL2MAIN ON
+ )
+
+ sets(BOOL
+ JSON_Diagnostics ON
+ JSON_Install ON
+ JSON_MultipleHeaders ON
+ JSON_SystemInclude ON
+ )
+endif()
+
+if(FLOORMAT_SUBMODULE_DEPENDENCIES)
+ sets(PATH IMGUI_DIR "${CMAKE_CURRENT_SOURCE_DIR}/imgui")
+ add_subdirectory(json)
+ add_subdirectory(sdl2)
+ add_subdirectory(corrade)
+ add_subdirectory(magnum)
+ add_subdirectory(magnum-plugins)
+ add_subdirectory(magnum-integration)
+endif()
+
+if(FLOORMAT_SUBMODULE_DEPENDENCIES)
+ if(MSVC)
+ target_compile_options(CorradeTestSuite PRIVATE -EHsc)
+ set_property(DIRECTORY APPEND PROPERTY STATIC_LIBRARY_OPTIONS
+ -IGNORE:4006 #warning LNK4006: main already defined in x.cpp.obj; second definition ignored
+ )
+ endif()
+endif()
+
+find_package(SDL2 QUIET REQUIRED)
+find_package(Corrade QUIET REQUIRED)
+find_package(ImGui QUIET REQUIRED)
+find_package(Magnum QUIET REQUIRED)
+find_package(MagnumPlugins QUIET REQUIRED)
+find_package(MagnumIntegration QUIET REQUIRED ImGui)
diff --git a/main/loader-impl.cpp b/main/loader-impl.cpp
index 3adf792d..0fe5befa 100644
--- a/main/loader-impl.cpp
+++ b/main/loader-impl.cpp
@@ -45,7 +45,7 @@ struct loader_impl final : loader_
std::string loader_impl::shader(Containers::StringView filename)
{
if (!shader_res)
- shader_res = std::make_optional<Utility::Resource>("game/shaders");
+ shader_res = std::make_optional<Utility::Resource>("floormat/shaders");
auto ret = shader_res->getString(filename);
if (ret.isEmpty())
ABORT("can't find shader resource '%s'", filename.cbegin());
diff --git a/resources.conf b/resources.conf
index 251f4501..adf620c0 100644
--- a/resources.conf
+++ b/resources.conf
@@ -1,4 +1,4 @@
-group=game/shaders
+group=floormat/shaders
[file]
filename=shaders/tile-shader.frag
diff --git a/src/loader.hpp b/src/loader.hpp
index 6d6d49e0..0bb541f5 100644
--- a/src/loader.hpp
+++ b/src/loader.hpp
@@ -7,7 +7,7 @@
#include <optional>
#include <memory>
-#define IMAGE_PATH "share/game/images/"
+#define IMAGE_PATH "share/floormat/images/"
namespace floormat {