You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
4.3 KiB
160 lines
4.3 KiB
# -*- coding: utf-8 -*- |
|
|
|
#------------------------------------------------------------------------- |
|
# drawElements Quality Program utilities |
|
# -------------------------------------- |
|
# |
|
# Copyright 2015 The Android Open Source Project |
|
# |
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
|
# you may not use this file except in compliance with the License. |
|
# You may obtain a copy of the License at |
|
# |
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
# |
|
# Unless required by applicable law or agreed to in writing, software |
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
# See the License for the specific language governing permissions and |
|
# limitations under the License. |
|
# |
|
#------------------------------------------------------------------------- |
|
|
|
import os |
|
import sys |
|
import shlex |
|
import subprocess |
|
|
|
SRC_DIRS = [ |
|
"delibs/debase", |
|
"delibs/deimage", |
|
"delibs/depool", |
|
"delibs/dethread", |
|
"delibs/deutil", |
|
"delibs/decpp", |
|
|
|
"deqp/execserver", |
|
"deqp/executor", |
|
"deqp/modules/candytest", |
|
"deqp/modules/egl", |
|
"deqp/modules/gles2", |
|
"deqp/modules/gles3", |
|
"deqp/modules/gles31", |
|
"deqp/modules/gl3", |
|
"deqp/modules/glshared", |
|
"deqp/modules/glusecases", |
|
"deqp/modules/opencl", |
|
"deqp/modules/internal", |
|
"deqp/framework/qphelper", |
|
"deqp/framework/common", |
|
"deqp/framework/egl", |
|
"deqp/framework/opengl", |
|
"deqp/framework/opencl", |
|
"deqp/framework/platform", |
|
"deqp/framework/randomshaders", |
|
"deqp/framework/referencerenderer", |
|
"deqp/wrappers/dynlib", |
|
"deqp/wrappers/gles3", |
|
|
|
"gapir", |
|
] |
|
|
|
INCLUDE_DIRS = [ |
|
"delibs/libpng", |
|
"delibs/libzip", |
|
"delibs/zlib", |
|
|
|
"deqp/wrappers/dynlib/inc", |
|
"deqp/wrappers/gles3/inc", |
|
"deqp/modules/gles2/accuracy", |
|
"deqp/modules/gles2/functional", |
|
"deqp/modules/gles2/performance", |
|
"deqp/modules/gles2/stress", |
|
"deqp/modules/gles2/usecases", |
|
"deqp/modules/gles3/accuracy", |
|
"deqp/modules/gles3/functional", |
|
"deqp/modules/gles3/stress", |
|
"deqp/modules/gles3/usecases", |
|
"deqp/modules/gles3/performance", |
|
"deqp/modules/gles31/functional", |
|
"deqp/modules/gles31/stress", |
|
"deqp/modules/gl3/functional", |
|
"deqp/modules/gl3/performance", |
|
"deqp/modules/gl3/stress", |
|
"deqp/framework/opengl/simplereference", |
|
"deqp/framework/opencl/inc", |
|
"deqp/framework/opengl/wrapper", |
|
"deqp/framework/opengl/simplereference", |
|
|
|
"gapir/base", |
|
"gapir/egl", |
|
"gapir/gles2", |
|
"gapir/util", |
|
|
|
"domeni/eigen2", |
|
"domeni/base", |
|
"domeni/engine", |
|
"domeni/m3g", |
|
"domeni/m3g_adapter", |
|
"domeni/renderer", |
|
"domeni/resource", |
|
"domeni/tools" |
|
] + SRC_DIRS |
|
|
|
ARGS = [ |
|
"--enable=all,style", |
|
"--xml-version=2", |
|
"--platform=win64", |
|
"-D__cplusplus", |
|
"-D_M_X64", |
|
"-D_WIN32", |
|
"-D_MSC_VER=1600", |
|
"-DDE_DEBUG=1", |
|
"-DDE_COMPILER=1", # Is preprocessor buggy in recent cppcheck? |
|
"-DDE_OS=1", |
|
"-DDE_CPU=1", |
|
"-DDE_PTR_SIZE=4", |
|
"-DAB_COMPILER=1", |
|
"-DAB_OS=1", |
|
"-DDEQP_TARGET_NAME=\"Cppcheck\"", |
|
"-D_XOPEN_SOURCE=600", |
|
"--suppress=arrayIndexOutOfBounds:deqp/framework/common/tcuVector.hpp", |
|
"--suppress=invalidPointerCast:deqp/framework/common/tcuTexture.cpp", |
|
"--suppress=*:deqp/framework/opencl/cl.hpp", |
|
"--suppress=invalidPointerCast:deqp/modules/opencl/tclSIRLogger.cpp", |
|
"--suppress=preprocessorErrorDirective:deqp/framework/platform/android/tcuAndroidMain.cpp", |
|
"--suppress=invalidPointerCast:deqp/modules/gles3/functional/es3fTransformFeedbackTests.cpp", |
|
"--suppress=invalidPointerCast:deqp/modules/gles3/functional/es3fUniformBlockCase.cpp", |
|
"--suppress=unusedStructMember", |
|
"--suppress=postfixOperator", |
|
"--suppress=unusedFunction", |
|
"--suppress=unusedPrivateFunction", |
|
"--rule-file=deqp/scripts/no_empty_fail.rule" |
|
] |
|
|
|
def runCppCheck (srcBaseDir, dstFile): |
|
fullDstFile = os.path.realpath(dstFile) |
|
command = '"C:\\Program Files (x86)\\Cppcheck\\cppcheck.exe"' |
|
|
|
for arg in ARGS + ["--xml"]: |
|
command += " %s" % arg |
|
|
|
for path in INCLUDE_DIRS: |
|
command += " -I %s" % path |
|
|
|
for path in SRC_DIRS: |
|
command += " %s" % path |
|
|
|
command += ' 2> "%s"' % fullDstFile |
|
|
|
os.chdir(srcBaseDir) |
|
os.system('"%s"' % command) # Double-quotes needed for some reason |
|
|
|
if __name__ == "__main__": |
|
if len(sys.argv) != 2: |
|
print "%s: [reportfile]" % sys.argv[0] |
|
sys.exit(-1) |
|
|
|
dstFile = sys.argv[1] |
|
srcDir = os.path.realpath(os.path.normpath(os.path.join(os.path.dirname(__file__), "..", ".."))) |
|
runCppCheck(srcDir, dstFile)
|
|
|