1 snippet cmake "CMakeFiles Stub" b
 
   2 cmake_minimum_required(VERSION `cmake --version | grep -Po '\d+\.\d+'`)
 
   3 project(${1:ProjectName})
 
   5 set(CMAKE_CXX_STANDARD 17)
 
   6 set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
 
   7 set(CMAKE_C_STANDARD 17)
 
   8 set(CMAKE_C_STANDARD_REQUIRED TRUE)
 
  10 add_executable(${2:$1}
 
  14 target_link_libraries($2
 
  18 snippet pprint "Pretty print variables" b
 
  19 include(CMakePrintHelpers)
 
  20 cmake_print_variables(${1:var1})
 
  23 snippet qt5 "Find Qt5 Modules" b
 
  31 foreach(qt5_module ${qt5_modules})
 
  32         find_package(${qt5_module} REQUIRED)
 
  43 find_package(${0:LIBRARY})
 
  47 file(GLOB ${1:SRCS} *.${0:cpp})
 
  51 add_subdirectory(${0:src})
 
  56 add_library(\${PROJECT_NAME}::$1 ALIAS $1)
 
  57 target_sources($1 PRIVATE
 
  60 target_link_libraries($1
 
  69 target_link_libraries(\${PROJECT_NAME}
 
  75 add_executable(${1:bin})
 
  76 target_sources($1 PRIVATE
 
  79 target_link_libraries($1 PRIVATE
 
  85 set(${1:var} ${0:val})
 
  89 add_dependencies(${1:target}
 
  95 set_target_properties(${1:target} ${2:PROPERTIES}
 
  96         ${3:COMPILE_FLAGS} ${0:"-O3 -Wall -pedantic"}
 
 100 snippet debug_targets "Debug targets" b
 
 101 set(CMAKE_DEBUG_TARGET_PROPERTIES
 
 108         POSITION_INDEPENDENT_CODE
 
 112 snippet FPP "FPP Copyright" b
 
 113 # Copyright © Focal Point Positioning Limited `!v strftime("%Y")`. All Rights Reserved.
 
 114 # This code is the copyright of Focal Point Positioning Limited and
 
 115 # cannot be used, copied or distributed without the express written
 
 116 # permission of Focal Point Positioning Limited.
 
 120 snippet FetchContent_url "FetchContent" b
 
 121 FetchContent_Declare(${1:name}
 
 122         URL ${2:https://example.com/project.tar.gz}
 
 124 FetchContent_MakeAvailable(${1/\w+/\L$0\E/})
 
 127 snippet FetchContent_git "FetchContent" b
 
 128 FetchContent_Declare(${1:name}
 
 129         GIT_REPOSITORY ${2:https://github.com/${3:user/repo}}
 
 131 FetchContent_MakeAvailable(${1/\w+/\L$0\E/})