Skip to content

Commit

Permalink
Better dependency management; Entities updated, bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
adi-g15 committed Feb 6, 2021
1 parent 5b94b43 commit 00c0634
Show file tree
Hide file tree
Showing 59 changed files with 1,641 additions and 2,506 deletions.
96 changes: 50 additions & 46 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
@@ -1,46 +1,50 @@
name: CMake

on: [push]

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release

jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- 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 ${{github.workspace}}/build

- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
working-directory: ${{github.workspace}}/build
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE

- name: Build
working-directory: ${{github.workspace}}/build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . --config $BUILD_TYPE

# - name: Test
# working-directory: ${{github.workspace}}/build
# shell: bash
# # Execute tests defined by the CMake configuration.
# # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
# run: ctest -C $BUILD_TYPE
name: CMake

on: [push]

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release

jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Clone Dependencies
run: git submodule update --init --recursive
working-directory: ${{github.workspace}}/

- 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 ${{github.workspace}}/build

- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
working-directory: ${{github.workspace}}/build
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE

- name: Build
working-directory: ${{github.workspace}}/build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . --config $BUILD_TYPE

# - name: Test
# working-directory: ${{github.workspace}}/build
# shell: bash
# # Execute tests defined by the CMake configuration.
# # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
# run: ctest -C $BUILD_TYPE
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
experiment*
delete*
.vs
.vscode

# i am not commiting this directory to git, it contains the pdcurses.lib and includes for pdcurses
curses/
Expand Down
20 changes: 13 additions & 7 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
[submodule "graphMat"]
path = graphMat
url = https://github.com/adi-g15/graphMat
[submodule "ext\\graphMat"]
path = ext\\graphMat
url = https://github.com/adi-g15/graphMat
[submodule "ext\\glfwpp"]
[submodule "graphMat"]
path = graphMat
url = https://github.com/adi-g15/graphMat
[submodule "ext\\graphMat"]
path = ext\\graphMat
url = https://github.com/adi-g15/graphMat
[submodule "ext\\glfwpp"]
path = ext\\glfwpp
url = https://github.com/janekb04/glfwpp
[submodule "ext/utilpp"]
path = ext/utilpp
url = https://github.com/adi-g15/utilpp
[submodule "ext/nanogui"]
path = ext/nanogui
url = https://github.com/mitsuba-renderer/nanogui.git
110 changes: 58 additions & 52 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,52 +1,58 @@
cmake_minimum_required(VERSION 3.10.0)
project(WorldLineSim
DESCRIPTION "WorldLine Simulator"
LANGUAGES CXX
VERSION 0.271
)

# Set c++ standard to C+20
set(CMAKE_CXX_STANDARD 17)

if(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/ext/glfwpp/include")
message(FATAL_ERROR "The GLFW dependency (or it's wrapper glfwpp) are missing!! "
"You might not have cloned the repo with --recursive "
"You will need to clone the dependencies too, use \`git submodule --init --recursive\`"
)
endif()

file(GLOB SOURCES "src/Entities/*.cpp" "src/*.cpp")

add_compile_definitions(GRAPH_MAT_NO_COORD)
add_executable(simulator main.cpp ${SOURCES})
target_link_libraries(simulator PRIVATE display)

include_directories(includes)
include_directories(.)
include_directories(ext/graphMat/includes/)
include_directories(ext/glfwpp/include/)

set(DEBUG_MODE true)

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

link_libraries(Threads::Threads)

add_subdirectory(ext/glfwpp)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL " " FORCE)
target_link_directories(simulator PRIVATE GLFWPP)

# set(CMAKE_TOOLCHAIN_FILE "C:/Users/adity/libs/vcpkg/scripts/buildsystems/vcpkg.cmake")
# later distribute display into a library, and link to it
# file(GLOB DISP_SOURCES "display/src/*.cpp")
# add_library(display STATIC ${DISP_SOURCES})
# Edit the 3 lines, according to your build of curses (ncurse or pdcurses)
# set(CURSES_INCLUDE_PATH "C:/Users/adity/libs/vcpkg/packages/pdcurses_x64-windows/include")
# set(CURSES_LIBRARY "C:/Users/adity/libs/vcpkg/packages/pdcurses_x64-windows/lib")
#target_include_directories(simulator PRIVATE curses/includes)
# Edit the previous 3 lines, according to your build of curses (ncurse or pdcurses)
# define a macro here "__DEBUG"
# include_directories(${CURSES_INCLUDE_PATH})
# find_package(Curses REQUIRED)
# target_link_libraries(display PUBLIC ${CURSES_LIBRARY}/pdcurses.lib)
cmake_minimum_required(VERSION 3.10.0)
project(WorldLineSim
DESCRIPTION "WorldLine Simulator"
LANGUAGES CXX
VERSION 0.271
)
include(CTest)

# Later utilise features in C++20
set(CMAKE_CXX_STANDARD 17)

if(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/ext/glfwpp/include")
message(FATAL_ERROR "The GLFW dependency (or it's wrapper glfwpp) are missing!! "
"You might not have cloned the repo with --recursive "
"You will need to clone the dependencies too, use \`git submodule --init --recursive\`"
)
endif()

include_directories(ext/graphMat/includes/)
include_directories(ext/utilpp/includes/)
include_directories(ext/glfwpp/include/)

file(GLOB SOURCES "src/Entities/*.cpp" "src/*.cpp")

#add_compile_definitions(GRAPH_MAT_NO_COORD)
add_compile_definitions(DEBUG)
add_executable(simulator main.cpp ${SOURCES})
target_link_libraries(simulator PRIVATE display)

include_directories(includes)
include_directories(.)

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

file(GLOB DISP_SOURCES "display/src/*.cpp")
add_library(display STATIC ${DISP_SOURCES})
target_link_libraries(display PRIVATE GLFWPP)

add_subdirectory(ext/glfwpp)
set(NANOGUI_BUILD_EXAMPLES OFF CACHE BOOL " " FORCE)
set(GLFWPP_BUILD_EXAMPLES OFF CACHE BOOL " " FORCE)
target_link_libraries(simulator PRIVATE Threads::Threads)
target_link_libraries(simulator PRIVATE display)

# set(CMAKE_TOOLCHAIN_FILE "C:/Users/adity/libs/vcpkg/scripts/buildsystems/vcpkg.cmake")
# later distribute display into a library, and link to it
# file(GLOB DISP_SOURCES "display/src/*.cpp")
# add_library(display STATIC ${DISP_SOURCES})
# Edit the 3 lines, according to your build of curses (ncurse or pdcurses)
# set(CURSES_INCLUDE_PATH "C:/Users/adity/libs/vcpkg/packages/pdcurses_x64-windows/include")
# set(CURSES_LIBRARY "C:/Users/adity/libs/vcpkg/packages/pdcurses_x64-windows/lib")
#target_include_directories(simulator PRIVATE curses/includes)
# Edit the previous 3 lines, according to your build of curses (ncurse or pdcurses)
# define a macro here "__DEBUG"
# include_directories(${CURSES_INCLUDE_PATH})
# find_package(Curses REQUIRED)
# target_link_libraries(display PUBLIC ${CURSES_LIBRARY}/pdcurses.lib)
80 changes: 40 additions & 40 deletions CMakeSettings.json
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
{
"configurations": [
{
"name": "x64-Debug (default)",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x64_x64" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"variables": [],
"intelliSenseMode": "windows-msvc-x64",
},
{
"name": "x64-Release",
"generator": "Ninja",
"configurationType": "Debug",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": []
},
{
"name": "x64-ReleaseWithDeb",
"generator": "Ninja",
"configurationType": "RelWithDebInfo",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": []
}
]
{
"configurations": [
{
"name": "x64-Debug (default)",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x64_x64" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"variables": [],
"intelliSenseMode": "windows-msvc-x64",
},
{
"name": "x64-Release",
"generator": "Ninja",
"configurationType": "Debug",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": []
},
{
"name": "x64-ReleaseWithDeb",
"generator": "Ninja",
"configurationType": "RelWithDebInfo",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": []
}
]
}
Loading

0 comments on commit 00c0634

Please sign in to comment.