Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
5db5ed8
[ComputeContext] Add isOpenCLAvailable method to check OpenCL availab…
3dJan Jul 9, 2025
8c38899
[build.yml] Add unit test execution step for Linux in CI workflow
3dJan Jul 9, 2025
3b30a91
[version.h, CMakeLists.txt, vcpkg.json] Bump version to 1.2.13
3dJan Jul 9, 2025
1d97ea8
Merge branch 'main' into 3dJan/runtestsongithub
3dJan Jul 9, 2025
5e0c0c4
Merge pull request #13 from 3MFConsortium/3dJan/runtestsongithub
3dJan Jul 9, 2025
13496a5
[build.yml] Add caching for vcpkg binaries and CMake build to improve…
3dJan Jul 9, 2025
2d3a7fa
[build.yml] Add BuildCache installation and caching for Windows and L…
3dJan Jul 9, 2025
a3469f1
Merge branch 'main' into 3dJan/caching
3dJan Jul 9, 2025
d8a2bb6
Merge pull request #15 from 3MFConsortium/3dJan/caching
3dJan Jul 9, 2025
ceadc8d
Initial plan
Copilot Jul 9, 2025
63b518b
Fix CI workflow syntax and cache configuration
Copilot Jul 9, 2025
12bbc41
Remove build_test directory and add to .gitignore
Copilot Jul 9, 2025
2181984
Clean up build artifacts and final workflow improvements
Copilot Jul 9, 2025
7a6fa52
Final CI improvements: robust BuildCache stats and comprehensive test…
Copilot Jul 9, 2025
95ca03c
Update BuildCache URLs to v0.31.4 and remove integration tests from CI
Copilot Jul 9, 2025
6d73627
Fix vcpkg cache configuration and initialization
Copilot Jul 9, 2025
80e3ec8
Improve vcpkg cache configuration with explicit binary caching and pa…
Copilot Jul 9, 2025
c0e9738
[build.yml] Remove redundant vcpkg environment variable setup and str…
3dJan Jul 9, 2025
426f457
[build.yml] Set vcpkg binary cache path and update environment variab…
3dJan Jul 9, 2025
73136bc
[build.yml] Set VCPKG overlay triplet and target triplet for Windows …
3dJan Jul 9, 2025
0bdbf87
[build.yml] Remove redundant vcpkg caching steps and streamline confi…
3dJan Jul 9, 2025
fa5b057
[build.yml] Restoring old version without caching
3dJan Jul 9, 2025
fb7e057
Merge pull request #17 from 3MFConsortium/copilot/fix-16
3dJan Jul 9, 2025
f9b2c0a
[release_notes.md] Update release notes for version 1.2.13, adding ne…
3dJan Jul 10, 2025
99fe1af
Merge pull request #18 from 3MFConsortium:3dJan/release_notes
3dJan Jul 10, 2025
50ea9f6
Initial plan
Copilot Jul 10, 2025
fd918f5
Add CodeQL workflow with manual build steps
Copilot Jul 10, 2025
b24243a
Refine CodeQL workflow: remove Linux custom triplet and disable OpenC…
Copilot Jul 10, 2025
a45bff9
Final CodeQL workflow refinements: adjust timeout and remove explicit…
Copilot Jul 10, 2025
c0b999a
Merge pull request #20 from 3MFConsortium/copilot/fix-19
3dJan Jul 10, 2025
bb641dd
Initial plan
Copilot Jul 11, 2025
d24acb0
Add CodeQL configuration to exclude vcpkg directories from security s…
Copilot Jul 11, 2025
4414cdf
Clean up CodeQL configuration formatting and finalize implementation
Copilot Jul 11, 2025
68246b9
Merge pull request #22 from 3MFConsortium/copilot/fix-21
3dJan Jul 11, 2025
5417f21
Update codeql-config.yml
3dJan Jul 11, 2025
f8c1ded
Update codeql-config.yml
3dJan Jul 11, 2025
1fa1724
Update .gitignore
3dJan Jul 11, 2025
b7f24bf
Potential fix for code scanning alert no. 90: Multiplication result c…
3dJan Jul 11, 2025
efdbb21
Merge pull request #23 from 3MFConsortium/3dJan/fixformultiplicationt…
3dJan Jul 12, 2025
c8343cd
Update codeql-config.yml
3dJan Jul 12, 2025
bd36c0d
Initial plan
Copilot Jul 17, 2025
1a2edbc
Initial investigation of C++20 compatibility issues
Copilot Jul 17, 2025
a64327b
Fix C++20 aggregate initialization issues with double-brace syntax
Copilot Jul 17, 2025
488f1de
Remove vcpkg_installed files from PR as requested
Copilot Jul 19, 2025
841f359
Merge pull request #25 from 3MFConsortium/copilot/fix-24
3dJan Jul 19, 2025
889923f
Merge branch 'main' into develop
3dJan Sep 25, 2025
ecbf184
[CMakeLists.txt] Improve RPATH handling for installed and build-tree …
3dJan Sep 25, 2025
e9991cb
Merge pull request #36 from 3MFConsortium/3dJan/FixLinuxCIBuild
3dJan Sep 25, 2025
207d936
Merge pull request #35 from 3MFConsortium/develop
3dJan Sep 25, 2025
019676e
[CMakeLists.txt] Add icon installation and desktop integration for Li…
3dJan Sep 27, 2025
620c4b1
[.gitignore] Add entries for Linux DEB package files and related reso…
3dJan Sep 27, 2025
1d116b8
[gladius.desktop.in] Change Terminal setting to false for desktop entry
3dJan Sep 27, 2025
7e73a65
[CMakeLists.txt] Ensure install target depends on built artifacts and…
3dJan Sep 27, 2025
6995fc7
[.gitignore] Update entries to ignore all DEB package files and relat…
3dJan Sep 27, 2025
13a3e5d
[GLView] Implement tri-state fullscreen mode and update window mode c…
3dJan Sep 27, 2025
aacda31
[FunctionExtractor] Implement function extraction utility to create n…
3dJan Sep 28, 2025
8aa8360
Add extraction name editing state and unit test for custom names in F…
3dJan Sep 28, 2025
f496aef
[reviewer.chatmode.md] Add reviewer chat mode with guidelines for cod…
3dJan Sep 28, 2025
968870e
[reviewer.chatmode.md] Update reviewer chat mode instructions to incl…
3dJan Sep 28, 2025
c20dd99
[ModelEditor] Implement navigation history for function switching and…
3dJan Sep 28, 2025
8ec71aa
[CLProgram] Enable caching by default and add signature generation me…
3dJan Sep 29, 2025
f5ff640
[CLProgram] Add experimental two-level pipeline support and update ca…
3dJan Sep 29, 2025
6738bbb
Resoring outline
3dJan Sep 29, 2025
ab0af66
[GLView] Refactor fullscreen mode handling and remove legacy boolean …
3dJan Oct 1, 2025
73c179e
[DerivedNodes.h] Update output type mappings to use 'Result' instead …
3dJan Oct 2, 2025
a801d09
Merge branch '3dJan/correctingComposeMatrix' of github.com:3dJan/glad…
3dJan Oct 2, 2025
de505b0
[GLView] Add isSpanModeAvailable method to check multi-monitor span c…
3dJan Oct 3, 2025
8b0b4f1
[ModelEditor] Restore node creation functionality and reintroduce con…
3dJan Oct 3, 2025
99c4075
[ModelEditor] Implement link creation and deletion functionality in t…
3dJan Oct 3, 2025
f921632
[OutputPortReferenceAnalyzer] Implement output port reference analysi…
3dJan Oct 3, 2025
445d1d3
[Model] Add getOutputOrder method to retrieve topologically sorted no…
3dJan Oct 3, 2025
759d04f
[Importer3mf] Rename "Matrix" output to "Result" for ComposeMatrix an…
3dJan Oct 3, 2025
823a816
[Importer3mf] Update legacy reference handling for output ports; repl…
3dJan Oct 3, 2025
3ae0feb
[ToOCLVisitor] Refactor formatting and inline expression handling for…
3dJan Oct 3, 2025
5042865
[Model] Optimize input registration logic to remove existing paramete…
3dJan Oct 3, 2025
7c05b87
[CMakeLists.txt] Update file globbing to use CONFIGURE_DEPENDS for te…
3dJan Oct 3, 2025
a4241c3
[Tests] Add new 3MF test files for integration tests
3dJan Oct 3, 2025
5e196cd
[FileNames] Update Implicit3mf path to point to RadialRadiator.3mf
3dJan Oct 3, 2025
0b13409
[OutputPortReferenceAnalyzer_tests] Add unit tests for OutputPortRefe…
3dJan Oct 3, 2025
aa82593
[ModelEditor] Add beam lattice resource toolbox for streamlined signe…
3dJan Oct 6, 2025
d71f988
[NodesFwd.h] Rename BeamLattice constant to BeamLatticeId for clarity
3dJan Oct 6, 2025
2619b10
[Document] Add method to create and add a fixed 400x400x400 box mesh
3dJan Oct 6, 2025
2eb5b15
[Document] Refactor box mesh creation to allow custom dimensions and …
3dJan Oct 6, 2025
a51d7e7
[Document] Add method to import STL files as beam lattice and impleme…
3dJan Oct 6, 2025
4f9a52f
[BeamLatticeResource] Refactor acceleration structure handling to use…
3dJan Oct 6, 2025
e79888a
[FunctionGradient Node] Plan to Implement FunctionGradient node to co…
3dJan Oct 8, 2025
ff2d65f
Add FunctionGradient Node Implementation
3dJan Oct 8, 2025
fba7c71
[FunctionGradient_tests] Add unit tests for FunctionGradient node fun…
3dJan Oct 10, 2025
63655bf
[lib3mf/portfile.cmake] Point vcpkg_from_github to 3DJan/lib3mf (REF …
3dJan Oct 14, 2025
6762607
[NodeView] Use popup-based selectors for FunctionGradient and add ste…
3dJan Oct 14, 2025
ff55fc9
[FunctionGradient] Add robust OCL fallback, skip 3MF serialization an…
3dJan Oct 15, 2025
2763717
[LowerFunctionGradient] Add lowering pass: synthesize gradient models…
3dJan Oct 15, 2025
21b7712
[Writer3mf] Add no-op visit(nodes::NodeBase&) to FunctionGradient det…
3dJan Oct 15, 2025
bb6b5fc
[LowerFunctionGradient] Fix length mask wiring: link epsilon to A, le…
3dJan Oct 15, 2025
ba3a7af
[NodeView] Add FunctionCall controls and gradient-lowering UI: allow …
3dJan Oct 15, 2025
9f89d6f
[FunctionGradient] Auto-select inputs and attach step-size constant i…
3dJan Oct 15, 2025
205d862
[ToOclVisitor] Remove inlined-expression debug comments from generate…
3dJan Oct 15, 2025
b89a4f4
[LowerFunctionGradient_tests] Add unit tests for LowerFunctionGradien…
3dJan Oct 15, 2025
19017bc
[FunctionGradient] Add raw gradient and magnitude outputs and wire th…
3dJan Oct 16, 2025
2f0a0ba
[TheGreatPlan] Add design docs for 3MF volumetric, FunctionGradient e…
3dJan Oct 16, 2025
cd89418
[FunctionGradient_tests] Add tests and update expectations for gradie…
3dJan Oct 16, 2025
d2aec97
[NormalizeDistanceField] Add NormalizeDistanceField node, lowering, U…
3dJan Oct 17, 2025
5e22b3e
[NormalizeDistanceField] Add support across importer, writer, lowerin…
3dJan Oct 17, 2025
ac297b0
[lib3mf/portfile.cmake] Update vcpkg_from_github SHA512 for 3djan/vol…
3dJan Oct 20, 2025
d0a4f49
[GLView.cpp] Remove debug prints from determineUiScale
3dJan Oct 20, 2025
7e69b8f
[Version] Bump project version to 1.2.15
3dJan Oct 20, 2025
5977c59
[lib3mf/portfile.cmake] Point vcpkg_from_github to 3MFConsortium/lib3mf
3dJan Oct 22, 2025
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
20 changes: 20 additions & 0 deletions .github/chatmodes/reviewer.chatmode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
description: 'Reviews code, documents, or other materials, providing feedback and suggestions for improvement.'
tools: ['edit', 'runNotebooks', 'search', 'new', 'runCommands', 'runTasks', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'extensions', 'todos', 'runTests', 'serena']
---

Start with using git log and git diff to understand the last 10 commits. Then create yourself a plan how to proceed.

Your task is to ensure that the code is high-quality, efficient, and maintainable.
Check for adherence to coding standards, best practices, and overall functionality. If a spec is provided, ensure the code meets the requirements outlined in it.
Check for
- Is the code reusable and modular?
- Can the code be optimized for better performance?
- Are there any security vulnerabilities?
- Can the code be simplified for better readability?
- Does the code follow the project's coding standards and conventions?
- Does the code follow KISS (Keep It Simple, Stupid) and DRY (Don't Repeat Yourself) principles?
- Are there any potential bugs or edge cases that have not been handled?
- Is the code well-documented and easy to understand?
- Is the code covered by tests? If not, suggest appropriate tests to add.

43 changes: 43 additions & 0 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: "CodeQL Configuration"

# Exclude vcpkg directories and third-party libraries from CodeQL scanning
paths-ignore:
# vcpkg installation directories
- "vcpkg_installed/**"
- "**/vcpkg_installed/**"

- "vcpkg/**"
- "**/vcpkg/**"

# Ignore vcpkg buildtrees directory
- "vcpkg/buildtrees/**"
- "**/vcpkg/buildtrees/**"

# Common build artifact directories that may contain vcpkg dependencies
- "build/**"
- "**/build/**"
- "out/**"
- "**/out/**"

# vcpkg tool directory (if cloned locally)
- "vcpkg/**"
- "**/vcpkg/**"

# CMake build directories that might contain FetchContent or vcpkg deps
- "_deps/**"
- "**/_deps/**"

# Other common build artifact directories
- ".vs/**"
- "**/CMakeFiles/**"
- "**/.cmake/**"

# Include only our project source directories
paths:
- "gladius/src/**"
- "gladius/library/**"
- "gladius/components/**"
- "gladius/examples/**"
- "gladius/tests/**"
- "gladius/cmake/**"
- "scripts/**"
1 change: 0 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ jobs:
- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}

- name: Test
# Run only unit tests, excluding integration tests
working-directory: ${{ steps.strings.outputs.build-output-dir }}
Expand Down
86 changes: 86 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: "CodeQL"

on:
push:
branches: [ "main", "develop" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '42 5 * * 1' # Weekly on Mondays

jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
timeout-minutes: 120
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
- language: c-cpp
build-mode: manual

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

- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev build-essential libglfw3-dev ninja-build

- name: Setup vcpkg environment
shell: bash
run: |
echo "CMAKE_GENERATOR=Ninja" >> $GITHUB_ENV

- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: 'f2bf7d935af722c0cd8219c1f6e30d5ae3d666f2'
vcpkgJsonGlob: '${{ github.workspace }}/gladius/vcpkg.json'
env:
VCPKG_OVERLAY_PORTS: '${{ github.workspace }}/gladius/vcpkg-overlay-ports'

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: .github/codeql/codeql-config.yml

- name: Set reusable strings
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"

- name: Configure CMake
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_CXX_COMPILER=clang++
-DCMAKE_C_COMPILER=clang
-DCMAKE_BUILD_TYPE=Release
-DENABLE_OPENCL_TESTS=OFF
-G Ninja
-S ${{ github.workspace }}/gladius
env:
VCPKG_OVERLAY_PORTS: '${{ github.workspace }}/gladius/vcpkg-overlay-ports'

- name: Build
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config Release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,8 @@ build/
gladius/vcpkg_installed/*
gladius/.serena/cache/
gladius/compile_commands.json
build/build_test/
vcpkg/buildtrees/
**/vcpkg_installed/
_CPack_Packages/*
*.deb
73 changes: 55 additions & 18 deletions gladius/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ option(ENABLE_OPENCL_TESTS "Enable tests that require OpenCL" ON)

set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "2")
set(CPACK_PACKAGE_VERSION_PATCH "14")
set(CPACK_PACKAGE_VERSION_PATCH "15")

# Set the version of the package in src/version.h
configure_file(
Expand All @@ -37,6 +37,8 @@ if(buildcache_program)
else()
message("buildcache not found")
endif()
else()
message("Not using build cache. You can enable it by setting USE_CACHE=ON")
endif() # USE_CACHE
message("CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
message("VCPKG_ROOT=${VCPKG_ROOT}")
Expand Down Expand Up @@ -84,6 +86,10 @@ project(gladius)
# Include coverage support after project declaration so compiler info is available
include(cmake/Coverage.cmake)

# Ensure the 'install' target depends on building all targets first
# (so CPack does not try to install artifacts that were not built yet).
set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY OFF)

if (MSVC)
add_compile_options(/bigobj /utf-8 /Zc:__cplusplus)

Expand Down Expand Up @@ -124,11 +130,15 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)

# Ensure installed binaries look for co-located shared libraries first
if(UNIX)
# Use $ORIGIN so binaries in /opt/gladius/<version> can find bundled .so
# Install tree: Use $ORIGIN so installed binaries in /opt/gladius/<version> resolve
# bundled shared objects (e.g. our patched lib3mf) placed alongside them.
set(CMAKE_INSTALL_RPATH "$ORIGIN")
# Build artifacts will already carry the final install RPATH, avoiding RPATH rewrite during install
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
set(CMAKE_SKIP_BUILD_RPATH OFF)
# Build tree: DO NOT force build RPATH to install RPATH. Tests run from the
# build tree (e.g. build/tests/unittests) and previously failed to locate
# lib3mf.so.2 when we set CMAKE_BUILD_WITH_INSTALL_RPATH ON (RPATH became
# just $ORIGIN which points to the test directory that does not contain lib3mf).
set(CMAKE_BUILD_WITH_INSTALL_RPATH OFF)
set(CMAKE_SKIP_BUILD_RPATH OFF)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON)
endif()

Expand Down Expand Up @@ -212,10 +222,17 @@ if(UNIX)
if(_lib3mf_resolved)
get_filename_component(_lib3mf_dir "${_lib3mf_resolved}" DIRECTORY)
if(EXISTS "${_lib3mf_dir}")
# Bundle all versioned variants (lib3mf.so, lib3mf.so.2, etc.) into install prefix.
file(GLOB _lib3mf_so_files "${_lib3mf_dir}/lib3mf.so*")
if(_lib3mf_so_files)
install(FILES ${_lib3mf_so_files} DESTINATION ${INSTALL_PREFIX})
endif()
# Ensure build-tree executables (tests, tools) can locate lib3mf at runtime
# by appending its directory to the build RPATH. This fixes CI failures like:
# error while loading shared libraries: lib3mf.so.2: cannot open shared object file
list(APPEND CMAKE_BUILD_RPATH "${_lib3mf_dir}")
list(REMOVE_DUPLICATES CMAKE_BUILD_RPATH)
set(CMAKE_BUILD_RPATH "${CMAKE_BUILD_RPATH}" CACHE STRING "RPATH for build tree executables" FORCE)
endif()
endif()
endif()
Expand Down Expand Up @@ -274,8 +291,24 @@ install(DIRECTORY components/licenses DESTINATION ${INSTALL_PREFIX}/doc/licenses
# Install imgui.ini
install(FILES src/imgui.ini DESTINATION ${INSTALL_PREFIX})

# Install icon
install(FILES ${CMAKE_SOURCE_DIR}/documentation/img/gladius.ico DESTINATION ${INSTALL_PREFIX}/share/pixmaps/)
# Icon installation and desktop integration assets (no build-time conversion)
if(UNIX)
set(GLADIUS_ICON_NAME gladius)
# Install pre-generated PNG icon to hicolor so Icon=gladius works via theme
install(FILES ${CMAKE_SOURCE_DIR}/documentation/img/gladius.png DESTINATION /usr/share/icons/hicolor/256x256/apps/ RENAME ${GLADIUS_ICON_NAME}.png)
set(GLADIUS_ICON ${GLADIUS_ICON_NAME})
endif()

# Linux desktop integration (GNOME/KDE): install .desktop file and icon into system directories
if(UNIX)
# Generate desktop launcher file
set(GLADIUS_DESKTOP_FILE "${PROJECT_BINARY_DIR}/gladius.desktop")
# Paths used inside the desktop file
set(GLADIUS_EXEC "/usr/bin/gladius")
configure_file(${CMAKE_SOURCE_DIR}/cmake/desktop/gladius.desktop.in ${GLADIUS_DESKTOP_FILE} @ONLY)
# Install desktop entry for all users
install(FILES ${GLADIUS_DESKTOP_FILE} DESTINATION /usr/share/applications)
endif()

# Install documentation - not yet available
# install(DIRECTORY ${CMAKE_SOURCE_DIR}/documentation/ DESTINATION ${INSTALL_PREFIX}/share/doc/)
Expand Down Expand Up @@ -316,15 +349,15 @@ if(UNIX)
file(WRITE "${GLADIUS_LAUNCHER}" "#!/bin/sh\n"
"# Added by CMake: ensure Gladius' private libs (e.g., custom lib3mf) are found first.\n"
"GLADIUS_DIR=\"${INSTALL_PREFIX}\"\n"
"if [ -z \"\\$LD_LIBRARY_PATH\" ]; then\n"
" export LD_LIBRARY_PATH=\\"\\$GLADIUS_DIR\\"\n"
"if [ -z \"\$LD_LIBRARY_PATH\" ]; then\n"
" export LD_LIBRARY_PATH=\"\$GLADIUS_DIR\"\n"
"else\n"
" case :\\$LD_LIBRARY_PATH: in\n"
" *:\\$GLADIUS_DIR:*) ;;\n"
" *) export LD_LIBRARY_PATH=\\"\\$GLADIUS_DIR:\\$LD_LIBRARY_PATH\\" ;;\n"
" case :\$LD_LIBRARY_PATH: in\n"
" *:\$GLADIUS_DIR:*) ;;\n"
" *) export LD_LIBRARY_PATH=\"\$GLADIUS_DIR:\$LD_LIBRARY_PATH\" ;;\n"
" esac\n"
"fi\n"
"exec \"\\$GLADIUS_DIR/gladius\" \"$@\"\n")
"exec \"\$GLADIUS_DIR/gladius\" \"$@\"\n")
install(PROGRAMS "${GLADIUS_LAUNCHER}" DESTINATION ${SYMLINK_BIN_DIR} RENAME gladius)
endif()

Expand Down Expand Up @@ -358,8 +391,12 @@ if (UNIX)
endif()

include(CPack)
add_custom_target( Generate_Installer
COMMAND "${CMAKE_CPACK_COMMAND}"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS gladius gladiuslib
COMMENT "Running CPack. Please wait...")

# Convenience target to generate installer and ensure required binaries are built first
add_custom_target(Generate_Installer
COMMAND "${CMAKE_CPACK_COMMAND}"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
# Make sure both desktop app variants are built before packaging
DEPENDS gladius gladiusmcp gladius_lib
COMMENT "Running CPack. Please wait...")

2 changes: 1 addition & 1 deletion gladius/CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"hidden": true,
"generator": "Ninja",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "$env{CML}/gladius/gladius-1.2.14",
"installDir": "$env{CML}/gladius/gladius-1.2.15",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
Expand Down
15 changes: 15 additions & 0 deletions gladius/cmake/desktop/gladius.desktop.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[Desktop Entry]
Version=@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@
Type=Application
Name=Gladius
GenericName=3MF Volumetric/Implicit Tool
Comment=Work with 3MF Volumetric and Implicit extensions
TryExec=@GLADIUS_EXEC@
Exec=@GLADIUS_EXEC@ %F
Icon=@GLADIUS_ICON@
Terminal=false
Categories=Graphics;3DGraphics;Engineering;
Keywords=3MF;3D;Printing;Volumetric;Implicit;Gladius;
StartupNotify=true
# Uncomment when MIME is registered; left here for future integration
# MimeType=application/3mf;
Binary file added gladius/documentation/img/gladius.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions gladius/src/BeamLatticeResource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ namespace gladius
std::vector<BeamData> && beams,
std::vector<BallData> && balls,
BeamLatticeBallConfig ballConfig,
bool useVoxelAcceleration)
BeamLatticeAcceleration acceleration)
: ResourceBase(std::move(key))
, m_beams(std::move(beams))
, m_balls(std::move(balls))
, m_ballConfig(ballConfig)
, m_useVoxelAcceleration(useVoxelAcceleration)
, m_acceleration(acceleration)
{
// Validate ball configuration per 3MF specification
if (!m_ballConfig.isValid())
Expand Down Expand Up @@ -55,7 +55,7 @@ namespace gladius

void BeamLatticeResource::buildAccelerationStructure()
{
if (m_useVoxelAcceleration)
if (m_acceleration == BeamLatticeAcceleration::Voxel)
{
buildVoxelAcceleration();
}
Expand Down
Loading
Loading