this repo has no description
1set(CMAKE_CXX_STANDARD 11)
2
3option(USE_ADDRESS_SANITIZER "Use GCC Address Sanitizer" OFF)
4if(USE_ADDRESS_SANITIZER)
5 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
6 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
7endif()
8
9set(CMAKE_REQUIRED_QUIET $<NOT:${VERBOSE}>)
10
11include(CheckCXXCompilerFlag)
12
13set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
14check_cxx_compiler_flag(-Werror HAS_WERROR)
15
16if(HAS_WERROR)
17 set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror")
18endif()
19
20check_cxx_source_compiles("int main(void) { static __thread int x; (void)x; return 0;}" HAS_ATTR_THREAD)
21
22if(NOT HAS_ATTR_THREAD)
23 check_cxx_source_compiles("int main(void) { __declspec(thread) static int x; (void)x; return 0;}" HAS_DECLSPEC_THREAD)
24endif()
25
26check_cxx_source_compiles("#include <cstdlib>
27int main(void) { long long int x = atoll(\"123\"); (void)x; }" HAS_ATOLL)
28check_cxx_source_compiles("
29#include <stdio.h>
30#include <stdlib.h>
31#include <string.h>
32#include <errno.h>
33#include <libproc.h>
34#include <unistd.h>
35
36int main (int argc, char* argv[])
37{
38 pid_t pid = getpid();
39 char path[PROC_PIDPATHINFO_MAXSIZE];
40 (void) proc_pidpath (pid, path, sizeof(path));
41 return 0;
42}
43" HAS_PIDPATH)
44
45check_cxx_source_compiles("
46#include <windows.h>
47int main (int argc, char* argv[]) {
48 char path[MAX_PATH];
49 (void) GetModuleFileName(NULL, path, MAX_PATH);
50 return 0;
51}" HAS_GETMODULEFILENAME)
52
53check_cxx_source_compiles("
54#include <windows.h>
55int main (int argc, char* argv[]) {
56 (void) GetFileAttributes(NULL);
57 return 0;
58}" HAS_GETFILEATTRIBUTES)
59
60check_cxx_source_compiles("
61#include <string.h>
62int main (int argc, char* argv[]) {
63 (void) memcpy_s(NULL,0,NULL,0);
64 return 0;
65}" HAS_MEMCPY_S)