ビルド方法#
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_coreBUILD_opencv_imgcodecsBUILD_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.vcxprojx86
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\ に出力されます