MAINT: Make use of cmake configure for version

Instead of having to change the version number and the build year in all
those files manually, we let cmake do the work by replacing the
respective values in templates.
This commit is contained in:
Robert Adam 2020-09-02 09:22:16 +02:00
parent 8bdf32d480
commit 40090d297f
20 changed files with 77 additions and 67 deletions

View File

@ -12,6 +12,9 @@ set(version "1.4.0" CACHE STRING "Project version")
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]" version_short ${version})
# Get compilation year
string(TIMESTAMP MUMBLE_BUILD_YEAR "%Y")
project(Mumble
VERSION ${version_short}
DESCRIPTION "Open source, low-latency, high quality voice chat."

View File

@ -5,16 +5,18 @@
option(g15-emulator "Build the g15helper executable in emulator mode. This will cause an emulated G15 window to appear on screen. Allows the use of Mumble's G15 support without owning the physical hardware." OFF)
set(G15HELPER_RC "g15helper.rc")
set(G15HELPER_RC "${CMAKE_CURRENT_BINARY_DIR}/g15helper.rc")
set(G15HELPER_ICON "${CMAKE_SOURCE_DIR}/icons/g15helper.ico")
set(G15HELPER_PLIST "${CMAKE_BINARY_DIR}/g15helper.plist")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/g15helper.plist.in" "${G15HELPER_PLIST}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/g15helper.rc.in" "${G15HELPER_RC}")
get_target_property(MUMBLE_SOURCE_DIR mumble SOURCE_DIR)
configure_file(${G15HELPER_RC} ${CMAKE_CURRENT_BINARY_DIR})
add_executable(g15-helper WIN32
"${MUMBLE_SOURCE_DIR}/mumble.appcompat.manifest"
"${CMAKE_CURRENT_BINARY_DIR}/${G15HELPER_RC}"
"${G15HELPER_RC}"
)
set_target_properties(g15-helper

View File

@ -13,8 +13,8 @@
<key>CFBundleSignature</key>
<string>G15H</string>
<key>CFBundleVersion</key>
<string>1.4.0</string>
<string>@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2005-2020 The Mumble Developers</string>
<string>Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers</string>
</dict>
</plist>

View File

@ -36,7 +36,7 @@ VS_VERSION_INFO VERSIONINFO
VALUE "FileDescription", "Mumble G15 LCD Helper"
VALUE "FileVersion", "@PROJECT_VERSION@"
VALUE "ProductVersion", "@PROJECT_VERSION@"
VALUE "LegalCopyright", "Copyright (c) 2005-2020 The Mumble Developers"
VALUE "LegalCopyright", "Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers"
VALUE "OriginalFilename", "mumble-g15-helper.exe"
VALUE "ProductName", "Mumble G15 LCD Helper"
#ifdef SNAPSHOT_BUILD

View File

@ -11,13 +11,15 @@ add_library(MumbleOverlay MODULE
"MumbleOverlay.sdef"
)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/osax.plist.in" "${CMAKE_CURRENT_BINARY_DIR}/osax.plist")
set_target_properties(MumbleOverlay
PROPERTIES
BUNDLE TRUE
BUNDLE_EXTENSION "osax"
RESOURCE "MumbleOverlay.sdef"
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/osax.plist"
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/osax.plist"
)
find_library(LIB_COCOA "Cocoa")

View File

@ -13,7 +13,7 @@
<key>CFBundlePackageType</key>
<string>osax</string>
<key>CFbundleVersion</key>
<string>1.4.0</string>
<string>@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@</string>
<key>CFBundleSignature</key>
<string>MUOL</string>
<key>CSResourcesFileMapped</key>

View File

@ -25,7 +25,9 @@ set(COMPILED_DX11_PIXEL_SHADERS "overlay11.ps.h")
set(COMPILED_DX11_VERTEX_SHADERS "overlay11.vs.h")
set(COMPILED_EFFECTS "overlay.hex")
set(OVERLAY_RC "mumble_ol.rc")
set(OVERLAY_RC "${CMAKE_CURRENT_BINARY_DIR}/mumble_ol.rc")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mumble_ol.rc.in" "${OVERLAY_RC}")
# We save the output name in a variable because it's used by configure_file()
if(64_BIT AND NOT BUILD_OVERLAY_XCOMPILE)
@ -38,8 +40,6 @@ remove_definitions("-DUNICODE")
add_library(overlay SHARED)
configure_file(${OVERLAY_RC} ${CMAKE_CURRENT_BINARY_DIR})
find_program(FXC "fxc" DOC "Effect-Compiler tool")
if(NOT FXC)
message(FATAL_ERROR "Effect-Compiler tool not found!")
@ -102,7 +102,7 @@ target_sources(overlay
"overlay_launchers.h"
"overlay_whitelist.h"
"${CMAKE_CURRENT_BINARY_DIR}/${OVERLAY_RC}"
"${OVERLAY_RC}"
)
set_target_properties(overlay PROPERTIES OUTPUT_NAME ${OUTPUT_NAME})

View File

@ -34,7 +34,7 @@ VS_VERSION_INFO VERSIONINFO
VALUE "FileDescription", "Mumble - Low-latency VoIP client"
VALUE "FileVersion", "@PROJECT_VERSION@"
VALUE "ProductVersion", "@PROJECT_VERSION@"
VALUE "LegalCopyright", "Copyright (c) 2005-2020 The Mumble Developers"
VALUE "LegalCopyright", "Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers"
VALUE "OriginalFilename", "@OUTPUT_NAME@"
VALUE "ProductName", "Mumble"
#ifdef SNAPSHOT_BUILD

View File

@ -3,7 +3,9 @@
# that can be found in the LICENSE file at the root of the
# Mumble source tree or at <https://www.mumble.info/LICENSE>.
set(OVERLAY_EXE_RC "overlay_exe.rc")
set(OVERLAY_EXE_RC "${CMAKE_CURRENT_BINARY_DIR}/overlay_exe.rc")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/overlay_exe.rc.in" "${OVERLAY_EXE_RC}")
add_definitions("-DUNICODE" "-DWIN32_LEAN_AND_MEAN")
@ -18,14 +20,12 @@ if(NOT BUILD_OVERLAY_XCOMPILE)
get_target_property(MUMBLE_SOURCE_DIR mumble SOURCE_DIR)
endif()
configure_file(${OVERLAY_EXE_RC} ${CMAKE_CURRENT_BINARY_DIR})
add_executable(overlay_exe WIN32
"overlay_exe.cpp"
"overlay_exe.h"
"${MUMBLE_SOURCE_DIR}/mumble.appcompat.manifest"
"${CMAKE_CURRENT_BINARY_DIR}/${OVERLAY_EXE_RC}"
"${OVERLAY_EXE_RC}"
)
set_target_properties(overlay_exe PROPERTIES OUTPUT_NAME ${OUTPUT_NAME})

View File

@ -18,13 +18,13 @@
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
PRODUCTVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VER_DEBUG|VER_RELEASE)
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE 0L
FILEVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
PRODUCTVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VER_DEBUG|VER_RELEASE)
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE 0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -34,7 +34,7 @@ VS_VERSION_INFO VERSIONINFO
VALUE "FileDescription", "Mumble - Low-latency VoIP client"
VALUE "FileVersion", "@PROJECT_VERSION@"
VALUE "ProductVersion", "@PROJECT_VERSION@"
VALUE "LegalCopyright", "Copyright (c) 2005-2020 The Mumble Developers"
VALUE "LegalCopyright", "Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers"
VALUE "OriginalFilename", "@OUTPUT_NAME@"
VALUE "ProductName", "Mumble"
#ifdef SNAPSHOT_BUILD

View File

@ -18,13 +18,13 @@
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,0,0
PRODUCTVERSION 1,4,0,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VER_DEBUG|VER_RELEASE)
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE 0L
FILEVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
PRODUCTVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VER_DEBUG|VER_RELEASE)
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE 0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -32,9 +32,9 @@ VS_VERSION_INFO VERSIONINFO
BEGIN
VALUE "CompanyName", "The Mumble Developers"
VALUE "FileDescription", "Mumble - Low-latency VoIP client"
VALUE "FileVersion", "1.4.0"
VALUE "ProductVersion", "1.4.0"
VALUE "LegalCopyright", "Copyright (c) 2005-2020 The Mumble Developers"
VALUE "FileVersion", "@PROJECT_VERSION@"
VALUE "ProductVersion", "@PROJECT_VERSION@"
VALUE "LegalCopyright", "Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers"
VALUE "OriginalFilename", "mumble_ol_x64.dll"
VALUE "ProductName", "Mumble"
#ifdef SNAPSHOT_BUILD

View File

@ -18,13 +18,13 @@
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,0,0
PRODUCTVERSION 1,4,0,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VER_DEBUG|VER_RELEASE)
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE 0L
FILEVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
PRODUCTVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VER_DEBUG|VER_RELEASE)
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE 0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -32,9 +32,9 @@ VS_VERSION_INFO VERSIONINFO
BEGIN
VALUE "CompanyName", "The Mumble Developers"
VALUE "FileDescription", "Mumble - Low-latency VoIP client"
VALUE "FileVersion", "1.4.0"
VALUE "ProductVersion", "1.4.0"
VALUE "LegalCopyright", "Copyright (c) 2005-2020 The Mumble Developers"
VALUE "FileVersion", "@PROJECT_VERSION@"
VALUE "ProductVersion", "@PROJECT_VERSION@"
VALUE "LegalCopyright", "Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers"
VALUE "OriginalFilename", "mumble_ol_helper_x64.exe"
VALUE "ProductName", "Mumble"
#ifdef SNAPSHOT_BUILD

View File

@ -3,13 +3,17 @@
# that can be found in the LICENSE file at the root of the
# Mumble source tree or at <https://www.mumble.info/LICENSE>.
set(MUMBLE_RC "mumble.rc")
set(MUMBLE_DLL_RC "mumble_dll.rc")
set(MUMBLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/mumble.plist")
set(MUMBLE_RC "${CMAKE_CURRENT_BINARY_DIR}/mumble.rc")
set(MUMBLE_DLL_RC "${CMAKE_CURRENT_BINARY_DIR}/mumble_dll.rc")
set(MUMBLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/mumble.plist")
set(MUMBLE_ICON "${CMAKE_SOURCE_DIR}/icons/mumble.ico")
set(MUMBLE_ICNS "${CMAKE_SOURCE_DIR}/icons/mumble.icns")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mumble.rc.in" "${MUMBLE_RC}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mumble_dll.rc.in" "${MUMBLE_DLL_RC}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mumble.plist.in" "${MUMBLE_PLIST}")
include(qt-utils)
option(update "Check for updates by default." ON)
@ -254,20 +258,17 @@ if(static AND WIN32)
set_target_properties(mumble PROPERTIES PREFIX "")
endif()
configure_file(${MUMBLE_DLL_RC} ${CMAKE_CURRENT_BINARY_DIR})
target_sources(mumble PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/${MUMBLE_DLL_RC}")
target_sources(mumble PRIVATE "${MUMBLE_DLL_RC}")
add_subdirectory("${SHARED_SOURCE_DIR}/mumble_exe" "${CMAKE_BINARY_DIR}/mumble_exe")
else()
add_executable(mumble ${MUMBLE_SOURCES})
if(WIN32)
configure_file(${MUMBLE_RC} ${CMAKE_CURRENT_BINARY_DIR})
target_sources(mumble
PRIVATE
"mumble.appcompat.manifest"
"${CMAKE_CURRENT_BINARY_DIR}/${MUMBLE_RC}"
"${MUMBLE_RC}"
)
if(elevation)

View File

@ -26,9 +26,9 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>1.4.0</string>
<string>@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2005-2020 The Mumble Developers</string>
<string>Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>

View File

@ -36,7 +36,7 @@ VS_VERSION_INFO VERSIONINFO
VALUE "FileDescription", "Mumble - Low-latency VoIP client"
VALUE "FileVersion", "@PROJECT_VERSION@"
VALUE "ProductVersion", "@PROJECT_VERSION@"
VALUE "LegalCopyright", "Copyright (c) 2005-2020 The Mumble Developers"
VALUE "LegalCopyright", "Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers"
VALUE "OriginalFilename", "mumble.exe"
VALUE "ProductName", "Mumble"
#ifdef SNAPSHOT_BUILD

View File

@ -34,7 +34,7 @@ VS_VERSION_INFO VERSIONINFO
VALUE "FileDescription", "Mumble - Low-latency VoIP client"
VALUE "FileVersion", "@PROJECT_VERSION@"
VALUE "ProductVersion", "@PROJECT_VERSION@"
VALUE "LegalCopyright", "Copyright (c) 2005-2020 The Mumble Developers"
VALUE "LegalCopyright", "Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers"
VALUE "OriginalFilename", "mumble_app.dll"
VALUE "ProductName", "Mumble"
#ifdef SNAPSHOT_BUILD

View File

@ -7,14 +7,14 @@ add_executable(mumble_exe WIN32)
target_include_directories(mumble_exe PRIVATE "${SHARED_SOURCE_DIR}")
configure_file("${SHARED_SOURCE_DIR}/mumble/${MUMBLE_RC}" ${CMAKE_CURRENT_BINARY_DIR})
configure_file("${SHARED_SOURCE_DIR}/mumble/mumble.rc.in" "${CMAKE_CURRENT_BINARY_DIR}/mumble.rc")
target_sources(mumble_exe PRIVATE
"mumble_exe.cpp"
"Overlay.cpp"
"${SHARED_SOURCE_DIR}/mumble/mumble.appcompat.manifest"
"${CMAKE_CURRENT_BINARY_DIR}/${MUMBLE_RC}"
"${MUMBLE_RC}"
)
set_target_properties(mumble_exe

View File

@ -3,8 +3,12 @@
# that can be found in the LICENSE file at the root of the
# Mumble source tree or at <https://www.mumble.info/LICENSE>.
set(MURMUR_RC "murmur.rc")
set(MURMUR_RC "${CMAKE_CURRENT_BINARY_DIR}/murmur.rc")
set(MURMUR_ICON "${CMAKE_SOURCE_DIR}/icons/murmur.ico")
set(MURMUR_PLIST "${CMAKE_CURRENT_BINARY_DIR}/murmur.plist")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/murmur.plist.in" "${MURMUR_PLIST}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/murmur.rc.in" "${MURMUR_RC}")
set(GRPC_FILE "${CMAKE_CURRENT_SOURCE_DIR}/MurmurRPC.proto")
set(ICE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Murmur.ice")
@ -98,8 +102,6 @@ if(static)
endif()
if(WIN32)
configure_file(${MURMUR_RC} ${CMAKE_CURRENT_BINARY_DIR})
target_sources(murmur
PRIVATE
"About.cpp"
@ -109,7 +111,7 @@ if(WIN32)
"murmur.qrc"
"${SHARED_SOURCE_DIR}/mumble/mumble.appcompat.manifest"
"${CMAKE_CURRENT_BINARY_DIR}/${MURMUR_RC}"
"${MURMUR_RC}"
)
find_pkg(Qt5 COMPONENTS Widgets REQUIRED)

View File

@ -13,8 +13,8 @@
<key>CFBundleSignature</key>
<string>MMUR</string>
<key>CFBundleVersion</key>
<string>1.4.0</string>
<string>@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2005-2020 The Mumble Developers</string>
<string>Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers</string>
</dict>
</plist>

View File

@ -36,7 +36,7 @@ VS_VERSION_INFO VERSIONINFO
VALUE "FileDescription", "Murmur - Low-latency VoIP server"
VALUE "FileVersion", "@PROJECT_VERSION@"
VALUE "ProductVersion", "@PROJECT_VERSION@"
VALUE "LegalCopyright", "Copyright (c) 2005-2020 The Mumble Developers"
VALUE "LegalCopyright", "Copyright (c) 2005-@MUMBLE_BUILD_YEAR@ The Mumble Developers"
VALUE "OriginalFilename", "murmur.exe"
VALUE "ProductName", "Mumble"
#ifdef SNAPSHOT_BUILD