Revision: 8933 https://osdn.net/projects/ttssh2/scm/svn/commits/8933 Author: zmatsuo Date: 2020-09-05 00:54:26 +0900 (Sat, 05 Sep 2020) Log Message: ----------- svnrev_perl/svnrev.pl にビルド用情報出力をまとめた - Tera Term のバージョン情報 - teraterm/common/tt-version.h と svnrev.pl - svnリビジョン番号の取得は svnrev_perl に一本化 - cmake時、従来は CMakeLists.txt 内でもリビジョン番号を取得していた - cmake 用のファイルも出力できるようにした - ${CMAKE_BINARY_DIR}/build_config.cmake を出力 - setup.exe,zipファイル名修正 - version追加 - teraterm-5.0.exe(zip) (release時) - teraterm-5.0-r9999-YYMMDD_hhmmss-user - cmake ビルドで svnrev_perl/ から CMakeLists.txt を削除 - svnversion_h ターゲット削除 - 依存関係を修正 - execute_process() で perl を呼び出すようにした Revision Links: -------------- https://osdn.net/projects/ttssh2/scm/svn/commits/9999 Modified Paths: -------------- trunk/CMakeLists.txt trunk/TTXSamples/TTXCheckUpdate/CMakeLists.txt trunk/ci_scripts/build_appveyor.bat trunk/installer/CMakeLists.txt trunk/installer/teraterm_cmake.iss.in trunk/svnrev_perl/svnrev.pl trunk/teraterm/teraterm/CMakeLists.txt Removed Paths: ------------- trunk/svnrev_perl/CMakeLists.txt -------------- next part -------------- Modified: trunk/CMakeLists.txt =================================================================== --- trunk/CMakeLists.txt 2020-09-04 15:54:17 UTC (rev 8932) +++ trunk/CMakeLists.txt 2020-09-04 15:54:26 UTC (rev 8933) @@ -3,7 +3,6 @@ project(teraterm_all) -option(SETUP_RELEASE "build setup.exe for release" OFF) option(ENABLE_TTXSAMPLES "TTXSamples" ON) option(MORE_WARNING "stronger warning" OFF) @@ -69,42 +68,6 @@ set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -s -Wl,--gc-sections") endif() -if(EXISTS "${CMAKE_SOURCE_DIR}/.git/svn") - # git-svn - find_package(Git) - if(Git_FOUND) - message("git=${GIT_EXECUTABLE}") - execute_process( - COMMAND ${GIT_EXECUTABLE} svn log --oneline -1 - RESULT_VARIABLE rv - OUTPUT_VARIABLE ov - ERROR_QUIET) - if(${rv}) - message("git svn error? please check git svn") - else() - string(REGEX MATCH "[0-9]+" SVNVERSION "${ov}") - endif() - endif() -elseif(EXISTS "${CMAKE_SOURCE_DIR}/.svn") - # svn - find_package(Subversion) - if(SUBVERSION_FOUND) - if("CMAKE_COMMAND=${CMAKE_COMMAND}" MATCHES "msys") - # svn on msys - file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} MSYS_CMAKE_SOURCE_DIR) - string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" MSYS_CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR}) - Subversion_WC_INFO(${MSYS_CMAKE_SOURCE_DIR} TT) - else() - Subversion_WC_INFO(${CMAKE_SOURCE_DIR} TT) - endif() - set(SVNVERSION "${TT_WC_REVISION}") - endif() -else() - # build without svn,git? - #set(SVNVERSION "0000") -endif() -message("revision=\"${SVNVERSION}\"") - ### tool # perl if (MSVC OR (MINGW AND (EXISTS "c:/windows"))) @@ -123,6 +86,16 @@ ) endif() message("perl=${PERL}") +# svn / git-svn +if(EXISTS "${CMAKE_SOURCE_DIR}/.git/svn") + # git-svn + find_package(Git) + message("git=${GIT_EXECUTABLE}") +elseif(EXISTS "${CMAKE_SOURCE_DIR}/.svn") + # svn + find_package(Subversion) + message("svn=${Subversion_SVN_EXECUTABLE}") +endif() if(NOT $ENV{USER}) set(USER $ENV{USER}) @@ -138,8 +111,9 @@ endif() if(NOT EXISTS "${CMAKE_BINARY_DIR}/build_config.cmake") + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/teraterm/ttpdlg) execute_process( - COMMAND ${PERL} svnrev.pl --svn \"${Subversion_SVN_EXECUTABLE}\" --git \"${GIT_EXECUTABLE}\" --root ${CMAKE_SOURCE_DIR} --header ${CMAKE_CURRENT_BINARY_DIR}/../teraterm/ttpdlg/svnversion.h --cmake ${CMAKE_BINARY_DIR}/build_config.cmake + COMMAND ${PERL} svnrev.pl --svn \"${Subversion_SVN_EXECUTABLE}\" --git \"${GIT_EXECUTABLE}\" --root ${CMAKE_SOURCE_DIR} --header ${CMAKE_BINARY_DIR}/teraterm/ttpdlg/svnversion.h --cmake ${CMAKE_BINARY_DIR}/build_config.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/svnrev_perl ) endif() @@ -147,9 +121,9 @@ message("revision=\"${SVNVERSION}\"") if(DEFINED SVNVERSION) - set(REVISION_TIME_USER "r${SVNVERSION}-${BUILD_TIME}-${USER}") + set(REVISION_TIME_USER "r${SVNVERSION}-${DATE}_${TIME}-${USER}") else() - set(REVISION_TIME_USER "unknown-${BUILD_TIME}-${USER}") + set(REVISION_TIME_USER "unknown-${DATE}_${TIME}-${USER}") endif() if(NOT DEFINED SNAPSHOT_DIR) set(SNAPSHOT_DIR "snapshot-${REVISION_TIME_USER}") @@ -156,10 +130,19 @@ endif() set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/${SNAPSHOT_DIR}") if(NOT DEFINED SETUP_EXE) - set(SETUP_EXE "teraterm-${REVISION_TIME_USER}") + # not need ".exe" + if(RELEASE) + set(SETUP_EXE "teraterm-${VERSION}") + else() + set(SETUP_EXE "teraterm-${VERSION}-${REVISION_TIME_USER}") + endif() endif() if(NOT DEFINED SETUP_ZIP) - set(SETUP_ZIP "teraterm-${REVISION_TIME_USER}.zip") + if(RELEASE) + set(SETUP_ZIP "teraterm-${VERSION}.zip") + else() + set(SETUP_ZIP "teraterm-${VERSION}-${REVISION_TIME_USER}.zip") + endif() endif() ### create buildinfo.txt @@ -169,7 +152,6 @@ @ONLY) ### subdirectories -add_subdirectory(svnrev_perl) add_subdirectory(teraterm) add_subdirectory(ttpmenu) add_subdirectory(TTProxy) Modified: trunk/TTXSamples/TTXCheckUpdate/CMakeLists.txt =================================================================== --- trunk/TTXSamples/TTXCheckUpdate/CMakeLists.txt 2020-09-04 15:54:17 UTC (rev 8932) +++ trunk/TTXSamples/TTXCheckUpdate/CMakeLists.txt 2020-09-04 15:54:26 UTC (rev 8933) @@ -16,6 +16,7 @@ ../../teraterm/common/codeconv.h ../../teraterm/common/dlglib.h ../../teraterm/common/getcontent.h + ${CMAKE_CURRENT_BINARY_DIR}/../../teraterm/ttpdlg/svnversion.h ) source_group( @@ -58,11 +59,6 @@ wininet.lib ) -add_dependencies( - TTXCheckUpdate - svnversion_h - ) - install( TARGETS TTXCheckUpdate RUNTIME Modified: trunk/ci_scripts/build_appveyor.bat =================================================================== --- trunk/ci_scripts/build_appveyor.bat 2020-09-04 15:54:17 UTC (rev 8932) +++ trunk/ci_scripts/build_appveyor.bat 2020-09-04 15:54:26 UTC (rev 8933) @@ -40,8 +40,8 @@ if not exist %BUILD_DIR% mkdir %BUILD_DIR% cd %BUILD_DIR% if exist cmakecache.txt del cmakecache.txt -set ZIP_FILE=snapshot-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY%.zip -set SETUP_FILE=snapshot-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY% +set ZIP_FILE=snapshot-%VERSION%-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY%.zip +set SETUP_FILE=snapshot-%VERSION%-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY% set SNAPSHOT_DIR=snapshot-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY% "%CMAKE_COMMAND%" .. -G "%GENERATOR%" %CMAKE_OPTION_GENERATE% -DSNAPSHOT_DIR=%SNAPSHOT_DIR% -DSETUP_ZIP=%ZIP_FILE% -DSETUP_EXE=%SETUP_FILE% -DSETUP_RELEASE=%RELEASE% "%CMAKE_COMMAND%" --build . --target install %CMAKE_OPTION_BUILD% Modified: trunk/installer/CMakeLists.txt =================================================================== --- trunk/installer/CMakeLists.txt 2020-09-04 15:54:17 UTC (rev 8932) +++ trunk/installer/CMakeLists.txt 2020-09-04 15:54:26 UTC (rev 8933) @@ -322,9 +322,8 @@ NEWLINE_STYLE CRLF ) - set(ISCC_OPTION "/DOUTPUT_FILENAME=${SETUP_EXE}") - if (SETUP_RELEASE) - list(APPEND ISCC_OPTION "/DSETUP_RELEASE=1") + if (RELEASE) + set(ISCC_OPTION "/DSETUP_RELEASE=1") endif() add_custom_target( inno_setup Modified: trunk/installer/teraterm_cmake.iss.in =================================================================== --- trunk/installer/teraterm_cmake.iss.in 2020-09-04 15:54:17 UTC (rev 8932) +++ trunk/installer/teraterm_cmake.iss.in 2020-09-04 15:54:26 UTC (rev 8933) @@ -1,9 +1,4 @@ #define AppName "Tera Term" -#define AppVer "5.0" -#ifdef SETUP_RELEASE -#else -#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', ''); -#endif [InnoIDE_PreCompile] Name: makechm.bat @@ -36,11 +31,11 @@ AppSupportURL=https://ttssh2.osdn.jp/ AppName={#AppName} #ifdef SETUP_RELEASE -AppVersion={#AppVer} -AppVerName={#AppName} {#AppVer} +AppVersion=@VERSION@ +AppVerName={#AppName} @VERSION@ #else -AppVersion={#AppVer}+ snapshot-{#snapshot} -AppVerName={#AppName} {#AppVer}+ +AppVersion=@VERSION @ + snapshot-r @ SVNVERSION@- @ DATE@ +AppVerName={#AppName} @VERSION @ + #endif LicenseFile=@PROJECT_SOURCE_DIR@/installer\release\license.txt DefaultDirName={pf}\teraterm @@ -48,11 +43,7 @@ ShowLanguageDialog=yes AllowNoIcons=true UninstallDisplayIcon={app}\ttermpro.exe -#ifdef SETUP_RELEASE -OutputBaseFilename=teraterm-{#AppVer} -#else -OutputBaseFilename={#OUTPUT_FILENAME} -#endif +OutputBaseFilename=@SETUP_EXE@ PrivilegesRequired=none SolidCompression=yes Compression=lzma2/ultra64 Deleted: trunk/svnrev_perl/CMakeLists.txt =================================================================== --- trunk/svnrev_perl/CMakeLists.txt 2020-09-04 15:54:17 UTC (rev 8932) +++ trunk/svnrev_perl/CMakeLists.txt 2020-09-04 15:54:26 UTC (rev 8933) @@ -1,20 +0,0 @@ - -add_custom_target( - svnversion_h ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/../teraterm/ttpdlg/svnversion.h - SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/svnrev.pl - COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/../teraterm/ttpdlg/svnversion.h" - ) - -add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/../teraterm/ttpdlg/svnversion.h - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/../teraterm/ttpdlg/ - COMMAND ${PERL} svnrev.pl --svn \"${Subversion_SVN_EXECUTABLE}\" --git \"${GIT_EXECUTABLE}\" --root ${CMAKE_SOURCE_DIR} --header ${CMAKE_CURRENT_BINARY_DIR}/../teraterm/ttpdlg/svnversion.h - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ) - -#### -# ソースツリー内に生成ファイルが存在していたら削除する -if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../teraterm/ttpdlg/svnversion.h") - file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/../teraterm/ttpdlg/svnversion.h") -endif() Modified: trunk/svnrev_perl/svnrev.pl =================================================================== --- trunk/svnrev_perl/svnrev.pl 2020-09-04 15:54:17 UTC (rev 8932) +++ trunk/svnrev_perl/svnrev.pl 2020-09-04 15:54:26 UTC (rev 8933) @@ -2,13 +2,16 @@ use Getopt::Long 'GetOptions'; use POSIX 'strftime'; +$version = "5.0"; $svn = "svn"; $git = "git"; $out_header = "svnversion.h"; $out_bat = "sourcetree_info.bat"; +$out_cmake = ""; $source_root = ".."; $date = strftime "%Y%m%d", localtime; $time = strftime "%H%M%S", localtime; +$verbose = 0; GetOptions( 'root=s' => \$source_root, @@ -15,9 +18,24 @@ 'svn=s' => \$svn, 'git=s' => \$git, 'header=s' => \$out_header, - 'bat=s' => \$out_bat + 'bat=s' => \$out_bat, + 'cmake=s' => \$out_cmake ); +$git =~ s/"//g; +$svn =~ s/"//g; + +if ($verbose != 0) { + print "root=$source_root\n"; + print "svn=\"$svn\"\n"; + print "git=\"$git\"\n"; + print "header=$out_header\n"; + print "bat=$out_bat\n"; + print "cmake=$out_cmak\n"; +} + +$header = "This file was generated by svnrev_perl/svnrev.pl"; + if (-d "$source_root/.svn") { # svn infoを実行、出力をすべて取り込む if (!open(my $FD, "-|", "\"$svn\" info $source_root 2>&1")) { @@ -93,7 +111,8 @@ # output for source(C,C++) header open(my $FD, ">$out_header") || die "error $out_header"; -print $FD "/* This file was generated by svnrev_perl/svnrev.pl */\n"; +print $FD "/* $header */\n"; +print $FD "/* #define TT_VERSION_STR \"$version\" check teraterm/common/tt-version.h */\n"; if ($revision == undef) { print $FD "#undef SVNVERSION\n"; } else { @@ -109,7 +128,8 @@ # output for bat file open(my $FD, ">$out_bat") || die "error $out_bat"; -print $FD "\@rem This file was generated by svnrev_perl/svnrev.pl\n"; +print $FD "\@rem $header\n"; +print $FD "set VERSION=$version\n"; if ($revision == undef) { print $FD "set SVNVERSION=unknown\n"; } else { @@ -119,3 +139,19 @@ print $FD "set DATE=$date\n"; print $FD "set TIME=$time\n"; close($FD); + +# output for cmake +if ($out_cmake ne "") { + open(my $FD, ">$out_cmake") || die "error $out_cmake"; + print $FD "# $header\n"; + print $FD "set(VERSION \"$version\")\n"; + if ($revision == undef) { + print $FD "#set(SVNVERSION \"0000\")\n"; + } else { + print $FD "set(SVNVERSION \"$revision\")\n"; + } + print $FD "set(RELEASE $svninfo{'release'})\n"; + print $FD "set(DATE \"$date\")\n"; + print $FD "set(TIME \"$time\")\n"; + close($FD); +} Modified: trunk/teraterm/teraterm/CMakeLists.txt =================================================================== --- trunk/teraterm/teraterm/CMakeLists.txt 2020-09-04 15:54:17 UTC (rev 8932) +++ trunk/teraterm/teraterm/CMakeLists.txt 2020-09-04 15:54:26 UTC (rev 8933) @@ -91,7 +91,7 @@ tt-version.rc teraterm_manifest.rc # -# ${CMAKE_CURRENT_BINARY_DIR}/../ttpdlg/svnversion.h + ${CMAKE_CURRENT_BINARY_DIR}/../ttpdlg/svnversion.h # unicode_test.h unicode.h @@ -245,11 +245,6 @@ uuid ) -add_dependencies( - teraterm - svnversion_h - ) - install( TARGETS teraterm DESTINATION .