From: Mike Gelfand Date: Tue, 14 Apr 2015 22:46:40 +0000 (+0000) Subject: Add version info to executables (on Windows). Group projects into folders (CMake). X-Git-Tag: 2.90~196 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=829cbffaf79cab02860f1a957933b6d791efe70f;p=transmission Add version info to executables (on Windows). Group projects into folders (CMake). --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e7d4ecec..6c37b73ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,6 +92,8 @@ if("${TR_SCM_REVISION}" STREQUAL "") set(TR_SCM_REVISION 0) endif() +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + set(CURL_MINIMUM 7.15.4) set(EVENT2_MINIMUM 2.0.10) set(OPENSSL_MINIMUM 0.9.4) diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt index 0928314d9..a2c97f6b2 100644 --- a/cli/CMakeLists.txt +++ b/cli/CMakeLists.txt @@ -2,7 +2,12 @@ project(trcli) include_directories(${CMAKE_SOURCE_DIR}) -add_executable(${TR_NAME}-cli cli.c) +tr_win32_app_info(${PROJECT_NAME}_WIN32_RC_FILE + "Transmission Utility ('cli', obsolete)" + "${TR_NAME}-cli" + "${TR_NAME}-cli.exe") + +add_executable(${TR_NAME}-cli cli.c ${${PROJECT_NAME}_WIN32_RC_FILE}) include_directories(${TR_NAME}-cli ${CURL_INCLUDE_DIRS}) target_link_libraries(${TR_NAME}-cli ${TR_NAME}) diff --git a/cmake/TrMacros.cmake b/cmake/TrMacros.cmake index e058ddb35..51eb11c15 100644 --- a/cmake/TrMacros.cmake +++ b/cmake/TrMacros.cmake @@ -104,6 +104,8 @@ macro(tr_add_external_auto_library ID LIBNAME) "-DCMAKE_INSTALL_PREFIX:PATH=" ) + set_property(TARGET ${${ID}_UPSTREAM_TARGET} PROPERTY FOLDER "ThirdParty") + set(${ID}_INCLUDE_DIR "${${ID}_PREFIX}/include" CACHE INTERNAL "") set(${ID}_LIBRARY "${${ID}_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LIBNAME}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE INTERNAL "") @@ -119,3 +121,20 @@ function(tr_append_target_property TGT PROP VAL) endif() set_target_properties(${TGT} PROPERTIES ${PROP} "${VAL}") endfunction() + +function(tr_win32_app_info OVAR DESCR INTNAME ORIGFNAME) + if(NOT WIN32) + return() + endif() + + set(TR_FILE_DESCRIPTION "${DESCR}") + set(TR_INTERNAL_NAME "${INTNAME}") + set(TR_ORIGINAL_FILENAME "${ORIGFNAME}") + if(ARGN) + set(TR_MAIN_ICON "${ARGN}") + endif() + + configure_file("${CMAKE_SOURCE_DIR}/cmake/Transmission.rc.in" "${INTNAME}.rc") + + set(${OVAR} "${CMAKE_CURRENT_BINARY_DIR}/${INTNAME}.rc" PARENT_SCOPE) +endfunction() diff --git a/cmake/Transmission.rc.in b/cmake/Transmission.rc.in new file mode 100644 index 000000000..2e47e14d6 --- /dev/null +++ b/cmake/Transmission.rc.in @@ -0,0 +1,51 @@ +#include "winresrc.h" +#include + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#pragma code_page(1252) + +#ifdef TR_STABLE_RELEASE + #define TR_FF_PRERELEASE 0x0L +#else + #define TR_FF_PRERELEASE VS_FF_PRERELEASE +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION MAJOR_VERSION, MINOR_VERSION, 0, 0 + PRODUCTVERSION MAJOR_VERSION, MINOR_VERSION, 0, 0 + FILEFLAGSMASK VS_FF_DEBUG | TR_FF_PRERELEASE +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG | TR_FF_PRERELEASE +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "Transmission Project" + VALUE "FileDescription", "${TR_FILE_DESCRIPTION}" + VALUE "FileVersion", LONG_VERSION_STRING + VALUE "InternalName", "${TR_INTERNAL_NAME}" + VALUE "LegalCopyright", "2005-2015 Transmission Project" + VALUE "OriginalFilename", "${TR_ORIGINAL_FILENAME}" + VALUE "ProductName", "Transmission" + VALUE "ProductVersion", LONG_VERSION_STRING + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0400, 1200 + END +END + +#cmakedefine TR_MAIN_ICON "${TR_MAIN_ICON}" + +#ifdef TR_MAIN_ICON +MAINICON ICON TR_MAIN_ICON +#endif diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt index 2325ef435..763ae6478 100644 --- a/daemon/CMakeLists.txt +++ b/daemon/CMakeLists.txt @@ -34,7 +34,15 @@ set(${PROJECT_NAME}_HEADERS watch.h ) -add_executable(${TR_NAME}-daemon ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) +tr_win32_app_info(${PROJECT_NAME}_WIN32_RC_FILE + "Transmission Daemon" + "${TR_NAME}-daemon" + "${TR_NAME}-daemon.exe") + +add_executable(${TR_NAME}-daemon + ${${PROJECT_NAME}_SOURCES} + ${${PROJECT_NAME}_HEADERS} + ${${PROJECT_NAME}_WIN32_RC_FILE}) set_target_properties(${TR_NAME}-daemon PROPERTIES COMPILE_FLAGS "${SYSTEMD_DAEMON_CFLAGS}" @@ -46,7 +54,12 @@ target_link_libraries(${TR_NAME}-daemon ${EVENT2_LIBRARIES} ) -add_executable(${TR_NAME}-remote remote.c) +tr_win32_app_info(${PROJECT_NAME}_remote_WIN32_RC_FILE + "Transmission Utility ('remote')" + "${TR_NAME}-remote" + "${TR_NAME}-remote.exe") + +add_executable(${TR_NAME}-remote remote.c ${${PROJECT_NAME}_remote_WIN32_RC_FILE}) target_link_libraries(${TR_NAME}-remote ${TR_NAME} diff --git a/gtk/CMakeLists.txt b/gtk/CMakeLists.txt index 9a2bf109c..94224c5de 100644 --- a/gtk/CMakeLists.txt +++ b/gtk/CMakeLists.txt @@ -135,10 +135,17 @@ add_definitions( ${GTK_CFLAGS_OTHER} ) +tr_win32_app_info(${PROJECT_NAME}_WIN32_RC_FILE + "Transmission GTK+ Client" + "${TR_NAME}-gtk" + "${TR_NAME}-gtk.exe" + "${TR_NAME}.ico") + add_executable(${TR_NAME}-gtk WIN32 ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS} ${${PROJECT_NAME}_DESKTOP_FILE} + ${${PROJECT_NAME}_WIN32_RC_FILE} ) target_link_libraries(${TR_NAME}-gtk diff --git a/libtransmission/CMakeLists.txt b/libtransmission/CMakeLists.txt index 87997c465..5e6856211 100644 --- a/libtransmission/CMakeLists.txt +++ b/libtransmission/CMakeLists.txt @@ -224,6 +224,7 @@ if(ENABLE_TESTS) ) target_link_libraries(${TR_NAME}-test ${TR_NAME}) + set_property(TARGET ${TR_NAME}-test PROPERTY FOLDER "UnitTests") set(crypto-test_ADD_SOURCES crypto-test-ref.h) @@ -232,6 +233,7 @@ if(ENABLE_TESTS) add_executable(${TP} ${T}-test.c ${${T}-test_ADD_SOURCES}) target_link_libraries(${TP} ${TR_NAME} ${TR_NAME}-test) add_test(${T} ${TP}) + set_property(TARGET ${TP} PROPERTY FOLDER "UnitTests") endforeach() endif() diff --git a/qt/CMakeLists.txt b/qt/CMakeLists.txt index 4eb7b62ce..ceaec3c58 100644 --- a/qt/CMakeLists.txt +++ b/qt/CMakeLists.txt @@ -167,12 +167,19 @@ add_definitions( -DQT_NO_CAST_FROM_ASCII ) +tr_win32_app_info(${PROJECT_NAME}_WIN32_RC_FILE + "Transmission Qt Client" + "transmission-qt" + "transmission-qt.exe" + "qtr.ico") + add_executable(${TR_NAME}-qt WIN32 ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_UI_SOURCES} ${${PROJECT_NAME}_QRC_SOURCES} ${${PROJECT_NAME}_HEADERS} ${${PROJECT_NAME}_QM_FILES} + ${${PROJECT_NAME}_WIN32_RC_FILE} ) target_link_libraries(${TR_NAME}-qt diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 37eace9f7..7528fe1bd 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -3,7 +3,12 @@ project(trutils) include_directories(${CMAKE_SOURCE_DIR}) foreach(P create edit show) - add_executable(${TR_NAME}-${P} ${P}.c) + tr_win32_app_info(${PROJECT_NAME}_${P}_WIN32_RC_FILE + "Transmission Utility ('${P}')" + "${TR_NAME}-${P}" + "${TR_NAME}-${P}.exe") + + add_executable(${TR_NAME}-${P} ${P}.c ${${PROJECT_NAME}_${P}_WIN32_RC_FILE}) include_directories(${TR_NAME}-${P} ${EVENT2_INCLUDE_DIRS} ${CURL_INCLUDE_DIRS}) target_link_libraries(${TR_NAME}-${P} ${TR_NAME})