71 lines
2.6 KiB
CMake
71 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
|
|
# for revision info
|
|
if(GIT_FOUND)
|
|
# defines DOLPHIN_WC_REVISION
|
|
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
|
|
OUTPUT_VARIABLE DOLPHIN_WC_REVISION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
# defines DOLPHIN_WC_DESCRIBE
|
|
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long --dirty
|
|
OUTPUT_VARIABLE DOLPHIN_WC_DESCRIBE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
# remove hash (and trailing "-0" if needed) from description
|
|
string(REGEX REPLACE "(-0)?-[^-]+((-dirty)?)$" "\\2" DOLPHIN_WC_DESCRIBE "${DOLPHIN_WC_DESCRIBE}")
|
|
|
|
# defines DOLPHIN_WC_BRANCH
|
|
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
|
OUTPUT_VARIABLE DOLPHIN_WC_BRANCH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
# defines DOLPHIN_WC_COMMITS_AHEAD_MASTER
|
|
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD ^master
|
|
OUTPUT_VARIABLE DOLPHIN_WC_COMMITS_AHEAD_MASTER
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
# defines DOLPHIN_WC_TAG
|
|
execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --exact-match HEAD
|
|
OUTPUT_VARIABLE DOLPHIN_WC_TAG
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_QUIET)
|
|
endif()
|
|
|
|
# version number
|
|
set(DOLPHIN_VERSION_MAJOR "2412")
|
|
set(DOLPHIN_VERSION_MINOR "0")
|
|
set(DOLPHIN_VERSION_PATCH ${DOLPHIN_WC_REVISION})
|
|
|
|
# If Dolphin is not built from a Git repository, default the version info to
|
|
# reasonable values.
|
|
if(NOT DOLPHIN_WC_REVISION)
|
|
set(DOLPHIN_WC_DESCRIBE "${DOLPHIN_VERSION_MAJOR}.${DOLPHIN_VERSION_MINOR}")
|
|
set(DOLPHIN_WC_REVISION "${DOLPHIN_WC_DESCRIBE} (no further info)")
|
|
set(DOLPHIN_WC_BRANCH "master")
|
|
set(DOLPHIN_WC_COMMITS_AHEAD_MASTER 0)
|
|
endif()
|
|
|
|
# If this is a tag (i.e. a release), then set the current patch version and
|
|
# the number of commits ahead to zero.
|
|
if(DOLPHIN_WC_TAG)
|
|
set(DOLPHIN_VERSION_PATCH "0")
|
|
set(DOLPHIN_WC_COMMITS_AHEAD_MASTER 0)
|
|
endif()
|
|
|
|
function(configure_source_file path)
|
|
configure_file(
|
|
"${PROJECT_SOURCE_DIR}/${path}.in"
|
|
"${PROJECT_BINARY_DIR}/${path}.tmp"
|
|
)
|
|
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_BINARY_DIR}/${path}.tmp" "${PROJECT_BINARY_DIR}/${path}")
|
|
|
|
file(REMOVE "${PROJECT_BINARY_DIR}/${path}.tmp")
|
|
endfunction()
|
|
|
|
configure_source_file("Source/Core/Common/scmrev.h")
|
|
|
|
if(APPLE)
|
|
configure_source_file("Source/Core/DolphinQt/Info.plist")
|
|
configure_source_file("Source/Core/MacUpdater/Info.plist")
|
|
endif()
|