ビルド方法#
UWSCR#
ソースからuwscr.exeをビルドする方法
Rust開発環境の準備#
Windows 10 x64環境での手順
Visual C++ Build Tools のインストール#
Visual Studio 2019のツール からBuild Tools for Visual Studio 2019のインストーラをダウンロード
インストーラからVisual C++ Build Toolsのインストールを行う
Rustのインストール#
Rust をインストール - Rustプログラミング言語 から
rustup-init.exe
をダウンロードPowerShellなどから
rustup-init.exe
を実行プロンプトに従いインストールを完了する
rustup --version
やcargo --version
が正常に実行できればOKヒント
実行できない場合は一旦PowerShellなどを再起動してみてください
rustup target install i686-pc-windows-msvc
を実行してx86版もビルドできるようにするrustup show
を実行し以下のような出力になっていればOKDefault host: x86_64-pc-windows-msvc rustup home: C:\Users\(your name)\.rustup installed toolchains -------------------- stable-i686-pc-windows-msvc stable-x86_64-pc-windows-msvc (default) installed targets for active toolchain -------------------------------------- i686-pc-windows-msvc x86_64-pc-windows-msvc active toolchain ---------------- stable-x86_64-pc-windows-msvc (default) rustc 1.62.0 (a8314ef7d 2022-06-27)
OpenCV#
OpenCVのインストール#
OpenCV で
opencv-X.Y.Z-vc14_vc15.exe
をダウンロードopencv-X.Y.Z-vc14_vc15.exe
を実行し、任意のフォルダに展開
OpenCVのビルド#
準備#
cmake#
ヒント
C:\tools\opencv
としていますC:\tools\opencv64
または C:\tools\opencv86
としていますVisual Studio 16 2019
としていますスタートメニューからcmake-guiを起動
Where is the source code (ソース) に
C:\tools\opencv
を指定Where to build the binaries (出力先) に
C:\tools\opencv64
を指定 (x86はopencv86)Configure
ボタンを押す (出力先フォルダが存在しない場合はダイアログで確認されるので作成してもらう)- ダイアログが表示されたら
generatorは
Visual Studio 16 2019
を選択- platformは
x64
を選択 x86なら
Win32
にする
- platformは
toolsetは空欄
Finish
ボタンを押してしばらく待つ
- リストが表示されるので変更を加える
BUILD_SHARED_LIBS
のチェックを外すBUILD_opencv_*
系は以下のみチェックし、ほかは外すBUILD_opencv_core
BUILD_opencv_imgcodecs
BUILD_opencv_imgprocs
*_TESTS
系のチェック外すBUILD_JAVA
のチェック外すWITH_ADE
のチェック外すWITH_QUIRC
のチェック外すWITH_OPENEXR
のチェック外す- VC++ランタイムを静的リンクしない場合のみ
BUILD_WITH_STATIC_CRT
のチェックを外す
- 再度
Configure
ボタンを押ししばらく待つ BUILD_FAT_JAVA_LIB
が赤くなるけど無視
- 再度
リストが赤くなっていればなくなるまで
Configure
ボタンを押すGenerate
ボタンを押す
Tip
スクリプトによる実行方法
CmakeOpencv.ps1
で上記と同等のことができます.\CmakeOpencv.ps1 -Source C:\tools\opencv\ -OutDir C:\tools\opencv64\ -Architecture x64 -WithStaticCrt
msbuild#
ヒント
Visual Studio 16 2019
がインストールされているものとしますC:\tools\opencv64
または C:\tools\opencv86
であるものとしますスタートメニューから
x64 Native Tools Command Prompt for VS 2019
を起動以下を実行
x64
cd /d c:\tools\opencv64 chcp 65001 msbuild -p:Configuration=Release;Platform=x64;CodePage=65001 INSTALL.vcxproj
x86
cd /d c:\tools\opencv86 chcp 65001 msbuild -p:Configuration=Release;Platform=Win32;CodePage=65001 INSTALL.vcxproj
C:\tools\opencv64\install
(x86ならC:\tools\opencv86\install
) に出力される
ビルド#
重要
Rustのバージョンについて
rust-version
が指定されています重要
VC++ランタイムライブラリについて
$env:RUSTFLAGS='-C target-feature=+crt-static'
UWSCRを
git clone
し、PowerShellでそのディレクトリへ移動以下のコマンドを実行
デバッグビルド#
# x64
cargo build
注釈
.\target\debug\
に出力されます
# x86
cargo build --target=i686-pc-windows-msvc
注釈
.\target\i686-pc-windows-msvc\debug\
に出力されます
リリースビルド#
# x64
cargo build --release
注釈
.\target\release\
に出力されます
# x86
cargo build --target=i686-pc-windows-msvc --release
注釈
.\target\i686-pc-windows-msvc\release\
に出力されます
chkimgを含める場合#
準備#
LLVM で
LLVM-X.Y.Z-win64.exe
をダウンロードしてインストール
- OPENCV_INCLUDE_PATHS
includeフォルダのパス
- OPENCV_LINK_PATHS
libファイルのあるパス
- OPENCV_LINK_LIBS
読み込むlibファイル
ビルド#
cargo
実行時に --features chkimg
を指定しchkimgが含まれるようにします
OpenCVをインストールした場合#
ヒント
C:\tools\opencv\
としています、環境に合わせて適宜読み替えてください注意
以下は環境変数を設定しつつcargoによるビルドを行うPowerShellスクリプトのサンプルです
# includeフォルダ
$env:OPENCV_INCLUDE_PATHS = 'C:\tools\opencv\build\include\'
# libファイルのあるフォルダ
$env:OPENCV_LINK_PATHS = 'C:\tools\opencv\build\x64\vc15\lib'
# 読み込むlibファイル
$env:OPENCV_LINK_LIBS = 'opencv_worldXXX'
# XXXの部分はopencvのバージョンにより変わります (バージョン4.6.0→460)
cargo build --features chkimg
重要
opencv_worldXXX.dll
が参照できないと実行できませんC:\tools\opencv\build\x64\vc15\bin
にPATHを通すC:\tools\opencv\build\x64\vc15\bin\opencv_worldXXX.dll
をuwscr.exeと同じフォルダにコピーする
OpenCVをビルドした場合#
ヒント
C:\tools\opencv64\install\
(C:\tools\opencv86\install\
) としています、環境に合わせて適宜読み替えてください重要
BUILD_WITH_STATIC_CRTについて
BUILD_WITH_STATIC_CRT
をオンにしますBUILD_WITH_STATIC_CRT
をオフにします以下は環境変数を設定しつつcargoによるビルドを行うPowerShellスクリプトのサンプルです
x64
# includeフォルダ $env:OPENCV_INCLUDE_PATHS = 'C:\tools\opencv64\install\include' # libファイルのあるフォルダ $env:OPENCV_LINK_PATHS = 'C:\tools\opencv64\install\x64\vc16\staticlib' # 読み込むlibファイル # 複数ある場合は , で連結する $env:OPENCV_LINK_LIBS = @( 'opencv_coreXXX' 'opencv_imgcodecsXXX' 'opencv_imgprocXXX' 'ippiw' 'ittnotify' 'ippicvmt' 'liblibjpeg-turbo' 'liblibopenjp2' 'liblibpng' 'liblibtiff' 'liblibwebp' 'zlib' ) -join ',' # XXXの部分はopencvのバージョンにより変わります (バージョン4.6.0→460) # libから始まるファイルは先頭にlibを追加する必要があります (libpng→liblibpng) cargo build --features chkimg
x86
$env:OPENCV_INCLUDE_PATHS = 'C:\tools\opencv86\install\include' $env:OPENCV_LINK_PATHS = 'C:\tools\opencv86\install\x86\vc16\staticlib' $env:OPENCV_LINK_LIBS = @( 'opencv_coreXXX' 'opencv_imgcodecsXXX' 'opencv_imgprocXXX' 'ippiw' 'ittnotify' 'ippicvmt' 'liblibjpeg-turbo' 'liblibopenjp2' 'liblibpng' 'liblibtiff' 'liblibwebp' 'zlib' ) -join ',' cargo build --features chkimg --target=i686-pc-windows-msvc
GUIアプリケーションとしてビルド#
gui
featureフラグを加えてビルドすることでUWSCRはGUIアプリケーションとして振る舞いますcargo build --features gui
cargo build --features gui --release
# chkimgも加える
cargo build --features gui,chkimg
このfeatureによるビルドは動作保証外です
gui
featureは十分なテストが行われていませんcargoによるテスト実行#
# スクリプトの実行
cargo run -- C:\uwscr\test.uws
# x86
cargo run --target=i686-pc-windows-msvc -- C:\uwscr\test.uws
# リリース版で実行
cargo run --release -- C:\uwscr\test.uws
# repl
cargo run
cargo run -- --repl
# 設定ファイルを開く
cargo run -- --settings merge
# schemaファイルを出力
cargo run -- --schema .\schema
ドキュメント#
重要
Python実行環境が必要です
準備#
pip
等で以下をインストール
Sphinx
(ドキュメントのビルド)furo
(ドキュメントのテーマ)pygments
(サンプル構文のシンタックスハイライト)sphinx-favicon
(faviconの設定)
ビルド#
.\documents\make.bat html
を実行
ヒント
.\documents\build\html\
に出力されます