1
- #[[
1
+ #[[
2
2
Licensed to the Apache Software Foundation (ASF) under one
3
3
or more contributor license agreements. See the NOTICE file
4
4
distributed with this work for additional information
@@ -23,10 +23,10 @@ cmake_policy(SET CMP0079 NEW)
23
23
set (TsFile_CPP_VERSION 2.1.0.dev)
24
24
set (CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -Wall" )
25
25
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" )
26
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=maybe-uninitialized" )
26
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=maybe-uninitialized -D__STDC_FORMAT_MACROS " )
27
27
endif ()
28
- message ("cmake using: USE_CPP11=${USE_CPP11} " )
29
28
29
+ message ("cmake using: USE_CPP11=${USE_CPP11} " )
30
30
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
31
31
32
32
if (DEFINED ENV{CXX})
@@ -50,42 +50,59 @@ if (${COV_ENABLED})
50
50
message ("add_definitions -DCOV_ENABLED=1" )
51
51
endif ()
52
52
53
- message ("build type: ${BUILD_TYPE} " )
53
+
54
+ if (NOT CMAKE_BUILD_TYPE )
55
+ set (CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE)
56
+ endif ()
57
+
58
+ message ("CMAKE BUILD TYPE " ${CMAKE_BUILD_TYPE} )
54
59
if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
55
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g" )
56
- set (CMAKE_CXX_FLAGS_DEBUG " ${CMAKE_CXX_FLAGS} -O0 -g" )
60
+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g" )
57
61
elseif (CMAKE_BUILD_TYPE STREQUAL "Release" )
58
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g" ) # disable -g
59
- set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} " )
62
+ set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2" )
60
63
elseif (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" )
61
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g" )
62
- set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS} " )
64
+ set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g" )
63
65
elseif (CMAKE_BUILD_TYPE STREQUAL "MinSizeRel" )
64
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffunction-sections -fdata-sections -Os" )
65
- set (LDFLAGS "-Wl,--gc-sections" )
66
- set (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS} " )
67
- endif ()
66
+ set (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -ffunction-sections -fdata-sections -Os" )
67
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections" )
68
+ endif ()
68
69
message ("CMAKE DEBUG: CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} " )
69
70
71
+ # disable asan by default.
72
+ option (ENABLE_ASAN "Enable Address Sanitizer" OFF )
73
+
74
+ if (NOT WIN32 )
75
+ if (ENABLE_ASAN)
76
+ message ("Address Sanitizer is enabled." )
77
+
78
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer" )
79
+
80
+ if (NOT APPLE )
81
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libasan" )
82
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address -static-libasan" )
83
+ else ()
84
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address" )
85
+ endif ()
86
+ else ()
87
+ message ("Address Sanitizer is disabled." )
88
+ endif ()
89
+ endif ()
90
+
91
+
92
+ # All libs will be stored here, including libtsfile, compress-encoding lib.
70
93
set (LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR} /lib)
71
- set (PROJECT_INCLUDE_DIR ${PROJECT_INCLUDE_DIR}
72
- ${PROJECT_SOURCE_DIR} /src
73
- ${PROJECT_SOURCE_DIR} /third_party/lz4
74
- ${PROJECT_SOURCE_DIR} /third_party/lzokay
75
- ${PROJECT_SOURCE_DIR} /third_party/zlib-1.2.13
76
- ${PROJECT_BINARY_DIR} /third_party/zlib-1.2.13
77
- )
78
94
79
- set ( EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR} /bin)
80
- include_directories ( ${PROJECT_INCLUDE_DIR} )
95
+ # TsFile code will be stored here.
96
+ set (PROJECT_SRC_DIR ${PROJECT_SOURCE_DIR} /src )
81
97
82
- include_directories (${PROJECT_SOURCE_DIR} /third_party/antlr4-cpp-runtime-4/runtime/src)
98
+ # All include files will be installed here.
99
+ set (LIBRARY_INCLUDE_DIR ${PROJECT_BINARY_DIR} /include )
100
+ set (THIRD_PARTY_INCLUDE ${PROJECT_BINARY_DIR} /third_party)
83
101
84
102
add_subdirectory (third_party)
85
-
86
103
add_subdirectory (src)
87
-
88
104
add_subdirectory (test )
105
+ add_subdirectory (examples)
89
106
if (TESTS_ENABLED)
90
107
add_dependencies (TsFile_Test tsfile)
91
108
endif ()
0 commit comments