File: version.cmake

package info (click to toggle)
dlt-viewer 2.28.1-dfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,524 kB
  • sloc: cpp: 31,907; ansic: 4,231; xml: 492; sh: 244; makefile: 81
file content (72 lines) | stat: -rw-r--r-- 2,952 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
if(NOT WIN32)
    return()
endif()
message(STATUS "windows/version.cmake ${CMAKE_CURRENT_SOURCE_DIR}")

project(GenerateVersion CXX)

set(QT5_MIN_VERSION_REQ "5.5.1")
set(QT6_MIN_VERSION_REQ "6.2.0")

# try to find QT6
find_package(Qt6 "6" COMPONENTS Core Network PrintSupport SerialPort Widgets)
if(Qt6_FOUND)
    set(QT_PREFIX Qt6)
    message(STATUS "Found Qt6 version: ${Qt6Core_VERSION}")
    if(${QT_PREFIX}Core_VERSION VERSION_LESS ${QT6_MIN_VERSION_REQ})
        # Presumably Qt6Core implies all dependent libs too
        message(FATAL_ERROR "Due to SerialPort QT6 minimum version required: ${QT6_MIN_VERSION_REQ}")
    endif()
else()
    find_package(Qt5 "5" REQUIRED COMPONENTS Core Network PrintSupport SerialPort Widgets)
    if(Qt5_FOUND)
        set(QT_PREFIX Qt5)
        message(STATUS "Found Qt5 version: ${Qt5Core_VERSION}")
        if(${QT_PREFIX}Core_VERSION VERSION_LESS ${QT5_MIN_VERSION_REQ})
            # Presumably Qt5Core implies all dependent libs too
            message(FATAL_ERROR "QT5 minimum version required: ${QT5_MIN_VERSION_REQ}")
        endif()
    endif()
endif()

set(DLT_QT_VERSION "${${QT_PREFIX}Core_VERSION}" CACHE STRING "DLT_QT_VERSION")
get_target_property(DLT_QT_LIBRARY_PATH ${QT_PREFIX}::Core LOCATION)
get_filename_component(DLT_QT_LIB_DIR ${DLT_QT_LIBRARY_PATH} DIRECTORY)

find_package(Git REQUIRED)
execute_process(
    COMMAND ${GIT_EXECUTABLE} rev-list --count --no-merges HEAD
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    OUTPUT_VARIABLE GIT_PATCH_VERSION
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

execute_process(
    COMMAND "${CMAKE_CURRENT_SOURCE_DIR}\\scripts\\windows\\parse_version.bat" "${CMAKE_CURRENT_SOURCE_DIR}\\src\\version.h" PACKAGE_MAJOR_VERSION
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/scripts/windows"
    OUTPUT_VARIABLE DLT_PROJECT_VERSION_MAJOR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

execute_process(
    COMMAND "${CMAKE_CURRENT_SOURCE_DIR}\\scripts\\windows\\parse_version.bat" "${CMAKE_CURRENT_SOURCE_DIR}\\src\\version.h" PACKAGE_MINOR_VERSION
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/scripts/windows"
    OUTPUT_VARIABLE DLT_PROJECT_VERSION_MINOR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

execute_process(
    COMMAND "${CMAKE_CURRENT_SOURCE_DIR}\\scripts\\windows\\parse_version.bat" "${CMAKE_CURRENT_SOURCE_DIR}\\src\\version.h" PACKAGE_PATCH_LEVEL
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/scripts/windows"
    OUTPUT_VARIABLE DLT_PROJECT_VERSION_PATCH
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

if(MSVC)
    set(VS_VERSION ${MSVC_TOOLSET_VERSION})
    string(REPLACE "140" "msvc2015" VS_VERSION ${VS_VERSION})
    string(REPLACE "141" "msvc2017" VS_VERSION ${VS_VERSION})
    string(REPLACE "142" "msvc2019" VS_VERSION ${VS_VERSION})
    string(REPLACE "143" "msvc2022" VS_VERSION ${VS_VERSION})
endif()
set(DLT_VERSION_SUFFIX "STABLE-qt${DLT_QT_VERSION}-r${GIT_PATCH_VERSION}_${VS_VERSION}_${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}")