cmake_minimum_required(VERSION 3.16) project(fileUpdater LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) if (MSVC) add_compile_options(/utf-8) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() execute_process( COMMAND git rev-parse --short HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE VERSION_GIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND git rev-parse --abbrev-ref HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE VERSION_GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) configure_file(fileUpdaterVer.h.in fileUpdaterVer.h) message(STATUS "Version file config to: ${CMAKE_CURRENT_BINARY_DIR}") include_directories(${CMAKE_CURRENT_BINARY_DIR}) find_package(fmt REQUIRED) find_package(tinyxml2 REQUIRED) find_package(CLI11 REQUIRED) find_package(spdlog REQUIRED) find_package(Boost REQUIRED COMPONENTS locale filesystem nowide) add_executable(fileUpdater main.cpp) target_link_libraries(fileUpdater PRIVATE fmt::fmt Boost::locale Boost::filesystem Boost::nowide CLI11::CLI11 spdlog::spdlog tinyxml2::tinyxml2 ) include(GNUInstallDirs) install(TARGETS fileUpdater LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )