@@ -148,11 +148,22 @@ add_compile_options(
148
148
$<$<CXX_COMPILER_ID:Clang,AppleClang>:-fcolor-diagnostics>
149
149
$<$<CXX_COMPILER_ID:GNU>:-fdiagnostics-color=always>)
150
150
151
- set (CA_COMPILE_OPTIONS
151
+ # Enable warnings as errors when not a subproject
152
+ set (CA_COMPILE_WARNING_AS_ERROR OFF )
153
+ if (CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR )
154
+ set (CA_COMPILE_WARNING_AS_ERROR ON )
155
+ endif ()
156
+
157
+ set (CA_COMPILE_OPTIONS)
158
+
159
+ if (CA_COMPILE_WARNING_AS_ERROR AND CMAKE_VERSION VERSION_LESS "3.24" )
160
+ list (APPEND CA_COMPILE_OPTIONS
161
+ $<$<OR :$<BOOL :${UNIX} >,$<BOOL :${ANDROID} >,$<BOOL :${MINGW} >>:-Werror>
162
+ )
163
+ endif ()
164
+
165
+ list (APPEND CA_COMPILE_OPTIONS
152
166
$<$<OR :$<BOOL :${UNIX} >,$<BOOL :${ANDROID} >,$<BOOL :${MINGW} >>:
153
- $<$<STREQUAL :${CMAKE_SOURCE_DIR} ,${PROJECT_SOURCE_DIR} >:
154
- -Werror # Enable warnings as errors when not a subproject
155
- >
156
167
-Wno-error=deprecated-declarations # Disable: use of deprecated functions
157
168
-Wno-error=array-bounds # Disable errors that vary heavily on compiler and
158
169
-Wno-error=uninitialized # optimization level and have false positives.
@@ -483,6 +494,8 @@ macro(add_ca_library)
483
494
PRIVATE ${CA_COMPILE_OPTIONS} )
484
495
target_compile_definitions (${ARGV0}
485
496
PRIVATE ${CA_COMPILE_DEFINITIONS} ${CA_COMPILER_COMPILE_DEFINITIONS} )
497
+ set_target_properties (${ARGV0} PROPERTIES
498
+ COMPILE_WARNING_AS_ERROR ${CA_COMPILE_WARNING_AS_ERROR} )
486
499
set_ca_target_output_directory(${ARGV0} )
487
500
if (COMMAND add_ca_tidy)
488
501
add_ca_tidy(${ACL_UNPARSED_ARGUMENTS} DEPENDS ${ACL_DEPENDS} )
@@ -509,6 +522,8 @@ macro(add_ca_interface_library)
509
522
INTERFACE ${CA_COMPILE_OPTIONS} )
510
523
target_compile_definitions (${ARGV0}
511
524
INTERFACE ${CA_COMPILE_DEFINITIONS} ${CA_COMPILER_COMPILE_DEFINITIONS} )
525
+ set_target_properties (${ARGV0} PROPERTIES
526
+ COMPILE_WARNING_AS_ERROR ${CA_COMPILE_WARNING_AS_ERROR} )
512
527
endmacro ()
513
528
514
529
#[=======================================================================[.rst:
@@ -569,6 +584,7 @@ macro(add_ca_executable)
569
584
target_compile_definitions (${ARGV0}
570
585
PRIVATE ${CA_COMPILE_DEFINITIONS} ${CA_COMPILER_COMPILE_DEFINITIONS} )
571
586
set_target_properties (${ARGV0} PROPERTIES
587
+ COMPILE_WARNING_AS_ERROR ${CA_COMPILE_WARNING_AS_ERROR}
572
588
RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /bin)
573
589
if (COMMAND add_ca_tidy)
574
590
add_ca_tidy(${ACE_UNPARSED_ARGUMENTS} DEPENDS ${ACE_DEPENDS} )
0 commit comments