Skip to content

Commit

Permalink
Merge pull request #23 from berdal84/dev
Browse files Browse the repository at this point in the history
merge of 0.6
  • Loading branch information
berdal84 authored May 6, 2020
2 parents f266ff1 + a70f245 commit 60fd8c8
Show file tree
Hide file tree
Showing 72 changed files with 2,534 additions and 2,750 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,7 @@ build/Debug/
build/Release/

_screenshots/
/_build
/install
/out/build/x64-Debug
/build
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
[submodule "extern/IconFontCppHeaders"]
path = extern/IconFontCppHeaders
url = https://github.com/berdal84/IconFontCppHeaders
[submodule "extern/mirror"]
path = extern/mirror
url = https://github.com/berdal84/mirror
27 changes: 16 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,39 @@
/*

Nodable Change Log :
====================

Author: Bérenger Dalle-Cort, 2020-2017

ChangeLog :

v0.5.1:
- fix(NodeView): Variable node drawing crash.
0.6:
- use now mirror (by @Grouflon) as reflection framework.
- Result node constraint to stay on visible rect after updating.
- Build using CMake.
- Parser: functions rewrote, parenthesis, detailed logs.
- Language class.

v0.5.0:
0.5:
- fix(NodeView): Variable node drawing crash.
- First draft version of an UNDO/REDO system.

v0.4.1:
0.4:
- A brand new logo !
- Nodable is now able to open existing files and to save them.
- The UI has a tab system to switch between multiple loaded files.
- Bug fixes

v0.3:
0.3:
- New Node_Assign : '=' can be used to assign a value to a symbol (ex: a = 10)
- Now Able to perform binary operations on symbols (ex: c = a + b).
- Node_Context : is now used as a factory.
- Node : each node can get its contexts with Entity::getParent()
- Added a change log.
- Added version number into the header file (NODABLE_VERSION_MAJOR, NODABLE_VERSION_MINOR, NODABLE_VERSION)

v0.2:
0.2:
- New Binary Operations : Node_Substract, Node_Multiply, Node_Divide
- Lexer : nos supports operator precedence.

v0.1:
0.1:
- Node_Add : to add two Node_Numbers
- Lexer : first version able to evaluate additions.
*/
- Lexer : first version able to evaluate additions.
156 changes: 156 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@

cmake_minimum_required (VERSION 3.8)

# Get architecture
if (${CMAKE_SIZEOF_VOID_P} MATCHES 8)
set(ARCHITECTURE "x64")
else ()
set(ARCHITECTURE "x86")
endif ()

# General :
#==========

# Declare project name
project ("Nodable Project")

# specify the C++ standard
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# Adds SDL2 folder to CMAKE_PREFIX_PATH
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}
"./libs/SDL2"
)

# If a default install prefix has not been set, we set it.
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/install" CACHE PATH "..." FORCE)
endif()

# Find packages
find_package(OpenGL REQUIRED)
find_package(SDL2 REQUIRED)
find_package(MIRROR REQUIRED HINTS "./extern/mirror")

# Add additionnal source directories
aux_source_directory( "./extern/imgui" IMGUI)
aux_source_directory( "./extern/ImGuiColorTextEdit" TEXTEDIT)
aux_source_directory( "./libs/gl3w/GL" GL3W)

# Get all files in sources directory recursively
file(GLOB_RECURSE NODABLE_SRC "${CMAKE_CURRENT_LIST_DIR}/sources/**")

# Create a variable with all sources
set(SOURCES
${NODABLE_SRC}
${GL3W}
${TEXTEDIT}
${IMGUI}
${MIRROR_SOURCES}
"./extern/imgui/examples/imgui_impl_opengl3.cpp"
"./extern/imgui/examples/imgui_impl_sdl.cpp"
)

# Group the previous files using the folder tree
source_group(TREE "${CMAKE_CURRENT_LIST_DIR}" FILES ${SOURCES})

# Include nodable folders (for headers)
include_directories(
"./sources"
"./sources/Core"
"./sources/Nodes"
"./sources/Components")

# Include external and libs folders (for headers)
include_directories(
"./extern"
"./extern/imgui"
"./extern/ImGuiColorTextEdit"
"./extern/IconFontCppHeaders"
"./libs"
${SDL2_INCLUDE_DIRS}
"./libs/gl3w/GL"
"./libs/gl3w"
"./libs/glfw/include/GLFW"
${MIRROR_INCLUDE_DIRS}
)

# Build:
#=======

# Add an executable called Nodable(.exe on windows)
add_executable (Nodable ${SOURCES}) # WIN32 will give WIN32_EXECUTABLE flag if targets windows (no console)

# Link libraries
target_link_libraries(Nodable PUBLIC ${OPENGL_LIBRARY})
target_link_libraries(Nodable LINK_PUBLIC ${SDL2_STATIC})

# Configure files (a link is created between source and target, if source is modified, target will be updated)
set(BUILD_PATH ${CMAKE_BINARY_DIR}/$<CONFIG>)
add_custom_command(
TARGET Nodable PRE_BUILD

COMMAND ${CMAKE_COMMAND} -E copy_directory # Copy assets (fonts, scripts, etc..)
${CMAKE_CURRENT_SOURCE_DIR}/data
${BUILD_PATH}/data

COMMAND ${CMAKE_COMMAND} -E copy # Copy SDL2 runtime library
${SDL2_RUNTIME}
${BUILD_PATH})

# Installation :
#===============

set(INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/$<CONFIG>)

# Copy DLLs
install(FILES ${SDL2_RUNTIME} DESTINATION ${INSTALL_PATH})

# Copy assets
install(DIRECTORY "data" DESTINATION ${INSTALL_PATH} )

# Copy executable
install(TARGETS Nodable RUNTIME DESTINATION ${INSTALL_PATH})

# Tests :
#=========

# TODO: remove test at application startup and create a specific target for that.





# MMMMMMMMMMMMMMMMMMMMMMNOo:;,;;lxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMW0o:;;;;;;;;lkXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# WWWWWWWWWMMMMMMMMMMWOc;;;;;:;;;;;:oKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# kxolllllxKWMMMMMMMMXo;;::ccccc:::;:xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# NXOo;'''':xNMMMMMMMKc,,;;;;::;;;;,;oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNXK0XWMMMMMMMMMMMMMMMMMMMMMMMMWNKKNMMMMMMMMMMMMMMMMMWNKKXWMMMMMMMMMMMMMMMMMMMM
# MMMXo''.'.,l0WMMMMMNd,'''''''''''':kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0koc:;;oXMMMMMMMMMMMMMMMMMMMMWXOdl:;cOWMMMMMMMMMMMMWKOxlc;;xNMMMMMMMMMMMMMMMMMMMM
# MMMNo',,'...;dXWMMMMXd;'''''''''';dXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX0o,',,lKWMMMMMMMMMMMMMMMMMMMMNKk:'':kWMMMMMMMMMMMMWXKOl,',oXMMMMMMMMMMMMMMMMMMMM
# MMMNo':xo,...':ONMMMMW0dc;,''',,';dXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO;'',lKWMMMMMMMMMMMMMMMMMMMMMMXl'';kWMMMMMMMMMMMMMMMWx,',oXMMMMMMMMMMMMMMMMMMMM
# MMMNo.:0NOc'...'oKWMMMMWNKOl';dxc,,cONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO;.''lKMMMMMMMMMMMMMMMMMMMMMMMXl.';kWMMMMMMMMMMMMMMMWx,.'oXMMMMMMMMMMMMMMMMMMMM
# MMMNo.:0WMXx,....;xNMMMMMMWd.;OWXd;',oO0kdoooodxOKNMMMMMMMMMMMWNKOkkOKNk,.''lKWMMMMMWX0OOkkOKNWMMMMMMXc..;kNNKOkkO0XWMMMMMMWx'.'oXMMMMMMMWX0Okkk0XWMMM
# MMMNo.:0WMMW0l.....c0WMMMMWd.,OWMW0c'''''.......',cxKWMMMMMMN0o:codxdol:'..'cKWMMWXxc:ldkxd:,:xNMMMMMXc..,oo:,''..';o0WMMMMWx'.'oXMMMMMXxlllolc;',lONM
# MMMNl.:0WMMMMNk;....'dXMMMWd.,OWMW0c'..'''''''''''.';xXMMMMKo',o0NWWWN0c....cKWMMKc..:ONMMWO;.'dNMMMMXc...,cdkOkd:...,dXMMMWd...oXMMMWk:,o0NWWN0c..'oX
# MMMNl.;0WMMMMMWKo.....:ONMWd.,OWWO:''''',,,,,,,,,'''''lKMM0:..lKWMMMMMWx'...cKMMMKc''lKWMMMK:..:KWMMMXc..'oKWMMMWNd'..'dNMMWd...lXMMWk,.:kKXXXXXx'..'d
# MMMNl.;0WMMMMMMMWO:. ..lKNd.,OWKc'',,;;;;::::;;;;,,,''oNXl..,kWMMMMMMMk'...cKMMMMX0OXWWNKOo'..;0WMMMX:..'kWMMMMMMNo...;0WMWd...lXMMK:..,cllllllc;;;;o
# MMMNl.;0WMMMMMMMMMXd' .,dl.'OWx,',,;;:ccllllcc::;;,'.:0O,..;OWMMMMMMMk....:KMMMMMWXOdoooxo'..;OWMMMX:..'xWMMMMMMMO'..'kWMWd...lXMMk'..oKXXXXXXXXXXXN
# MMMNc.;0WMMMMMMMMMMW0:. .. 'ONx......',,;;;;;,,''....,Ok' ,OWMMMMMMMk. ..:KMMMW0l,'ckKNW0; ,OWMMMK: 'xWMMMMMMM0, ,OWMWd. .lXMMk. .cXMMMMMMMMMMMM
# MMMNc ,0WMMMMMMMMMMMMNx' 'kWO, .:0O, .oNMMMMMMMx. ..:KWMNd. .lXWMMMK; ,OWMMMK; .xWMMMMMMMk' .cKWMWo. .lXMM0, 'xWMMMMMMMMMXx
# MMMX; 'OWMMMMMMMMMMMMMWKl. 'kWNo. .'xNNo. .dNMMMMMWd. .:KWM0, .dNMMMWO' ,OWMMMK; .xWMMMMMMXc..:0WMMWo. .cXMMNo. .oKWMMMMWXx:c
# MWNd. .lXWMMMMMMMMMMMMMMNk, .kWMNo. .cKWMNo. .;dOK0ko, .cxKK: 'okkdo:. .lkOXMX: .lXWMMMNO:.'oKWMMMNc :KMMMXo. .:lool:''l0
# dl;.....;ld0WMMMMMMMMMMMMMXo.'kWMXl. ... .:kNMW0l,.....';lc..',;lxKN0c.. ..':dOo. .,oKWW0l,..,:lllc;:d0NMMWKxl'...'lxKWMWOl'. ..,oONW
# 0OOOOOOOOO0XWMMMMMMMMMMMMMMW0OXWXc. .coc,......',cxOx:. .;xXWWN0OxxkOXNX00XNNWWMMMWKOxkOKNWMWKkxOKNWMMMWNK0kxxxk0KNWMMMMWNK0000000KXWMMMWX0kxxkOKXWMMM
# MMMMMMMMMMMMMMMMMMMMMMMMWNKOkkOk; .dXWWNX0OOO0KNWWMMNOc. 'oKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMMMNkc'. .dNMMMMMMMMMMMMMMMMMMW0o' .cONMMMWNKOOOO0KNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMMKc. .oXMMMMMMMMMMMMMMMMMMMMWXd, .;x0x:'. ..,ckNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMXc .....''.... .dNMMMMMMMMMMMMMMMMMMMMMMNk:. . .;OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMM0' ...... ;KMMMMMMMMMMMMMMMMMMMMMMMMNk' 'kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMK, cKMMMMMMMMMMMMMMMMMMMMMMMMM0, ........... :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMWk. ,kNMMMMMMMMMMMMMMMMMMMMMMMMMO. .. ,OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMMWO:. .cONMMMMMMMMMMMMMMMMMMMMMMMMMMX; :KWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMMMMW0xl:;;:lx0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMO, ;OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMMMMMMMWWWNWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKl. .l0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
# MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0c. .'ckXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,21 @@ You still don't understand what I'm doing? I hope this GIF will make this more u
How to compile ? :
==================

Open the existing Visual Studio Solution located in build folder. Then check VS help to know how to compile.
Install Microsoft Visual Studio Community 2015+

Install CMake 3.8+

Open a command line in the Nodable folder and type:

```
cmake -B ./build
cmake --build ./build --config Release
```
Nodable will be built into `./build/Release/`

Adding optionnal `--target install` to the fourth line will create a clean `./install/Release` directory with only necessary files to run the software.

You can also open the Visual Studio solution generated into `./build` if you want.

Dependencies / Credits :
==============
Expand All @@ -30,6 +44,7 @@ Dependencies / Credits :
- *Dear ImGui* developed by Omar Cornut: https://github.com/omarcornut/imgui
- IconFontCppHeaders by Juliette Faucaut: https://github.com/juliettef/IconFontCppHeaders
- ImGuiColorTextEdit by BalazsJako : https://github.com/BalazsJako/ImGuiColorTextEdit
- mirror by Grouflon : https://github.com/grouflon/mirror

Licence:
=========
Expand Down
31 changes: 0 additions & 31 deletions build/Nodable.sln

This file was deleted.

Loading

0 comments on commit 60fd8c8

Please sign in to comment.