• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision10592 (tree)
Time2023-02-12 23:45:36
Authorzmatsuo

Log Message

cmakeビルド時、Visual Studio 2008 でビルドできるよう修正

- bmpだけのicoファイルを作れるようにした

- スクリプトを追加
- teraterm/common/ico/ico_scripts

- リソースビルド時、BMP_ICO が define されていたら bmp だけの ico ファイルをロード
- ttxssh はビルドされない

Change Summary

Incremental Difference

--- trunk/CMakeLists.txt (revision 10591)
+++ trunk/CMakeLists.txt (revision 10592)
@@ -3,14 +3,16 @@
33
44 project(teraterm_all)
55
6+set(SUPPORT_OLD_WINDOWS_DEFAULT OFF)
7+set(BMP_ICO_DEFAULT OFF)
68 if(MSVC AND (MSVC_VERSION LESS_EQUAL 1400))
79 # Visual Studio 2005 (1400=VS2005)
810 set(SUPPORT_OLD_WINDOWS_DEFAULT ON)
9-else()
10- set(SUPPORT_OLD_WINDOWS_DEFAULT OFF)
11+ set(BMP_ICO_DEFAULT ON)
1112 endif()
1213
1314 option(SUPPORT_OLD_WINDOWS "windows 95 support" ${SUPPORT_OLD_WINDOWS_DEFAULT})
15+option(BMP_ICO "icon(*.ico) file include only bmp(not png)" ${BMP_ICO_DEFAULT})
1416 option(ENABLE_TTXSAMPLES "TTXSamples" ON)
1517 option(MORE_WARNING "stronger warning" OFF)
1618 option(TTXSSH "ttxssh" ON)
@@ -49,6 +51,9 @@
4951 set(TTXSSH_OPENSSL3 ON)
5052 endif()
5153 endif()
54+if(${BMP_ICO})
55+ set(CMAKE_RC_FLAGS "${CMAKE_RC_FLAGS} /DBMP_ICO")
56+endif()
5257
5358 if(MSVC)
5459 # https://www.leeholmes.com/blog/2017/02/27/differences-between-visual-studio-2012-2013-and-2015/
--- trunk/doc/en/html/reference/build_library_with_cmake.md (revision 10591)
+++ trunk/doc/en/html/reference/build_library_with_cmake.md (revision 10592)
@@ -31,38 +31,30 @@
3131
3232 ### By using batch file
3333
34-Execute buildall_cmake.bat, and select Visual Studio.
34+Execute libs/buildall_cmake.bat, and select Visual Studio.
3535
36- 1. Visual Studio 16 2019
37- 2. Visual Studio 15 2017
38- 3. Visual Studio 14 2015
39- 4. Visual Studio 12 2013
40- 5. Visual Studio 11 2012
41- 6. Visual Studio 10 2010
42- 7. Visual Studio 9 2008
43- 8. Visual Studio 8 2005
36+ 1. Visual Studio 17 2022
37+ 2. Visual Studio 17 2022 x64
38+ 3. Visual Studio 16 2019
39+ 4. Visual Studio 16 2019 x64
40+ 5. Visual Studio 15 2017
41+ 6. Visual Studio 14 2015
42+ 7. Visual Studio 12 2013
43+ 8. Visual Studio 11 2012
44+ 9. Visual Studio 10 2010
45+ a. Visual Studio 9 2008
4446 select no
4547
46-When VS2005 is selected, you can download cmake 3.11.4 and install into `libs\cmake-3.11.4-win32-x86`.
47-
4848 ### By using cmake
4949
50-Case of Visual Studio 2019 x86
50+Case of Visual Studio 2022 x86
5151
52- cmake -DCMAKE_GENERATOR="Visual Studio 16 2019" -DARCHITECTURE=Win32 -P buildall.cmake
52+ cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=Win32 -P buildall.cmake
5353
54-Case of Visual Studio 2017 x86
54+Case of Visual Studio 2022 x64
5555
56- cmake -DCMAKE_GENERATOR="Visual Studio 15 2017" -P buildall.cmake
56+ cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=x64 -P buildall.cmake`
5757
58-Case of Visual Studio 2017 x64
59-
60- cmake -DCMAKE_GENERATOR="Visual Studio 15 2017 Win64" -P buildall.cmake`
61-
62-When Visual Studio 2005 is used, cmake 3.11.4 or earlier(if cmake is installed in libs\cmake-3.11.4-win32-x86).
63-
64- libs\cmake-3.11.4-win32-x86\bin\cmake.exe" -DCMAKE_GENERATOR="Visual Studio 8 2005" -P buildall.cmake
65-
6658 ## MinGW common
6759
6860 Using cmake in each environment.
@@ -75,7 +67,7 @@
7567
7668 - Library `*.h` and `*.lib` are created in the following:
7769 - `oniguruma_{compiler}`
78- - `openssl_{compiler}`
70+ - `libressl_{compiler}`
7971 - `putty`
8072 - `SFMT_{compiler}`
8173 - `zlib_{compiler}`
--- trunk/doc/en/html/reference/build_with_cmake.md (revision 10591)
+++ trunk/doc/en/html/reference/build_with_cmake.md (revision 10592)
@@ -1,45 +1,61 @@
11 # How to build by using cmake
22
33 - You can build Tera Term by using [cmake](<https://cmake.org/>)(EXPERIMENTAL).
4+- You can bulid using Visual Studio, NMake, MinGW
45
56 ## cmake version
67
8+- 3.11.4+
9+- When the cmake option is selected on Visual Studio 2017,2019,2022 installer, the cmake can be installed.
710 - The final version of cmake supporting for Visual Studio 2005 is 3.11.4.
8-- The ttpmacro.exe can not be built with Visual Studio 2005 Express.
9-- This no restriction by using Visual Studio any version other than 2005(including Express).
10-- When the cmake option is selected on Visual Studio 2017 installer, the cmake can be installed.
1111
12-## MinGW (very experimental)
13-
14-- You can create the binary file by using MinGW.
15-- EXPERIMENTAL
16-- The ttpmacro.exe can not be built with MinGW.
17-
1812 ## How to build library
1913
2014 - You can prepare libraries used by Tera Term.
21-- Refer to `lib/build_library_with_cmake.md`.
15+- Refer to `lib/build_library_with_cmake.md`.
2216 - Refet to `develop.txt`.
2317
2418 ## How to build Tera Term
2519
20+### Visual Studio
21+
2622 Please execute below commands on the top of source tree.
23+Use Visual Studio IDE
24+```
25+mkdir build_vs2022
26+cd build_vs2022
27+cmake .. -G "Visual Stuido 17 2022" -A Win32
28+cmake --build . --config Release -j
29+```
2730
28- mkdir build_vs2005
29- cd build_vs2005
30- ..\buildtools\cmake-3.11.4-win32-x86\bin\cmake.exe .. -G "Visual Studio 8 2005"
31- ..\buildtools\cmake-3.11.4-win32-x86\bin\cmake.exe --build . --config release
31+### NMake (Visual Studio, very experimental)
3232
33-- Change a string after `-G` option according to Visual Studio version.
34-- The sln file is created, so the file can be opened with Visual Studio.
35-- If the cmake is included in path, you need not write the full path of cmake.
36-- When Visual Studio is launched by sln file and is building, the Visual Studio can re-generate the project file after detecting changes to CMakeLists.txt. So, the sln file is manually created only once.
33+Execute vcvars32.bat,etc to prepare an environment where nmake, cl are avaiable,
34+Run next commands.
35+```
36+mkdir build_nmake
37+cd build_nmake
38+cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
39+cmake --build . -j
40+```
3741
38-## How to build Tera Term(MinGW)
42+### MinGW (very experimental)
3943
44+- You can create the binary file by using MinGW.
45+- EXPERIMENTAL
46+
4047 Please execute below commands on the top of source tree by using the cmake available on MinGW.
48+```
49+mkdir build_mingw
50+cd build_mingw
51+cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
52+cmake --build . -j
53+```
4154
42- mkdir build_mingw_test
43- cd build_mingw_test
44- cmake .. -G "Unix Makefiles"
45- make -j4
55+When cygwin, linux
56+```
57+mkdir build_mingw_cygwin
58+cd build_mingw_cygwin
59+cmake .. -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../mingw.toolchain.cmake -DCMAKE_BUILD_TYPE=Release
60+cmake --build . -j
61+```
--- trunk/doc/ja/html/reference/build_library_with_cmake.md (revision 10591)
+++ trunk/doc/ja/html/reference/build_library_with_cmake.md (revision 10592)
@@ -44,28 +44,18 @@
4444 8. Visual Studio 11 2012
4545 9. Visual Studio 10 2010
4646 a. Visual Studio 9 2008
47- b. Visual Studio 8 2005
4847 select no
4948
50-VS2005を選択した場合、
51-このバッチファイルから cmake 3.11.4 をダウンロードして `buildtools\libs\cmake-3.11.4-win32-x86` に
52-展開されます。
53-
5449 ### cmakeを使用する場合
5550
56-Visual Studio 2019 x86 の場合
51+Visual Studio 2022 x86 の場合
5752
58- cmake -DCMAKE_GENERATOR="Visual Studio 16 2019" -DARCHITECTURE=Win32 -P buildall.cmake
53+ cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=Win32 -P buildall.cmake
5954
60-Visual Studio 2019 x64 の場合
55+Visual Studio 2022 x64 の場合
6156
62- cmake -DCMAKE_GENERATOR="Visual Studio 15 2019" -DARCHITECTURE=x64 -P buildall.cmake`
57+ cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=x64 -P buildall.cmake`
6358
64-Visual Studio 2005の場合は、cmakeのバージョン3.11.4以前を使用
65-(cmake が buildtools\cmake-3.11.4-win32-x86 にインストールしてある場合)
66-
67- ..\buildtools\cmake-3.11.4-win32-x86\bin\cmake.exe" -DCMAKE_GENERATOR="Visual Studio 8 2005" -P buildall.cmake
68-
6959 ## MinGW 共通
7060
7161 各々の環境のcmakeを使用する
@@ -79,7 +69,7 @@
7969 - 次のフォルダにライブラリの `*.h` , `*.lib` が生成される
8070 - `cJSON`
8171 - `oniguruma_{compiler}`
82- - `openssl_{compiler}`
72+ - `libressl_{compiler}`
8373 - `putty`
8474 - `SFMT_{compiler}`
8575 - `zlib_{compiler}`
--- trunk/doc/ja/html/reference/build_with_cmake.md (revision 10591)
+++ trunk/doc/ja/html/reference/build_with_cmake.md (revision 10592)
@@ -2,49 +2,61 @@
22
33 - [cmake](<https://cmake.org/>)を使用して
44 ビルドすることができます(実験的な位置づけです)
5+- Visual Studio, NMake, MinGW でビルドできます
56
67 ## cmakeのバージョン
78
8-- Visual Studio 2005 をサポートしている cmake の最後のバージョンは 3.11.4 です
9-- Visual Studio 2005 (Expressも含む)以外を使用する場合は特に制限はありません
9+- 3.11以上
1010 - Visual Studio 2017,2019,2022 インストーラーで、オプションを選べば cmake をインストールできます
11+- Visual Studio 2005(Expressも含む)のIDEをサポートしている最後のバージョンは 3.11.4 です
1112
12-## MinGW (very experimental)
13+## ライブラリ
1314
14-- MinGW を使用してバイナリを生成することができます
15-- 実験的位置づけです
16-
17-## ライブラリのビルド
18-
1915 - teraterm が使用するライブラリをビルドして準備しておきます
16+ - ビルドに使用するツールに合わせたライブラリが必要です
2017 - ビルド方法は [`build_library_with_cmake`](<build_library_with_cmake.html>) を参照してください
2118 - ライブラリについては [`develop.txt`](<develop.txt>) を参照してください
2219
2320 ## teratermのビルド
2421
25-ソースツリーのトップから、次のようにコマンドを実行します。
22+### Visual Studio
2623
27- mkdir build_vs2005
28- cd build_vs2005
29- ..\buildtools\cmake-3.11.4-win32-x86\bin\cmake.exe .. -G "Visual Studio 8 2005"
30- ..\buildtools\cmake-3.11.4-win32-x86\bin\cmake.exe --build . --config release
24+Visual Studio の IDE を使用する場合の例
25+```
26+mkdir build_vs2022
27+cd build_vs2022
28+cmake .. -G "Visual Stuido 17 2022" -A Win32
29+cmake --build . --config Release -j
30+```
3131
32-- `-G` オプションの後ろは使用する Visual Studio のバージョンに合わせて調整します
33-- sln ファイルが生成されるので Visual Studio で開くことができます
34-- パスが通っていれば cmake はフルパスで書く必要はありません
35-- 生成された sln ファイルから起動したVisual Studioでビルドすると
36- CMakeLists.txt を変更を検出してプロジェクトファイルの再生成を自動で行うので
37- sln ファイルの生成を手動で行うのは最初の1回だけです
38-- Visual Studio 2019 + cmake のとき、`-A` オプションが必要です
32+### NMake (Visual Studio, very experimental)
3933
40- cmake.exe .. -G "Visual Studio 16 2019" -A Win32
34+vcvars32.bat を実行しておくなどして
35+nmakeが利用できる環境から次のように実行します。
36+```
37+mkdir build_nmake
38+cd build_nmake
39+cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
40+cmake --build . -j
41+```
4142
42-## teratermのビルド(MinGW)
43+### MinGW (very experimental)
4344
44-MinGWので使用できるcmakeを使って、
45-ソースツリーのトップから、次のようにコマンドを実行します。
45+- MinGW を使用してバイナリを生成することができます
46+- 実験的位置づけです
4647
47- mkdir build_mingw_test
48- cd build_mingw_test
49- cmake .. -G "Unix Makefiles"
50- make -j4
48+msys2等をつかってMinGWが使える環境から次のように実行します。
49+```
50+mkdir build_mingw
51+cd build_mingw
52+cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
53+cmake --build . -j
54+```
55+
56+cygwin,linux等では次のように実行します。
57+```
58+mkdir build_mingw_cygwin
59+cd build_mingw_cygwin
60+cmake .. -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../mingw.toolchain.cmake -DCMAKE_BUILD_TYPE=Release
61+cmake --build . -j
62+```
--- trunk/libs/buildall_cmake.bat (revision 10591)
+++ trunk/libs/buildall_cmake.bat (revision 10592)
@@ -21,7 +21,7 @@
2121 echo 8. Visual Studio 11 2012
2222 echo 9. Visual Studio 10 2010
2323 echo a. Visual Studio 9 2008
24-echo b. Visual Studio 8 2005
24+rem echo b. Visual Studio 8 2005
2525 rem echo c. Visual Studio NMake (experimental)
2626 rem echo d. Cygwin MinGW Release + Unix Makefiles (experimental)
2727 set /p no="select no "
--- trunk/teraterm/common/ico/ico_scripts/icon_combine.bat (nonexistent)
+++ trunk/teraterm/common/ico/ico_scripts/icon_combine.bat (revision 10592)
@@ -0,0 +1,3 @@
1+rem cmake -P icon_combine.cmake
2+cmake -DCOPY_BMP_ICO=1 -P icon_combine.cmake
3+pause
--- trunk/teraterm/common/ico/ico_scripts/icon_combine.sh (revision 10591)
+++ trunk/teraterm/common/ico/ico_scripts/icon_combine.sh (revision 10592)
@@ -1,67 +1,2 @@
1-cd teraterm
2-icotool -c *.png > ../teraterm.ico
3-cd ..
4-
5-cd teraterm_3d
6-icotool -c *.png > ../teraterm_3d.ico
7-cd ..
8-
9-cd teraterm_classic
10-icotool -c *.png > ../teraterm_classic.ico
11-cd ..
12-
13-cd tterm16
14-icotool -c *.png > ../tterm16.ico
15-cd ..
16-
17-cd tek
18-icotool -c *.png > ../tek.ico
19-cd ..
20-
21-cd tek16
22-icotool -c *.png > ../tek16.ico
23-cd ..
24-
25-cd cygterm
26-icotool -c *.png > ../cygterm.ico
27-cd ..
28-
29-cd vt
30-icotool -c *.png > ../vt.ico
31-cd ..
32-
33-cd vt_3d
34-icotool -c *.png > ../vt_3d.ico
35-cd ..
36-
37-cd vt_classic
38-icotool -c *.png > ../vt_classic.ico
39-cd ..
40-
41-cd vt16
42-icotool -c *.png > ../vt16.ico
43-cd ..
44-
45-cd ttmacr16
46-icotool -c *.png > ../ttmacr16.ico
47-cd ..
48-
49-cd ttmacro
50-icotool -c *.png > ../ttmacro.ico
51-cd ..
52-
53-cd ttmacro_3d
54-icotool -c *.png > ../ttmacro_3d.ico
55-cd ..
56-
57-cd ttsecure
58-icotool -c *.png > ../ttsecure.ico
59-cd ..
60-
61-cd ttsecure_green
62-icotool -c *.png > ../ttsecure_green.ico
63-cd ..
64-
65-cd ttsecure_yellow
66-icotool -c *.png > ../ttsecure_yellow.ico
67-cd ..
1+cmake -P icon_combine.cmake
2+# cmake -DCOPY_BMP_ICO=1 -P icon_combine.cmake
--- trunk/teraterm/common/ico/ico_scripts/icon_extract.bat (nonexistent)
+++ trunk/teraterm/common/ico/ico_scripts/icon_extract.bat (revision 10592)
@@ -0,0 +1,2 @@
1+cmake -P icon_extract.cmake
2+pause
--- trunk/teraterm/common/ico/ico_scripts/icon_extract.sh (revision 10591)
+++ trunk/teraterm/common/ico/ico_scripts/icon_extract.sh (revision 10592)
@@ -1,84 +1 @@
1-mkdir teraterm
2-cd teraterm
3-icotool -x ../../../teraterm.ico
4-cd ..
5-
6-mkdir teraterm_3d
7-cd teraterm_3d
8-icotool -x ../../../teraterm_3d.ico
9-cd ..
10-
11-mkdir teraterm_classic
12-cd teraterm_classic
13-icotool -x ../../../teraterm_classic.ico
14-cd ..
15-
16-mkdir tterm16
17-cd tterm16
18-icotool -x ../../../tterm16.ico
19-cd ..
20-
21-mkdir tek
22-cd tek
23-icotool -x ../../../tek.ico
24-cd ..
25-
26-mkdir tek16
27-cd tek16
28-icotool -x ../../../tek16.ico
29-cd ..
30-
31-mkdir cygterm
32-cd cygterm
33-icotool -x ../../../../../cygterm/cygterm.ico
34-cd ..
35-
36-mkdir vt
37-cd vt
38-icotool -x ../../../vt.ico
39-cd ..
40-
41-mkdir vt_3d
42-cd vt_3d
43-icotool -x ../../../vt_3d.ico
44-cd ..
45-
46-mkdir vt_classic
47-cd vt_classic
48-icotool -x ../../../vt_classic.ico
49-cd ..
50-
51-mkdir vt16
52-cd vt16
53-icotool -x ../../../vt16.ico
54-cd ..
55-
56-mkdir ttmacr16
57-cd ttmacr16
58-icotool -x ../../../../ttpmacro/ttmacr16.ico
59-cd ..
60-
61-mkdir ttmacro
62-cd ttmacro
63-icotool -x ../../../../ttpmacro/ttmacro.ico
64-cd ..
65-
66-mkdir ttmacro_3d
67-cd ttmacro_3d
68-icotool -x ../../../../ttpmacro/ttmacro_3d.ico
69-cd ..
70-
71-mkdir ttsecure
72-cd ttsecure
73-icotool -x ../../../../../ttssh2/ttxssh/ttsecure.ico
74-cd ..
75-
76-mkdir ttsecure_green
77-cd ttsecure_green
78-icotool -x ../../../../../ttssh2/ttxssh/ttsecure_green.ico
79-cd ..
80-
81-mkdir ttsecure_yellow
82-cd ttsecure_yellow
83-icotool -x ../../../../../ttssh2/ttxssh/ttsecure_yellow.ico
84-cd ..
1+cmake -P icon_extract.cmake
--- trunk/teraterm/common/ico/ico_scripts/readme.md (revision 10591)
+++ trunk/teraterm/common/ico/ico_scripts/readme.md (revision 10592)
@@ -16,15 +16,21 @@
1616
1717 ## icoファイルからpngの抽出
1818
19-- icon_extract.shを実行する
19+- icon_extract.cmakeを実行する
20+- 処理したicoファイルと同名のフォルダが作成され
2021 - pngファイルが各フォルダに抽出される
2122
2223 ## pngからicoファイルを合成
2324
24-- icon_conbine.shを実行する
25+- icon_conbine.cmakeを実行する
2526 - pngファイルからicoファイルが合成される
2627 - icoファイルはこのフォルダに作成される
27-- 必要に応じて../*.icoと入れ替えを行う
28+- 次のオプションでicoファイルのコピーを行う
29+ - `-DCOPY_ICO=1`
30+ - icoファイルを元ファイルに上書きする
31+ - `-DCOPY_BMP_ICO=1`
32+ - bmp形式のみのicoファイルを元ファイルのフォルダにコピーする
33+ - ファイル名は `元ファイル名_bmp.ico`
2834
2935 ## ico ファイルについて
3036
@@ -42,4 +48,3 @@
4248 - cygwin では icoutils パッケージに入っている
4349 - linux では icoutils パッケージに入っている
4450 - `apt-get install icoutils`
45-
Show on old repository browser