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 )