timi-liuliang/echo
editor/Qt/5.12.3/clang_64/lib/cmake/Qt5Core/Qt5CoreMacros.cmake
:93
if (MSVC)
if (MSVC)
cmake_dependent_option (URHO3D_64BIT "Enable 64-bit build, the default is set based on the native ABI of the chosen compiler toolchain"
"${NATIVE_64BIT}" "NOT MSVC AND NOT ANDROID AND NOT (ARM AND NOT IOS) AND NOT WEB AND NOT POWERPC" "${NATIVE_64BIT}")
if(MSVC)
target_compile_options(libmorton-test-bmi2
PRIVATE
$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>: # GCC and clang
-march=haswell -Wall -Wextra -Wpedantic>
$<$<CXX_COMPILER_ID:MSVC>: # MSVC
/arch:AVX2 /W3>
)
target_compile_options(Interop
PRIVATE
$<$<CXX_COMPILER_ID:MSVC>:/W4>
$<$<CXX_COMPILER_ID:MSVC>:/WX>
$<$<CXX_COMPILER_ID:MSVC>:/wd4611>
$<$<CXX_COMPILER_ID:MSVC>:/MP>
$<$<CXX_COMPILER_ID:MSVC>:/D_CRT_SECURE_NO_WARNINGS /D_SCL_NO_WARNINGS>
$<$<CXX_COMPILER_ID:GNU>:-pedantic>
$<$<CXX_COMPILER_ID:GNU>:-pedantic-errors>
$<$<CXX_COMPILER_ID:GNU>:-Wall>
$<$<CXX_COMPILER_ID:GNU>:-Wextra>
$<$<CXX_COMPILER_ID:GNU>:-Werror>
$<$<CXX_COMPILER_ID:GNU>:-Wno-float-equal>
$<$<CXX_COMPILER_ID:GNU>:-Wno-padded>
$<$<CXX_COMPILER_ID:Clang>:-pedantic>
$<$<CXX_COMPILER_ID:Clang>:-pedantic-errors>
$<$<CXX_COMPILER_ID:Clang>:-Wall>
$<$<CXX_COMPILER_ID:Clang>:-Wextra>
$<$<CXX_COMPILER_ID:Clang>:-Werror>
$<$<CXX_COMPILER_ID:Clang>:-Wno-c++98-compat>
$<$<CXX_COMPILER_ID:Clang>:-Wno-c++98-compat-pedantic>
$<$<CXX_COMPILER_ID:Clang>:-Wno-float-equal>
$<$<CXX_COMPILER_ID:Clang>:-Wno-padded>
$<$<CXX_COMPILER_ID:Clang>:-Wno-reserved-id-macro>
$<$<CXX_COMPILER_ID:Clang>:-Wno-nullability-extension>
$<$<AND:$<CXX_COMPILER_ID:Clang>,$<VERSION_GREATER_EQUAL:${CMAKE_CXX_COMPILER_VERSION},15.0.0>>:-Wno-unused-but-set-variable>
$<$<CXX_COMPILER_ID:AppleClang>:-pedantic>
$<$<CXX_COMPILER_ID:AppleClang>:-pedantic-errors>
$<$<CXX_COMPILER_ID:AppleClang>:-Wall>
$<$<CXX_COMPILER_ID:AppleClang>:-Wextra>
$<$<CXX_COMPILER_ID:AppleClang>:-Werror>
$<$<CXX_COMPILER_ID:AppleClang>:-Wno-c++98-compat>
$<$<CXX_COMPILER_ID:AppleClang>:-Wno-c++98-compat-pedantic>
$<$<CXX_COMPILER_ID:AppleClang>:-Wno-float-equal>
$<$<CXX_COMPILER_ID:AppleClang>:-Wno-padded>
$<$<CXX_COMPILER_ID:AppleClang>:-Wno-reserved-id-macro>
$<$<CXX_COMPILER_ID:AppleClang>:-Wno-nullability-extension>
$<$<AND:$<CXX_COMPILER_ID:AppleClang>,$<VERSION_GREATER_EQUAL:${CMAKE_CXX_COMPILER_VERSION},15.0.0>>:-Wno-unused-but-set-variable>
)
CHECK_C_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}
# Some compilers do not fail with a bad flag
FAIL_REGEX "error: bad value (.*) for .* switch" # GNU
FAIL_REGEX "argument unused during compilation" # clang
FAIL_REGEX "is valid for .* but not for C" # GNU
FAIL_REGEX "unrecognized .*option" # GNU
FAIL_REGEX "ignoring unknown option" # MSVC
FAIL_REGEX "[Uu]nknown option" # HP
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
FAIL_REGEX "command option .* is not recognized" # XL
FAIL_REGEX "WARNING: unknown flag:" # Open64
FAIL_REGEX " #10159: " # ICC
)
elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") AND NOT CMAKE_CL_64)
include(cmake/Platform/Common/MSVC/Configurations_clang.cmake)
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
cmake_dependent_option(OGRE_CONFIG_FILESYSTEM_UNICODE "paths expected to be in UTF-8 and wchar_t file IO routines are used" TRUE "MSVC" FALSE)
option(USE_STATIC_MSVC_RUNTIME_LIBRARY "Use the static MSVC runtime library" OFF)
target_compile_options( ${target}
PUBLIC
$<$<CXX_COMPILER_ID:MSVC>:/EHs-c-;/D_HAS_EXCEPTIONS=0>
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:AppleClang>>:-fno-exceptions>
)
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
cmake_dependent_option(HG_ENABLE_SRANIPAL_API "Harfang: Enable VIVE Eye and Facial Tracking SDK (SRanipal) API" OFF "HG_ENABLE_OPENVR_API;MSVC" OFF)
add_compile_definitions( $<$<CXX_COMPILER_ID:MSVC>:_ENFORCE_MATCHING_ALLOCATORS=0> )
cmake_dependent_option(USE_STATIC_MSVC_RUNTIME_LIBRARY "Use the static MSVC runtime library" ON "MSVC;NOT WINDOWS_STORE" OFF)
target_compile_options(ozz_base PUBLIC $<$<CXX_COMPILER_ID:MSVC>:/wd4251>)
target_compile_options(zeno
PUBLIC $<$<COMPILE_LANGUAGE:CXX>: $<IF:$<CXX_COMPILER_ID:MSVC>, /utf-8, >>
)
if (NOT MSVC)
if(CMAKE_CXX_SIMULATE_ID STREQUAL MSVC)
if(alpaka_ACC_GPU_HIP_ENABLE AND (MSVC OR WIN32))
target_link_options(${PROJECT_NAME} PRIVATE $<$<CXX_COMPILER_ID:MSVC>:/ignore:4099>)
ENDIF( NOT(MSVC))
CHECK_C_SOURCE_COMPILES("int main(void) { return 0; }" ${_RESULT}
# Some compilers do not fail with a bad flag
FAIL_REGEX "warning: command line option .* is valid for .* but not for C"
# Apple gcc
FAIL_REGEX "unrecognized .*option" # GNU
FAIL_REGEX "unknown .*option" # Clang
FAIL_REGEX "ignoring unknown option" # MSVC
FAIL_REGEX "warning D9002" # MSVC, any lang
FAIL_REGEX "[Uu]nknown option" # HP
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
FAIL_REGEX "command option .* is not recognized" # XL
FAIL_REGEX "warning #10156: ignoring option" # INTEL compilers
)
target_compile_options(filesystem_test PRIVATE
$<$<BOOL:${EMSCRIPTEN}>:-s DISABLE_EXCEPTION_CATCHING=0>
$<$<CXX_COMPILER_ID:Clang>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror>
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror>
$<$<CXX_COMPILER_ID:MSVC>:/WX>)
target_compile_options(scwx-qt PRIVATE
$<$<CXX_COMPILER_ID:MSVC>:/fsanitize=address /EHsc /D_DISABLE_STRING_ANNOTATION /D_DISABLE_VECTOR_ANNOTATION>
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-fsanitize=address -fsanitize-recover=address>
)
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/W4>")
if(MSVC AND NOT EIGEN_SPLIT_LARGE_TESTS)
IF(MSVC)
target_compile_definitions(headers
INTERFACE
$<$<CXX_COMPILER_ID:MSVC>:_SCL_SECURE_NO_WARNINGS>
$<$<CXX_COMPILER_ID:MSVC>:_SCL_SECURE_NO_DEPRECATE>
$<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS>
$<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_DEPRECATE>
$<$<CXX_COMPILER_ID:MSVC>:_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS>
$<$<CXX_COMPILER_ID:GNU>:_USE_MATH_DEFINES>
$<$<CXX_COMPILER_ID:GNU>:GL_SILENCE_DEPRECATION>
)
if(MSVC)
cmake_dependent_option(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC runtime library DLL" ON
"MSVC" OFF)
elseif(MSVC)
add_compile_options(
"$<$<OR:$<CXX_COMPILER_ID:MSVC>,$<C_COMPILER_ID:MSVC>>:/W4;/WX>"
"$<$<OR:$<CXX_COMPILER_ID:GNU>,$<C_COMPILER_ID:GNU>>:-pedantic;-Wall;-Wextra;-Wsuggest-override;-Wshadow;-Wzero-as-null-pointer-constant;-Wformat-security>"
"$<$<OR:$<CXX_COMPILER_ID:Clang>,$<C_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<C_COMPILER_ID:AppleClang>>:-pedantic;-Wall;-Wextra;-Wshadow;-Wzero-as-null-pointer-constant;-Wformat-security>"
)
target_compile_definitions(${THETARGET}
PUBLIC
_CRT_NONSTDC_NO_WARNINGS # Don't deprecate posix names of functions.
_CRT_SECURE_NO_WARNINGS # Don't deprecate the non _s versions of various standard library functions, because safety is for chumps.
_SCL_SECURE_NO_WARNINGS # Don't deprecate the non _s versions of various standard library functions, because safety is for chumps.
_ENABLE_EXTENDED_ALIGNED_STORAGE #A type with an extended alignment in VS 15.8 or later
_STL_EXTRA_DISABLED_WARNINGS=4774\ 4987
$<$<BOOL:${MSVC_ENABLE_CPP_LATEST}>:_HAS_AUTO_PTR_ETC=1> # We're building in C++ 17 or greater mode, but certain dependencies (Boost) still have dependencies on unary_function and binary_function, so we have to make sure not to remove them.
$<$<BOOL:${MSVC_ENABLE_LEAN_AND_MEAN_WINDOWS}>:WIN32_LEAN_AND_MEAN> # Don't include most of Windows.h
$<$<BOOL:${MSVC_SUPPRESS_BOOST_CONFIG_OUTDATED}>:BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE> # MSVC moves faster than boost, so add a quick way to disable the messages.
)
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
target_compile_options(unittest PRIVATE ${warning_options} $<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wno-pedantic -Wno-attributes>)
cmake_dependent_option(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC runtime library DLL" ON
"MSVC" OFF)
if((CV_GCC OR CV_CLANG)
AND NOT MSVC
AND NOT OPENCV_SKIP_VISIBILITY_HIDDEN
AND NOT " ${CMAKE_CXX_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_CXX_FLAGS}" MATCHES " -fvisibility")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
cmake_dependent_option(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC runtime library DLL" ON
"MSVC" OFF)
if(MSVC AND NOT _WINDOWSSDK_IGNOREMSVC)
if(MSVC)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
target_link_options(dynui PUBLIC $<$<CXX_COMPILER_ID:MSVC>:/WHOLEARCHIVE:dynui>)
write_compiler_detection_header(
FILE "osvr_compiler_detection.h"
PREFIX OSVR
COMPILERS GNU Clang AppleClang MSVC
FEATURES cxx_override cxx_noexcept
)
elseif(MSVC)
IF(MSVC)
target_compile_definitions(
DataFrame
PRIVATE $<$<BOOL:${HMDF_HAVE_CLOCK_GETTIME}>:HMDF_HAVE_CLOCK_GETTIME>
PUBLIC $<$<CXX_COMPILER_ID:MSVC>:_USE_MATH_DEFINES>
)
target_compile_options(ghc_filesystem INTERFACE "$<$<C_COMPILER_ID:MSVC>:/utf-8>")
elseif(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
CHECK_C_SOURCE_COMPILES("int main(void) { return 0; }" ${_RESULT}
# Some compilers do not fail with a bad flag
FAIL_REGEX "warning: command line option .* is valid for .* but not for C"
# Apple gcc
FAIL_REGEX "unrecognized .*option" # GNU
FAIL_REGEX "unknown .*option" # Clang
FAIL_REGEX "ignoring unknown option" # MSVC
FAIL_REGEX "warning D9002" # MSVC, any lang
FAIL_REGEX "[Uu]nknown option" # HP
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
FAIL_REGEX "command option .* is not recognized" # XL
FAIL_REGEX "warning #10156: ignoring option" # INTEL compilers
)
ENDIF(MSVC)
check_cxx_source_compiles("${_cxx_code}" ${_resultVar}
# Some compilers do not fail with a bad flag
FAIL_REGEX "error: bad value (.*) for .* switch" # GNU
FAIL_REGEX "argument unused during compilation" # clang
FAIL_REGEX "warning: the flag .* has been deprecated" # clang
FAIL_REGEX "is valid for .* but not for C\\\\+\\\\+" # GNU
FAIL_REGEX "unrecognized .*option" # GNU
FAIL_REGEX "ignored for target" # GNU
FAIL_REGEX "ignoring unknown option" # MSVC
FAIL_REGEX "warning D9002" # MSVC
FAIL_REGEX "[Uu]nknown option" # HP
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
FAIL_REGEX "[Ww]arning: illegal use of -xarch option" # SunPro
FAIL_REGEX "command option .* is not recognized" # XL
FAIL_REGEX "WARNING: unknown flag:" # Open64
FAIL_REGEX "command line error" # ICC
FAIL_REGEX "command line warning" # ICC
FAIL_REGEX "#10236:" # ICC: File not found
FAIL_REGEX " #10159: " # ICC
FAIL_REGEX " #10353: " # ICC: option '-mfma' ignored, suggest using '-march=core-avx2'
FAIL_REGEX " #10006: " # ICC: ignoring unknown option '-mavx512fp16'
)
if(MSVC)
foreach(
TYPE
GNU
INTEL
INTEL_ICC
INTEL_ICPC
APPLE_CLANG
CLANG
PGI
XLC
HP_ACC
MIPS
MSVC
NVIDIA)
option(LLVM_ENABLE_DIA_SDK "Use MSVC DIA SDK for debugging if available."
${HAVE_DIA_SDK})
target_compile_options(${target}
PUBLIC
$<$<CXX_COMPILER_ID:MSVC>:/EHs-c-;/D_HAS_EXCEPTIONS=0>
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:AppleClang>>:-fno-exceptions>
)
add_compile_options("$<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/Zc:inline>")
cmake_dependent_option(YAML_MSVC_SHARED_RT
"MSVC: Build yaml-cpp with shared runtime libs (/MD)" ON
"CMAKE_SYSTEM_NAME MATCHES Windows" OFF)
target_compile_options(SimTKcommon INTERFACE
"$<$<AND:$<CXX_COMPILER_ID:MSVC>,$<CONFIG:Debug>>:/wd4996>")
ELSE(MSVC)
if (NOT MSVC OR MSVC_VERSION LESS 1600)
if(MSVC)
CHECK_C_SOURCE_COMPILES("${TEST_SOURCE}" ${_RESULT}
# Some compilers do not fail with a bad flag
FAIL_REGEX "error: bad value (.*) for .* switch" # GNU
FAIL_REGEX "argument unused during compilation" # clang
FAIL_REGEX "is valid for .* but not for C" # GNU
FAIL_REGEX "unrecognized .*option" # GNU
FAIL_REGEX "ignored for target" # GNU
FAIL_REGEX "ignoring unknown option" # MSVC
FAIL_REGEX "warning D9002" # MSVC
FAIL_REGEX "[Uu]nknown option" # HP
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
FAIL_REGEX "command option .* is not recognized" # XL
FAIL_REGEX "WARNING: unknown flag:" # Open64
FAIL_REGEX "command line error" # ICC
FAIL_REGEX "command line warning" # ICC
FAIL_REGEX "#10236:" # ICC: File not found
FAIL_REGEX " #10159: " # ICC
FAIL_REGEX " #10353: " # ICC: option '-mfma' ignored, suggest using '-march=core-avx2'
)
CHECK_CXX_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}
# Some compilers do not fail with a bad flag
FAIL_REGEX "command line option .* is valid for .* but not for C\\\\+\\\\+" # GNU
FAIL_REGEX "unrecognized .*option" # GNU
FAIL_REGEX "unknown .*option" # Clang
FAIL_REGEX "invalid value" # Clang
FAIL_REGEX "ignoring unknown option" # MSVC
FAIL_REGEX "warning D9002" # MSVC, any lang
FAIL_REGEX "option.*not supported" # Intel
FAIL_REGEX "invalid argument .*option" # Intel
FAIL_REGEX "ignoring option .*argument required" # Intel
FAIL_REGEX "[Uu]nknown option" # HP
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
FAIL_REGEX "command option .* is not recognized" # XL
FAIL_REGEX "not supported in this configuration; ignored" # AIX
FAIL_REGEX "File with unknown suffix passed to linker" # PGI
FAIL_REGEX "WARNING: unknown flag:" # Open64
)
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
target_compile_options(
CLI11_warnings
INTERFACE $<$<BOOL:${CLI11_FORCE_LIBCXX}>:-stdlib=libc++>
$<$<CXX_COMPILER_ID:MSVC>:/W4
$<$<BOOL:${CLI11_WARNINGS_AS_ERRORS}>:/WX>>
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:${unix-warnings}
$<$<BOOL:${CLI11_WARNINGS_AS_ERRORS}>:-Werror>>)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
endif(MSVC)
elseif( MSVC )
else(MSVC)
elseif(EL_HAVE_F90_INTERFACE AND
NOT EL_USE_64BIT_BLAS_INTS AND
NOT MSVC AND
NOT EL_CONFIG_TIME_BLIS_LAPACK)
cmake_dependent_option(
gperftools_build_benchmark "Build benchmark" ON "NOT MINGW AND NOT MSVC" OFF)
if (NOT MSVC OR MSVC_VERSION GREATER 1310)
write_compiler_detection_header (
FILE ${PROJECT_SOURCE_DIR}/src/appleseed/foundation/platform/compilerfeatures.h
PREFIX APPLESEED
COMPILERS GNU Clang MSVC AppleClang
FEATURES
cxx_final
cxx_noexcept
cxx_constexpr
cxx_defaulted_functions
cxx_deleted_functions
cxx_generalized_initializers
cxx_attribute_deprecated
)
target_link_options(Nabla INTERFACE $<$<CXX_COMPILER_FRONTEND_VARIANT:MSVC>:/DELAYLOAD:$<TARGET_FILE_NAME:Nabla::Nabla>>)
cmake_dependent_option(
gperftools_build_benchmark "Build benchmark" ON "NOT MINGW AND NOT MSVC" OFF)
target_compile_options(PyCompile
PRIVATE
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:-frtti -fexceptions>
$<$<CXX_COMPILER_ID:MSVC>:/EHsc /GR>
)
write_compiler_detection_header(
FILE "${CMAKE_CURRENT_BINARY_DIR}/yarp/conf/compiler.h"
PREFIX YARP
COMPILERS
GNU
Clang
AppleClang
MSVC
FEATURES ${_cxx_known_features}
VERSION 3.5.0
PROLOG "${_compiler_dox}\n${_compiler_prolog}\n// BEGIN <content generated by write_compiler_detection_header>"
EPILOG "// END <content generated by write_compiler_detection_header>\n\n${_compiler_epilog_swig}\n${_compiler_epilog_doxygen}\n${_compiler_epilog}")
add_compile_options("$<IF:$<CXX_COMPILER_ID:MSVC>,/w,-w>")
write_compiler_detection_header(
FILE ${feature_file}
PREFIX ${target_id}
COMPILERS AppleClang Clang GNU MSVC
FEATURES
cxx_thread_local
cxx_constexpr
cxx_attribute_deprecated
cxx_noexcept
VERSION 3.15
)
if (NOT MSVC OR MSVC_VERSION GREATER 1310)
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
target_sources(nanodbc
PUBLIC FILE_SET HEADERS FILES
nanodbc/nanodbc.h
$<$<CXX_COMPILER_ID:MSVC>:nanodbc/variant_row_cached_result.h>)
elseif (MSVC)
target_compile_definitions ( icu PRIVATE $<$<CXX_COMPILER_ID:MSVC>:UCONFIG_USE_WINDOWS_LCID_MAPPING_API=0> )
target_link_directories(${TARGET} PRIVATE "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29333/lib/x64")
add_compile_options(
"$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:${appleclang_clang_compile_options}>"
"$<$<COMPILE_LANG_AND_ID:CXX,AppleClang>:${appleclang_compile_options}>"
"$<$<COMPILE_LANG_AND_ID:CXX,GNU>:${gpu_compile_options}>"
"$<$<COMPILE_LANG_AND_ID:CXX,MSVC>:${msvc_compile_options}>"
)
elseif(MSVC10 OR (MSVC AND MSVC_VERSION GREATER 1600))
elseif (MSVC)
message(STATUS "MSVC: Enabled large address awareness")
if(MSVC)
target_compile_options(vw.net.native PRIVATE
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:
-Werror>
$<$<CXX_COMPILER_ID:MSVC>:
/WX>
)
target_compile_definitions(
${PROJECT_NAME}
PRIVATE
ARCHITECTURE_X64
GLFW_INCLUDE_NONE
CLIP_ENABLE_IMAGE
$<$<PLATFORM_ID:Linux>:HAVE_PNG_H>
$<$<CONFIG:Debug>:CONFIG_DEBUG>
$<$<CONFIG:Release>:CONFIG_RELEASE>
$<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_DEPRECATE>
$<$<PLATFORM_ID:Windows>:PLATFORM_WINDOWS>
$<$<PLATFORM_ID:Linux>:PLATFORM_LINUX>
$<$<BOOL:${PACKAGE_PORTABLE}>:PACKAGE_PORTABLE>
$<$<BOOL:${PACKAGE_DEV}>:PACKAGE_DEV>
$<$<AND:$<PLATFORM_ID:Linux>,$<BOOL:${PACKAGE_SNAP}>>:PACKAGE_SNAP>
$<$<AND:$<PLATFORM_ID:Linux>,$<BOOL:${PACKAGE_DEB}>>:PACKAGE_DEB>
$<$<AND:$<PLATFORM_ID:Linux>,$<BOOL:${PACKAGE_NIX}>>:PACKAGE_NIX>
# These shouldn't actually be necessary as there are no direct Windows API calls
# in TacentView (they are abstracted away by the Tacent libraries). But just in case
# anything in the viewer were to call an OS-level function, these enable the UTF-16
# versions if the TACENT_UTF16_API_CALLS option is set.
$<$<AND:$<PLATFORM_ID:Windows>,$<BOOL:${TACENT_UTF16_API_CALLS}>>:UNICODE> # C++ UFF-16
$<$<AND:$<PLATFORM_ID:Windows>,$<BOOL:${TACENT_UTF16_API_CALLS}>>:_UNICODE> # C UTF-16
$<$<AND:$<PLATFORM_ID:Windows>,$<BOOL:${TACENT_UTF16_API_CALLS}>>:TACENT_UTF16_API_CALLS>
)
cmake_dependent_option(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC runtime library DLL" ON
"MSVC" OFF)
elseif (MSVC)
cmake_dependent_option( KICAD_BUILD_SMALL_DEBUG_FILES
"Create smaller binaries in debug builds."
OFF "NOT MSVC"
OFF )