mirror of
https://github.com/SFML/SFML.git
synced 2024-11-28 22:31:09 +08:00
Enable compiler warnings for Android
This commit is contained in:
parent
a71d60a0c9
commit
142ccf57bd
@ -36,23 +36,6 @@ function(set_target_warnings target)
|
|||||||
/wd4800 # disable warnings regarding implicit conversions to bool
|
/wd4800 # disable warnings regarding implicit conversions to bool
|
||||||
)
|
)
|
||||||
|
|
||||||
# some warnings are not supported on older NDK versions used for CI
|
|
||||||
if (ANDROID)
|
|
||||||
set(NON_ANDROID_CLANG_AND_GCC_WARNINGS "")
|
|
||||||
set(NON_ANDROID_GCC_WARNINGS "")
|
|
||||||
else()
|
|
||||||
set(NON_ANDROID_CLANG_AND_GCC_WARNINGS
|
|
||||||
-Wnull-dereference # warn if a null dereference is detected
|
|
||||||
-Wold-style-cast # warn for c-style casts
|
|
||||||
-Wpedantic # warn if non-standard C++ is used
|
|
||||||
)
|
|
||||||
|
|
||||||
set(NON_ANDROID_GCC_WARNINGS
|
|
||||||
-Wmisleading-indentation # warn if indentation implies blocks where blocks do not exist
|
|
||||||
-Wduplicated-cond # warn if if / else chain has duplicated conditions
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CLANG_AND_GCC_WARNINGS
|
set(CLANG_AND_GCC_WARNINGS
|
||||||
-Wall
|
-Wall
|
||||||
-Wextra # reasonable and standard
|
-Wextra # reasonable and standard
|
||||||
@ -67,9 +50,15 @@ function(set_target_warnings target)
|
|||||||
-Wformat=2 # warn on security issues around functions that format output (ie printf)
|
-Wformat=2 # warn on security issues around functions that format output (ie printf)
|
||||||
-Wimplicit-fallthrough # warn when a missing break causes control flow to continue at the next case in a switch statement
|
-Wimplicit-fallthrough # warn when a missing break causes control flow to continue at the next case in a switch statement
|
||||||
-Wsuggest-override # warn when 'override' could be used on a member function overriding a virtual function
|
-Wsuggest-override # warn when 'override' could be used on a member function overriding a virtual function
|
||||||
${NON_ANDROID_CLANG_AND_GCC_WARNINGS}
|
-Wnull-dereference # warn if a null dereference is detected
|
||||||
|
-Wold-style-cast # warn for c-style casts
|
||||||
|
-Wpedantic # warn if non-standard C++ is used
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(ANDROID)
|
||||||
|
set(CLANG_AND_GCC_WARNINGS ${CLANG_AND_GCC_WARNINGS} -Wno-main) # allow main() to be called
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WARNINGS_AS_ERRORS)
|
if(WARNINGS_AS_ERRORS)
|
||||||
set(CLANG_AND_GCC_WARNINGS ${CLANG_AND_GCC_WARNINGS} -Werror)
|
set(CLANG_AND_GCC_WARNINGS ${CLANG_AND_GCC_WARNINGS} -Werror)
|
||||||
set(MSVC_WARNINGS ${MSVC_WARNINGS} /WX)
|
set(MSVC_WARNINGS ${MSVC_WARNINGS} /WX)
|
||||||
@ -82,7 +71,8 @@ function(set_target_warnings target)
|
|||||||
|
|
||||||
set(GCC_WARNINGS
|
set(GCC_WARNINGS
|
||||||
${CLANG_AND_GCC_WARNINGS}
|
${CLANG_AND_GCC_WARNINGS}
|
||||||
${NON_ANDROID_GCC_WARNINGS}
|
-Wmisleading-indentation # warn if indentation implies blocks where blocks do not exist
|
||||||
|
-Wduplicated-cond # warn if if / else chain has duplicated conditions
|
||||||
-Wlogical-op # warn about logical operations being used where bitwise were probably wanted
|
-Wlogical-op # warn about logical operations being used where bitwise were probably wanted
|
||||||
# -Wuseless-cast # warn if you perform a cast to the same type (disabled because it is not portable as some type aliases might vary between platforms)
|
# -Wuseless-cast # warn if you perform a cast to the same type (disabled because it is not portable as some type aliases might vary between platforms)
|
||||||
)
|
)
|
||||||
|
@ -88,7 +88,7 @@ ActivityStates* retrieveStates(ANativeActivity* activity)
|
|||||||
assert(activity != nullptr);
|
assert(activity != nullptr);
|
||||||
|
|
||||||
// Hide the ugly cast we find in each callback function
|
// Hide the ugly cast we find in each callback function
|
||||||
return (ActivityStates*)activity->instance;
|
return static_cast<ActivityStates*>(activity->instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ const char* getLibraryName(JNIEnv* lJNIEnv, jobject& objectActivityInfo)
|
|||||||
// Get the value of meta-data named "sfml.app.lib_name"
|
// Get the value of meta-data named "sfml.app.lib_name"
|
||||||
jclass classBundle = lJNIEnv->FindClass("android/os/Bundle");
|
jclass classBundle = lJNIEnv->FindClass("android/os/Bundle");
|
||||||
jmethodID methodGetString = lJNIEnv->GetMethodID(classBundle, "getString", "(Ljava/lang/String;)Ljava/lang/String;");
|
jmethodID methodGetString = lJNIEnv->GetMethodID(classBundle, "getString", "(Ljava/lang/String;)Ljava/lang/String;");
|
||||||
jstring valueString = (jstring)lJNIEnv->CallObjectMethod(objectMetaData, methodGetString, objectName);
|
jstring valueString = static_cast<jstring>(lJNIEnv->CallObjectMethod(objectMetaData, methodGetString, objectName));
|
||||||
|
|
||||||
// No meta-data "sfml.app.lib_name" was found so we abort and inform the user
|
// No meta-data "sfml.app.lib_name" was found so we abort and inform the user
|
||||||
if (valueString == nullptr)
|
if (valueString == nullptr)
|
||||||
@ -211,8 +211,8 @@ void ANativeActivity_onCreate(ANativeActivity* activity, void* savedState, size_
|
|||||||
void* handle = loadLibrary(getLibraryName(lJNIEnv, ObjectActivityInfo), lJNIEnv, ObjectActivityInfo);
|
void* handle = loadLibrary(getLibraryName(lJNIEnv, ObjectActivityInfo), lJNIEnv, ObjectActivityInfo);
|
||||||
|
|
||||||
// Call the original ANativeActivity_onCreate function
|
// Call the original ANativeActivity_onCreate function
|
||||||
activityOnCreatePointer ANativeActivity_onCreate = (activityOnCreatePointer)dlsym(handle,
|
activityOnCreatePointer ANativeActivity_onCreate = reinterpret_cast<activityOnCreatePointer>(
|
||||||
"ANativeActivity_onCreate");
|
dlsym(handle, "ANativeActivity_onCreate"));
|
||||||
|
|
||||||
if (!ANativeActivity_onCreate)
|
if (!ANativeActivity_onCreate)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user