Skip to content

Commit 6cb8e87

Browse files
committed
Update 0.0.63
1 parent 8531845 commit 6cb8e87

File tree

16,276 files changed

+15463
-3381971
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

16,276 files changed

+15463
-3381971
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
.idea/
2+
.git/
3+
.github/
24
cmake-build-debug/
35
bin/
46
idkbuild/

CMakeLists.txt

Lines changed: 87 additions & 200 deletions
Original file line numberDiff line numberDiff line change
@@ -1,253 +1,140 @@
11
cmake_minimum_required(VERSION 3.27)
22
project(idk_core)
33

4-
54
set(CMAKE_CXX_STANDARD 20)
65
set(CMAKE_CXX_STANDARD_REQUIRED ON)
76
set(CMAKE_CXX_EXTENSIONS OFF)
87
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
98
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-dev")
10-
cmake_policy(SET CMP0167 NEW)
119
set(CMAKE_VERBOSE_MAKEFILE ON)
10+
cmake_policy(SET CMP0167 NEW)
1211

12+
# set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
1313
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
1414

15-
1615
add_definitions(-DSOURCE_DIR=\"${CMAKE_SOURCE_DIR}\")
1716
1817
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
1918
if (WIN32)
20-
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,undefined -g -O0 -fno-omit-frame-pointer -fno-optimize-sibling-calls")
21-
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address,undefined")
19+
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g -O0 -fno-omit-frame-pointer -fno-optimize-sibling-calls")
20+
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
21+
22+
# set(ENV{ASAN_OPTIONS} "detect_leaks=1:halt_on_error=1")
2223
elseif (UNIX)
2324
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,undefined -g -O0 -fno-omit-frame-pointer -fno-optimize-sibling-calls")
2425
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address,undefined")
2526
endif()
2627
endif()
2728
28-
29-
if(EXISTS "${CMAKE_SOURCE_DIR}/.clang-tidy")
30-
set(CLANG_TIDY_EXCLUDE_DIRS "external")
31-
else()
32-
message(STATUS "No .clang-tidy file found, clang-tidy not set.")
29+
if(MSVC)
30+
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address")
31+
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /fsanitize=address")
32+
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zi")
33+
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG")
34+
add_compile_options(/MP)
3335
endif()
3436
35-
set(BOOST_ROOT "${CMAKE_SOURCE_DIR}/external/boost/")
36-
set(BOOST_INC_DIR "${CMAKE_SOURCE_DIR}/external/boost/include/")
37-
set(BOOST_LIB_DIR "${CMAKE_SOURCE_DIR}/external/boost/lib")
38-
39-
find_package(Boost 1.87 REQUIRED COMPONENTS filesystem system)
40-
41-
if(Boost_FOUND)
42-
message(STATUS "Boost found!")
43-
include_directories(${BOOST_INC_DIR})
44-
link_directories(${BOOST_LIB_DIR})
45-
else ()
46-
message(FATAL_ERROR "Boost not found")
47-
endif ()
48-
49-
include_directories(
50-
${PROJECT_SOURCE_DIR}/src/Engine/Core
51-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering
52-
${PROJECT_SOURCE_DIR}/src/Engine/Physics
53-
${PROJECT_SOURCE_DIR}/src/Engine/SceneManagement
54-
${PROJECT_SOURCE_DIR}/src/Engine/Utilities
55-
${PROJECT_SOURCE_DIR}/src/Engine/Lighting
56-
${PROJECT_SOURCE_DIR}/src/Editor/Core
57-
${PROJECT_SOURCE_DIR}/src/Engine/Utilities
58-
)
59-
60-
set(HEADER_FILES
61-
# Core
62-
${PROJECT_SOURCE_DIR}/src/Engine/Core/Initialization.h
63-
${PROJECT_SOURCE_DIR}/src/Engine/Core/GameObject.h
64-
${PROJECT_SOURCE_DIR}/src/Engine/Core/Component.h
65-
${PROJECT_SOURCE_DIR}/src/Engine/Core/AssetItem.h
66-
${PROJECT_SOURCE_DIR}/src/Engine/Core/AssetManager.h
67-
68-
# Rendering
69-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/Shader.h
70-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/Renderer.h
71-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/Camera.h
72-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/Material.h
73-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/MeshRenderer.h
74-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/Mesh.h
75-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/MeshFilter.h
76-
77-
# Physics
78-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/BoxCollider.h
79-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/Cube.h
80-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/Cylinder.h
81-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/CylinderCollider.h
82-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/BoxCollider.h
83-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/CapsuleCollider.h
84-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/Collider.h
85-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/Ray.h
86-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/Sphere.h
87-
${PROJECT_SOURCE_DIR}/src/Engine/Physics/SphereCollider.h
88-
89-
# Scene Management
90-
${PROJECT_SOURCE_DIR}/src/Engine/SceneManagement/Scene.h
91-
92-
# Lighting
93-
${PROJECT_SOURCE_DIR}/src/Engine/Lighting/DirectionalLight.h
94-
${PROJECT_SOURCE_DIR}/src/Engine/Lighting/LightManager.h
95-
${PROJECT_SOURCE_DIR}/src/Engine/Lighting/Light.h
96-
97-
# Utilities
98-
${PROJECT_SOURCE_DIR}/src/Engine/Utilities/Transform.h
99-
100-
# ========================== Editor ==========================
101-
# Core
102-
${PROJECT_SOURCE_DIR}/src/Editor/Core/HierarchyManager.h
103-
${PROJECT_SOURCE_DIR}/src/Editor/Core/InspectorManager.h
104-
${PROJECT_SOURCE_DIR}/src/Editor/Core/ProjectExplorer.h
105-
106-
${PROJECT_SOURCE_DIR}/src/Editor/Utilities/SelectionManager.h
107-
)
108-
set(SOURCE_FILES
109-
# Core
110-
${PROJECT_SOURCE_DIR}/src/Engine/Core/AssetManager.cpp
111-
${PROJECT_SOURCE_DIR}/src/Engine/Core/Initialization.cpp
112-
113-
# Rendering
114-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/Shader.cpp
115-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/Renderer.cpp
116-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering/Mesh.cpp
117-
118-
# Physics
119-
120-
# Scene Management
121-
${PROJECT_SOURCE_DIR}/src/Engine/SceneManagement/Scene.cpp
122-
123-
# Lighting
124-
125-
# ========================== Editor ==========================
126-
# Core
127-
${PROJECT_SOURCE_DIR}/src/Editor/Core/HierarchyManager.cpp
128-
${PROJECT_SOURCE_DIR}/src/Editor/Core/InspectorManager.cpp
129-
${PROJECT_SOURCE_DIR}/src/Editor/Core/ProjectExplorer.cpp
130-
131-
${PROJECT_SOURCE_DIR}/src/Editor/Utilities/SelectionManager.cpp
132-
src/Engine/Utilities/Profiler.h
133-
# src/Engine/Rendering/ShaderManager.cpp
134-
# src/Engine/Rendering/ShaderManager.h
135-
src/Engine/Physics/Capsule.h
136-
src/Engine/Rendering/Shader.cpp
137-
src/Engine/Rendering/Shader.h
138-
src/Engine/Rendering/ShaderManager.cpp
139-
src/Engine/Rendering/ShaderManager.h
140-
)
141-
142-
# GLFW 3
143-
set(GLFW_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/external/glfw/include")
144-
set(GLFW_LIBRARY "${CMAKE_SOURCE_DIR}/external/glfw/lib/libglfw3.a")
145-
146-
include_directories(${GLFW_INCLUDE_DIR})
147-
14837
set(ICONS_FONT_AWESOME_6_DIR ${CMAKE_SOURCE_DIR}/external/fontawesome)
14938
150-
# GLAD
151-
set(GLAD_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/external/glad/include)
152-
set(GLAD_SOURCE ${CMAKE_SOURCE_DIR}/external/glad/src/glad.c
153-
src/Engine/Utilities/FPSCounter.cpp
154-
src/Engine/Utilities/FPSCounter.h
155-
)
156-
157-
add_library(glad ${GLAD_SOURCE})
158-
include_directories(${GLAD_INCLUDE_DIR})
159-
160-
161-
# ImGuizmo
162-
set(IMGUIzmo_PATH ${CMAKE_SOURCE_DIR}/external/ImGuizmo)
163-
164-
# IMGUI
165-
set(IMGUI_PATH ${CMAKE_SOURCE_DIR}/external/imgui)
166-
167-
#GLM
168-
set(GLM_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/external/glm/include)
169-
17039
# STB_IMAGE
17140
set(STB_IMAGE_DIR ${CMAKE_SOURCE_DIR}/external/stb_image)
17241
173-
file(GLOB IMGUI_SOURCES
174-
${IMGUI_PATH}/*.cpp
175-
${IMGUI_PATH}/*.h
176-
${IMGUI_PATH}/backends/imgui_impl_glfw.cpp
177-
${IMGUI_PATH}/backends/imgui_impl_glfw.h
178-
${IMGUI_PATH}/backends/imgui_impl_opengl3.cpp
179-
${IMGUI_PATH}/backends/imgui_impl_opengl3.h
180-
${IMGUIzmo_PATH}/*.cpp
181-
${IMGUIzmo_PATH}/*.h
182-
)
183-
184-
add_library(ImGui ${IMGUI_SOURCES})
185-
186-
include_directories(${IMGUI_PATH})
187-
include_directories(${IMGUIzmo_PATH})
188-
include_directories(${GLM_INCLUDE_DIR})
18942
include_directories(${STB_IMAGE_DIR})
19043
include_directories(${ICONS_FONT_AWESOME_6_DIR})
191-
include_directories(
192-
${PROJECT_SOURCE_DIR}/src/Engine/Core
193-
${PROJECT_SOURCE_DIR}/src/Engine/Rendering
194-
${PROJECT_SOURCE_DIR}/src/Engine/Physics
195-
${PROJECT_SOURCE_DIR}/src/Engine/SceneManagement
196-
${PROJECT_SOURCE_DIR}/src/Engine/Utilities
197-
${PROJECT_SOURCE_DIR}/src/Engine/Lighting
198-
${PROJECT_SOURCE_DIR}/src/Engine/Core
199-
${PROJECT_SOURCE_DIR}/src/Editor/Utilities
200-
)
20144
20245
##############################
20346
# System packages
20447
##############################
20548
find_package(Threads REQUIRED)
20649
find_package(OpenGL REQUIRED)
20750
51+
file(GLOB_RECURSE PROJECT_SOURCES
52+
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
53+
${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
54+
)
20855
209-
add_library(libData SHARED src/libdata/libData.cpp)
210-
set(CMAKE_SHARED_LIBRARY_PREFIX "")
211-
212-
add_executable(idk_core main.cpp ${SOURCE_FILES})
56+
add_executable(idk_core main.cpp ${PROJECT_SOURCES}
57+
src/Editor/Utilities/Selectable.h
58+
src/Editor/Utilities/SelectionEvent.h)
21359
21460
link_directories("${PROJECT_SOURCE_DIR}/cmake-build-debug")
21561
216-
target_link_libraries(libData
217-
PRIVATE
218-
glad
219-
ImGui
220-
${GLFW_LIBRARY}
221-
Boost::filesystem
222-
Boost::system
223-
Threads::Threads
224-
OpenGL::GL
62+
set(IMGUI_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/imgui)
63+
64+
# libData
65+
set(LIBDATA_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/libdata)
66+
add_library(DATA SHARED ${LIBDATA_PATH}/libData.cpp)
67+
68+
target_include_directories(DATA PUBLIC
69+
${IMGUI_PATH}
70+
${LIBDATA_PATH}
22571
)
22672
227-
target_link_libraries(idk_core
73+
target_link_libraries(DATA
22874
PRIVATE
229-
glad
230-
ImGui
231-
${GLFW_LIBRARY}
232-
Boost::filesystem
233-
Boost::system
23475
Threads::Threads
23576
OpenGL::GL
236-
libData
77+
imgui
23778
)
23879
239-
target_include_directories(idk_core PUBLIC "${GLFW3_INCLUDE_DIR}")
80+
set(BOOST_LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/boost/lib")
81+
82+
set(REQUIRED_DLLS
83+
"C:/msys64/clang64/bin/libclang_rt.asan_dynamic-x86_64.dll"
84+
"C:/msys64/clang64/bin/libc++.dll"
85+
# "C:/msys64/clang64/bin/libwinpthread-1.dll"
86+
)
24087
241-
if (UNIX)
242-
target_link_libraries(idk_core
243-
PRIVATE
244-
opengl32 gdi32
88+
foreach(DLL ${REQUIRED_DLLS})
89+
add_custom_command(
90+
TARGET idk_core POST_BUILD
91+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
92+
${DLL} $<TARGET_FILE_DIR:idk_core>
93+
COMMENT "Copying ${DLL} to build directory"
24594
)
246-
endif()
95+
endforeach()
96+
97+
add_subdirectory(external/glad)
98+
add_subdirectory(external/glfw3)
99+
add_subdirectory(external/boost)
100+
add_subdirectory(external/glm)
101+
add_subdirectory(external/imgui)
102+
add_subdirectory(external/ImGuizmo)
103+
104+
target_include_directories(idk_core PRIVATE
105+
${CMAKE_CURRENT_SOURCE_DIR}/external/stb_image
106+
${CMAKE_CURRENT_SOURCE_DIR}/external/fontawesome
107+
${CMAKE_CURRENT_SOURCE_DIR}/external/boost/include
108+
${CMAKE_CURRENT_SOURCE_DIR}/external/glm/include
109+
${CMAKE_CURRENT_SOURCE_DIR}/external/glad/include
110+
${CMAKE_CURRENT_SOURCE_DIR}/external/glfw3/include
111+
${CMAKE_CURRENT_SOURCE_DIR}/external/imguizmo
112+
${IMGUI_PATH}
113+
${CMAKE_CURRENT_SOURCE_DIR}/src/Engine/Core
114+
${CMAKE_CURRENT_SOURCE_DIR}/src/Engine/Rendering
115+
${CMAKE_CURRENT_SOURCE_DIR}/src/Engine/Rendering/Renderer
116+
${CMAKE_CURRENT_SOURCE_DIR}/src/Engine/Physics
117+
${CMAKE_CURRENT_SOURCE_DIR}/src/Engine/SceneManagement
118+
${CMAKE_CURRENT_SOURCE_DIR}/src/Engine/Utilities
119+
${CMAKE_CURRENT_SOURCE_DIR}/src/Engine/Lighting
120+
${CMAKE_CURRENT_SOURCE_DIR}/src/Editor/Core
121+
${CMAKE_CURRENT_SOURCE_DIR}/src/Editor/Utilities
122+
${LIBDATA_PATH}
123+
)
247124
125+
target_link_libraries(idk_core PRIVATE glad glfw imgui ImGuizmo
126+
${BOOST_LIBRARY_DIR}/libboost_filesystem.a
127+
${BOOST_LIBRARY_DIR}/libboost_system.a
128+
opengl32
129+
Threads::Threads
130+
OpenGL::GL
131+
DATA
132+
)
248133
249-
if (MSVC)
250-
target_compile_options(idk_core PRIVATE /W4 /EHsc /std:c++20)
251-
else()
252-
target_compile_options(idk_core PRIVATE -Wall -Wextra -std=c++20)
253-
endif()
134+
if (WIN32)
135+
target_link_libraries(idk_core PRIVATE
136+
gdi32
137+
user32
138+
shell32
139+
)
140+
endif()

0 commit comments

Comments
 (0)