Skip to content

Commit e58b9ca

Browse files
authored
C++のビルド方法について README に追記しました。 (Synesthesias#155)
* Visual Studioでのビルド方法について追記 * 同上 * readme微修正 * readme微修正 * readme微修正
1 parent 371e19c commit e58b9ca

File tree

2 files changed

+64
-35
lines changed

2 files changed

+64
-35
lines changed

CMakeSettings.json

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,46 @@
11
{
22
"configurations": [
33
{
4-
"name": "x64-Debug",
4+
"name": "x64-Unreal-Debug",
55
"generator": "Ninja",
66
"configurationType": "Debug",
7-
"inheritEnvironments": [ "msvc_x64_x64" ],
8-
"buildRoot": "${projectDir}\\out\\build\\${name}",
7+
"buildRoot": "${projectDir}\\out\\build\\x64-Debug-Unreal",
98
"installRoot": "${projectDir}\\out\\install\\${name}",
10-
"cmakeCommandArgs": "",
9+
"cmakeCommandArgs": "-DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD",
1110
"buildCommandArgs": "",
12-
"ctestCommandArgs": ""
11+
"ctestCommandArgs": "",
12+
"inheritEnvironments": [ "msvc_x64_x64" ]
1313
},
1414
{
15-
"name": "x64-Release",
15+
"name": "x64-Unity-Debug",
1616
"generator": "Ninja",
17-
"configurationType": "RelWithDebInfo",
18-
"buildRoot": "${projectDir}\\out\\build\\${name}",
17+
"configurationType": "Debug",
18+
"buildRoot": "${projectDir}\\out\\build\\x64-Debug-Unity",
1919
"installRoot": "${projectDir}\\out\\install\\${name}",
20-
"cmakeCommandArgs": "",
20+
"cmakeCommandArgs": "-DBUILD_LIB_TYPE=dynamic -DRUNTIME_LIB_TYPE=MD",
2121
"buildCommandArgs": "",
2222
"ctestCommandArgs": "",
23-
"inheritEnvironments": [ "msvc_x64_x64" ],
24-
"variables": []
23+
"inheritEnvironments": [ "msvc_x64_x64" ]
24+
},
25+
{
26+
"name": "x64-Unity-Release",
27+
"generator": "Ninja",
28+
"configurationType": "RelWithDebInfo",
29+
"buildRoot": "${projectDir}\\out\\build\\x64-Release-Unity",
30+
"installRoot": "${projectDir}\\out\\install\\${name}",
31+
"cmakeCommandArgs": "-DBUILD_LIB_TYPE=dynamic -DRUNTIME_LIB_TYPE=MT",
32+
"ctestCommandArgs": "",
33+
"inheritEnvironments": [ "msvc_x64_x64" ]
34+
},
35+
{
36+
"name": "x64-Unreal-Release",
37+
"generator": "Ninja",
38+
"configurationType": "RelWithDebInfo",
39+
"buildRoot": "${projectDir}\\out\\build\\x64-Release-Unreal",
40+
"installRoot": "${projectDir}\\out\\install\\${name}",
41+
"cmakeCommandArgs": "-DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD",
42+
"ctestCommandArgs": "",
43+
"inheritEnvironments": [ "msvc_x64_x64" ]
2544
}
2645
]
2746
}

README.md

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,45 +43,55 @@ fbx_sdk は Autodesk社が公開するSDKです。これは自由に製品に組
4343
- `3rdparty/fbx_sdk/2020.3.1` 以下に配置します。
4444
- `2020.3.1` 以下のディレクトリ構成は、別添のテキストファイル `file_tree_of_fbxsdk.txt` を参照してください。
4545

46-
#### 2. C++, C# のビルド手順(各OS共通)
47-
- C++ は CMake でビルドしますが、次の設定が必要です。Visual Studio または CLion で次の設定にしてください。
46+
#### 2. C++, C# のビルド手順
47+
- C++ は、CMake を使ってビルドします。CMake は、 Visaul Studio, CLion, コマンド のどれからでも利用できます。
48+
- Visual Studio のバージョンについては、 Unreal Engine向けのSDK が Visual Studio 2019 を想定しているので、2019を推奨します。
49+
- Visual Studioを利用する場合、 CMake でビルドするために C++によるデスクトップ開発ツールがインストールされているか確認してください。
50+
- 確認方法は、Visual Studio Insttaller を起動 → Visual Studio Community の"変更"ボタン → "C++によるデスクトップ開発" にチェックが入っているか確認してください。
51+
- 入っていなければインストールしてください。
52+
53+
##### CMakeの設定
54+
- CMakeでのビルドについて、次の設定が必要です。Visual Studio または CLion で次の設定にしてください。
55+
- なお、Visual Studio ではビルドディレクトリの冒頭に `${projectDir}/` を付けてください。CLion では `${projectDir}/`は不要です。
4856
- Unity向けRelease
49-
- ビルドタイプ(CMAKE_BUILD_TYPE) : RelWithDebInfo
50-
- ビルドディレクトリ : out/build/x64-Release-Unity
51-
- CMakeオプション : -DBUILD_LIB_TYPE=dynamic -DRUNTIME_LIB_TYPE=MT
57+
- ビルドタイプ(構成の種類,CMAKE_BUILD_TYPE) : `RelWithDebInfo`
58+
- ビルドディレクトリ(ビルドルート) : `out/build/x64-Release-Unity`
59+
- CMakeコマンド引数 : `-DBUILD_LIB_TYPE=dynamic -DRUNTIME_LIB_TYPE=MT`
5260

5361
- Unity向けDebug
54-
- ビルドタイプ(CMAKE_BUILD_TYPE) : Debug
55-
- ビルドディレクトリ : out/build/x64-Debug-Unity
56-
- CMakeオプション : -DBUILD_LIB_TYPE=dynamic -DRUNTIME_LIB_TYPE=MD
62+
- ビルドタイプ(構成の種類,CMAKE_BUILD_TYPE) : `Debug`
63+
- ビルドディレクトリ : `out/build/x64-Debug-Unity`
64+
- CMakeコマンド引数 : `-DBUILD_LIB_TYPE=dynamic -DRUNTIME_LIB_TYPE=MD`
5765

5866
- **Mac, Linux** : Unreal向けRelease
59-
- ビルドタイプ(CMAKE_BUILD_TYPE) : RelWithDebInfo
60-
- ビルドディレクトリ : out/build/x64-Release-Unreal
61-
- CMakeオプション : -DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD
67+
- ビルドタイプ(構成の種類,CMAKE_BUILD_TYPE) : `RelWithDebInfo`
68+
- ビルドディレクトリ : `out/build/x64-Release-Unreal`
69+
- CMakeコマンド引数 : `-DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD`
6270

6371
- **Windows** : Unreal向けRelease
64-
- ビルドタイプ : RelWithDebInfo
65-
- ビルドディレクトリ : out/build/x64-Release-Unreal
66-
- CMakeオプション : -DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX="C:/ninja" -DCMAKE_BUILD_TYPE=RelWithDebInfo
72+
- ビルドタイプ : `RelWithDebInfo`
73+
- ビルドディレクトリ : `out/build/x64-Release-Unreal`
74+
- CMakeコマンド引数(Visual Studio向け) : `-DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD`
75+
- CMakeオプション(CLion向け) : `-DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX="C:/ninja" -DCMAKE_BUILD_TYPE=RelWithDebInfo`
6776

6877
- **Mac, Linux** : Unreal向けDebug
69-
- ビルドタイプ(CMAKE_BUILD_TYPE) : Debug
70-
- ビルドディレクトリ : out/build/x64-Debug-Unreal
71-
- CMakeオプション : -DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD
78+
- ビルドタイプ(構成の種類,CMAKE_BUILD_TYPE) : `Debug`
79+
- ビルドディレクトリ : `out/build/x64-Debug-Unreal`
80+
- CMakeコマンド引数 : `-DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD`
7281

7382
- **Windows** : Unreal向けDebug
74-
- ビルドタイプ(CMAKE_BUILD_TYPE) : Debug
75-
- ビルドディレクトリ : out/build/x64-Debug-Unreal
76-
- CMakeオプション : -DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX="C:/ninja" -DCMAKE_BUILD_TYPE=Debug
83+
- ビルドタイプ(構成の種類,CMAKE_BUILD_TYPE) : `Debug`
84+
- ビルドディレクトリ : `out/build/x64-Debug-Unreal`
85+
- CMakeコマンド引数(Visual Studio向け) : `-DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD`
86+
- CMakeオプション(CLion向け) : `-DBUILD_LIB_TYPE=static -DRUNTIME_LIB_TYPE=MD -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX="C:/ninja" -DCMAKE_BUILD_TYPE=Debug`
7787

7888
- C++ の libplateau をビルドすると、Unity向けの場合は DLL ができます。
7989
- 詳しくは下記の、各OS向けのビルド手順を参照してください。
8090
- その後 C# の LibPLATEAU.NET をビルドすると自動で上述のDLLがコピーされ、C#側で利用可能になります。
8191
- C++とC#のビルド設定を合わせる必要があります。(C++でRelease 設定でビルドしたなら C# も Release、Debug なら C# も Debug。これを間違うと古いDLLがコピーされます。)
82-
- ユニットテストの実行時、dllがないという旨のエラーが出る場合、C++ビルド結果の out/build/x64-Debug-Unity or x64-Release-Unity にある
92+
- ユニットテストの実行時、dllがないという旨のエラーが出る場合、C++ビルド結果の `out/build/x64-Debug-Unity or x64-Release-Unity` にある
8393
libplateau が C#のバイナリのディレクトリにコピーされているか確認してください。
84-
コピーコマンドは CSharpPLATEAU.Test.csproj に記載されており、C#のリビルド時に実行されるはずです。
94+
コピーコマンドは `CSharpPLATEAU.Test.csproj` に記載されており、C#のリビルド時に実行されるはずです。
8595
このコマンドが正しく動作するか確認してください。
8696

8797
### 3つのOS向けにまとめてビルド
@@ -112,14 +122,14 @@ sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
112122
```
113123
* glTF-sdk のビルドのために PowerShell が必要なので、[このWebページ](https://learn.microsoft.com/ja-jp/powershell/scripting/install/install-ubuntu?view=powershell-7.3)を参考に Ubuntu向け PowerShell をインストールします。
114124

115-
* 以下のコマンドを実行します。
125+
* CMake でビルドするために、Linux向けの CLion を利用することもできますが、代わりに次のコマンドからもビルドできます:
116126
Unity向けの場合:
117127
```
118128
cd (プロジェクトのルートディレクトリ)
119129
cmake -S . -B ./out/build/x64-Release-Unity/ -G "Ninja" -D CMAKE_BUILD_TYPE:STRING="RelWithDebInfo" -D CMAKE_INSTALL_PROGRAM="ninja" -D CMAKE_CXX_FLAGS="-w" -D BUILD_LIB_TYPE=dynamic -D RUNTIME_LIB_TYPE=MT
120130
cmake --build ./out/build/x64-Release-Unity/ --config RelWithDebInfo
121131
```
122-
ただし Debug ビルドの場合は RUNTIME_LIB_TYPE=MD
132+
ただし Debug ビルドの場合は `RUNTIME_LIB_TYPE=MD`
123133

124134
Unreal Engine向けの場合:
125135
```

0 commit comments

Comments
 (0)