cmake_minimum_required(VERSION 3.16) # Project setup if(NOT DEFINED PROJECT_NAME) set(PROJECT_NAME "path_checker") endif() string(TIMESTAMP PROJECT_VERSION "%Y.%m%d.%H%M") project(${PROJECT_NAME} VERSION ${PROJECT_VERSION} LANGUAGES CXX) # Build configuration set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXE_LINKER_FLAGS "-static") set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") set(BUILD_SHARED_LIBS OFF) # Configure version.hpp and create executable file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/version.hpp" "#pragma once\n#define PROJECT_VERSION \"${PROJECT_VERSION}\"\n") add_custom_target(run_prebuild_script ALL COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/cmake_prebuild.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) add_executable(${PROJECT_NAME} path_checker.cpp) add_dependencies(${PROJECT_NAME} run_prebuild_script) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})