Revision: 8937 https://osdn.net/projects/ttssh2/scm/svn/commits/8937 Author: zmatsuo Date: 2020-09-12 00:47:32 +0900 (Sat, 12 Sep 2020) Log Message: ----------- perlを自動的に探すようにした, 使用する svn を toolinfo.txt に書くようにした - perl は次のデフォルトフォルダを探す - buildtools/perl (ActivePerl) - ActivePerl - Strawberry perl - cygwin Modified Paths: -------------- trunk/doc/en/html/reference/develop.txt trunk/doc/ja/html/reference/develop.txt trunk/svnrev_perl/readme.md trunk/svnrev_perl/svnrev.bat trunk/svnrev_perl/svnrev.pl Added Paths: ----------- trunk/svnrev_perl/svnversion.default.h trunk/svnrev_perl/toolinfo_sample.txt -------------- next part -------------- Modified: trunk/doc/en/html/reference/develop.txt =================================================================== --- trunk/doc/en/html/reference/develop.txt 2020-09-08 15:14:36 UTC (rev 8936) +++ trunk/doc/en/html/reference/develop.txt 2020-09-11 15:47:32 UTC (rev 8937) @@ -42,6 +42,7 @@ ISTool 5.3.0.1 (https://sourceforge.net/projects/istool/) - others Cygwin 1.5.x (1.7.x doesn't support Windows 9x) +------ ActivePerl 5.10 or later version converts character-code and return-code of documents for building OpenSSL. Subversion for Windows (http://sourceforge.net/projects/win32svn/) @@ -48,7 +49,19 @@ Use the compatible version for check-outed svn version. Extract into libs\svn. ("svnversion.exe" is located in libs\svn\bin directory.) + Cygwin 1.5.x (1.7.x \x82\xCD Windows 9x \x82\xF0\x83T\x83|\x81[\x83g\x82\xB5\x82Ă\xA2\x82Ȃ\xA2\x82̂ŕs\x89\xC2) + ActivePerl 5.10 \x88ȏ\xE3 \x82܂\xBD\x82\xCD Strawberry perl 5.30.1.1 \x88ȏ\xE3 + \x83r\x83\x8B\x83h\x89ߒ\xF6\x82Ŏg\x97p\x82\xB5\x82܂\xB7 + - OpenSSL \x82̃R\x83\x93\x83p\x83C\x83\x8B(\x95K\x90{) + - \x83h\x83L\x83\x85\x83\x81\x83\x93\x83g\x83t\x83@\x83C\x83\x8B\x82̕\xB6\x8E\x9A\x83R\x81[\x83h\x81E\x89\xFC\x8Ds\x83R\x81[\x83h\x95ϊ\xB7(\x95K\x90{) + - \x83\x8A\x83r\x83W\x83\x87\x83\x93\x94ԍ\x86\x8E擾 (perl\x82\xAA\x82Ȃ\xA2\x8Fꍇ\x83\x8A\x83r\x83W\x83\x87\x83\x93\x94ԍ\x86\x82\xF0\x8E擾\x82\xB9\x82\xB8\x82Ƀr\x83\x8B\x83h\x82\xB5\x82܂\xB7) + Subversion for Windows (http://sourceforge.net/projects/win32svn/) + \x83\x8A\x83r\x83W\x83\x87\x83\x93\x94ԍ\x86\x8E擾\x8E\x9E\x82Ɏg\x97p\x82\xB5\x82܂\xB7 + svnrev_perl/toolinfo.txt \x82\xC9 svn.exe \x82̃t\x83\x8B\x83p\x83X\x82\xF0\x8BL\x8Fq\x82\xA2\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B + \x8Fڂ\xB5\x82\xAD\x82\xCD svnrev_perl/readme.md \x82\xF0\x8EQ\x8FƂ\xAD\x82\xBE\x82\xB3\x82\xA2 +------ + * Libraries - Oniguruma 6.9.3 (https://github.com/kkos/oniguruma) - OpenSSL 1.1.1d (http://www.openssl.org/) Modified: trunk/doc/ja/html/reference/develop.txt =================================================================== --- trunk/doc/ja/html/reference/develop.txt 2020-09-08 15:14:36 UTC (rev 8936) +++ trunk/doc/ja/html/reference/develop.txt 2020-09-11 15:47:32 UTC (rev 8937) @@ -46,11 +46,15 @@ ISTool 5.3.0.1 (https://sourceforge.net/projects/istool/) - \x82\xBB\x82̑\xBC Cygwin 1.5.x (1.7.x \x82\xCD Windows 9x \x82\xF0\x83T\x83|\x81[\x83g\x82\xB5\x82Ă\xA2\x82Ȃ\xA2\x82̂ŕs\x89\xC2) - ActivePerl 5.10 \x88ȏ\xE3 - OpenSSL \x82̃R\x83\x93\x83p\x83C\x83\x8B\x81A\x83h\x83L\x83\x85\x83\x81\x83\x93\x83g\x83t\x83@\x83C\x83\x8B\x82̕\xB6\x8E\x9A\x83R\x81[\x83h\x81E\x89\xFC\x8Ds\x83R\x81[\x83h\x95ϊ\xB7\x82ɕK\x97v\x82ł\xB7\x81B + ActivePerl 5.10 \x88ȏ\xE3 \x82܂\xBD\x82\xCD Strawberry perl 5.30.1.1 \x88ȏ\xE3 + \x83r\x83\x8B\x83h\x89ߒ\xF6\x82Ŏg\x97p\x82\xB5\x82܂\xB7 + - OpenSSL \x82̃R\x83\x93\x83p\x83C\x83\x8B(\x95K\x90{) + - \x83h\x83L\x83\x85\x83\x81\x83\x93\x83g\x83t\x83@\x83C\x83\x8B\x82̕\xB6\x8E\x9A\x83R\x81[\x83h\x81E\x89\xFC\x8Ds\x83R\x81[\x83h\x95ϊ\xB7(\x95K\x90{) + - \x83\x8A\x83r\x83W\x83\x87\x83\x93\x94ԍ\x86\x8E擾 (perl\x82\xAA\x82Ȃ\xA2\x8Fꍇ\x83\x8A\x83r\x83W\x83\x87\x83\x93\x94ԍ\x86\x82\xF0\x8E擾\x82\xB9\x82\xB8\x82Ƀr\x83\x8B\x83h\x82\xB5\x82܂\xB7) Subversion for Windows (http://sourceforge.net/projects/win32svn/) - \x83\\x81[\x83X\x82̃`\x83F\x83b\x83N\x83A\x83E\x83g\x82Ɏg\x82\xC1\x82\xBD svn \x82ƌ݊\xB7\x90\xAB\x82̂\xA0\x82\xE9\x83o\x81[\x83W\x83\x87\x83\x93\x81B - libs\svn \x82։𓀂\xB5\x82܂\xB7\x81B("svnversion.exe" \x82\xAA libs\svn\bin \x82ɔz\x92u\x82\xB3\x82\xEA\x82\xE9\x82悤\x82ɂ\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2) + \x83\x8A\x83r\x83W\x83\x87\x83\x93\x94ԍ\x86\x8E擾\x8E\x9E\x82Ɏg\x97p\x82\xB5\x82܂\xB7 + svnrev_perl/toolinfo.txt \x82\xC9 svn.exe \x82̃t\x83\x8B\x83p\x83X\x82\xF0\x8BL\x8Fq\x82\xA2\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B + \x8Fڂ\xB5\x82\xAD\x82\xCD svnrev_perl/readme.md \x82\xF0\x8EQ\x8FƂ\xAD\x82\xBE\x82\xB3\x82\xA2 \x81\xA1 \x83\x89\x83C\x83u\x83\x89\x83\x8A Modified: trunk/svnrev_perl/readme.md =================================================================== --- trunk/svnrev_perl/readme.md 2020-09-08 15:14:36 UTC (rev 8936) +++ trunk/svnrev_perl/readme.md 2020-09-11 15:47:32 UTC (rev 8937) @@ -2,16 +2,21 @@ - svn(又は git)の情報からヘッダファイルとバッチファイルを作成する - `../teraterm/ttpdlg/svnversion.h` - - `svnversion.bat` + - `sourcetree_info.bat` ## 準備 -- svn(又は git)を実行できるようパスを設定する - - 実行できない場合もヘッダファイルは作成されます -- perlを実行できるようパスを設定する - - libs/perl があれば利用します - - buildtools/getperl.bat をダブルクリックすると - strawberry perl を libs/perl に展開します +- perl を実行できるようにしておく + - perl が実行できるよう環境変数 PATH を設定する + - または、../buildtools/libs/perl があれば使用する + - ../buildtools/getperl.bat をダブルクリックすると + strawberry perl が buildtools/perl に展開される + - または、いくつかのメジャーなperlを探して見つければ使用する + - perl が見つからない場合は svnversion.default.h が使用される +- svn(又は git)を実行できるようにする + - svn が実行できるよう環境変数 PATH を設定する + - または、toolinfo.txt にツールのパスを書いておく + - ツールが実行できない場合もヘッダファイルは作成されます # ヘッダの作成方法 @@ -36,3 +41,5 @@ - svnコマンドのパス - --git - gitコマンドのパス + +オプションが toolinfo.txt より優先されます Modified: trunk/svnrev_perl/svnrev.bat =================================================================== --- trunk/svnrev_perl/svnrev.bat 2020-09-08 15:14:36 UTC (rev 8936) +++ trunk/svnrev_perl/svnrev.bat 2020-09-11 15:47:32 UTC (rev 8937) @@ -1,14 +1,47 @@ @echo off setlocal cd /d %~dp0 +set BAT=%~n0%~x0 set SVNVERSION_H=../teraterm/ttpdlg/svnversion.h +set SVNVERSION_H_DOS=..\teraterm\ttpdlg\svnversion.h -if EXIST %SVNVERSION_H% goto finish +if NOT EXIST %SVNVERSION_H% goto env_perl + @ echo %BAT%: already exist %SVNVERSION_H% +goto finish -set PERL=..\libs\perl\perl\bin\perl.exe -if NOT EXIST %PERL% set PERL=perl.exe +:env_perl +if NOT "%PERL%" == "" goto found_perl +:search_perl +set PERL=perl.exe +where %PERL% > nul 2>&1 +if %errorlevel% == 0 goto found_perl +set PERL=%~dp0..\buildtools\perl\perl\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\Strawberry\perl\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\Perl64\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\Perl\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\cygwin64\usr\bin\perl.exe +if exist %PERL% goto found_perl +set PERL=C:\cygwin\usr\bin\perl.exe +if exist %PERL% goto found_perl +goto no_perl + +:no_perl + @ echo %BAT%: perl not found + @ echo %BAT%: default svnversion.h is used +if exist sourcetree_info.bat del sourcetree_info.bat +type svnversion.default.h > %SVNVERSION_H_DOS% +goto finish + +:found_perl + @ echo %BAT%: perl=%PERL% %PERL% svnrev.pl --root .. --header %SVNVERSION_H% +goto finish + :finish Modified: trunk/svnrev_perl/svnrev.pl =================================================================== --- trunk/svnrev_perl/svnrev.pl 2020-09-08 15:14:36 UTC (rev 8936) +++ trunk/svnrev_perl/svnrev.pl 2020-09-11 15:47:32 UTC (rev 8937) @@ -1,6 +1,7 @@ use utf8; use Getopt::Long 'GetOptions'; use POSIX 'strftime'; +binmode STDOUT, ':encoding(utf8)'; $version = "5.0"; $svn = "svn"; @@ -14,6 +15,30 @@ $verbose = 0; $script_name = $0; +sub read_toolinfo { + my $info = "toolinfo.txt"; + if (!-f $info) { + return; + } + open(my $FD, "<:utf8:crlf", $info); + while (my $l = <$FD>) { + chomp $l; + $str =~ s/^\x{FEFF}//; # remove BOM + if ($l =~ /^#/) { + next; + } + if ($l =~ /^svn=\s*(.*)$/) { + $svn = $1; + } + if ($l =~ /^git=\s*(.*)$/) { + $git = $1; + } + } + close($FD); +} + +&read_toolinfo(); + GetOptions( 'root=s' => \$source_root, 'svn=s' => \$svn, @@ -20,11 +45,14 @@ 'git=s' => \$git, 'header=s' => \$out_header, 'bat=s' => \$out_bat, - 'cmake=s' => \$out_cmake + 'cmake=s' => \$out_cmake, + 'verbose' => \$verbose ); $git =~ s/"//g; +$git =~ s/\\/\//g; $svn =~ s/"//g; +$svn =~ s/\\/\//g; if ($verbose != 0) { print "root=$source_root\n"; Added: trunk/svnrev_perl/svnversion.default.h =================================================================== --- trunk/svnrev_perl/svnversion.default.h (rev 0) +++ trunk/svnrev_perl/svnversion.default.h 2020-09-11 15:47:32 UTC (rev 8937) @@ -0,0 +1,4 @@ +/* default svnversion.h */ +#define SVNVERSION 0000 +#undef TERATERM_RELEASE +#define BRANCH_NAME "unknown" Added: trunk/svnrev_perl/toolinfo_sample.txt =================================================================== --- trunk/svnrev_perl/toolinfo_sample.txt (rev 0) +++ trunk/svnrev_perl/toolinfo_sample.txt 2020-09-11 15:47:32 UTC (rev 8937) @@ -0,0 +1,4 @@ +# tool info +# +svn="C:\Program Files\TortoiseSVN\bin\svn.exe" +git="C:\Program Files\Git\bin\git.exe"