+
+SET(CUSTOM_COMPILE_OPTIONS "")
+
+# TODO: Clang is a lot more strict with warnings, we should address
+# those issues at some point.
+# Matches "Clang" or "AppleClang"
+IF( NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )
+ SET(CUSTOM_COMPILE_OPTIONS ${MY_COMPILE_OPTIONS} -Werror)
+ENDIF()
+
+CHECK_CXX_COMPILER_FLAG(-Wno-class-memaccess HAVE_NO_CLASS_MEMACCESS)
+IF (HAVE_NO_CLASS_MEMACCESS)
+ SET(CUSTOM_COMPILE_OPTIONS ${MY_COMPILE_OPTIONS} -Wno-class-memaccess)
+ENDIF()
+
+target_compile_options(${name} PRIVATE ${CUSTOM_COMPILE_OPTIONS})
+