Lines Matching +full:set +full:- +full:version

2 cmake_minimum_required (VERSION 3.10...3.22)
4 project (benchmark VERSION 1.9.0 LANGUAGES CXX)
10 option(BENCHMARK_ENABLE_WERROR "Build Release candidates with -Werror." ON)
11 option(BENCHMARK_FORCE_WERROR "Build Release candidates with -Werror regardless of compiler issues.…
15 set(BENCHMARK_ENABLE_WERROR OFF)
18 set(BENCHMARK_ENABLE_WERROR OFF)
21 set(BENCHMARK_ENABLE_WERROR ON)
25 option(BENCHMARK_BUILD_32_BITS "Build a 32 bit version of the library." OFF)
27set(BENCHMARK_BUILD_32_BITS OFF CACHE BOOL "Build a 32 bit version of the library - unsupported wh…
35 option(BENCHMARK_DOWNLOAD_DEPENDENCIES "Allow the downloading and in-tree building of unmet depende…
38 # in cases where it is not possible to build or find a valid version of gtest.
45 set(CMAKE_CXX_VISIBILITY_PRESET hidden)
46 set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
49 # As of CMake 3.18, CMAKE_SYSTEM_PROCESSOR is not set properly for MSVC and
50 # cross-compilation (e.g. Host=x86_64, target=aarch64) requires using the
52 # See https://gitlab.kitware.com/cmake/cmake/-/issues/15170
53 set(CMAKE_SYSTEM_PROCESSOR ${MSVC_CXX_ARCHITECTURE_ID})
55 set(CMAKE_CROSSCOMPILING TRUE)
59 set(ENABLE_ASSEMBLY_TESTS_DEFAULT OFF)
64 # FIXME: The --coverage flag needs to be removed when building assembly
82 set(LLVM_FILECHECK_EXE "${LLVM_FILECHECK_EXE}" CACHE PATH "llvm filecheck" FORCE)
88 set(ENABLE_ASSEMBLY_TESTS_DEFAULT ON PARENT_SCOPE)
101 # Read the git tags to determine the project version
105 # If no git version can be determined, use the version
108 set(VERSION "v${benchmark_VERSION}") variable
110 set(VERSION "${GIT_VERSION}") variable
113 # Normalize version: drop "v" prefix, replace first "-" with ".",
114 # drop everything after second "-" (including said "-").
115 string(STRIP ${VERSION} VERSION)
116 if(VERSION MATCHES v[^-]*-)
117 string(REGEX REPLACE "v([^-]*)-([0-9]+)-.*" "\\1.\\2" NORMALIZED_VERSION ${VERSION})
119 string(REGEX REPLACE "v(.*)" "\\1" NORMALIZED_VERSION ${VERSION})
123 message(STATUS "Google Benchmark version: ${VERSION}, normalized to ${NORMALIZED_VERSION}")
125 # The version of the libraries
126 set(GENERIC_LIB_VERSION ${NORMALIZED_VERSION})
138 add_required_cxx_compiler_flag(-m32)
141 set(BENCHMARK_CXX_STANDARD 14)
143 set(CMAKE_CXX_STANDARD ${BENCHMARK_CXX_STANDARD})
144 set(CMAKE_CXX_STANDARD_REQUIRED YES)
145 set(CMAKE_CXX_EXTENSIONS OFF)
149 string(REGEX REPLACE "[-/]W[1-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
150 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
151 add_definitions(-D_CRT_SECURE_NO_WARNINGS)
154 add_cxx_compiler_flag(-EHs-)
155 add_cxx_compiler_flag(-EHa-)
156 add_definitions(-D_HAS_EXCEPTIONS=0)
160 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
161 set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG")
162 set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG")
163 set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
165 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /GL")
166 …string(REGEX REPLACE "[-/]INCREMENTAL" "/INCREMENTAL:NO" CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO …
167set(CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO} /LTCG")
168 …string(REGEX REPLACE "[-/]INCREMENTAL" "/INCREMENTAL:NO" CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO …
169set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /LTCG")
170 …string(REGEX REPLACE "[-/]INCREMENTAL" "/INCREMENTAL:NO" CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${…
171 set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /LTCG")
173 set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /GL")
174 set(CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL "${CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL} /LTCG")
175 set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL} /LTCG")
176 set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} /LTCG")
179 # Turn on Large-file Support
180 add_definitions(-D_FILE_OFFSET_BITS=64)
181 add_definitions(-D_LARGEFILE64_SOURCE)
182 add_definitions(-D_LARGEFILE_SOURCE)
184 add_cxx_compiler_flag(-Wall)
185 add_cxx_compiler_flag(-Wextra)
186 add_cxx_compiler_flag(-Wshadow)
187 add_cxx_compiler_flag(-Wfloat-equal)
188 add_cxx_compiler_flag(-Wold-style-cast)
189 add_cxx_compiler_flag(-Wconversion)
191 add_cxx_compiler_flag(-Werror)
195 add_cxx_compiler_flag(-Wsuggest-override)
197 add_cxx_compiler_flag(-pedantic)
198 add_cxx_compiler_flag(-pedantic-errors)
199 add_cxx_compiler_flag(-Wshorten-64-to-32)
200 add_cxx_compiler_flag(-fstrict-aliasing)
203 add_cxx_compiler_flag(-Wno-deprecated-declarations)
205 # Intel silently ignores '-Wno-deprecated-declarations',
208 add_cxx_compiler_flag(-wd1786)
209 add_cxx_compiler_flag(-fno-finite-math-only)
211 # Disable deprecation warnings for release builds (when -Werror is enabled).
213 add_cxx_compiler_flag(-Wno-deprecated)
216 add_cxx_compiler_flag(-fno-exceptions)
220 …NOT CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") #ICC17u2: Many false positives for Wstrict-aliasing
221 add_cxx_compiler_flag(-Wstrict-aliasing)
226 add_cxx_compiler_flag(-wd654)
227 add_cxx_compiler_flag(-Wthread-safety)
229 … cxx_feature_check(THREAD_SAFETY_ATTRIBUTES "-DINCLUDE_DIRECTORIES=${PROJECT_SOURCE_DIR}/include")
237 add_definitions(-D_GNU_SOURCE=1)
241 add_definitions(-D_QNX_SOURCE)
246 add_cxx_compiler_flag(-flto)
247 add_cxx_compiler_flag(-Wno-lto-type-mismatch)
249 find_program(GCC_AR gcc-ar)
251 set(CMAKE_AR ${GCC_AR})
253 find_program(GCC_RANLIB gcc-ranlib)
255 set(CMAKE_RANLIB ${GCC_RANLIB})
258 include(llvm-toolchain)
263 set(BENCHMARK_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG}"
266 set(BENCHMARK_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_FLAGS_DEBUG}"
269 set(BENCHMARK_SHARED_LINKER_FLAGS_COVERAGE "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}"
276 set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
278 add_cxx_compiler_flag(--coverage COVERAGE)
283 add_cxx_compiler_flag(-stdlib=libc++)
287 add_cxx_compiler_flag(-nostdinc++)
289 # Adding -nodefaultlibs directly to CMAKE_<TYPE>_LINKER_FLAGS will break
291 list(APPEND BENCHMARK_CXX_LINKER_FLAGS -nodefaultlibs)
292 # -lc++ cannot be added directly to CMAKE_<TYPE>_LINKER_FLAGS because
293 # linker flags appear before all linker inputs and -lc++ must appear after.
296 message(FATAL_ERROR "-DBENCHMARK_USE_LIBCXX:BOOL=ON is not supported for compiler")
300 set(EXTRA_CXX_FLAGS "")
303 set(EXTRA_CXX_FLAGS "-DCMAKE_CXX_STANDARD=14")
321 set(THREADS_PREFER_PTHREAD_FLAG ON)
329 # Set up directories