Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor/rake #140

Closed
wants to merge 71 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
eba4f49
feat: switch from CMake to rake
berdal84 Nov 19, 2024
6e54951
refactor(rakefiles)
berdal84 Nov 19, 2024
f7f16a8
fix(ci): env vars
berdal84 Nov 19, 2024
952dd14
refactor(ci): move install steps into a rake task
berdal84 Nov 20, 2024
f75a40f
rake: simplify env vars, and folders
berdal84 Nov 20, 2024
724f9c8
rake: system and failure
berdal84 Nov 20, 2024
c618075
rake: fix tools_core build
berdal84 Nov 20, 2024
d4fd6e2
fix(rake): improve os check
berdal84 Nov 20, 2024
0c64b35
fix(ci): add setup-ruby step
berdal84 Nov 20, 2024
ac67133
refactor(rake): merge files, simplify
berdal84 Nov 20, 2024
c175eca
add cpptrace as submodule
berdal84 Nov 21, 2024
0f634e3
continue rake file to build tools:gui:example
berdal84 Nov 21, 2024
3068783
feat(rake): build SDL2 from sources
berdal84 Nov 21, 2024
b2952a1
feat(rake): build freetype from sources
berdal84 Nov 21, 2024
323aa06
feat(rake): build nfd from sources
berdal84 Nov 21, 2024
97f6de2
feat(rake): tools_gui_example compiles (clang/linux)
berdal84 Nov 21, 2024
80455a4
feat(rake): add task fo the ci, install to INSTALL_PATH
berdal84 Nov 21, 2024
8eedeed
fix(ndbl): includes, forward decl, and old h.in file
berdal84 Nov 21, 2024
40d8673
feat(rake): compiles nodable app (clang/linux only), update ci
berdal84 Nov 21, 2024
86fd73e
refactor(rakefile): factorize c_flags and cxx_flags in new_project()
berdal84 Nov 21, 2024
a0b26ed
feat(rake): add -framework for macos, add os specific flags
berdal84 Nov 21, 2024
fed47f1
feat(rakefile): improve check task to log infos
berdal84 Nov 21, 2024
869257d
feat(rakefile): add CoreFoundation & Cacoa frameworks for macos
berdal84 Nov 22, 2024
29a99b8
fix(rakefile): IMGUI_USER_CONFIG quotes to <>
berdal84 Nov 22, 2024
e40dc73
feat(rake): improve logs
berdal84 Nov 22, 2024
8b81fa0
fix(rakefile): remove -D quotes on windows
berdal84 Nov 22, 2024
bea32da
feat(rakefile): handle build types in compiler flags
berdal84 Nov 22, 2024
9672f38
ci: debug => release
berdal84 Nov 22, 2024
24bb2c4
refactor(rake): split file
berdal84 Nov 22, 2024
1b5cb70
refactor(rakefile): improvements
berdal84 Nov 22, 2024
2825c18
feat(rakefile): generate deps files
berdal84 Nov 22, 2024
e4d872d
ci: set VERBOSE true
berdal84 Nov 23, 2024
b9e133f
fix(rake): wrong task prerequisites
berdal84 Nov 23, 2024
ef3eca7
fix(rakefiles): was not building deps, improve logs
berdal84 Nov 23, 2024
7131fb7
feat(rake): build static libraries/executable
berdal84 Nov 23, 2024
ce510e9
wip
berdal84 Nov 23, 2024
d58efc3
refactor rakefiles
berdal84 Nov 23, 2024
afac97a
fix(rakefiles): avoids multiple rules for same file
berdal84 Nov 23, 2024
a428293
refactor(rake): env vars, conditionnal logs
berdal84 Nov 23, 2024
f1fb21c
fix(rake): build task
berdal84 Nov 23, 2024
761368e
fix(rakefile): debug/release flags were ignored
berdal84 Nov 23, 2024
56df912
set ci to build in debug
berdal84 Nov 23, 2024
51f3591
revert --stdlib=<val>
berdal84 Nov 23, 2024
fd163ed
fix: -framework Cocoa, gtk+-3.0 for linux only
berdal84 Nov 23, 2024
9fcbba4
fix: defines
berdal84 Nov 23, 2024
3a04159
fix(rake): cross-platform commands
berdal84 Nov 23, 2024
d11fa88
refactor(rake): use Struct
berdal84 Nov 24, 2024
2e034dd
refactor(rakefiles): naming, file distribution
berdal84 Nov 24, 2024
cb24119
feat(rake): build googletest
berdal84 Nov 24, 2024
c78c4c9
feat: restore tests for tools:core!
berdal84 Nov 24, 2024
a27b069
fix: missing WIN32 define on WINDOWS
berdal84 Nov 24, 2024
90ec737
fix: add googletest to libs:build
berdal84 Nov 24, 2024
ff5ef8a
feat(rake): add nodable tests
berdal84 Nov 25, 2024
b798a80
fix(rikefile): TARGET_OS_MACOS => BUILD_OS_MACOS
berdal84 Nov 25, 2024
f53300c
fix: add NOMINMAX preprocessor defines for BUILD_OS_WIN
berdal84 Nov 25, 2024
ce411ce
grab changes from old branch
berdal84 Nov 27, 2024
0051f0d
fix pkg-config
berdal84 Nov 27, 2024
e0f3b8b
Update _cmake.rb remove target all
berdal84 Nov 27, 2024
21019fe
changes to compile on MINGW
berdal84 Nov 27, 2024
0065520
attempte to compile on windows
berdal84 Nov 27, 2024
039c035
add sudo only when installing non locally
berdal84 Nov 27, 2024
2c09f15
fix cmake_target install (config was missing)
berdal84 Nov 27, 2024
46a2f0b
fix cmake_target :clean
berdal84 Nov 27, 2024
12d217f
fix compilation on linux
berdal84 Nov 27, 2024
5688aff
more windows compilation progress
berdal84 Nov 28, 2024
0c21f74
disable cpptrace
berdal84 Nov 28, 2024
036440b
revmove -v flag when linking:
berdal84 Nov 28, 2024
010eef1
remove unused code
berdal84 Nov 28, 2024
fe35c27
typo
berdal84 Nov 28, 2024
f0d2ff8
fix get_binary
berdal84 Nov 28, 2024
948b98a
add missing end
berdal84 Nov 27, 2024
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
69 changes: 12 additions & 57 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,78 +18,33 @@ jobs:
fail-fast: false # see https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs#handling-failures
runs-on: ${{ matrix.os }}
env:
BUILD_TYPE: Release # possible options: MinSizeRel Release, Debug, RelWithDebInfo
BUILD_PATH: cmake-build
INSTALL_PATH: out
# Those are read by rake script
BUILD_TYPE: debug # release|debug
VERBOSE: true
steps:
- name: Install dependencies (Linux)
if: runner.os == 'Linux' # see https://docs.github.com/en/actions/learn-github-actions/contexts#runner-context
run: sudo apt-get update && sudo apt-get install libegl1-mesa-dev libdbus-1-dev libgtk-3-dev

- name: Install dependencies (macOS)
if: runner.os == 'macOS' # see https://docs.github.com/en/actions/learn-github-actions/contexts#runner-context
run: brew install mesalib-glw

- name: Git Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Create Build Environment
# Some projects don't allow in-source building, so create a separate build directory
# We'll use this as our working directory for all subsequent commands
run: cmake -E make_directory ${{env.BUILD_PATH}}
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3' # Not needed with a `.ruby-version` or `.tool-versions`

- name: Configure CMake
- name: Install Dependencies
shell: bash
working-directory: ${{env.BUILD_PATH}}
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGITHUB_REF_NAME=${{github.ref_name}} -DGITHUB_SHA=${{github.sha}}
run: rake install --trace

- name: Build
working-directory: ${{env.BUILD_PATH}}
shell: bash
run: cmake --build . --config ${{env.BUILD_TYPE}} --target install

- name: CTest
working-directory: ${{env.BUILD_PATH}}
shell: bash
run: ctest -C ${{env.BUILD_TYPE}} --verbose --output-on-failure
run: rake build --trace

- name: CPack
working-directory: ${{env.BUILD_PATH}}
- name: Test
shell: bash
run: cpack -C ${{env.BUILD_TYPE}}
run: rake test --trace

- name: Binary Artifact
uses: actions/upload-artifact@v4
with:
name: nodable-${{ runner.os }}
path: ${{env.INSTALL_PATH}}/app/*

- name: Package Artifact
uses: actions/upload-artifact@v4
with:
name: nodable-package-${{ runner.os }}
path: |
!${{env.INSTALL_PATH}}/package/_CPack_Packages
${{env.INSTALL_PATH}}/package/*.*

doxygen:
runs-on: [ubuntu-20.04]
needs: [build]
if: ${{ success() }} # see https://docs.github.com/en/actions/learn-github-actions/expressions#status-check-functions
steps:
- name: Git recursive checkout
uses: actions/checkout@v4

- name: Install dependencies
run: sudo apt-get update && sudo apt-get install doxygen

- name: Generate documentation
run: cd docs && doxygen

- name: Upload documentation artifact
uses: actions/upload-artifact@v4
with:
name: Nodable-Technical-Documentation
path: ${{runner.workspace}}/Nodable/docs/doxygen
path: build-${{env.BUILD_TYPE}}/nodable
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ _screenshots/
/nodable/install/
/bin/
/cmake-**
/rake-**
/build-**
/.idea
.gitconfig
.cache
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,6 @@
[submodule "libs/glm"]
path = libs/glm
url = https://github.com/g-truc/glm.git
[submodule "libs/cpptrace"]
path = libs/cpptrace
url = https://github.com/jeremy-rifkin/cpptrace.git
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Author: Bérenger Dalle-Cort, 2017-2024

### v1.0:
- graph is now always abstract
- fd
- interpreter (build, run, debug etc) is disabled by default and is considered out of scope, but can be enabled via the Developer>Experimental menu,
- improved the Graph user interface to create_new graph more easily,
- implemented an optimized StateMachine to simplify code (it avoids an OOP version of it! Thanks to Rémi ;)),
Expand Down
Loading
Loading