Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
b11c3b3
refactor: upgrade to Qt6 and resolve breaking changes
samuelshng May 10, 2024
321633a
refactor: replace Zipper dependency with miniz which simplifies libra…
samuelshng May 11, 2024
e0a0341
build: update CMake for Windows deployment
samuelshng May 12, 2024
f8d3a53
Squashed commit of the following:
samuelshng May 16, 2024
49955b8
ci: only build windows binaries on main or dev branches
samuelshng May 16, 2024
e8630c9
docs: add latest build instructions
samuelshng May 16, 2024
a938a44
refactor: resolve a few Qt6 deprecation warnings
samuelshng May 17, 2024
18f7e41
feat: update plugins
samuelshng May 17, 2024
84d34d1
refactor: change QCheckBox::stateChanged to QCheckBox::checkStateChan…
samuelshng May 14, 2025
0ed6e67
ci: change GitHub Action dependencies to qt6
samuelshng May 16, 2025
41a3849
fix: CMake macro `qt_standard_project_setup()` is only supported for …
samuelshng May 16, 2025
ca7dc09
fix: renaming `QCheckBox::stateChanged` to `QCheckBox::checkStateChan…
samuelshng May 16, 2025
b745eb6
fix: hidpi mode was removed from settings.cc but not from visual.xml …
samuelshng May 16, 2025
6a857d9
docs: fix 22.04 and 24.04 apt dependency typo
samuelshng May 16, 2025
d31f146
ci: update ubuntu GitHub Action with correct Qt6 dependencies and exp…
samuelshng May 16, 2025
8197b3c
fix(ci): remove g++ from macOS GitHub Action because it doesn't play …
samuelshng May 16, 2025
5c6742a
ci: upgrade install-boost action in build-windows action
samuelshng Jul 26, 2025
9770a35
style: add line ending for source & header files
samuelshng Jul 29, 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
96 changes: 96 additions & 0 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Build and Package on Windows

on:
push:
branches: ["master"]
paths:
- "**/*.py"
- '**/*.h'
- '**/*.cc'
- '**/*.cmake'
- '**/CMakeLists.txt'
- 'libs/**'
- '.github/workflows/macos.yml'
pull_request:
branches: ["master"]
paths:
- "**/*.py"
- '**/*.h'
- '**/*.cc'
- '**/*.cmake'
- '**/CMakeLists.txt'
- 'libs/**'
- '.github/workflows/macos.yml'

workflow_dispatch:

jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Set up MSVC
uses: ilammy/msvc-dev-cmd@v1
with:
toolset: "14.29"

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip' # caching pip dependencies

- name: Install CMake
uses: lukka/[email protected]

# Go to this website if the Qt version config needs to be updated:
# https://ddalcino.github.io/aqt-list-server/
- name: Install Qt
uses: jurplel/install-qt-action@v3
id: install-qt
with:
aqtversion: '==3.1.*'
version: '6.7.0'
host: 'windows'
target: 'desktop'
arch: 'win64_msvc2019_64'
modules: 'qtcharts'

- name: Install boost
uses: MarkusJx/[email protected]
id: install-boost
with:
boost_version: 1.84.0
platform_version: 2019
toolset: msvc
if: runner.os == 'Windows'

- name: Create build directory
run: mkdir build

- name: Configure
working-directory: ./build
run: cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DBOOST_INCLUDE_DIR="${{steps.install-boost.outputs.BOOST_ROOT}}/include"
env:
BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}

- name: Build
working-directory: ./build
run: ninja -f build.ninja

- name: Install
working-directory: ./build
run: ninja -f build.ninja install

- name: Archive Artifacts
uses: actions/upload-artifact@v4
with:
name: siqad-package
# if using matrix build in the future
# name: siqad-package-${{ matrix.runs-on }}
path: ${{ github.workspace }}/install/**
retention-days: 5 # Optional: adjust as necessary

25 changes: 5 additions & 20 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,23 +36,8 @@ jobs:
strategy:
matrix:
os: [ macos-13, macos-14, macos-15 ]
compiler: [ g++-13, g++-14, clang++ ]
include:
- compiler: clang++
ccompiler: clang
- compiler: g++-13
ccompiler: gcc-13
- compiler: g++-14
ccompiler: gcc-14
exclude:
- os: macos-14
compiler: g++-13
- os: macos-14
compiler: g++-14
- os: macos-15
compiler: g++-13
- os: macos-15
compiler: g++-14
compiler: [ clang++ ]
ccompiler: [ clang ]

name: 🍎 ${{matrix.os}} with ${{matrix.compiler}}
runs-on: ${{matrix.os}}
Expand All @@ -71,9 +56,9 @@ jobs:
- name: Install Homebrew Dependencies
run: |
brew update
brew install boost qt@5
# Ensure Qt5 is available in PATH
echo "/opt/homebrew/opt/qt@5/bin" >> $GITHUB_PATH
brew install boost qt@6
# Ensure Qt6 is available in PATH
echo "/opt/homebrew/opt/qt@6/bin" >> $GITHUB_PATH

- if: matrix.os == 'macos-13'
name: Setup XCode version
Expand Down
42 changes: 28 additions & 14 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,25 +66,39 @@ jobs:
runs-on: ${{matrix.os}}

steps:
- name: Install libraries, compiler, and Qt5
- name: Install libraries, compiler, and Qt6
run: |
sudo apt-get update
sudo apt-get install -yq \
libboost-all-dev \
cmake \
pkg-config \
python3-dev \
python3-pip \
python3-tk \
python3-venv \
make \
gcc \
g++ \
libgl1-mesa-dev \
libboost-dev \
libboost-filesystem-dev \
libboost-system-dev \
libboost-thread-dev \
libboost-random-dev \
libtbb-dev \
${{matrix.compiler}} \
qtbase5-dev \
qtdeclarative5-dev \
libqt5svg5-dev \
libqt5charts5-dev \
qttools5-dev \
qt5-qmake \
qtbase5-dev-tools
${{matrix.compiler}}
if [ "${{matrix.os}}" = "ubuntu-22.04" ]; then
sudo apt-get install -yq \
qt6-base-dev qt6-tools-dev libqt6charts6-dev libqt6uitools6 libqt6svg6-dev libxkbcommon-dev
elif [ "${{matrix.os}}" = "ubuntu-24.04" ] || [ "${{matrix.os}}" = "ubuntu-24.04-arm" ]; then
sudo apt-get install -yq \
qt6-base-dev qt6-tools-dev qt6-svg-dev qt6-charts-dev libqt6charts6 libqt6uitools6 libqt6svg6
fi

- name: Verify Qt5UiTools Installation
run: |
dpkg -l | grep qttools5-dev || echo "qttools5-dev not installed"
ls /usr/lib/$(uname -m)-linux-gnu/cmake/Qt5UiTools/Qt5UiToolsConfig.cmake || echo "Qt5UiToolsConfig.cmake not found"
# - name: Verify Qt5UiTools Installation
# run: |
# dpkg -l | grep qttools5-dev || echo "qttools5-dev not installed"
# ls /usr/lib/$(uname -m)-linux-gnu/cmake/Qt5UiTools/Qt5UiToolsConfig.cmake || echo "Qt5UiToolsConfig.cmake not found"

- name: Clone Repository
uses: actions/checkout@v4
Expand Down
12 changes: 11 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,17 @@ db-sim
# macOS
.DS_Store

# Logs and databases
# compiled source
*.o
*.pyc
qrc_application.cpp
/w64-build*/**
/build*/**
/install*/**
win32
win64

# logs and databases
src/log/
Makefile

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ set(SIQAD_INSTALL_ROOT "${CMAKE_INSTALL_PREFIX}" CACHE STRING "SiQAD install roo
message(STATUS "SIQAD_INSTALL_ROOT is ${SIQAD_INSTALL_ROOT}")

# Directories for plugins and libs
set(SIQAD_PLUGINS_ROOT "${SIQAD_INSTALL_ROOT}/plugins" CACHE STRING "SiQAD plugins root directory name")
set(SIQAD_PLUGINS_ROOT "${SIQAD_INSTALL_ROOT}/sqplugins" CACHE STRING "SiQAD plugins root directory name")
set(SIQAD_LIBS_ROOT "${SIQAD_INSTALL_ROOT}/libs" CACHE STRING "SiQAD libraries root directory name")
set(SIQADCONN_ROOT "${SIQAD_LIBS_ROOT}/siqadtools" CACHE STRING "SiQADConnector root directory name")
set(SQCONN_REL_SQBIN "libs/siqadtools" CACHE STRING "SiQADConnector root directory relative to SiQAD binary directory")
Expand Down
55 changes: 43 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,60 @@ SiQAD (Silicon Quantum Atomic Designer) is a next-generation CAD tool that enabl
* Please read the [SiQAD publication on IEEE Transactions on Nanotechnology](https://ieeexplore.ieee.org/document/8963859) (open access) for a detailed introduction to the tool and simulators.
* The [Walus Lab website](https://waluslab.ece.ubc.ca/siqad/) contains information about us and other projects that we work on.

We are transitioning most of the information present in the rest of this README onto the documentation webpage. However, the information is still largely relevant at this time.

[![Documentation Status](https://readthedocs.org/projects/siqad/badge/?version=latest)](https://siqad.readthedocs.io/en/latest/?badge=latest)


## Binary releases

Binary builds for Windows are available in the [Releases](https://github.com/retallickj/siqad/releases) page. Note that one of the first-party simulators, PoisSolver, is not available on Windows builds due to incompatibility of its dependencies. For more information, please refer to the [Windows installation](https://siqad.readthedocs.io/en/latest/getting-started/installation.html#windows) section in our official documentation.

For Linux, a Ubuntu PPA is available:
For Linux, our PPA is out of date. For now please compile from source.
Copy link

Copilot AI May 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Ensure that the Linux installation instructions are updated to clearly reflect the need for compiling from source with Qt6 support and revise related documentation links if needed.

Copilot uses AI. Check for mistakes.


## Building from source

### Ubuntu

1. Install build dependencies:

```
# 22.04 LTS
sudo apt install cmake pkg-config python3-pip python3-tk python3-venv make gcc g++ qt6-base-dev qt6-tools-dev libqt6charts6-dev libqt6uitools6 libqt6svg6-dev libboost-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libboost-random-dev libxkbcommon-dev

# 24.04 LTS
sudo apt install cmake pkg-config python3-pip python3-tk python3-venv make gcc g++ qt6-base-dev qt6-tools-dev qt6-svg-dev qt6-charts-dev libqt6charts6 libqt6uitools6 libqt6svg6 libboost-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libboost-random-dev
```

2. Run the build script from project root

```
sudo add-apt-repository ppa:siqad/ppa
sudo apt-get update
sudo apt-get install siqad
./make_everything_dev release
```
You may then invoke SiQAD through the command line: `siqad`. Users of other Linux distributions would have to build from source.

For now, macOS binaries are not distributed and requires compilation from source.
Or substitute `release` with `debug` if so desired.

3. Run the compiled binary

```
./build/release/siqad
```

Substitute `release` with `debug` if you used the `debug` flag in the previous step.


Note that PoisSolver currently might not work with Ubuntu 22.04 and 24.04.


### macOS

Once you have installed Xcode and other required dependencies, steps 2 and 3 from the Ubuntu compilation section should work for you. An easy way to get the required packages is through [Homebrew](https://brew.sh/). The following packages are needed:

* CMake
* Boost
* Qt6


## Building from source on Linux
### Windows

The compilation documentation has been moved to the [Installation guide](https://siqad.readthedocs.io/en/latest/getting-started/installation.html#linux) on our official documentation.
You can refer to our [Windows binary build workflow](/.github/workflows/build-windows.yml) to get a sense of the required packages and build workflow.


## Licensing
Expand Down
2 changes: 1 addition & 1 deletion libs/siqadconn
Loading
Loading