From d4f0b6f434911840e2762f89ca0de460f38133f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guilloux?= Date: Tue, 20 Apr 2021 21:38:46 +0200 Subject: [PATCH] Fix: [CMake] Auto-fill version details in rev.cpp and ottres.rc (#9066) --- CMakeLists.txt | 7 ++++++- cmake/scripts/FindVersion.cmake | 10 ++++++++++ src/os/windows/ottdres.rc.in | 4 ++-- src/rev.cpp.in | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 63a0ce2fe8b0..87d055047fa6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,9 @@ if(NOT BINARY_NAME) set(BINARY_NAME openttd) endif() -project(${BINARY_NAME}) +project(${BINARY_NAME} + VERSION 1.12.0 +) if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) message(FATAL_ERROR "In-source builds not allowed. Please run \"cmake ..\" from the build directory. You may need to delete \"${CMAKE_SOURCE_DIR}/CMakeCache.txt\" first.") @@ -72,6 +74,9 @@ add_custom_target(find_version ${CMAKE_COMMAND} -DFIND_VERSION_BINARY_DIR=${CMAKE_BINARY_DIR}/generated -DCPACK_BINARY_DIR=${CMAKE_BINARY_DIR} + -DREV_MAJOR=${CMAKE_PROJECT_VERSION_MAJOR} + -DREV_MINOR=${CMAKE_PROJECT_VERSION_MINOR} + -DREV_BUILD=${CMAKE_PROJECT_VERSION_PATCH} -P "${CMAKE_SOURCE_DIR}/cmake/scripts/FindVersion.cmake" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} BYPRODUCTS ${GENERATED_SOURCE_FILES} diff --git a/cmake/scripts/FindVersion.cmake b/cmake/scripts/FindVersion.cmake index ebbe58244a2b..6e4a2b390921 100644 --- a/cmake/scripts/FindVersion.cmake +++ b/cmake/scripts/FindVersion.cmake @@ -1,5 +1,15 @@ cmake_minimum_required(VERSION 3.5) +if(NOT REV_MAJOR) + set(REV_MAJOR 0) +endif() +if(NOT REV_MINOR) + set(REV_MINOR 0) +endif() +if(NOT REV_BUILD) + set(REV_BUILD 0) +endif() + # # Finds the current version of the current folder. # diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 741fa0e10533..31309382cfd0 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -77,8 +77,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,11,0,${REV_ISODATE} - PRODUCTVERSION 1,11,0,${REV_ISODATE} + FILEVERSION ${REV_MAJOR},${REV_MINOR},${REV_BUILD},${REV_ISODATE} + PRODUCTVERSION ${REV_MAJOR},${REV_MINOR},${REV_BUILD},${REV_ISODATE} FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L diff --git a/src/rev.cpp.in b/src/rev.cpp.in index 208588a71171..3939ca5a0eda 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -85,4 +85,4 @@ const byte _openttd_revision_tagged = ${REV_ISTAG}; * final release will always have a lower version number than the released * version, thus making comparisons on specific revisions easy. */ -const uint32 _openttd_newgrf_version = 1 << 28 | 12 << 24 | 0 << 20 | ${REV_ISSTABLETAG} << 19 | 28004; +const uint32 _openttd_newgrf_version = ${REV_MAJOR} << 28 | ${REV_MINOR} << 24 | ${REV_BUILD} << 20 | ${REV_ISSTABLETAG} << 19 | 28004;