Compare commits
4 commits
6d95cc8e1a
...
330f128dd3
Author | SHA1 | Date | |
---|---|---|---|
330f128dd3 | |||
8b8776cbd7 | |||
74a4a01ebf | |||
12fc8906bc |
19 changed files with 74 additions and 173 deletions
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
"version": 2,
|
|
||||||
"configurePresets": [
|
|
||||||
{
|
|
||||||
"name": "vcpkg",
|
|
||||||
"generator": "Visual Studio 17 2022",
|
|
||||||
"binaryDir": "${sourceDir}/build",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "vcpkg-linux",
|
|
||||||
"generator": "Ninja",
|
|
||||||
"binaryDir": "${sourceDir}/build",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"version": 2,
|
|
||||||
"configurePresets": [
|
|
||||||
{
|
|
||||||
"name": "default",
|
|
||||||
"inherits": "vcpkg",
|
|
||||||
"environment": {
|
|
||||||
"VCPKG_ROOT": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\vcpkg\\vcpkg.exe"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
find_package(SDL2 REQUIRED)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/deps.cmake)
|
||||||
include_directories(${SDL2_INCLUDE_DIRS})
|
|
||||||
|
|
||||||
find_package(glfw3 REQUIRED)
|
|
||||||
|
|
||||||
add_executable(client "src/main.cpp")
|
add_executable(client "src/main.cpp")
|
||||||
target_link_libraries(client PRIVATE ${SDL2_LIBRARIES} openblocks glfw)
|
target_link_libraries(client PRIVATE openblocks glfw)
|
||||||
add_dependencies(client openblocks)
|
add_dependencies(client openblocks)
|
12
client/deps.cmake
Normal file
12
client/deps.cmake
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# Declare/fetch packages
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
|
FetchContent_Declare(
|
||||||
|
glfw3
|
||||||
|
GIT_REPOSITORY https://github.com/glfw/glfw
|
||||||
|
GIT_TAG 3.4
|
||||||
|
)
|
||||||
|
|
||||||
|
FetchContent_MakeAvailable(glfw3)
|
||||||
|
|
||||||
|
# Find/include packages
|
23
cmake/CPM.cmake
Normal file
23
cmake/CPM.cmake
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
set(CPM_DOWNLOAD_VERSION 0.42.0)
|
||||||
|
# Patch support is broken in CPM upstream atm, so we have to use a fork
|
||||||
|
set(CPM_HASH_SUM "f7d92592a257d184fd8de6fb496a711ce393676ed68999b96043aab2e5e6f9e6")
|
||||||
|
# set(CPM_HASH_SUM "2020b4fc42dba44817983e06342e682ecfc3d2f484a581f11cc5731fbe4dce8a")
|
||||||
|
|
||||||
|
if(CPM_SOURCE_CACHE)
|
||||||
|
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||||
|
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
|
||||||
|
set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||||
|
else()
|
||||||
|
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Expand relative path. This is important if the provided path contains a tilde (~)
|
||||||
|
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)
|
||||||
|
|
||||||
|
file(DOWNLOAD
|
||||||
|
https://raw.githubusercontent.com/BohdanBuinich/CPM.cmake/refs/heads/feat/fix_patch_command/cmake/CPM.cmake
|
||||||
|
# https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
|
||||||
|
${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM}
|
||||||
|
)
|
||||||
|
|
||||||
|
include(${CPM_DOWNLOAD_LOCATION})
|
|
@ -1,30 +0,0 @@
|
||||||
# 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)
|
|
|
@ -1,21 +1,4 @@
|
||||||
find_package(OpenGL REQUIRED COMPONENTS OpenGL)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/deps.cmake)
|
||||||
|
|
||||||
find_package(GLEW REQUIRED)
|
|
||||||
include_directories(${GLEW_INCLUDE_DIRS})
|
|
||||||
|
|
||||||
find_package(OpenGL)
|
|
||||||
find_package(glm CONFIG REQUIRED)
|
|
||||||
find_package(ReactPhysics3D REQUIRED)
|
|
||||||
find_package(pugixml 1.15 REQUIRED)
|
|
||||||
find_package(Freetype)
|
|
||||||
|
|
||||||
find_package(Stb REQUIRED)
|
|
||||||
include_directories(${Stb_INCLUDE_DIR})
|
|
||||||
|
|
||||||
# PkgConfig packages
|
|
||||||
find_package(PkgConfig REQUIRED)
|
|
||||||
pkg_check_modules(LUAJIT REQUIRED luajit)
|
|
||||||
link_directories(${LUAJIT_LIBRARY_DIRS})
|
|
||||||
|
|
||||||
### Autogen
|
### Autogen
|
||||||
file(GLOB_RECURSE AUTOGEN_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/src" "src/objects/*.h" "src/datatypes/*.h" "src/enum/*.h")
|
file(GLOB_RECURSE AUTOGEN_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/src" "src/objects/*.h" "src/datatypes/*.h" "src/enum/*.h")
|
||||||
|
@ -51,8 +34,8 @@ list(APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/src/version.cpp)
|
||||||
add_library(openblocks STATIC ${SOURCES})
|
add_library(openblocks STATIC ${SOURCES})
|
||||||
set_target_properties(openblocks PROPERTIES OUTPUT_NAME "openblocks")
|
set_target_properties(openblocks PROPERTIES OUTPUT_NAME "openblocks")
|
||||||
target_link_directories(openblocks PUBLIC ${LUAJIT_LIBRARY_DIRS})
|
target_link_directories(openblocks PUBLIC ${LUAJIT_LIBRARY_DIRS})
|
||||||
target_link_libraries(openblocks ${GLEW_LIBRARIES} ${LUAJIT_LIBRARIES} OpenGL::GL ReactPhysics3D::ReactPhysics3D pugixml::pugixml Freetype::Freetype)
|
target_link_libraries(openblocks libglew_static reactphysics3d pugixml::pugixml Freetype::Freetype glm::glm libluajit ${LuaJIT_LIBRARIES})
|
||||||
target_include_directories(openblocks PUBLIC "src" "../include" ${LUAJIT_INCLUDE_DIRS})
|
target_include_directories(openblocks PUBLIC "src" "../include" ${ReactPhysics3D_SOURCE_DIR}/include ${LUAJIT_INCLUDE_DIRS} ${stb_SOURCE_DIR} ${glew_SOURCE_DIR}/include)
|
||||||
add_dependencies(openblocks autogen_build autogen)
|
add_dependencies(openblocks autogen_build autogen)
|
||||||
|
|
||||||
# Windows-specific dependencies
|
# Windows-specific dependencies
|
||||||
|
|
24
core/deps.cmake
Normal file
24
core/deps.cmake
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
|
||||||
|
include(CPM)
|
||||||
|
|
||||||
|
CPMAddPackage("gh:Perlmint/glew-cmake#glew-cmake-2.2.0")
|
||||||
|
CPMAddPackage("gh:g-truc/glm#1.0.1")
|
||||||
|
CPMAddPackage(NAME reactphysics3d GITHUB_REPOSITORY "DanielChappuis/reactphysics3d" VERSION 0.10.2 PATCHES ${CMAKE_SOURCE_DIR}/patches/std_chrono.patch)
|
||||||
|
# https://github.com/StereoKit/StereoKit/blob/0be056efebcee5e58ad1438f4cf6dfdb942f6cf9/CMakeLists.txt#L205
|
||||||
|
set_property(TARGET reactphysics3d PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
|
CPMAddPackage("gh:zeux/pugixml@1.15")
|
||||||
|
|
||||||
|
CPMAddPackage(
|
||||||
|
NAME freetype
|
||||||
|
GIT_REPOSITORY https://github.com/aseprite/freetype2.git
|
||||||
|
GIT_TAG VER-2-10-0
|
||||||
|
VERSION 2.10.0
|
||||||
|
)
|
||||||
|
|
||||||
|
if (freetype_ADDED)
|
||||||
|
add_library(Freetype::Freetype ALIAS freetype)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
CPMAddPackage("gh:nothings/stb#8cfb1605c02aee9fb6eb5d8ea559017745bd9a16") # 2.14
|
||||||
|
CPMAddPackage("gh:WohlSoft/LuaJIT#a5da8f4a31972b74254f00969111b8b7a07cf584") # v2.1
|
||||||
|
set(LUAJIT_INCLUDE_DIRS ${LuaJIT_SOURCE_DIR}/src)
|
|
@ -6,6 +6,8 @@ extern "C" {
|
||||||
#include <lua.h>
|
#include <lua.h>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname);
|
||||||
|
|
||||||
inline const char* x_luaL_udatatname (lua_State *L, int ud) {
|
inline const char* x_luaL_udatatname (lua_State *L, int ud) {
|
||||||
void *p = lua_touserdata(L, ud);
|
void *p = lua_touserdata(L, ud);
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
|
@ -16,4 +18,6 @@ inline const char* x_luaL_udatatname (lua_State *L, int ud) {
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LUA_OK 0
|
|
@ -13,6 +13,7 @@ WedgePart::WedgePart(PartConstructParams params): BasePart(&TYPE, params) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void WedgePart::updateCollider(rp::PhysicsCommon* common) {
|
void WedgePart::updateCollider(rp::PhysicsCommon* common) {
|
||||||
|
Logger::fatalError("Wedges are currently disabled! Please do not use them or your editor may crash\n");
|
||||||
rp::ConvexMeshShape* shape = common->createConvexMeshShape(wedgePhysMesh, glmToRp(size * glm::vec3(0.5f)));
|
rp::ConvexMeshShape* shape = common->createConvexMeshShape(wedgePhysMesh, glmToRp(size * glm::vec3(0.5f)));
|
||||||
|
|
||||||
// Recreate the rigidbody if the shape changes
|
// Recreate the rigidbody if the shape changes
|
||||||
|
@ -87,5 +88,5 @@ void WedgePart::createWedgeShape(rp::PhysicsCommon* common) {
|
||||||
|
|
||||||
// Create the convex mesh
|
// Create the convex mesh
|
||||||
std::vector<rp3d::Message> messages;
|
std::vector<rp3d::Message> messages;
|
||||||
wedgePhysMesh = common->createConvexMesh(polygonVertexArray, messages);
|
// wedgePhysMesh = common->createConvexMesh(polygonVertexArray, messages);
|
||||||
}
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
#include "basepart.h"
|
#include "basepart.h"
|
||||||
#include "objects/annotation.h"
|
#include "objects/annotation.h"
|
||||||
|
|
||||||
class DEF_INST WedgePart : public BasePart {
|
class DEF_INST_(hidden) WedgePart : public BasePart {
|
||||||
AUTOGEN_PREAMBLE
|
AUTOGEN_PREAMBLE
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
1
deps.txt
1
deps.txt
|
@ -2,7 +2,6 @@ opengl (Linux: glvnd, Windows: [built-in/none])
|
||||||
glfw
|
glfw
|
||||||
glew
|
glew
|
||||||
glm
|
glm
|
||||||
sdl2
|
|
||||||
stb
|
stb
|
||||||
qt6
|
qt6
|
||||||
reactphysics3d
|
reactphysics3d
|
||||||
|
|
|
@ -110,7 +110,7 @@ if (WIN32)
|
||||||
# TODO: Add other translations
|
# TODO: Add other translations
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET editor POST_BUILD
|
TARGET editor POST_BUILD
|
||||||
COMMAND ${WINDEPLOYQT_EXECUTABLE} $<TARGET_FILE:editor> ${QSCINTILLA_DLLS} --dir $<TARGET_FILE_DIR:editor> --translations en --no-compiler-runtime --no-opengl-sw --no-system-d3d-compiler --plugindir $<TARGET_FILE_DIR:editor>/qtplugins
|
COMMAND ${WINDEPLOYQT_EXECUTABLE} $<TARGET_FILE:editor> ${QSCINTILLA_DLLS} --release --dir $<TARGET_FILE_DIR: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
|
# No sense adding opengl-sw given that hardware acceleration is necessary, anyway
|
||||||
# Also don't want to clutter with plugins, add only needed ones
|
# Also don't want to clutter with plugins, add only needed ones
|
||||||
|
|
|
@ -107,7 +107,7 @@ void ExplorerView::buildContextMenu() {
|
||||||
contextMenu.addMenu(insertObjectMenu);
|
contextMenu.addMenu(insertObjectMenu);
|
||||||
|
|
||||||
for (const auto& [_, type] : INSTANCE_MAP) {
|
for (const auto& [_, type] : INSTANCE_MAP) {
|
||||||
if (type->flags & INSTANCE_NOTCREATABLE || !type->constructor) continue;
|
if (type->flags & (INSTANCE_NOTCREATABLE | INSTANCE_HIDDEN) || !type->constructor) continue;
|
||||||
|
|
||||||
QAction* instAction = new QAction(model.iconOf(type), QString::fromStdString(type->className));
|
QAction* instAction = new QAction(model.iconOf(type), QString::fromStdString(type->className));
|
||||||
insertObjectMenu->addAction(instAction);
|
insertObjectMenu->addAction(instAction);
|
||||||
|
|
0
vcpkg-overlays/reactphysics3d/std_chrono.patch → patches/std_chrono.patch
Executable file → Normal file
0
vcpkg-overlays/reactphysics3d/std_chrono.patch → patches/std_chrono.patch
Executable file → Normal file
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"overlay-ports": [
|
|
||||||
"./vcpkg-overlays"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
|
||||||
|
|
||||||
vcpkg_from_github(
|
|
||||||
OUT_SOURCE_PATH SOURCE_PATH
|
|
||||||
REPO DanielChappuis/reactphysics3d
|
|
||||||
REF "cd958bbc0c6e84a869388cba6613f10cc645b3cb"
|
|
||||||
SHA512 9856c0e998473e0bfb97af9ced07952bbd4dfef79f7dc388b1ecf9b6c6406f7669333e441fe6cefdf40b32edc5a1b8e4cb35a8c15fccb64c28785aff5fd77113
|
|
||||||
HEAD_REF master
|
|
||||||
PATCHES "std_chrono.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
vcpkg_cmake_configure(
|
|
||||||
SOURCE_PATH "${SOURCE_PATH}"
|
|
||||||
)
|
|
||||||
|
|
||||||
vcpkg_cmake_install()
|
|
||||||
|
|
||||||
vcpkg_cmake_config_fixup(PACKAGE_NAME "reactphysics3d" CONFIG_PATH "lib/cmake/ReactPhysics3D")
|
|
||||||
|
|
||||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
|
||||||
|
|
||||||
# file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
|
||||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
"name": "reactphysics3d",
|
|
||||||
"version": "0.10.2",
|
|
||||||
"homepage": "https://github.com/DanielChappuis/reactphysics3d",
|
|
||||||
"description": "Open source C++ physics engine library in 3D",
|
|
||||||
"license": "zlib",
|
|
||||||
"dependencies": [
|
|
||||||
{
|
|
||||||
"name" : "vcpkg-cmake",
|
|
||||||
"host" : true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name" : "vcpkg-cmake-config",
|
|
||||||
"host" : true
|
|
||||||
},
|
|
||||||
"fmt"
|
|
||||||
]
|
|
||||||
}
|
|
20
vcpkg.json
20
vcpkg.json
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
"dependencies": [
|
|
||||||
"glew",
|
|
||||||
"glfw3",
|
|
||||||
"glm",
|
|
||||||
{ "name": "pugixml", "version>=": "1.15" },
|
|
||||||
"sdl2",
|
|
||||||
"stb",
|
|
||||||
"reactphysics3d",
|
|
||||||
"pkgconf",
|
|
||||||
"luajit",
|
|
||||||
"freetype"
|
|
||||||
],
|
|
||||||
"overrides": [
|
|
||||||
{
|
|
||||||
"name": "sdl2",
|
|
||||||
"version": "2.32.4"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue