From 81d172900b431646a11af2c262f77b45d9d19a1c Mon Sep 17 00:00:00 2001 From: maelstrom Date: Thu, 13 Feb 2025 23:43:30 +0100 Subject: [PATCH] chore: move core module into its own dedicated directory --- .clangd | 11 ----- .gitignore | 6 ++- CMakeLists.txt | 44 ++----------------- client/CMakeLists.txt | 6 +-- core/CMakeLists.txt | 24 ++++++++++ {src => core/src}/camera.cpp | 0 {src => core/src}/camera.h | 0 {src => core/src}/common.cpp | 0 {src => core/src}/common.h | 0 {src => core/src}/datatype.h | 0 {src => core/src}/datatypes/base.cpp | 0 {src => core/src}/datatypes/base.h | 0 {src => core/src}/datatypes/cframe.cpp | 0 {src => core/src}/datatypes/cframe.h | 0 {src => core/src}/datatypes/color3.cpp | 0 {src => core/src}/datatypes/color3.h | 0 {src => core/src}/datatypes/meta.cpp | 0 {src => core/src}/datatypes/meta.h | 0 {src => core/src}/datatypes/vector.cpp | 0 {src => core/src}/datatypes/vector.h | 0 {src => core/src}/objects/base.h | 0 {src => core/src}/objects/base/instance.cpp | 0 {src => core/src}/objects/base/instance.h | 3 +- {src => core/src}/objects/base/member.h | 0 {src => core/src}/objects/base/service.cpp | 0 {src => core/src}/objects/base/service.h | 0 {src => core/src}/objects/datamodel.cpp | 0 {src => core/src}/objects/datamodel.h | 0 {src => core/src}/objects/meta.cpp | 0 {src => core/src}/objects/meta.h | 0 {src => core/src}/objects/part.cpp | 0 {src => core/src}/objects/part.h | 0 {src => core/src}/objects/workspace.cpp | 0 {src => core/src}/objects/workspace.h | 0 {src => core/src}/physics/simulation.cpp | 0 {src => core/src}/physics/simulation.h | 0 {src => core/src}/physics/util.h | 0 {src => core/src}/rendering/defaultmeshes.cpp | 0 {src => core/src}/rendering/defaultmeshes.h | 0 {src => core/src}/rendering/light.h | 0 {src => core/src}/rendering/material.h | 0 {src => core/src}/rendering/mesh.cpp | 0 {src => core/src}/rendering/mesh.h | 0 {src => core/src}/rendering/renderer.cpp | 0 {src => core/src}/rendering/renderer.h | 0 {src => core/src}/rendering/shader.cpp | 0 {src => core/src}/rendering/shader.h | 0 {src => core/src}/rendering/skybox.cpp | 0 {src => core/src}/rendering/skybox.h | 0 {src => core/src}/rendering/surface.h | 0 {src => core/src}/rendering/texture.cpp | 0 {src => core/src}/rendering/texture.h | 0 {src => core/src}/rendering/texture3d.cpp | 0 {src => core/src}/rendering/texture3d.h | 0 {src => core/src}/stb.cpp | 0 editor/CMakeLists.txt | 7 +-- 56 files changed, 40 insertions(+), 61 deletions(-) delete mode 100644 .clangd create mode 100644 core/CMakeLists.txt rename {src => core/src}/camera.cpp (100%) rename {src => core/src}/camera.h (100%) rename {src => core/src}/common.cpp (100%) rename {src => core/src}/common.h (100%) rename {src => core/src}/datatype.h (100%) rename {src => core/src}/datatypes/base.cpp (100%) rename {src => core/src}/datatypes/base.h (100%) rename {src => core/src}/datatypes/cframe.cpp (100%) rename {src => core/src}/datatypes/cframe.h (100%) rename {src => core/src}/datatypes/color3.cpp (100%) rename {src => core/src}/datatypes/color3.h (100%) rename {src => core/src}/datatypes/meta.cpp (100%) rename {src => core/src}/datatypes/meta.h (100%) rename {src => core/src}/datatypes/vector.cpp (100%) rename {src => core/src}/datatypes/vector.h (100%) rename {src => core/src}/objects/base.h (100%) rename {src => core/src}/objects/base/instance.cpp (100%) rename {src => core/src}/objects/base/instance.h (97%) rename {src => core/src}/objects/base/member.h (100%) rename {src => core/src}/objects/base/service.cpp (100%) rename {src => core/src}/objects/base/service.h (100%) rename {src => core/src}/objects/datamodel.cpp (100%) rename {src => core/src}/objects/datamodel.h (100%) rename {src => core/src}/objects/meta.cpp (100%) rename {src => core/src}/objects/meta.h (100%) rename {src => core/src}/objects/part.cpp (100%) rename {src => core/src}/objects/part.h (100%) rename {src => core/src}/objects/workspace.cpp (100%) rename {src => core/src}/objects/workspace.h (100%) rename {src => core/src}/physics/simulation.cpp (100%) rename {src => core/src}/physics/simulation.h (100%) rename {src => core/src}/physics/util.h (100%) rename {src => core/src}/rendering/defaultmeshes.cpp (100%) rename {src => core/src}/rendering/defaultmeshes.h (100%) rename {src => core/src}/rendering/light.h (100%) rename {src => core/src}/rendering/material.h (100%) rename {src => core/src}/rendering/mesh.cpp (100%) rename {src => core/src}/rendering/mesh.h (100%) rename {src => core/src}/rendering/renderer.cpp (100%) rename {src => core/src}/rendering/renderer.h (100%) rename {src => core/src}/rendering/shader.cpp (100%) rename {src => core/src}/rendering/shader.h (100%) rename {src => core/src}/rendering/skybox.cpp (100%) rename {src => core/src}/rendering/skybox.h (100%) rename {src => core/src}/rendering/surface.h (100%) rename {src => core/src}/rendering/texture.cpp (100%) rename {src => core/src}/rendering/texture.h (100%) rename {src => core/src}/rendering/texture3d.cpp (100%) rename {src => core/src}/rendering/texture3d.h (100%) rename {src => core/src}/stb.cpp (100%) diff --git a/.clangd b/.clangd deleted file mode 100644 index f0eb4d6..0000000 --- a/.clangd +++ /dev/null @@ -1,11 +0,0 @@ -CompileFlags: # Tweak the parse settings, example directory given to show format - Add: - - "--include-directory=../../src" - - "--include-directory=../src" - - "--include-directory=./editor_autogen/include" - - "--include-directory=../.." - - "--include-directory=/usr/include/qt6/QtWidgets" - - "--include-directory=/usr/include/qt6/QtOpenGLWidgets" - - "--include-directory=/usr/include/qt6" - - "--include-directory=/usr/include/qt6/QtGui" - - "--include-directory=/usr/include/qt6/QtCore" \ No newline at end of file diff --git a/.gitignore b/.gitignore index cfe4395..8017f59 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,8 @@ Makefile .lupdate/ *.pro.user* CMakeLists.txt.user* -*_autogen/ \ No newline at end of file +*_autogen/ + +# Clangd +/compile_commands.json +/.cache \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d5aae3..760027f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,44 +7,8 @@ set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib ) set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib ) -SET(BASEPATH "${CMAKE_SOURCE_DIR}") -include_directories("${BASEPATH}") -include_directories("src") +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -find_package(OpenGL REQUIRED COMPONENTS OpenGL) - -find_package(SDL2 REQUIRED) -include_directories(${SDL2_INCLUDE_DIRS}) - -find_package(GLEW REQUIRED) -include_directories(${GLEW_INCLUDE_DIRS}) - -find_package(GLUT REQUIRED) -include_directories(${GLUT_INCLUDE_DIRS}) - -find_package(glfw3 REQUIRED) -find_package(OpenGL) -find_package(glm CONFIG REQUIRED) -find_package(assimp REQUIRED) -find_package(ReactPhysics3D REQUIRED) -find_package(pugixml REQUIRED) - -# PkgConfig packages -# find_package(PkgConfig REQUIRED) -# pkg_check_modules(PUGIXML REQUIRED pugixml) - -file(MAKE_DIRECTORY bin) - -include_directories("include") - -file(GLOB_RECURSE SOURCES "src/*.cpp" "src/*.h") -add_library(openblocks ${SOURCES}) -set_target_properties(openblocks PROPERTIES OUTPUT_NAME "openblocks") -target_link_libraries(openblocks ${SDL2_LIBRARIES} ${GLEW_LIBRARIES} ${GLUT_LIBRARIES} ${PUGIXML_LIBRARIES} OpenGL::GL OpenGL::GLU glfw glm::glm assimp ReactPhysics3D::ReactPhysics3D pugixml::pugixml) - -# add_executable(client "client/src/main.cpp" $) -# include_directories("src") -# target_link_libraries(client ${SDL2_LIBRARIES} ${GLEW_LIBRARIES} ${GLUT_LIBRARIES} OpenGL::GL OpenGL::GLU glfw glm::glm assimp ReactPhysics3D::ReactPhysics3D) - -add_subdirectory("client") -add_subdirectory("editor") \ No newline at end of file +add_subdirectory(core) +add_subdirectory(client) +add_subdirectory(editor) \ No newline at end of file diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index b3eb8ac..72e321b 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -1,4 +1,4 @@ +find_package(glfw3 REQUIRED) -add_executable(client "src/main.cpp" $) -include_directories("../src") -target_link_libraries(client ${SDL2_LIBRARIES} ${GLEW_LIBRARIES} ${GLUT_LIBRARIES} OpenGL::GL OpenGL::GLU glfw glm::glm assimp ReactPhysics3D::ReactPhysics3D pugixml::pugixml) \ No newline at end of file +add_executable(client "src/main.cpp") +target_link_libraries(client PRIVATE openblocks glfw) \ No newline at end of file diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt new file mode 100644 index 0000000..008c495 --- /dev/null +++ b/core/CMakeLists.txt @@ -0,0 +1,24 @@ +find_package(OpenGL REQUIRED COMPONENTS OpenGL) + +find_package(SDL2 REQUIRED) +include_directories(${SDL2_INCLUDE_DIRS}) + +find_package(GLEW REQUIRED) +include_directories(${GLEW_INCLUDE_DIRS}) + +find_package(GLUT REQUIRED) +include_directories(${GLUT_INCLUDE_DIRS}) + +find_package(OpenGL) +find_package(glm CONFIG REQUIRED) +# find_package(assimp REQUIRED) +find_package(ReactPhysics3D REQUIRED) +find_package(pugixml REQUIRED) + +file(MAKE_DIRECTORY bin) + +file(GLOB_RECURSE SOURCES "src/*.cpp" "src/*.h") +add_library(openblocks ${SOURCES}) +set_target_properties(openblocks PROPERTIES OUTPUT_NAME "openblocks") +target_link_libraries(openblocks ${SDL2_LIBRARIES} ${GLEW_LIBRARIES} ${GLUT_LIBRARIES} OpenGL::GL OpenGL::GLU ReactPhysics3D::ReactPhysics3D pugixml::pugixml) +target_include_directories(openblocks PUBLIC "src" "../include") \ No newline at end of file diff --git a/src/camera.cpp b/core/src/camera.cpp similarity index 100% rename from src/camera.cpp rename to core/src/camera.cpp diff --git a/src/camera.h b/core/src/camera.h similarity index 100% rename from src/camera.h rename to core/src/camera.h diff --git a/src/common.cpp b/core/src/common.cpp similarity index 100% rename from src/common.cpp rename to core/src/common.cpp diff --git a/src/common.h b/core/src/common.h similarity index 100% rename from src/common.h rename to core/src/common.h diff --git a/src/datatype.h b/core/src/datatype.h similarity index 100% rename from src/datatype.h rename to core/src/datatype.h diff --git a/src/datatypes/base.cpp b/core/src/datatypes/base.cpp similarity index 100% rename from src/datatypes/base.cpp rename to core/src/datatypes/base.cpp diff --git a/src/datatypes/base.h b/core/src/datatypes/base.h similarity index 100% rename from src/datatypes/base.h rename to core/src/datatypes/base.h diff --git a/src/datatypes/cframe.cpp b/core/src/datatypes/cframe.cpp similarity index 100% rename from src/datatypes/cframe.cpp rename to core/src/datatypes/cframe.cpp diff --git a/src/datatypes/cframe.h b/core/src/datatypes/cframe.h similarity index 100% rename from src/datatypes/cframe.h rename to core/src/datatypes/cframe.h diff --git a/src/datatypes/color3.cpp b/core/src/datatypes/color3.cpp similarity index 100% rename from src/datatypes/color3.cpp rename to core/src/datatypes/color3.cpp diff --git a/src/datatypes/color3.h b/core/src/datatypes/color3.h similarity index 100% rename from src/datatypes/color3.h rename to core/src/datatypes/color3.h diff --git a/src/datatypes/meta.cpp b/core/src/datatypes/meta.cpp similarity index 100% rename from src/datatypes/meta.cpp rename to core/src/datatypes/meta.cpp diff --git a/src/datatypes/meta.h b/core/src/datatypes/meta.h similarity index 100% rename from src/datatypes/meta.h rename to core/src/datatypes/meta.h diff --git a/src/datatypes/vector.cpp b/core/src/datatypes/vector.cpp similarity index 100% rename from src/datatypes/vector.cpp rename to core/src/datatypes/vector.cpp diff --git a/src/datatypes/vector.h b/core/src/datatypes/vector.h similarity index 100% rename from src/datatypes/vector.h rename to core/src/datatypes/vector.h diff --git a/src/objects/base.h b/core/src/objects/base.h similarity index 100% rename from src/objects/base.h rename to core/src/objects/base.h diff --git a/src/objects/base/instance.cpp b/core/src/objects/base/instance.cpp similarity index 100% rename from src/objects/base/instance.cpp rename to core/src/objects/base/instance.cpp diff --git a/src/objects/base/instance.h b/core/src/objects/base/instance.h similarity index 97% rename from src/objects/base/instance.h rename to core/src/objects/base/instance.h index c696877..dacef44 100644 --- a/src/objects/base/instance.h +++ b/core/src/objects/base/instance.h @@ -10,7 +10,8 @@ #include #include #include -#include <../include/expected.hpp> +// #include <../../include/expected.hpp> +#include #include #include "member.h" diff --git a/src/objects/base/member.h b/core/src/objects/base/member.h similarity index 100% rename from src/objects/base/member.h rename to core/src/objects/base/member.h diff --git a/src/objects/base/service.cpp b/core/src/objects/base/service.cpp similarity index 100% rename from src/objects/base/service.cpp rename to core/src/objects/base/service.cpp diff --git a/src/objects/base/service.h b/core/src/objects/base/service.h similarity index 100% rename from src/objects/base/service.h rename to core/src/objects/base/service.h diff --git a/src/objects/datamodel.cpp b/core/src/objects/datamodel.cpp similarity index 100% rename from src/objects/datamodel.cpp rename to core/src/objects/datamodel.cpp diff --git a/src/objects/datamodel.h b/core/src/objects/datamodel.h similarity index 100% rename from src/objects/datamodel.h rename to core/src/objects/datamodel.h diff --git a/src/objects/meta.cpp b/core/src/objects/meta.cpp similarity index 100% rename from src/objects/meta.cpp rename to core/src/objects/meta.cpp diff --git a/src/objects/meta.h b/core/src/objects/meta.h similarity index 100% rename from src/objects/meta.h rename to core/src/objects/meta.h diff --git a/src/objects/part.cpp b/core/src/objects/part.cpp similarity index 100% rename from src/objects/part.cpp rename to core/src/objects/part.cpp diff --git a/src/objects/part.h b/core/src/objects/part.h similarity index 100% rename from src/objects/part.h rename to core/src/objects/part.h diff --git a/src/objects/workspace.cpp b/core/src/objects/workspace.cpp similarity index 100% rename from src/objects/workspace.cpp rename to core/src/objects/workspace.cpp diff --git a/src/objects/workspace.h b/core/src/objects/workspace.h similarity index 100% rename from src/objects/workspace.h rename to core/src/objects/workspace.h diff --git a/src/physics/simulation.cpp b/core/src/physics/simulation.cpp similarity index 100% rename from src/physics/simulation.cpp rename to core/src/physics/simulation.cpp diff --git a/src/physics/simulation.h b/core/src/physics/simulation.h similarity index 100% rename from src/physics/simulation.h rename to core/src/physics/simulation.h diff --git a/src/physics/util.h b/core/src/physics/util.h similarity index 100% rename from src/physics/util.h rename to core/src/physics/util.h diff --git a/src/rendering/defaultmeshes.cpp b/core/src/rendering/defaultmeshes.cpp similarity index 100% rename from src/rendering/defaultmeshes.cpp rename to core/src/rendering/defaultmeshes.cpp diff --git a/src/rendering/defaultmeshes.h b/core/src/rendering/defaultmeshes.h similarity index 100% rename from src/rendering/defaultmeshes.h rename to core/src/rendering/defaultmeshes.h diff --git a/src/rendering/light.h b/core/src/rendering/light.h similarity index 100% rename from src/rendering/light.h rename to core/src/rendering/light.h diff --git a/src/rendering/material.h b/core/src/rendering/material.h similarity index 100% rename from src/rendering/material.h rename to core/src/rendering/material.h diff --git a/src/rendering/mesh.cpp b/core/src/rendering/mesh.cpp similarity index 100% rename from src/rendering/mesh.cpp rename to core/src/rendering/mesh.cpp diff --git a/src/rendering/mesh.h b/core/src/rendering/mesh.h similarity index 100% rename from src/rendering/mesh.h rename to core/src/rendering/mesh.h diff --git a/src/rendering/renderer.cpp b/core/src/rendering/renderer.cpp similarity index 100% rename from src/rendering/renderer.cpp rename to core/src/rendering/renderer.cpp diff --git a/src/rendering/renderer.h b/core/src/rendering/renderer.h similarity index 100% rename from src/rendering/renderer.h rename to core/src/rendering/renderer.h diff --git a/src/rendering/shader.cpp b/core/src/rendering/shader.cpp similarity index 100% rename from src/rendering/shader.cpp rename to core/src/rendering/shader.cpp diff --git a/src/rendering/shader.h b/core/src/rendering/shader.h similarity index 100% rename from src/rendering/shader.h rename to core/src/rendering/shader.h diff --git a/src/rendering/skybox.cpp b/core/src/rendering/skybox.cpp similarity index 100% rename from src/rendering/skybox.cpp rename to core/src/rendering/skybox.cpp diff --git a/src/rendering/skybox.h b/core/src/rendering/skybox.h similarity index 100% rename from src/rendering/skybox.h rename to core/src/rendering/skybox.h diff --git a/src/rendering/surface.h b/core/src/rendering/surface.h similarity index 100% rename from src/rendering/surface.h rename to core/src/rendering/surface.h diff --git a/src/rendering/texture.cpp b/core/src/rendering/texture.cpp similarity index 100% rename from src/rendering/texture.cpp rename to core/src/rendering/texture.cpp diff --git a/src/rendering/texture.h b/core/src/rendering/texture.h similarity index 100% rename from src/rendering/texture.h rename to core/src/rendering/texture.h diff --git a/src/rendering/texture3d.cpp b/core/src/rendering/texture3d.cpp similarity index 100% rename from src/rendering/texture3d.cpp rename to core/src/rendering/texture3d.cpp diff --git a/src/rendering/texture3d.h b/core/src/rendering/texture3d.h similarity index 100% rename from src/rendering/texture3d.h rename to core/src/rendering/texture3d.h diff --git a/src/stb.cpp b/core/src/stb.cpp similarity index 100% rename from src/stb.cpp rename to core/src/stb.cpp diff --git a/editor/CMakeLists.txt b/editor/CMakeLists.txt index 5d790d4..78091e7 100644 --- a/editor/CMakeLists.txt +++ b/editor/CMakeLists.txt @@ -14,8 +14,6 @@ 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) -include_directories("../src") - set(TS_FILES editor_en_US.ts) set(PROJECT_SOURCES @@ -40,7 +38,6 @@ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) qt_add_executable(editor MANUAL_FINALIZATION ${PROJECT_SOURCES} - $ ) # Define target properties for Android with Qt 6 as: # set_property(TARGET editor APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR @@ -59,14 +56,14 @@ else() add_executable(editor ${PROJECT_SOURCES} mainglwidget.h mainglwidget.cpp - $ ) endif() qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES}) endif() -target_link_libraries(editor PRIVATE Qt${QT_VERSION_MAJOR}::Widgets ${SDL2_LIBRARIES} ${GLEW_LIBRARIES} ${GLUT_LIBRARIES} OpenGL::GL OpenGL::GLU glfw glm::glm assimp ReactPhysics3D::ReactPhysics3D pugixml::pugixml) +target_include_directories(editor PUBLIC "../core/src" "../include") +target_link_libraries(editor PRIVATE openblocks Qt${QT_VERSION_MAJOR}::Widgets) # 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