Add version info to executables (on Windows). Group projects into folders (CMake).

This commit is contained in:
Mike Gelfand 2015-04-14 22:46:40 +00:00
parent 53a0fc2a19
commit 829cbffaf7
9 changed files with 115 additions and 4 deletions

View File

@ -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)

View File

@ -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})

View File

@ -104,6 +104,8 @@ macro(tr_add_external_auto_library ID LIBNAME)
"-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>"
)
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()

51
cmake/Transmission.rc.in Normal file
View File

@ -0,0 +1,51 @@
#include "winresrc.h"
#include <libtransmission/version.h>
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

View File

@ -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}

View File

@ -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

View File

@ -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()

View File

@ -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

View File

@ -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})