Skip to content

Commit 2c64fbd

Browse files
authored
Boost update to 1.70.0 (#23)
1 parent 6a27efa commit 2c64fbd

File tree

8 files changed

+528
-5
lines changed

8 files changed

+528
-5
lines changed

CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,18 @@ find_package(ZLIB REQUIRED)
1717
find_package(OpenSSL 1.1.0 EXACT REQUIRED)
1818

1919
find_package(Boost
20-
1.68.0 EXACT
20+
1.70.0 EXACT
2121
REQUIRED
2222
COMPONENTS
2323
filesystem
2424
iostreams
2525
system
2626
date_time
2727
)
28+
29+
include(cppcheck)
30+
31+
cppcheck(EXCLUDE "")
2832

2933
file(GLOB_RECURSE SRC_FILES ${PROJECT_SOURCE_DIR}/src/*.cc ${PROJECT_SOURCE_DIR}/src/*/*.c ${PROJECT_SOURCE_DIR}/src/*/*.cpp)
3034

@@ -91,9 +95,11 @@ target_compile_definitions(slobs-updater
9195

9296
find_program(WIN_MT "mt.exe")
9397

98+
9499
if (NOT WIN_MT)
95100
message(FATAL_ERROR "Failed to find mt.exe to embed manifest")
96101
endif ()
102+
cppcheck_add_project(slobs-updater)
97103

98104
add_custom_command(
99105
TARGET slobs-updater

appveyor.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ init:
88
environment:
99
ZLIB_DIST_NAME: zlib-1.2.11-static-mt
1010
OPENSSL_DIST_NAME: openssl-1.1.0h
11-
BOOST_DIST_NAME: boost-vc141-1_68_0-bin
11+
BOOST_DIST_NAME: boost-vc141-1_70_0-bin
1212
DEPS_DIST_URI: https://s3-us-west-2.amazonaws.com/streamlabs-obs-updater-deps/
1313
DEPS_LOCAL_PATH: C:\projects\slobs-updater-deps
1414
ZLIB_ROOT: $(DEPS_LOCAL_PATH)\$(ZLIB_DIST_NAME)
@@ -23,8 +23,6 @@ environment:
2323
matrix:
2424
- BUILD_TYPE: Release
2525
- BUILD_TYPE: Debug
26-
- BUILD_TYPE: MinSizeRel
27-
- BUILD_TYPE: RelWithDebInfo
2826

2927
install:
3028
- nuget install secure-file -ExcludeVersion

cmake/cppcheck.cmake

Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,258 @@
1+
set(CPPCHECK_PROJECTS "")
2+
set(CPPCHECK_ARGUMENTS "")
3+
set(CPPCHECK_PLATFORM "")
4+
set(CPPCHECK_LIBRARIES "")
5+
6+
include(CMakeParseArguments)
7+
8+
function(cppcheck)
9+
set(CPPCHECK_PATH "" CACHE PATH "Path to cppcheck binary")
10+
set(CPPCHECK_BIN "cppcheck.exe" CACHE STRING "CPPCheck Binary File")
11+
set(CPPCHECK_ENABLE_INCONCLUSIVE ON CACHE BOOL "Enable inconclusive checks?")
12+
set(CPPCHECK_ENABLE_MISSING_INCLUDE ON CACHE BOOL "Check for missing includes?")
13+
set(CPPCHECK_ENABLE_UNUSED_FUNCTION OFF CACHE BOOL "Check for unused functions?")
14+
set(CPPCHECK_ENABLE_INFORMATION ON CACHE BOOL "Enable information messages?")
15+
set(CPPCHECK_ENABLE_PORTABILITY ON CACHE BOOL "Enable portability messages?")
16+
set(CPPCHECK_ENABLE_PERFORMANCE ON CACHE BOOL "Enable performance messages?")
17+
set(CPPCHECK_ENABLE_WARNING ON CACHE BOOL "Enable warning messages?")
18+
set(CPPCHECK_STD_POSIX OFF CACHE BOOL "POSIX Standard Compatibility Checks")
19+
set(CPPCHECK_STD_C89 OFF CACHE BOOL "C89 Standard Compatibility Checks")
20+
set(CPPCHECK_STD_C99 OFF CACHE BOOL "C99 Standard Compatibility Checks")
21+
set(CPPCHECK_STD_C11 ON CACHE BOOL "C11 Standard Compatibility Checks")
22+
set(CPPCHECK_STD_CPP03 OFF CACHE BOOL "C++03 Standard Compatibility Checks")
23+
set(CPPCHECK_STD_CPP11 OFF CACHE BOOL "C++11 Standard Compatibility Checks")
24+
set(CPPCHECK_STD_CPP14 ON CACHE BOOL "C++14 Standard Compatibility Checks")
25+
set(CPPCHECK_FORCE_C OFF CACHE BOOL "Force checking with C language")
26+
set(CPPCHECK_FORCE_CPP OFF CACHE BOOL "Force checking with C++ language (overrides CPPCHECK_FORCE_C)")
27+
set(CPPCHECK_VERBOSE ON CACHE BOOL "Show more detailed error reports")
28+
set(CPPCHECK_QUIET ON CACHE BOOL "Hide progress reports")
29+
set(CPPCHECK_PROGRESS OFF CACHE BOOL "Report checking progress ")
30+
set(CPPCHECK_LIBRARIES "" CACHE STRING "List of Libraries to load separated by semicolon")
31+
set(CPPCHECK_EXCLUDE_DIRECTORIES "" CACHE STRING "List of directories to exclude separated by semicolon")
32+
set(CPPCHECK_PARALLEL_TASKS "4" CACHE STRING "Number of threads to use for cppcheck")
33+
set(CPPCHECK_CHECK_CONFIG OFF CACHE BOOL "Run cppcheck to check only its config")
34+
35+
if(WIN32)
36+
set(CPPCHECK_WIN32_UNICODE ON CACHE BOOL "Use Unicode character encoding for Win32")
37+
endif()
38+
39+
mark_as_advanced(CPPCHECK_BIN CPPCHECK_QUIET CPPCHECK_VERBOSE CPPCHECK_LIBRARIES CPPCHECK_PROGRESS CPPCHECK_ENABLE_INCONCLUSIVE CPPCHECK_PARALLEL_TASKS CPPCHECK_CHECK_CONFIG)
40+
41+
# Parse arguments
42+
set(cppcheck_options )
43+
set(cppcheck_oneval )
44+
set(cppcheck_mulval EXCLUDE)
45+
cmake_parse_arguments(
46+
CPPCHECKP
47+
"${cppcheck_options}"
48+
"${cppcheck_oneval}"
49+
"${cppcheck_mulval}"
50+
${ARGN}
51+
)
52+
53+
# Detect Architecture (Bitness)
54+
math(EXPR BITS "8*${CMAKE_SIZEOF_VOID_P}")
55+
56+
# Detect Platform
57+
if(WIN32)
58+
if(BITS EQUAL "32")
59+
if(CPPCHECK_WIN32_UNICODE)
60+
set(CPPCHECK_PLATFORM "win32U")
61+
else()
62+
set(CPPCHECK_PLATFORM "win32A")
63+
endif()
64+
else()
65+
set(CPPCHECK_PLATFORM "win64")
66+
endif()
67+
elseif(("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") OR ("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD") OR APPLE)
68+
if(BITS EQUAL "32")
69+
set(CPPCHECK_PLATFORM "unix32")
70+
else()
71+
set(CPPCHECK_PLATFORM "unix64")
72+
endif()
73+
else()
74+
set(CPPCHECK_PLATFORM "unspecified")
75+
endif()
76+
if(WIN32)
77+
list(APPEND CPPCHECK_LIBRARIES "windows")
78+
elseif("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD")
79+
list(APPEND CPPCHECK_LIBRARIES "bsd")
80+
elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
81+
list(APPEND CPPCHECK_LIBRARIES "gnu")
82+
endif()
83+
84+
# Arguments
85+
set(CPPCHECK_ARGUMENTS "")
86+
87+
# Compiler
88+
if(MSVC)
89+
#set(CPPCHECK_TEMPLATE_FORMAT "\{id\}:\{file\}:\{line\}") #format for suppressions list file generation
90+
set(CPPCHECK_TEMPLATE_FORMAT "vs") #visual studio output format usefull to run from IDE
91+
list(APPEND CPPCHECK_ARGUMENTS --template=${CPPCHECK_TEMPLATE_FORMAT})
92+
endif()
93+
94+
# Flags
95+
if(CPPCHECK_ENABLE_INCONCLUSIVE)
96+
list(APPEND CPPCHECK_ARGUMENTS --inconclusive)
97+
endif()
98+
if(CPPCHECK_VERBOSE)
99+
list(APPEND CPPCHECK_ARGUMENTS -v)
100+
endif()
101+
if(CPPCHECK_QUIET)
102+
list(APPEND CPPCHECK_ARGUMENTS -q)
103+
endif()
104+
if(CPPCHECK_PROGRESS)
105+
list(APPEND CPPCHECK_ARGUMENTS --report-progress)
106+
endif()
107+
108+
if(CPPCHECK_PLATFORM)
109+
list(APPEND CPPCHECK_ARGUMENTS --platform=${CPPCHECK_PLATFORM})
110+
endif()
111+
if(CPPCHECK_PARALLEL_TASKS)
112+
list(APPEND CPPCHECK_ARGUMENTS -j ${CPPCHECK_PARALLEL_TASKS})
113+
endif()
114+
if(CPPCHECK_CHECK_CONFIG)
115+
list(APPEND CPPCHECK_ARGUMENTS --check-config )
116+
endif()
117+
118+
119+
# Libraries
120+
foreach(_library ${CPPCHECK_LIBRARIES})
121+
list(APPEND CPPCHECK_ARGUMENTS --library=${_library})
122+
endforeach()
123+
124+
# Exclusion
125+
foreach(_path ${CPPCHECK_EXCLUDE_DIRECTORIES})
126+
file(TO_NATIVE_PATH "${_path}" _npath)
127+
if(MSVC)
128+
list(APPEND CPPCHECK_ARGUMENTS --suppress=*:${_npath}\\*)
129+
else()
130+
list(APPEND CPPCHECK_ARGUMENTS -i${_npath})
131+
endif()
132+
endforeach()
133+
if(CPPCHECKP_EXCLUDE)
134+
foreach(_path ${CPPCHECKP_EXCLUDE})
135+
file(TO_NATIVE_PATH "${_path}" _npath)
136+
if(MSVC)
137+
list(APPEND CPPCHECK_ARGUMENTS --suppress=*:${_npath}\\*)
138+
else()
139+
list(APPEND CPPCHECK_ARGUMENTS -i${_npath})
140+
endif()
141+
endforeach()
142+
endif()
143+
144+
# Checks
145+
if(CPPCHECK_ENABLE_MISSING_INCLUDE)
146+
list(APPEND CPPCHECK_ARGUMENTS --enable=missingInclude)
147+
endif()
148+
if(CPPCHECK_ENABLE_UNUSED_FUNCTION)
149+
list(APPEND CPPCHECK_ARGUMENTS --enable=unusedFunction)
150+
endif()
151+
if(CPPCHECK_ENABLE_INFORMATION)
152+
list(APPEND CPPCHECK_ARGUMENTS --enable=information)
153+
endif()
154+
if(CPPCHECK_ENABLE_PORTABILITY)
155+
list(APPEND CPPCHECK_ARGUMENTS --enable=portability)
156+
endif()
157+
if(CPPCHECK_ENABLE_PERFORMANCE)
158+
list(APPEND CPPCHECK_ARGUMENTS --enable=performance)
159+
endif()
160+
if(CPPCHECK_ENABLE_WARNING)
161+
list(APPEND CPPCHECK_ARGUMENTS --enable=warning)
162+
endif()
163+
164+
# Std
165+
if(CPPCHECK_STD_POSIX)
166+
list(APPEND CPPCHECK_ARGUMENTS --std=posix)
167+
endif()
168+
if(CPPCHECK_STD_C89)
169+
list(APPEND CPPCHECK_ARGUMENTS --std=c89)
170+
endif()
171+
if(CPPCHECK_STD_C99)
172+
list(APPEND CPPCHECK_ARGUMENTS --std=c99)
173+
endif()
174+
if(CPPCHECK_STD_C11)
175+
list(APPEND CPPCHECK_ARGUMENTS --std=c11)
176+
endif()
177+
if(CPPCHECK_STD_CPP03)
178+
list(APPEND CPPCHECK_ARGUMENTS --std=c++03)
179+
endif()
180+
if(CPPCHECK_STD_CPP11)
181+
list(APPEND CPPCHECK_ARGUMENTS --std=c++11)
182+
endif()
183+
if(CPPCHECK_STD_CPP14)
184+
list(APPEND CPPCHECK_ARGUMENTS --std=c++14)
185+
endif()
186+
187+
# Force Language
188+
if(CPPCHECK_FORCE_CPP)
189+
list(APPEND CPPCHECK_ARGUMENTS --language=c++)
190+
elseif(CPPCHECK_FORCE_C)
191+
list(APPEND CPPCHECK_ARGUMENTS --language=c)
192+
endif()
193+
194+
find_program(CPPCHECK_EXIST ${CPPCHECK_BIN})
195+
IF(CPPCHECK_EXIST)
196+
add_custom_target(
197+
CPPCHECK
198+
)
199+
ENDIF()
200+
201+
# Propagate to parent scope
202+
set(CPPCHECK_PROJECTS "${CPPCHECK_PROJECTS}" PARENT_SCOPE)
203+
set(CPPCHECK_ARGUMENTS "${CPPCHECK_ARGUMENTS}" PARENT_SCOPE)
204+
set(CPPCHECK_PLATFORM "${CPPCHECK_PLATFORM}" PARENT_SCOPE)
205+
set(CPPCHECK_LIBRARIES "${CPPCHECK_LIBRARIES}" PARENT_SCOPE)
206+
endfunction()
207+
208+
function(cppcheck_add_project u_project)
209+
list(APPEND CPPCHECK_PROJECTS ${u_project})
210+
211+
# Include Directories
212+
get_target_property(_INCLUDE_DIRECTORIES ${u_project} INCLUDE_DIRECTORIES)
213+
foreach(_path ${_INCLUDE_DIRECTORIES})
214+
file(TO_NATIVE_PATH "${_path}" _npath)
215+
list(APPEND CPPCHECK_ARGUMENTS -I${_npath})
216+
endforeach()
217+
218+
list(APPEND CPPCHECK_ARGUMENTS --suppressions-list=${PROJECT_SOURCE_DIR}/cppcheck_suppressions_list.txt )
219+
220+
if(MSVC)
221+
IF(CPPCHECK_EXIST)
222+
add_custom_target(
223+
CPPCHECK_${u_project}
224+
COMMAND "${CPPCHECK_BIN}" ${CPPCHECK_ARGUMENTS} --project=${${u_project}_BINARY_DIR}/${u_project}.sln
225+
COMMAND_EXPAND_LISTS
226+
VERBATIM
227+
)
228+
ENDIF()
229+
else()
230+
# Non-MSVC and Unix (Linux, FreeBSD, APPLE) need to have -I, -i, -D and -U specified manually.
231+
# Each file can be added to --file-list= as a comma separated list.
232+
233+
# Defines
234+
get_target_property(_COMPILE_DEFINITIONS ${u_project} COMPILE_DEFINITIONS)
235+
foreach(_def ${_COMPILE_DEFINITIONS})
236+
list(APPEND CPPCHECK_ARGUMENTS -D${_def})
237+
endforeach()
238+
239+
# Source Files
240+
get_target_property(_SOURCES ${u_project} SOURCES)
241+
foreach(_path ${_SOURCES})
242+
file(TO_NATIVE_PATH "${_path}" _npath)
243+
list(APPEND CPPCHECK_ARGUMENTS ${_npath})
244+
endforeach()
245+
246+
IF(CPPCHECK_EXIST)
247+
add_custom_target(
248+
CPPCHECK_${u_project}
249+
COMMAND "${CPPCHECK_BIN}" ${CPPCHECK_ARGUMENTS}
250+
COMMAND_EXPAND_LISTS
251+
VERBATIM
252+
)
253+
ENDIF()
254+
endif()
255+
IF(CPPCHECK_EXIST)
256+
add_dependencies(CPPCHECK CPPCHECK_${u_project})
257+
ENDIF()
258+
endfunction()

0 commit comments

Comments
 (0)