Compare commits
7 commits
086a2ca39f
...
8e7907fd20
Author | SHA1 | Date | |
---|---|---|---|
8e7907fd20 | |||
3d780ad317 | |||
5def25ec03 | |||
dafd2e9b06 | |||
f27704d011 | |||
b8463fa9aa | |||
513e9e823f |
14 changed files with 128 additions and 12 deletions
|
@ -1,8 +1,10 @@
|
|||
cmake_minimum_required(VERSION 3.31..)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
cmake_minimum_required(VERSION 3.30.0)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
project(openblocks VERSION 0.1.0)
|
||||
set(OpenGL_GL_PREFERENCE "GLVND")
|
||||
|
||||
set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" )
|
||||
|
||||
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
|
||||
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
|
||||
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
|
||||
|
@ -12,3 +14,6 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|||
add_subdirectory(core)
|
||||
add_subdirectory(client)
|
||||
add_subdirectory(editor)
|
||||
|
||||
|
||||
install(FILES $<TARGET_RUNTIME_DLLS:editor> TYPE BIN)
|
13
CMakePresets.json
Normal file
13
CMakePresets.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"version": 2,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "vcpkg",
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"binaryDir": "${sourceDir}/build",
|
||||
"cacheVariables": {
|
||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
13
CMakeUserPresets.json
Normal file
13
CMakeUserPresets.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"version": 2,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "default",
|
||||
"inherits": "vcpkg",
|
||||
"environment": {
|
||||
"VCPKG_ROOT": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\vcpkg\\vcpkg.exe"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
30
cmake/FindStb.cmake
Normal file
30
cmake/FindStb.cmake
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License.
|
||||
# Copyright Stefano Sinigardi
|
||||
|
||||
#.rst:
|
||||
# FindStb
|
||||
# ------------
|
||||
#
|
||||
# Find the Stb include headers.
|
||||
#
|
||||
# Result Variables
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# This module defines the following variables:
|
||||
#
|
||||
# ``Stb_FOUND``
|
||||
# True if Stb library found
|
||||
#
|
||||
# ``Stb_INCLUDE_DIR``
|
||||
# Location of Stb headers
|
||||
#
|
||||
|
||||
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
|
||||
|
||||
if(NOT Stb_INCLUDE_DIR)
|
||||
find_path(Stb_INCLUDE_DIR NAMES stb_image.h PATHS ${Stb_DIR} PATH_SUFFIXES include stb include/stb)
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(Stb DEFAULT_MSG Stb_INCLUDE_DIR)
|
||||
mark_as_advanced(Stb_INCLUDE_DIR)
|
|
@ -6,10 +6,13 @@ include_directories(${GLEW_INCLUDE_DIRS})
|
|||
find_package(OpenGL)
|
||||
find_package(glm CONFIG REQUIRED)
|
||||
find_package(ReactPhysics3D REQUIRED)
|
||||
find_package(pugixml REQUIRED)
|
||||
find_package(pugixml 1.15 REQUIRED)
|
||||
|
||||
find_package(Stb REQUIRED)
|
||||
include_directories(${Stb_INCLUDE_DIR})
|
||||
|
||||
file(GLOB_RECURSE SOURCES "src/*.cpp" "src/*.h")
|
||||
add_library(openblocks ${SOURCES})
|
||||
add_library(openblocks STATIC ${SOURCES})
|
||||
set_target_properties(openblocks PROPERTIES OUTPUT_NAME "openblocks")
|
||||
target_link_libraries(openblocks ${GLEW_LIBRARIES} OpenGL::GL ReactPhysics3D::ReactPhysics3D pugixml::pugixml)
|
||||
target_include_directories(openblocks PUBLIC "src" "../include")
|
|
@ -28,7 +28,6 @@ namespace Data {
|
|||
std::string name;
|
||||
Deserializer deserializer;
|
||||
FromString fromString;
|
||||
TypeInfo(const TypeInfo&) = delete;
|
||||
};
|
||||
|
||||
class String;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include <GL/glew.h>
|
||||
#include <GL/gl.h>
|
||||
#include <stb/stb_image.h>
|
||||
#include <stb_image.h>
|
||||
|
||||
#include "skybox.h"
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#include <GL/glew.h>
|
||||
#include <GL/gl.h>
|
||||
#include <stb/stb_image.h>
|
||||
#include <stb_image.h>
|
||||
|
||||
Texture::Texture(const char* texturePath, unsigned int format, bool noMipMaps) {
|
||||
glGenTextures(1, &this->ID);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#include <GL/glew.h>
|
||||
#include <GL/gl.h>
|
||||
#include <stb/stb_image.h>
|
||||
#include <stb_image.h>
|
||||
|
||||
Texture3D::Texture3D(const char* texturePath, unsigned int tileWidth, unsigned int tileHeight, unsigned int tileCount, unsigned int format) {
|
||||
glGenTextures(1, &this->ID);
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#define STB_IMAGE_IMPLEMENTATION
|
||||
#include <stb/stb_image.h>
|
||||
#include <stb_image.h>
|
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.31..)
|
||||
cmake_minimum_required(VERSION 3.30.0)
|
||||
|
||||
project(editor VERSION 0.1 LANGUAGES CXX)
|
||||
|
||||
|
@ -6,7 +6,7 @@ set(CMAKE_AUTOUIC ON)
|
|||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
@ -14,6 +14,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets LinguistTools)
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets LinguistTools)
|
||||
|
||||
|
||||
set(TS_FILES editor_en_US.ts)
|
||||
|
||||
set(PROJECT_SOURCES
|
||||
|
@ -75,6 +76,32 @@ if (${QT_VERSION} GREATER_EQUAL 6)
|
|||
target_link_libraries(editor PRIVATE Qt6::OpenGL Qt6::OpenGLWidgets)
|
||||
endif()
|
||||
|
||||
# Copy assets
|
||||
add_custom_command(
|
||||
TARGET editor POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${CMAKE_SOURCE_DIR}/assets
|
||||
$<TARGET_FILE_DIR:editor>/assets)
|
||||
|
||||
# Copy Qt files
|
||||
if (WIN32)
|
||||
#include("${QT_DEPLOY_SUPPORT}")
|
||||
|
||||
# TODO: Add other translations
|
||||
add_custom_command(
|
||||
TARGET editor POST_BUILD
|
||||
COMMAND ${WINDEPLOYQT_EXECUTABLE} $<TARGET_FILE:editor> --translations en --no-compiler-runtime --no-opengl-sw --no-system-d3d-compiler --plugindir $<TARGET_FILE_DIR:editor>/qtplugins
|
||||
)
|
||||
# No sense adding opengl-sw given that hardware acceleration is necessary, anyway
|
||||
# Also don't want to clutter with plugins, add only needed ones
|
||||
|
||||
# Copy qt.conf to override default plugins location
|
||||
add_custom_command(
|
||||
TARGET editor POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/qt.conf $<TARGET_FILE_DIR:editor>/qt.conf
|
||||
)
|
||||
endif ()
|
||||
|
||||
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||
# If you are developing for iOS or macOS you should consider setting an
|
||||
# explicit, fixed bundle identifier manually though.
|
||||
|
|
2
editor/qt.conf
Normal file
2
editor/qt.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
[Paths]
|
||||
Plugins = "qtplugins"
|
14
vcpkg-configuration.json
Normal file
14
vcpkg-configuration.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"default-registry": {
|
||||
"kind": "git",
|
||||
"baseline": "0c4cf19224a049cf82f4521e29e39f7bd680440c",
|
||||
"repository": "https://github.com/microsoft/vcpkg"
|
||||
},
|
||||
"registries": [
|
||||
{
|
||||
"kind": "artifact",
|
||||
"location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
|
||||
"name": "microsoft"
|
||||
}
|
||||
]
|
||||
}
|
10
vcpkg.json
Normal file
10
vcpkg.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"dependencies": [
|
||||
"glew",
|
||||
"glfw3",
|
||||
"glm",
|
||||
{ "name": "pugixml", "version>=": "1.15" },
|
||||
"sdl2",
|
||||
"stb"
|
||||
]
|
||||
}
|
Loading…
Add table
Reference in a new issue