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/})