Skip to content

kingpoem/BookCanvas

Repository files navigation

BookCanvas

Design, customize, and simulate irregular NoC topologies with a drag-and-drop interface!

Showcase

BookCanvas canvas page

Build

Windows

部分先决条件:

  • Qt = 6.7.0
  • cmake >= 3.23
  • msvc
  • windeployqt(注意对应 Qt 版本)
  • BookSim2 / booksim 可执行文件:由本仓库子模块 3rdpart/booksim2 在本地用 Makefile 编译,不再从网络下载预编译包。需要与 GNU Make 兼容的 make(Windows 上一般为 MSYS2 提供的 mingw32-make)、flexbison 以及 MinGW-w64 g++(与 MSYS2 UCRT64 工具链一致)。booksim 与主程序 BookCanvas 使用不同工具链是正常的:主程序用 MSVC,booksim 用子模块自带 Makefile + MinGW。

其他注意事项:

  • 不考虑使用 Qt Creator
  • 子模块版本固定,不需要更新

Qt 源码安装

  1. 使用Qt Online Installer for Windows安装Qt源码,无需代理,需要注册 Qt 账号
  2. 启动该安装程序时,为了解决后续安装网络问题,请从命令行启动该程序,并添加合适的镜像源,一个不行换另外一个
  • 可以选择的两个镜像源:
    • —mirror https://mirrors.tuna.tsinghua.edu.cn/qt/
    • —mirror https://mirror.nju.edu.cn/qt
  1. C盘底下新建Qt目录,再在该目录下新建qt6目录,后续如果安装失败,将清除整个安装目录(如果选择C:\Qt\qt6,则将清除qt6目录,保留Qt目录)
  2. 选择自定义安装,取消勾选Qt6.9(写本文档时如此进行)
  3. 自定义步骤中,在右上角显示中勾选Archive项,下面的Qt版本才会有6.7.0
  4. 如果你想更改自定义目录,可以更改顶层cmake文件:set(CMAKE_PREFIX_PATH C:/Qt/qt6/6.7.0/msvc2019_64 CACHE PATH "QT6 DIR" FORCE)

或者在命令行构建时指定 -DCMAKE_PREFIX_PATH=/to/your/path(具有最高优先级)

Tip

打包时使用工具 windeployqt 路径为 C:\Qt\qt6\6.7.0\msvc2019_64\bin\windeployqt.exe 如果你此前安装过 Anaconda3,注意甄别使用的是否是其中的 windeployqt 工具 打包命令 & "C:\Qt\qt6\6.7.0\msvc2019_64\bin\windeployqt.exe" --release .\BookCanvas.exe

Msvc 安装

  1. 使用Visual Studio Installer安装 Visual Studio
  2. 配置环境变量,在 Path 中添加 C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\<version>\bin\Hostx64\x64

版本号替换为自己的,视具体情况更改,在 powershell 中输入 cl 检验是否安装成功 3. 不使用-G "Ninja",目前 Ninja 构建有问题,请指定-G "Visual Studio 17 2022"

从源码构建

git clone --recurse-submodules --depth 1 --shallow-submodules [email protected]:kingpoem/BookCanvas.git
make clean
cmake -Bbuild -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel 4
cmake --build build --target booksim2 --config Release
& "C:\Qt\qt6\6.7.0\msvc2019_64\bin\windeployqt.exe" --release .\build\Release\BookCanvas.exe
.\build\Release\BookCanvas.exe

macOS

git clone --recurse-submodules [email protected]:kingpoem/BookCanvas.git
cmake -B build -DQT_SDK_DIR=$(brew --prefix qt)
cmake --build build --config Release --parallel 4

仅需安装到「应用程序」时,见下文 Install 中 macOS 一节执行 **sudo make install**(默认前缀 **/Applications**)。

Archlinux

git clone --recurse-submodules [email protected]:kingpoem/BookCanvas.git
cmake -Bbuild
cmake --build build --config Release --parallel 4

Install

GNU Make 相关的命令在仓库根目录执行;Windows 上一般在 Git Bash / MSYS2 等提供 make 的环境中使用。

说明:

  • **make install** 等价于对 **build/** 执行不带 --prefix**cmake --install**,文件会安装到配置工程时写入 CMakeCache.txt**CMAKE_INSTALL_PREFIX。未在 cmake -B 阶段指定该变量时,macOS 上本仓库默认为 **/Applications(生成 **BookCanvas.app**);其他 Unix 一般为 **/usr/local**;Windows 上为 CMake 默认路径(多为 **Program Files 下的应用程序目录**),具体以 build/CMakeCache.txt 为准。
  • 仓库下的 Install/ 不再由子模块或 Make 强行指定;仅当你在配置时手动传入例如 **-DCMAKE_INSTALL_PREFIX="$PWD/Install"**(路径请按本体与平台写绝对路径或你认可的相对解析结果)时,**make install** 才会把内容装进该目录。**make clean** 仍会删除本地的 **Install/** 目录,用于清理这类「固定落在源码树里」的安装前缀。
  • 单次覆盖安装路径(不改编译缓存中的 CMAKE_INSTALL_PREFIX)仍可使用:cmake --install build ... --prefix <path>(Windows 多配置需 **--config Release**),与 **make install** 行为不同,除非你明确传入与缓存一致的前缀。
  • **make uninstall** 根据 **build/install_manifest*.txt** 删除最近一次 **cmake --install / make install** 实际写入的文件;若需卸载,请先 make uninstallmake clean,否则会删掉清单,无法再按列表反安装。清单若指向系统目录,**make uninstallrm -rf 相应路径**,务必确认最近一次安装前缀。

Windows

上文 完成首次 **cmake -B** 时即可约定安装位置,例如装到系统区域(示例路径):

cmake -B build -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:/Program Files/BookCanvas"
cmake --build build --config Release --parallel 4
make install

若希望安装到仓库下 **Install/**,仅在配置阶段指定前缀(Git Bash 下示例):

cmake -B build -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX="$(pwd)/Install"
cmake --build build --config Release --parallel 4
make install

本次安装不改编译缓存、直接指定前缀:

cmake --install build --config Release --prefix "C:/自定义路径"

卸载(删除最近一次安装对应的文件):

make uninstall

macOS

未指定前缀时,顶层 **CMakeLists.txt** 会把 **CMAKE_INSTALL_PREFIX** 设为 **/Applications**,安装结果为 **/Applications/BookCanvas.app**。若 **build/** 很早以前已生成且缓存里仍是其他前缀,请删除 **build** 后重新 **cmake -B ...**,或在配置时显式传入 **-DCMAKE_INSTALL_PREFIX=/Applications**。因系统目录需写权限,一般使用:

cmake -B build -DQT_SDK_DIR=$(brew --prefix qt)
cmake --build build --config Release --parallel 4
sudo make install

若希望安装到仓库下 **Install/** 或其他路径,在配置阶段显式指定 **CMAKE_INSTALL_PREFIX**

cmake -B build -DQT_SDK_DIR=$(brew --prefix qt) -DCMAKE_INSTALL_PREFIX="$PWD/Install"
cmake --build build --config Release --parallel 4
make install

仍可通过 **cmake --install** 单次覆盖前缀(示例,按需加 **sudo**):

sudo cmake --install build --prefix /Applications

卸载:

sudo make uninstall

Archlinux

配置时指定(或省略前缀以使用 CMake 默认,一般为 **/usr/local**):

cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build build --config Release --parallel "$(nproc)"
make install

安装到仓库下 **Install/**

cmake -B build -DCMAKE_INSTALL_PREFIX="$PWD/Install"
cmake --build build --config Release --parallel "$(nproc)"
make install

单次覆盖前缀:

sudo cmake --install build --prefix /usr/local

卸载:

make uninstall

About

Design, customize, and simulate irregular NoC topologies with a drag-and-drop interface!

Resources

License

Stars

Watchers

Forks

Packages