cmake_minimum_required(VERSION 3.14...3.25) set (CXX_STANDARD 23) if (DEFINED ENV{ARCH}) set(ARCH $ENV{ARCH}) else() set(ARCH ${CMAKE_SYSTEM_PROCESSOR}) endif() set(EXE_NAME "qr_${CMAKE_PROJECT_VERSION}-${ARCH}") project( qr VERSION 1.1.0 LANGUAGES CXX ) message(STATUS "ARCH:: ${ARCH}") configure_file(main.cpp main_substitute.cpp) file(GLOB_RECURSE sources main_substitute.cpp src/*.hpp src/*.cpp lib/*.hpp lib/*.cpp) add_executable(qr ${sources}) set_target_properties(qr PROPERTIES OUTPUT_NAME ${EXE_NAME}) target_compile_options(qr PUBLIC -Wall -std=c++20 -arch ${ARCH}) target_include_directories(qr PRIVATE src lib) add_custom_target(man ALL) add_custom_command( TARGET man COMMAND help2man -h "-h" -v "-v" -o qr.7 ${EXE_NAME} COMMAND gzip -f qr.7 ) install(TARGETS qr RUNTIME DESTINATION bin) install(PROGRAMS build/${EXE_NAME} DESTINATION bin RENAME qr) install(FILES build/qr.7.gz DESTINATION /usr/local/share/man/man7/)