-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcommon.cmake
74 lines (62 loc) · 2 KB
/
common.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Copyright (C) 2025 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
option(USE_IAA "Use IAA (requires QPL)" OFF)
option(USE_QAT "Use QAT (requires QATzip)" OFF)
option(DEBUG_LOG "for logging" ON)
option(COVERAGE "for coverage" OFF)
if(USE_IAA)
add_compile_definitions(USE_IAA)
endif()
if(USE_QAT)
add_compile_definitions(USE_QAT)
endif()
if(DEBUG_LOG)
add_compile_definitions(DEBUG_LOG)
endif()
set(COMPILER_FLAGS "-Wall -Wextra -Werror \
-flto -fvisibility=hidden \
-Wformat -Wformat-security -Werror=format-security \
-D_FORTIFY_SOURCE=2 \
-fstack-protector-strong")
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
message(STATUS "GCC detected.")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wl,-z,noexecstack,-z,relro,-z,now -mindirect-branch-register")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
message(STATUS "Clang detected.")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=cfi -mretpoline")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMPILER_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_FLAGS}")
if(CMAKE_BUILD_TYPE STREQUAL Debug)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0")
endif()
if(COVERAGE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
endif()
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
if(USE_IAA)
if(NOT DEFINED QPL_PATH)
find_package(Qpl REQUIRED)
if(Qpl_FOUND)
message(STATUS "Found QPL: ${Qpl_DIR}")
link_libraries(Qpl::qpl)
endif()
else()
message(STATUS "Using QPL_PATH: ${QPL_PATH}")
include_directories(${QPL_PATH}/include/qpl ${QPL_PATH}/include)
link_directories(PUBLIC ${QPL_PATH}/lib64 ${QPL_PATH}/lib)
link_libraries(qpl)
endif()
endif()
if(USE_QAT)
if(DEFINED QATZIP_PATH)
message(STATUS "Using QATZIP_PATH: ${QATZIP_PATH}")
include_directories(${QATZIP_PATH}/include)
link_directories(PUBLIC ${QATZIP_PATH}/src/.libs)
endif()
link_libraries(qatzip)
endif()
link_libraries(z)