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

Update Documentation & Github Actions #101

Merged
merged 65 commits into from
Dec 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
573b4c0
refactor(cmake): add `CPM.cmake`, restructure CMakeLists
Curve Nov 20, 2023
028c686
refactor(cmake): update examples
Curve Nov 21, 2023
54fbd01
refactor(cmake): update tests
Curve Nov 21, 2023
257e641
fix: missing include
Curve Nov 21, 2023
bdd32ce
refactor(cmake): update python bindings
Curve Nov 21, 2023
0d24ce7
feat: add sanitizer options
Curve Nov 21, 2023
b152b49
feat(cmake): add install target
Curve Nov 21, 2023
1fddcee
refactor(cmake/python): use `CMAKE_LIBRARY_OUTPUT_DIRECTORY` when ava…
Curve Nov 21, 2023
80d4611
feat(cmake): add sanitizer options for gcc
Curve Nov 21, 2023
fd458de
fix(cmake): static builds
Curve Nov 21, 2023
1926d32
refactor(cmake): add messages
Curve Nov 21, 2023
36fa52d
fix(format-project): shellcheck issues
Curve Nov 21, 2023
396c57e
refactor(cmake/sanitizer): more explicit compiler id check
Curve Nov 22, 2023
1b96dce
fix: update formatting
Curve Nov 27, 2023
1032eb6
fix(workflows): build commands
Curve Nov 27, 2023
e972ef2
fix(workflows(windows): long paths
Curve Nov 27, 2023
74df39c
fix(CMakeLists): disable VTK rendering group
Curve Nov 27, 2023
9c40d8a
docs(readme): update build instructions
Curve Nov 27, 2023
3ca2284
docs(readme): fix test command
Curve Nov 27, 2023
7757f39
fix: ctest excludes
Curve Nov 27, 2023
6b062d6
refactor: disable sanitizer for msvc and apple clang
Curve Nov 29, 2023
94f3945
chore: apply cmake-format
Curve Nov 29, 2023
08fc6fa
fix(cmake-format): define CPM functions
Curve Nov 29, 2023
89e63fb
fix(vtk): disable libproj support
Curve Nov 29, 2023
6315461
revert: formatting
Curve Nov 29, 2023
1184801
fix(ci/windows): enable long paths
Curve Nov 29, 2023
d75cd9c
refactor(cmake): disable wrapping for vtk and disable libproj
Curve Nov 29, 2023
e6b56f7
refactor(cmake): disable sanitizer by default
Curve Nov 29, 2023
8c894ba
fix(windows): only export symbols for viennals
Curve Nov 29, 2023
a3898eb
refactor(cmake): exclude dependencies from all target
Curve Nov 29, 2023
6b5bef8
refactor(cmake): use get-cpm
Curve Nov 29, 2023
6dbe999
refactor(cmake): lower required vtk version
Curve Nov 29, 2023
5af2536
fix: formatting
Curve Nov 29, 2023
5b3f309
fix: setup vtk env for targets
Curve Dec 2, 2023
38771b5
fix: formatting
Curve Dec 2, 2023
357a02c
fix: remove debug print
Curve Dec 2, 2023
2aa3da1
fix(cmakelists): vtk dir on linux
Curve Dec 2, 2023
c95fd8d
fix: skip vtk environment on non windows platforms
Curve Dec 2, 2023
a8acd4c
fix: formatting
Curve Dec 2, 2023
0a440c9
refactor: more logging, don't use early return in macro
Curve Dec 2, 2023
05eb427
refactor: adjust target naming
Curve Dec 3, 2023
8e04ffe
refactor(ci): use matrix workflow & cpm cache
Curve Dec 6, 2023
808ed7c
fix(ci): install dependencies on fedora
Curve Dec 6, 2023
57e1443
fix(ci): don't fail fast
Curve Dec 6, 2023
de5a2d0
fix(ci/macos): setup openmp
Curve Dec 6, 2023
404f6a2
fix(ci/windows): long paths
Curve Dec 6, 2023
398df10
fix(ci/macos): openmp
Curve Dec 6, 2023
4f499e1
refactor(ci): improve naming
Curve Dec 6, 2023
c219661
refactor(ci): cache build
Curve Dec 6, 2023
3da44f8
feat(ci): add binding workflow
Curve Dec 6, 2023
a61f33c
fix(actions/setup): install pip3
Curve Dec 6, 2023
a179f3e
fix(ctest): specify config
Curve Dec 6, 2023
144ef0b
fix(actions/setup): install python3-devel
Curve Dec 6, 2023
32531e3
feat: update doxygen
Curve Dec 6, 2023
7ffdda9
refactor(pages): remove redundant multi-line
Curve Dec 6, 2023
b408c4d
fix(docs): checkout submodules
Curve Dec 6, 2023
bcd3492
fix(docs): latest doxygen
Curve Dec 6, 2023
d60401d
fix(docs): git installation
Curve Dec 6, 2023
d96229b
docs: update readme
Curve Dec 6, 2023
6a8a81a
refactor(cmake): bump version
Curve Dec 6, 2023
b6046c9
docs(readme): improve conformance with doxygen
Curve Dec 6, 2023
57664b9
fix(doxygen): logos
Curve Dec 6, 2023
739798f
docs(readme): add missing newline
Curve Dec 6, 2023
c1dc53d
Merge remote-tracking branch 'remote/master' into actions-refactor
Curve Dec 7, 2023
de09f7f
fix: merge issue
Curve Dec 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 0 additions & 26 deletions .github/actions/cache-check/action.yml

This file was deleted.

19 changes: 0 additions & 19 deletions .github/actions/cache-delete/action.yml

This file was deleted.

36 changes: 36 additions & 0 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: 🏗️ Setup Environment
description: Install Dependencies & Deploy Workarounds

inputs:
container:
required: true
description: Build container used

install-vtk:
required: true
description: Wether or not to install VTK as a system dependency

runs:
using: "composite"

steps:
- name: 🩹 Enable Long Paths
shell: bash
if: ${{ inputs.container == 'windows-latest' }}
run: git config --system core.longpaths true

- name: 📋 Install Dependencies
shell: bash
if: ${{ inputs.container == 'ubuntu-latest' }}
run: dnf install -y make automake gcc gcc-c++ kernel-devel cmake git python3 python3-pip python3-devel

- name: 📋 Install OpenMP
shell: bash
if: ${{ inputs.container == 'macos-latest' }}
run: |
brew reinstall --build-from-source --formula ./.github/homebrew/libomp.rb

- name: 📋 Install VTK
shell: bash
if: ${{ inputs.install-vtk == 'true' }}
run: dnf install -y vtk vtk-devel
83 changes: 83 additions & 0 deletions .github/homebrew/libomp.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# SPDX-License-Identifier: BSD-2-Clause

class Libomp < Formula
desc "LLVM's OpenMP runtime library"
homepage "https://openmp.llvm.org/"
url "https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/openmp-15.0.7.src.tar.xz"
sha256 "3f168d38e7a37b928dcb94b33ce947f75d81eef6fa6a4f9d16b6dc5511c07358"
license "MIT"

livecheck do
url :stable
regex(/^llvmorg[._-]v?(\d+(?:\.\d+)+)$/i)
end

bottle do
sha256 cellar: :any, arm64_ventura: "8c5c7b912a075e598fb7ae10f2999853343b2662061d92040b1a584cbb3ba7d2"
sha256 cellar: :any, arm64_monterey: "1b1aad07e8677744cdaa264419fade98bd1a852894c77d01985053a96b7d1c7d"
sha256 cellar: :any, arm64_big_sur: "00e04fbe9783ad7751eaa6d2edda92dfbff85131777255a74e364f3217a7a2df"
sha256 cellar: :any, ventura: "762c461db6af3cf78983b1eb58aee62699652b96237abf79469c8ac034b2156b"
sha256 cellar: :any, monterey: "0b944a6bbe8955e7900882b94f1b0b09030d5791191dc5b0c8b3d5d0895f4b12"
sha256 cellar: :any, big_sur: "f92e5b31f86c22c0fe875b50e050c19a89993b36106a9ad2737230ae2cb68069"
sha256 cellar: :any_skip_relocation, x86_64_linux: "d2a16a906c029e8405a11924837417ad1008d41bb1877399f494cb872a179f01"
end

# Ref: https://github.com/Homebrew/homebrew-core/issues/112107
keg_only "it can override GCC headers and result in broken builds"

depends_on "cmake" => :build
depends_on "lit" => :build
uses_from_macos "llvm" => :build

resource "cmake" do
url "https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/cmake-15.0.7.src.tar.xz"
sha256 "8986f29b634fdaa9862eedda78513969fe9788301c9f2d938f4c10a3e7a3e7ea"
end

def install
(buildpath/"src").install buildpath.children
(buildpath/"cmake").install resource("cmake")

# Disable LIBOMP_INSTALL_ALIASES, otherwise the library is installed as
# libgomp alias which can conflict with GCC's libgomp.
args = ["-DLIBOMP_INSTALL_ALIASES=OFF"]
args << "-DOPENMP_ENABLE_LIBOMPTARGET=OFF" if OS.linux?

# Build universal binary
ENV.permit_arch_flags
ENV.runtime_cpu_detection
args << "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64"

system "cmake", "-S", "src", "-B", "build/shared", *std_cmake_args, *args
system "cmake", "--build", "build/shared"
system "cmake", "--install", "build/shared"

system "cmake", "-S", "src", "-B", "build/static",
"-DLIBOMP_ENABLE_SHARED=OFF",
*std_cmake_args, *args
system "cmake", "--build", "build/static"
system "cmake", "--install", "build/static"
end

test do
(testpath/"test.cpp").write <<~EOS
#include <omp.h>
#include <array>
int main (int argc, char** argv) {
std::array<size_t,2> arr = {0,0};
#pragma omp parallel num_threads(2)
{
size_t tid = omp_get_thread_num();
arr.at(tid) = tid + 1;
}
if(arr.at(0) == 1 && arr.at(1) == 2)
return 0;
else
return 1;
}
EOS
system ENV.cxx, "-Werror", "-Xpreprocessor", "-fopenmp", "test.cpp", "-std=c++11",
"-I#{include}", "-L#{lib}", "-lomp", "-o", "test"
system "./test"
end
end
30 changes: 0 additions & 30 deletions .github/workflows/check_source.yml

This file was deleted.

43 changes: 43 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
on:
push:
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

name: 📄 Setup Documentation

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

runs-on: ubuntu-latest
container: archlinux:base-devel

steps:
- name: 📋 Install Dependencies
run: pacman --noconfirm -Syu doxygen git

- name: 📥 Checkout
uses: actions/checkout@v4
with:
submodules: "recursive"

- name: 🔨 Build
run: doxygen docs/Doxyfile

- name: 🚀 Upload Artifact
uses: actions/upload-pages-artifact@v1
with:
path: html

- name: 📃 Setup Pages
uses: actions/configure-pages@v3

- name: 📦 Deploy
id: deployment
uses: actions/deploy-pages@v2
26 changes: 26 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: 🔍 Check Formatting

on:
push:
pull_request:
workflow_dispatch:

jobs:
check-coding-style:
runs-on: ubuntu-latest
steps:
- name: 📥 Checkout
uses: actions/checkout@v3

- name: 📋 Install Dependencies
run: pip install -U cmakelang

- name: 🏗️ Format
run: ./format-project.sh

- name: 🔍 Check changes
run: |
if [[ $(git diff-index --name-only --exit-code HEAD) ]]; then
git diff
exit -1
fi
66 changes: 0 additions & 66 deletions .github/workflows/linux_cache.yml

This file was deleted.

Loading