10825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# Copyright (C) 2017 The Android Open Source Project
20825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci#
30825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# Licensed under the Apache License, Version 2.0 (the "License");
40825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# you may not use this file except in compliance with the License.
50825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# You may obtain a copy of the License at
60825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci#
70825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci#      http://www.apache.org/licenses/LICENSE-2.0
80825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci#
90825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# Unless required by applicable law or agreed to in writing, software
100825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# distributed under the License is distributed on an "AS IS" BASIS,
110825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
120825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# See the License for the specific language governing permissions and
130825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci# limitations under the License.
140825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci
150825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucciimport os
160825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucciimport subprocess
170825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucciimport sys
180825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci
190825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tuccidef main():
207278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci  devnull = open(os.devnull, 'w')
217278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci  for clang in ('clang', 'clang-3.8', 'clang-3.5'):
227278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci    if subprocess.call(['which', clang], stdout=devnull, stderr=devnull) != 0:
230825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci      continue
247278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci    res = subprocess.check_output([clang, '-print-search-dirs'])
257278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci    for line in res.splitlines():
267278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci      if not line.startswith('libraries:'):
270825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci        continue
287278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci      libs = line.split('=', 1)[1].split(':')
297278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci      for lib in libs:
307278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci        if '/clang/' not in lib or not os.path.isdir(lib + '/lib'):
317278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci          continue
327278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci        print os.path.abspath(lib)
337278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci        print clang
347278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci        print clang.replace('clang', 'clang++')
357278deabe0baf4c1ac08d21ffe400ebe1e820d6aPrimiano Tucci        return 0
360825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci  print 'Could not find the LLVM lib dir'
370825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci  return 1
380825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci
390825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucciif __name__ == '__main__':
400825bc835bd954784adee5a1c563c0b8d1cac664Primiano Tucci  sys.exit(main())
41