parent
1574471822
commit
1a0938cc25
4 changed files with 54 additions and 0 deletions
@ -0,0 +1,39 @@ |
|||||||
|
# Copyright 2016 The Meson development team |
||||||
|
|
||||||
|
# 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 sys, os |
||||||
|
import subprocess |
||||||
|
import shutil |
||||||
|
import tempfile |
||||||
|
|
||||||
|
def scanbuild(srcdir, blddir, privdir, logdir, args): |
||||||
|
with tempfile.TemporaryDirectory(dir=privdir) as scandir: |
||||||
|
meson_cmd = ['scan-build'] + args |
||||||
|
build_cmd = ['scan-build', '-o', logdir, 'ninja'] |
||||||
|
rc = subprocess.call(meson_cmd + [srcdir, scandir]) |
||||||
|
if rc != 0: |
||||||
|
return rc |
||||||
|
return subprocess.call(build_cmd) |
||||||
|
|
||||||
|
def run(args): |
||||||
|
srcdir = args[0] |
||||||
|
blddir = args[1] |
||||||
|
meson_cmd = args[2:] |
||||||
|
privdir = os.path.join(blddir, 'meson-private') |
||||||
|
logdir = os.path.join(blddir, 'meson-logs/scanbuild') |
||||||
|
shutil.rmtree(logdir, ignore_errors=True) |
||||||
|
if not shutil.which('scan-build'): |
||||||
|
print('Scan-build not installed') |
||||||
|
return 1 |
||||||
|
return scanbuild(srcdir, blddir, privdir, logdir, meson_cmd) |
Loading…
Reference in new issue