Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
c3a0b24
feat: Added Scalar template types for Eigen vectors and matrices
SaltyJoss May 16, 2026
bd90252
refactor: Updated `SpatialMath.h` to use new Scalar templates
SaltyJoss May 16, 2026
f40dc7a
refactor: Moved `SpatialDynamics` to a templated header, with not .cpp
SaltyJoss May 16, 2026
424df54
refactor: Templarised all structs in `DynamicTypes`
SaltyJoss May 16, 2026
5ca88a7
refactor: Templarised `SpatialModel` and `SpatialJoint` with Scalar t…
SaltyJoss May 16, 2026
fa671d7
refactor: Templarised `RobotDynamics`, `SpatialDynamics`, and `RobotK…
SaltyJoss May 16, 2026
f0085f0
refactor: Rewrote ODE integrators class into a generic `NumericalInte…
SaltyJoss May 16, 2026
5bdc0fa
fixes: Minor code errors fixed, only observed when built
SaltyJoss May 16, 2026
0f965b9
fixes: Further fixes from templating relevant files
SaltyJoss May 16, 2026
d69e940
feat: Added new `DualNumbers` type header using Scalar typename, with…
SaltyJoss May 17, 2026
6844d1c
feat: Added new `M_DualNumbers` type header for multivariate dual num…
SaltyJoss May 17, 2026
7d0ed18
fixes: Correct small naming errors in `DualNumber_T`
SaltyJoss May 17, 2026
62d56d8
refactor: Merged both dual number headers
SaltyJoss May 17, 2026
ad6f27a
refactor: Updated `DualNumbers_T` to define unary and equality operat…
SaltyJoss May 17, 2026
5406fad
chore: Corrected naming and assignment errors, and added fill to redu…
SaltyJoss May 17, 2026
11031e6
feat: Added Assignement operators, fixed minor bugs
SaltyJoss May 17, 2026
ffe16a3
refactor: Move current unit testing into PxM, added new `DualNumberTe…
SaltyJoss May 17, 2026
5fb504c
feat: Added missing operator and mathematical methods from `DualNumbers`
SaltyJoss May 17, 2026
6af9c9c
feat: Added new Automatic Differentiation (AD) tests, prior to implem…
SaltyJoss May 17, 2026
2bae541
refactor: Correct minor bug in `ADIntegratorTests` to now use 5e-4 f…
SaltyJoss May 17, 2026
94f49ed
fixes: Added basic guards to DualNumber division and power operators …
SaltyJoss May 17, 2026
fa9ded6
feat: Added basic AD Newton-Raphson tests for root finding, convergen…
SaltyJoss May 17, 2026
0e4968f
feat: Added basic AD Jacobian tests for matching the AD Jacobian to a…
SaltyJoss May 17, 2026
878fc6d
fixes: Updated `DualNumbers` to reflect correct errors found by unit …
SaltyJoss May 17, 2026
918316a
fixes: Corrected faulty test logic
SaltyJoss May 17, 2026
1bdc264
chore: Updated test naming
SaltyJoss May 17, 2026
4e871c0
feat: Added implicit integrator tests placeholder, will fill once mov…
SaltyJoss May 17, 2026
6c55db2
feat: Added `automaticDifferenceJacobian` method
SaltyJoss May 17, 2026
d16051c
feat: Added first implementation of AD jacobian method logic
SaltyJoss May 17, 2026
1caace5
refactor: Updated implicit methods to use the current AD jacobian method
SaltyJoss May 17, 2026
bbc17d9
feat: Add AD Implicit Tests
SaltyJoss May 17, 2026
6978ce1
fixes(INCOMPLETE): Solve template disconnect with dual numbers and cu…
SaltyJoss May 17, 2026
641e4f9
fixes(INCOMPLETE): Added overloads for implicit methods, and correcte…
SaltyJoss May 18, 2026
6e01721
fixes(INCOMPLETE): Added overloads for implicit methods, and correcte…
SaltyJoss May 18, 2026
679e4a1
fixes(PARTIAL): Updated many things surrouding dual number templates …
SaltyJoss May 18, 2026
921df4d
Merge
SaltyJoss May 18, 2026
21254af
feat(fixes): First succesful AD unit test run on an implicit integrat…
SaltyJoss May 18, 2026
18bc8e3
fixes: Fixed Eigen pivot scoring integration for `DualNumber_T`
SaltyJoss May 19, 2026
28ad057
chore: syntax corrections
SaltyJoss May 19, 2026
32c0ba5
fixes: Corrected debugging leftover in `Step` (Removed)
SaltyJoss May 19, 2026
8ea3f9a
feat: Added new solver tests
SaltyJoss May 19, 2026
4522898
chore: Fixed location of DualNumber UT
SaltyJoss May 19, 2026
6f51ace
fixes: Updated `DualNumber` to include structs for `BaseScalar` templ…
SaltyJoss May 19, 2026
3f001ee
fixes: Updated the return type of `automaticDifferentationJacobian`
SaltyJoss May 19, 2026
1425823
fixes: Updated the return type of `automaticDifferentationJacobian`
SaltyJoss May 19, 2026
b849116
Merge branch 'Automatic_Differentiation_ABA' of https://github.com/Sa…
SaltyJoss May 19, 2026
50c9513
chore: Further separate AD, Implicit, and Explicit integration method…
SaltyJoss May 21, 2026
38a7ff4
fixes: Corrected DualNumber_T scalar interop and Eigen support
SaltyJoss May 22, 2026
e38c083
fixes: Updated Eigen library compatability logic in `DualNumber` header
SaltyJoss May 22, 2026
0eb80ed
fixes(WIP): Updated type usage in autodiff implicit integrators
SaltyJoss May 22, 2026
6ce3366
refactor(WIP): Updated AD Jacobian and enable full implicit midpoint …
SaltyJoss May 23, 2026
c835ebe
feat: Added FullPivLU unit test to `DualNumber_Eigen_SolverTests`
SaltyJoss May 23, 2026
f739c59
refactor: Moved `newtonRaphson_AD` over to a FullPivLU solver, isolat…
SaltyJoss May 23, 2026
b63c6a9
Refactor AD implicit integrators for real-valued tolerance
SaltyJoss May 23, 2026
1238aeb
refactor: Updated AD implicit GLRK3 to use real-valued (BaseScalar) t…
SaltyJoss May 23, 2026
3c903a9
refactor: Updated AD implicit GLRK3 to use real-valued (BaseScalar) t…
SaltyJoss May 23, 2026
c97a6be
Merge branch 'Automatic_Differentiation_ABA' of https://github.com/Sa…
SaltyJoss May 23, 2026
d0cdada
fixes: Corrected incorrect index in `automaticDifferenceJacobian`, us…
SaltyJoss May 23, 2026
6563c06
fixes: Removed incorrected inclusion of midpoint chain factor in `Mid…
SaltyJoss May 23, 2026
e22668e
fixes
SaltyJoss May 23, 2026
7c39581
refactor: Updated naming and inline files for auto diff integrators a…
SaltyJoss May 23, 2026
fb8239d
feat(WIP): Added new `DifferentiableIntegrator` class, with a `step` …
SaltyJoss May 23, 2026
1927671
feat(WIP): Updated `DifferentiableIntegrator` `step` method in the in…
SaltyJoss May 23, 2026
ad61f35
feat(WIP): Updated `DifferentiableIntegrator` `step` method in the in…
SaltyJoss May 23, 2026
f9515ea
Merge branch 'Automatic_Differentiation_ABA' of https://github.com/Sa…
SaltyJoss May 23, 2026
8e96613
feat: Added LogSumExp smooth maximum method for the dual number type
SaltyJoss May 23, 2026
be45efd
feat: Integrated LSE smooth maximum into the current robot dynamics m…
SaltyJoss May 23, 2026
4bf3674
feat: Updated smooth max LSE to include a scalar overload, thereby re…
SaltyJoss May 23, 2026
d1733bc
feat: Updated scalar overloads definition and their use
SaltyJoss May 23, 2026
95339ca
feat: Added internal `step_impl` template method for allowing scalar …
SaltyJoss May 23, 2026
d6ac84e
feat(WIP): Integrating DualNumbers and AutoDiff into RobotSystem and …
SaltyJoss May 23, 2026
4630c67
refactor: Updated step_impl to take explicit state vector `x`
SaltyJoss May 24, 2026
4f7ed07
refactor(WIP): Updated AD robot stepping pipeline and isolated runtim…
SaltyJoss May 24, 2026
c39044d
refactor(WIP): Updated scalar-generic math layer and AD-compatible ro…
SaltyJoss May 24, 2026
6420449
refactor(WIP): Updated MathLib and DSFE scalar pipeline for full Dual…
SaltyJoss May 24, 2026
4fd5fb7
feat: Added new `IntegratorState` file into the `IntegrationService` …
SaltyJoss May 25, 2026
965c732
feat: Added basic shared ptr accessor via RobotSystem's `runtimeInteg…
SaltyJoss May 25, 2026
9b7b4f8
refactor: Updated `stepFixed` and `runScriptToCompletion` to reflect …
SaltyJoss May 25, 2026
b4e5a37
refactor: Updated `simulationProperties` to support AutoDiff integrators
SaltyJoss May 25, 2026
077e3d6
feat: Added general state backend and autodiff conditional setters in…
SaltyJoss May 25, 2026
f9cb88e
fixes(WIP): Added temporary fix for previously not resized scratch an…
SaltyJoss May 25, 2026
b8219de
fixes: Removal of internal debugging logs.
SaltyJoss May 25, 2026
3d24d63
feat: Successful integration with AD integration methosd
SaltyJoss May 25, 2026
b39a376
feat: Added some interpretation of Karnopp Friction model.
SaltyJoss May 25, 2026
19caef1
fixes(wip): Decided to the developement on AutoDiff on the back burne…
SaltyJoss May 28, 2026
a30e27d
fixes(WIP): Improved and correct AutoDiff implicit integration stabi…
SaltyJoss May 30, 2026
6ad62a9
fixes(WIP): removed debugging outputs and corrected use of friction i…
SaltyJoss May 30, 2026
f70feaf
fixes: Removed incorrect asserts
SaltyJoss May 30, 2026
c99dc91
fixes: Correct misuses of gravity compinent of scratch, and initialis…
SaltyJoss May 30, 2026
2080c6d
refactor: Updated `RobotDynamics` derivative and jacobian methods to …
SaltyJoss May 31, 2026
dfdbbd9
feat: Added `packState_AD` and `unpackState_AD` for AutoDiff stepping
SaltyJoss May 31, 2026
cfbaab4
fixes: Updated usage of set and get both standard and autodiff integr…
SaltyJoss May 31, 2026
08816b5
feat: Added `fmod` operation into the standard mathematical functions…
SaltyJoss May 31, 2026
113631b
fixes: Corrected seed array identity misconfig and allocation hammer …
SaltyJoss May 31, 2026
026a590
feat: Updated VISPA json, and added new script.
SaltyJoss May 31, 2026
042bc72
feat: Updated dynamics friction model back to simple viscous damping …
SaltyJoss May 31, 2026
0d4954f
chore: Small tweaks for QoL
SaltyJoss May 31, 2026
806af41
fixes(temp): Added a relaxation variable (Real type) for relaxing the…
SaltyJoss May 31, 2026
1f694c6
feat: Added `wn_target` and `zeta_target` targets relative to each jo…
SaltyJoss May 31, 2026
29e07db
refactor: Updated `unpack_AD` to use a smooth velocity saturation met…
SaltyJoss May 31, 2026
a8aaf8e
feat: Added joint error real-time mapping in gui (starting plan to re…
SaltyJoss May 31, 2026
8e35b0d
feat: Added local optimisations to implicit and AD_implicit `newton_r…
SaltyJoss May 31, 2026
0a696e8
fixes: Renabled `postStepUpdate` in `step_AD`, meaning a move back to…
SaltyJoss May 31, 2026
9c7ac84
Merge pull request #90 from SaltyJoss/Automatic_Differentiation_ABA a…
SaltyJoss May 31, 2026
98bc4c2
feat: Added Qt6 find_package to GUI cmake
SaltyJoss Jun 2, 2026
45120c3
feat: Added basic debug test initialisation of qt6 in `Application`
SaltyJoss Jun 2, 2026
22e3a97
feat: Added `DSFE_MainWindow` header and compiler files, with defined…
SaltyJoss Jun 2, 2026
62a964e
feat: Added basic call from `Application`
SaltyJoss Jun 2, 2026
c75ae3a
feat: Added shell of `ProjectPage` class
SaltyJoss Jun 2, 2026
7953ebe
feat: Addded viewport widget logic and docking variant logic (though …
SaltyJoss Jun 2, 2026
b3ca889
feat: Separated `SimManager` compiler file into domain-specific subfi…
SaltyJoss Jun 4, 2026
c3f782c
refactor: Port application from GLFW to Qt (QOpenGLWidget)
SaltyJoss Jun 4, 2026
c20a3d7
feat: Added control panel and robot selector UI integration
SaltyJoss Jun 5, 2026
69eb91f
feat: Added SystemMap.h for robotic arm enums and mappings
SaltyJoss Jun 5, 2026
00f78c0
fixes: Removed QOpenGLFunctions from ViewportWidget, add ControlPanel
SaltyJoss Jun 5, 2026
421db10
fixes: Added setFltArray2, cleanup includes, and FBO update
SaltyJoss Jun 5, 2026
ac242ca
feat: Added RAII OpenGL context management and context hooks
SaltyJoss Jun 5, 2026
37ba554
fixes: Corrected stale FragColour assignment in `present.frag.glsl`
SaltyJoss Jun 6, 2026
2ba6b4b
feat: Added visual outline for top task bar.
SaltyJoss Jun 6, 2026
e14bfe3
feat: Reintroduced old layout style from imgui dimesions
SaltyJoss Jun 6, 2026
5c0acf6
feat: Updated menu items in `buildMenuBar` to have actual actions, in…
SaltyJoss Jun 6, 2026
88ab656
feat: Implemented Qt6-based version of old imgui integrator selection…
SaltyJoss Jun 6, 2026
b0abf12
fixes: Small code corrections to compliment new logic
SaltyJoss Jun 6, 2026
171739c
feat: Added basic joint telemetry in the new control panel widget via…
SaltyJoss Jun 6, 2026
51add85
feat: refactor old fraction logic from imgui widgets into Qt6
SaltyJoss Jun 6, 2026
e6b0a92
feat: Implemented timestepping fractions into `simPropertiesPanel()`
SaltyJoss Jun 6, 2026
c41f5ce
fixes: Added declaration of QObject for class def, hardcoded header l…
SaltyJoss Jun 6, 2026
a760994
feat(WIP): Added basic DSL script loading and running (which needs fi…
SaltyJoss Jun 6, 2026
40a0c30
fixes
SaltyJoss Jun 6, 2026
0b79bfe
chore: Updated relevant file paths for widget dialogs
SaltyJoss Jun 6, 2026
bf6f6aa
fixes: Removed unsured file
SaltyJoss Jun 7, 2026
3dbe402
feat: Added destructor to `ViewportWidget`
SaltyJoss Jun 7, 2026
45aca05
chore: Added code comments and small corrections
SaltyJoss Jun 7, 2026
1d3ecd1
refactor: Updated `tick()` to contain the dirty robot presentation ch…
SaltyJoss Jun 7, 2026
7f5d285
feat: Added more alignments with previous DSL script editor in `DSLEd…
SaltyJoss Jun 7, 2026
add31d0
refactor: Updated `buildMenuBar()` to call DSLEditorWidget methods fo…
SaltyJoss Jun 7, 2026
7d44291
feat: Added basic joint telemetry in `ControlPanelWidget`
SaltyJoss Jun 7, 2026
5ac799e
feat: Added the console and simulation logging window in `ConsoleOutp…
SaltyJoss Jun 8, 2026
87d89d6
feat: Linked up automatic sim log clearning with script execution
SaltyJoss Jun 8, 2026
99a551a
fixes: Removed scene objects
SaltyJoss Jun 8, 2026
03b6979
feat: Added hard cap of terminal enteries
SaltyJoss Jun 8, 2026
93a8e00
fixes: Corrected taskbar duplciation error
SaltyJoss Jun 8, 2026
44b3d0f
feat: Added rudamentery syntax highlighting of DSL scripts
SaltyJoss Jun 8, 2026
7b48fb0
feat: Integrated DSL syntax highlighting into `DSLEditorWidget`
SaltyJoss Jun 8, 2026
4d79bd6
feat: Added new styling format, using .qss style file utilised by `qr…
SaltyJoss Jun 8, 2026
2042d46
chore: Updated minimum cmake version to 3.17 from 3.10
SaltyJoss Jun 10, 2026
130ad11
feat: Introduced quality, resolution, and shader switches in the view…
SaltyJoss Jun 10, 2026
29598de
fixes: Removed stale files referring to `imgui.h`, `implot.h`, `imfil…
SaltyJoss Jun 13, 2026
45c3405
fixes: Removed CMake fetch and includes of previously removed libraries
SaltyJoss Jun 13, 2026
23bd1af
feat: Added new `MeshPresentationBuilder` class with a dedicated `bui…
SaltyJoss Jun 13, 2026
add51c7
chore: Code cleanup of unused / old code in GUI files
SaltyJoss Jun 13, 2026
1533216
fixes: Updated `buildRobotMenu` to directly call the core `loadRobot(…
SaltyJoss Jun 13, 2026
45ce847
feat: Introduced new internal library in PxM, `PhysLib`
SaltyJoss Jun 13, 2026
c41e106
feat: Initialised new `SingleBodySystem` method to allow PROPER model…
SaltyJoss Jun 13, 2026
8c73349
fixes: Removed accidental ` "`" `
SaltyJoss Jun 13, 2026
dd96bf2
chore: Code cleanup
SaltyJoss Jun 13, 2026
d728728
feat: Added `SingleBodySystem` struct into PhysLib
SaltyJoss Jun 13, 2026
03ea214
feat: Added basic `SingleBodyDynamics` class with methods to `compute…
SaltyJoss Jun 13, 2026
3f6f42a
fixes: Updated SinlgeBody naming to `Body`
SaltyJoss Jun 13, 2026
791a5ca
fixes: Removed unused and inappropriate MathLib files
SaltyJoss Jun 13, 2026
d8929ef
feat: Added new central `PhysLib` header
SaltyJoss Jun 13, 2026
d54bfbd
feat: Added a simple stepping method into `SingleBodySystem`
SaltyJoss Jun 13, 2026
acdddd2
fixes
SaltyJoss Jun 13, 2026
25395a3
refactor: Updated `SingleBodyDynamics` and `Body` to reflect new pos,…
SaltyJoss Jun 13, 2026
650e3d8
fixes: Updated `Dynamics` to have correct matrix and vector computations
SaltyJoss Jun 13, 2026
d8ae172
feat: Added basic set of unit tests to test the `Dynamics.h` methods
SaltyJoss Jun 13, 2026
6f2a84b
fixes: Updated logic to correctly compute derivatives in single body …
SaltyJoss Jun 13, 2026
5453401
feat: Integrated basic pointer referencing of `SingleBodySystem` into…
SaltyJoss Jun 16, 2026
beccf8e
refactor: Moved to `CMakePresets` focused build system, preparing for…
SaltyJoss Jun 16, 2026
40debc1
refactor: Updated `build.yml` to use preset logic
SaltyJoss Jun 16, 2026
cf0dd24
fixes: Try different Qt6 version for workflow
SaltyJoss Jun 16, 2026
a473b31
fixes
SaltyJoss Jun 16, 2026
4bad85f
fixes
SaltyJoss Jun 16, 2026
941c9ad
feat: Added `DSFE_ENABLE_GUI` compile time flag, influencing the incl…
SaltyJoss Jun 16, 2026
d585771
feat: Added GUI compile-time toggle for DSFE builds
SaltyJoss Jun 16, 2026
60d30c6
refactor: Updated `CMakePresets` to contain a windows gui and non-gui…
SaltyJoss Jun 16, 2026
df5fe2a
refactor: Update build workflow to NOT include Qt6 Install step
SaltyJoss Jun 16, 2026
d25a392
fixes
SaltyJoss Jun 16, 2026
758a536
fixes
SaltyJoss Jun 16, 2026
065eadf
feat: Updated GLM include to not add library expectation
SaltyJoss Jun 16, 2026
6c1b325
fixes: Corrected ctest call in `build`, added `testPresets` into `CMa…
SaltyJoss Jun 16, 2026
63ce174
feat: Updated CMakeLists to support basic identification of OS in the…
SaltyJoss Jun 16, 2026
c5552a1
refactor: Updated and corrected current implementation and calls of W…
SaltyJoss Jun 16, 2026
17416ad
refactor: Updated CMake to make `MathLib` and `PhysLib` interfaces in…
SaltyJoss Jun 16, 2026
d584ca8
fixes: Corrected extra character
SaltyJoss Jun 16, 2026
08256d9
refactor: Added linux test presets
SaltyJoss Jun 16, 2026
6650240
fixes: Removal of `MathLibAPI.h` includes
SaltyJoss Jun 16, 2026
9d8b114
fixes: temp rename for `PhysLib` include to change casing
SaltyJoss Jun 16, 2026
f20e12c
fixes: Renamed `PhysLib` include dir
SaltyJoss Jun 16, 2026
aa04f0b
fixes: Reveresed accidental renaming of `SingleBodySystem` dir
SaltyJoss Jun 16, 2026
7472667
fixes: Updated `isfinite` use in DualNumebr unit tests
SaltyJoss Jun 16, 2026
722ba6c
fixes: Applied a corssplatform conditional for localtime usage in `De…
SaltyJoss Jun 16, 2026
8f669e1
fixes: Remove last two templated callbacks of `isfinite`
SaltyJoss Jun 16, 2026
41fa271
fixes: Removed unsuded vars
SaltyJoss Jun 16, 2026
419760d
fixes: Updated incorrect include path
SaltyJoss Jun 16, 2026
3b63c49
fixes: Updated Win32 specific methods to include compile time conditi…
SaltyJoss Jun 16, 2026
08b1c4e
fixes: Updated `Step` to change the `f_deriv` lambda to have an UNUSE…
SaltyJoss Jun 16, 2026
1db8884
fixes: Correct code warnings
SaltyJoss Jun 16, 2026
326a492
fixes: Correct case error in include
SaltyJoss Jun 16, 2026
1772033
fixes: Code cleanup
SaltyJoss Jun 16, 2026
45e3b56
fixes: Updating Scalar and template policies
SaltyJoss Jun 16, 2026
05b7e70
fixes: Updated bad include casing
SaltyJoss Jun 16, 2026
f8c1584
fixes: Updated bad include casing
SaltyJoss Jun 16, 2026
04fea03
fixes: Corrected Unix-relative duplicate variant type
SaltyJoss Jun 16, 2026
faca2b2
fixes: Code cleanup
SaltyJoss Jun 16, 2026
b5007e9
fixes: Correction of template use
SaltyJoss Jun 16, 2026
37924a4
fixes
SaltyJoss Jun 16, 2026
a3cf1a3
fixes: Code cleanup
SaltyJoss Jun 16, 2026
7ee8a48
fixes: Include casing corrections
SaltyJoss Jun 16, 2026
ea270cc
fixes: UJpdated CMake to include Linux safe compile instructions for …
SaltyJoss Jun 16, 2026
4b7a651
fixes: Update `CMakePresets` linux preset
SaltyJoss Jun 16, 2026
a7b0471
fixes
SaltyJoss Jun 16, 2026
415d13b
fixes
SaltyJoss Jun 16, 2026
4647bd4
fixes: CMake custom command compability in Engine for Linux
SaltyJoss Jun 16, 2026
da5c4e7
Merge pull request #91 from SaltyJoss/gui_backend_refactor_and_develo…
SaltyJoss Jun 17, 2026
66536db
Revise README for clarity and update task list
SaltyJoss Jun 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,16 @@ jobs:
- name: Configure
shell: pwsh
run: |
cmake -S . -B build `
-A x64 `
cmake --preset windows-x64 `
-DVCPKG_TARGET_TRIPLET=x64-windows `
-DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake"

- name: Build
shell: pwsh
run: |
cmake --build build --config Release --verbose
cmake --build --preset windows-x64-release --verbose

- name: Run tests
shell: pwsh
run: |
ctest --test-dir build --output-on-failure
ctest --preset windows-x64-release --output-on-failure
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -476,3 +476,6 @@ vcpkg_downloads/
!CMakeLists.txt
!**/imgui.ini

/build-ninja
/CMakeFiles
/_deps
60 changes: 7 additions & 53 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
# CMakeLists.txt for DSFE project (root CMakeLists.txt)
cmake_minimum_required(VERSION 3.10)

if (POLICY CMP0141)
cmake_policy(SET CMP0141 NEW)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()

cmake_minimum_required(VERSION 3.17)
project(DSFE LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")

# Set common output directories for all targets
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(OUTPUT_BASE ${CMAKE_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_BASE}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_BASE}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_BASE}/lib)

include(FetchContent)

Expand All @@ -26,56 +21,15 @@ FetchContent_Declare(
)
FetchContent_MakeAvailable(eigen)

FetchContent_Declare(
glfw
GIT_REPOSITORY https://github.com/glfw/glfw.git
GIT_TAG 3.4
)
FetchContent_MakeAvailable(glfw)

# Fetch GLM from GitHub
FetchContent_Declare(
glm
GIT_REPOSITORY https://github.com/g-truc/glm.git
GIT_TAG 1.0.3
)
FetchContent_MakeAvailable(glm)

FetchContent_Declare(
assimp
GIT_REPOSITORY https://github.com/assimp/assimp.git
GIT_TAG v6.0.4
)

set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL "" FORCE)

FetchContent_MakeAvailable(assimp)

FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG v1.14.0
GIT_SHALLOW TRUE
)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)

FetchContent_Declare(
imgui
GIT_REPOSITORY https://github.com/ocornut/imgui.git
GIT_TAG docking
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(imgui)

FetchContent_Declare(
implot
GIT_REPOSITORY https://github.com/epezent/implot.git
GIT_TAG v0.17
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(implot)

FetchContent_Declare(
nlohmann_json
GIT_REPOSITORY https://github.com/nlohmann/json.git
Expand Down
156 changes: 110 additions & 46 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -1,81 +1,145 @@
{
"version": 3,
"version": 8,
"configurePresets": [
{
"name": "windows-base",
"name": "base",
"hidden": true,
"generator": "Ninja",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "${sourceDir}/out/install/${presetName}",
"cacheVariables": {
"CMAKE_C_COMPILER": "cl.exe",
"CMAKE_CXX_COMPILER": "cl.exe"
},
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"DSFE_ENABLE_GUI": "OFF"
}
},
{
"name": "base-gui",
"hidden": true,
"binaryDir": "${sourceDir}/out/build/${presetName}",
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"DSFE_ENABLE_GUI": "ON"
}
},
{
"name": "windows-x64",
"displayName": "Windows x64",
"inherits": "base",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "x64-debug",
"displayName": "x64 Debug",
"inherits": "windows-base",
},
"generator": "Visual Studio 18 2026",
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "x64-release",
"displayName": "x64 Release",
"inherits": "x64-debug",
"name": "windows-x64-gui",
"displayName": "Windows x64 (GUI)",
"inherits": "base-gui",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"generator": "Visual Studio 18 2026",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "x86-debug",
"displayName": "x86 Debug",
"inherits": "windows-base",
"CMAKE_PREFIX_PATH": "C:/Qt/6.11.1/msvc2022_64"
},
"architecture": {
"value": "x86",
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "x86-release",
"displayName": "x86 Release",
"inherits": "x86-debug",
"name": "linux-x64-debug",
"displayName": "Linux x64 Debug",
"inherits": "base",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"generator": "Ninja",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_PREFIX_PATH": "/usr/lib/x86_64-linux-gnu/cmake",
"HDF5_DIR": "",
"CMAKE_IGNORE_PATH": "/mnt/c/Program Files/HDF_Group/HDF5/2.0.0"
},
"architecture": {
"value": "x64",
"strategy": "external"
}
},
{
"name": "linux-debug",
"displayName": "Linux Debug",
"generator": "Ninja",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "${sourceDir}/out/install/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
},
"name": "linux-x64-release",
"displayName": "Linux x64 Release",
"inherits": "base",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"vendor": {
"microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {
"sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"
}
"generator": "Ninja",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_PREFIX_PATH": "/usr/lib/x86_64-linux-gnu/cmake",
"HDF5_DIR": "",
"CMAKE_IGNORE_PATH": "/mnt/c/Program Files/HDF_Group/HDF5/2.0.0"
},
"architecture": {
"value": "x64",
"strategy": "external"
}
}
],
"buildPresets": [
{
"name": "windows-x64-debug",
"configurePreset": "windows-x64",
"configuration": "Debug"
},
{
"name": "windows-x64-release",
"configurePreset": "windows-x64",
"configuration": "Release"
},
{
"name": "windows-x64-gui-debug",
"configurePreset": "windows-x64-gui",
"configuration": "Debug"
},
{
"name": "windows-x64-gui-release",
"configurePreset": "windows-x64-gui",
"configuration": "Release"
},
{
"name": "linux-x64-debug",
"configurePreset": "linux-x64-debug"
},
{
"name": "linux-x64-release",
"configurePreset": "linux-x64-release"
}
],
"testPresets": [
{
"name": "windows-x64-release",
"configurePreset": "windows-x64",
"output": { "outputOnFailure": true }
},
{
"name": "windows-x64-gui-release",
"configurePreset": "windows-x64-gui",
"output": { "outputOnFailure": true }
},
{
"name": "linux-x64-release",
"configurePreset": "linux-x64-release",
"output": { "outputOnFailure": true }
}
]
}
14 changes: 6 additions & 8 deletions DSFE_App/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
# CMakeLists.txt for the DSFE_App project
cmake_minimum_required(VERSION 3.10)
project(DSFE_App LANGUAGES C CXX)

# Add projects within the DSFE_App directory
# CMakeLists.txt for the DSFE_App
add_subdirectory(DSFE_Core)
add_subdirectory(DSFE_GUI)
add_subdirectory(DSFE_Engine)
add_subdirectory(DSFE_Unit_Tests)
option(DSFE_ENABLE_GUI "Enable GUI module" ON)
if(DSFE_ENABLE_GUI)
add_subdirectory(DSFE_GUI)
endif()
add_subdirectory(DSFE_Engine)
Loading
Loading