blob: ed294ea79351adea4b69face566233655cdee654 (
plain)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
macro(check_append_cxx_compiler_flag OUTPUT_VAR)
foreach(CHECK_FLAG ${ARGN})
check_cxx_compiler_flag(${CHECK_FLAG}
"check_cxx_compiler_flag_${CHECK_FLAG}")
if(check_cxx_compiler_flag_${CHECK_FLAG})
list(APPEND ${OUTPUT_VAR} ${CHECK_FLAG})
endif()
endforeach()
endmacro()
if(NOT PATCH_PROTOBUF_SOURCES_OPTIONS_SET)
if(MSVC)
unset(PATCH_PROTOBUF_SOURCES_OPTIONS CACHE)
set(PATCH_PROTOBUF_SOURCES_OPTIONS /wd4244 /wd4251 /wd4267 /wd4309)
if(MSVC_VERSION GREATER_EQUAL 1922)
# see
# https://docs.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=vs-2019#improvements_162
# for detail
list(APPEND PATCH_PROTOBUF_SOURCES_OPTIONS /wd5054)
endif()
if(MSVC_VERSION GREATER_EQUAL 1925)
list(APPEND PATCH_PROTOBUF_SOURCES_OPTIONS /wd4996)
endif()
if(MSVC_VERSION LESS 1910)
list(APPEND PATCH_PROTOBUF_SOURCES_OPTIONS /wd4800)
endif()
else()
unset(PATCH_PROTOBUF_SOURCES_OPTIONS CACHE)
include(CheckCXXCompilerFlag)
check_append_cxx_compiler_flag(
PATCH_PROTOBUF_SOURCES_OPTIONS -Wno-type-limits
-Wno-deprecated-declarations -Wno-unused-parameter)
endif()
set(PATCH_PROTOBUF_SOURCES_OPTIONS_SET TRUE)
if(PATCH_PROTOBUF_SOURCES_OPTIONS)
set(PATCH_PROTOBUF_SOURCES_OPTIONS
${PATCH_PROTOBUF_SOURCES_OPTIONS}
CACHE INTERNAL
"Options to disable warning of generated protobuf sources" FORCE)
endif()
endif()
function(patch_protobuf_sources)
if(PATCH_PROTOBUF_SOURCES_OPTIONS)
foreach(PROTO_SRC ${ARGN})
unset(PROTO_SRC_OPTIONS)
get_source_file_property(PROTO_SRC_OPTIONS ${PROTO_SRC} COMPILE_OPTIONS)
if(PROTO_SRC_OPTIONS)
list(APPEND PROTO_SRC_OPTIONS ${PATCH_PROTOBUF_SOURCES_OPTIONS})
else()
set(PROTO_SRC_OPTIONS ${PATCH_PROTOBUF_SOURCES_OPTIONS})
endif()
set_source_files_properties(
${PROTO_SRC} PROPERTIES COMPILE_OPTIONS "${PROTO_SRC_OPTIONS}")
endforeach()
unset(PROTO_SRC)
unset(PROTO_SRC_OPTIONS)
endif()
endfunction()
function(patch_protobuf_targets)
if(PATCH_PROTOBUF_SOURCES_OPTIONS)
foreach(PROTO_TARGET ${ARGN})
unset(PROTO_TARGET_OPTIONS)
get_target_property(PROTO_TARGET_OPTIONS ${PROTO_TARGET} COMPILE_OPTIONS)
if(PROTO_TARGET_OPTIONS)
list(APPEND PROTO_TARGET_OPTIONS ${PATCH_PROTOBUF_SOURCES_OPTIONS})
else()
set(PROTO_TARGET_OPTIONS ${PATCH_PROTOBUF_SOURCES_OPTIONS})
endif()
set_target_properties(
${PROTO_TARGET} PROPERTIES COMPILE_OPTIONS "${PROTO_TARGET_OPTIONS}")
endforeach()
unset(PROTO_TARGET)
unset(PROTO_TARGET_OPTIONS)
endif()
endfunction()
function(project_build_tools_get_imported_location OUTPUT_VAR_NAME TARGET_NAME)
if(CMAKE_BUILD_TYPE)
string(TOUPPER "IMPORTED_LOCATION_${CMAKE_BUILD_TYPE}"
TRY_SPECIFY_IMPORTED_LOCATION)
get_target_property(${OUTPUT_VAR_NAME} ${TARGET_NAME}
${TRY_SPECIFY_IMPORTED_LOCATION})
endif()
if(NOT ${OUTPUT_VAR_NAME})
get_target_property(${OUTPUT_VAR_NAME} ${TARGET_NAME} IMPORTED_LOCATION)
endif()
if(NOT ${OUTPUT_VAR_NAME})
get_target_property(
project_build_tools_get_imported_location_IMPORTED_CONFIGURATIONS
${TARGET_NAME} IMPORTED_CONFIGURATIONS)
foreach(
project_build_tools_get_imported_location_IMPORTED_CONFIGURATION IN
LISTS project_build_tools_get_imported_location_IMPORTED_CONFIGURATIONS)
get_target_property(
${OUTPUT_VAR_NAME}
${TARGET_NAME}
"IMPORTED_LOCATION_${project_build_tools_get_imported_location_IMPORTED_CONFIGURATION}"
)
if(${OUTPUT_VAR_NAME})
break()
endif()
endforeach()
endif()
if(${OUTPUT_VAR_NAME})
set(${OUTPUT_VAR_NAME}
${${OUTPUT_VAR_NAME}}
PARENT_SCOPE)
endif()
endfunction()
|