cmake_minimum_required(VERSION 3.10) project(LicenseManager) set(CMAKE_CXX_STANDARD 20) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) find_package(OpenSSL REQUIRED) find_package(Qt5 COMPONENTS Core Gui Widgets Sql REQUIRED ) file(GLOB SOURCES "src/*" "src/MainWidget/*" "src/LicenseModel/*" "src/EditClientDialog/*" "src/LicenseGenerator/*" "deps/deps.qrc" ) add_executable( ${CMAKE_PROJECT_NAME} ${SOURCES} ) target_include_directories( ${CMAKE_PROJECT_NAME} PUBLIC "./src/" ) target_link_libraries( ${CMAKE_PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Sql Qt5::Widgets OpenSSL::Crypto OpenSSL::SSL ) find_package(Git QUIET) set(GIT_BRANCH "unknown") set(GIT_COMMIT_HASH "unknown") if(GIT_FOUND) execute_process( COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) execute_process( COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if(GIT_BRANCH STREQUAL "HEAD") set(GIT_BRANCH "detached") endif() endif() target_compile_definitions(${PROJECT_NAME} PRIVATE PROJECT_VERSION_STR=\"${PROJECT_NAME}\" GIT_BRANCH_STR=\"${GIT_BRANCH}\" GIT_COMMIT_HASH_STR=\"${GIT_COMMIT_HASH}\" )