waitui/app/CMakeLists.txt
2022-01-20 23:49:46 +01:00

51 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.21 FATAL_ERROR)
include("project-meta-info.in")
project(waitui
VERSION ${project_version}
DESCRIPTION ${project_description}
HOMEPAGE_URL ${project_homepage}
LANGUAGES C
)
add_executable(waitui)
target_sources(waitui
PRIVATE
"src/main.c"
"${CMAKE_CURRENT_BINARY_DIR}/include/waitui/version.h"
)
target_include_directories(waitui PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include")
target_link_libraries(waitui PRIVATE log)
find_package(Git)
if (GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
include(GetGitRevisionDescription)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD OUTPUT_VARIABLE SHORT_SHA OUTPUT_STRIP_TRAILING_WHITESPACE)
set(REVISION ${SHORT_SHA} CACHE STRING "git short sha" FORCE)
# only use the plugin to tie the configure state to the sha to force rebuilds
# of files that depend on version.h
include(GetGitRevisionDescription)
get_git_head_revision(REFSPEC COMMITHASH)
else ()
message(WARNING "Git not found, cannot set version info")
set(REVISION "unknown")
endif ()
if (NOT project_prerelease STREQUAL "")
set(WAITUI_VERSION_IS_PRERELEASE ON)
endif ()
math(EXPR PROJECT_VERSION_LONG "${PROJECT_VERSION_MAJOR} * 10000 + ${PROJECT_VERSION_MINOR} * 100 + ${PROJECT_VERSION_PATCH}")
configure_file(
"include/waitui/version.h.in"
"${CMAKE_CURRENT_BINARY_DIR}/include/waitui/version.h"
@ONLY
)