Fix UI print issue where different clang git repository tools would not correctly print if they are installed or not. Fixes #21.
This commit is contained in:
11
emsdk
11
emsdk
@@ -696,7 +696,16 @@ class Tool:
|
||||
return False
|
||||
|
||||
if self.download_url() != None:
|
||||
content_exists = os.path.exists(self.installation_path()) and (os.path.isfile(self.installation_path()) or num_files_in_directory(self.installation_path()) > 0)
|
||||
# For e.g. fastcomp clang from git repo, the activated PATH is the directory where the compiler is built to, and installation_path is
|
||||
# the directory where the source tree exists. To distinguish between multiple packages sharing the same source
|
||||
# (clang-master-32bit, clang-master-64bit, clang-incoming-32bit and clang-incoming-64bit each share the same git repo), require
|
||||
# that in addition to the installation directory, each item in the activated PATH must exist.
|
||||
activated_path = self.expand_vars(self.activated_path).split(';') if hasattr(self, 'activated_path') else [self.installation_path()]
|
||||
def each_path_exists(pathlist):
|
||||
for path in pathlist:
|
||||
if not os.path.exists(path): return False
|
||||
return True
|
||||
content_exists = os.path.exists(self.installation_path()) and each_path_exists(activated_path) and (os.path.isfile(self.installation_path()) or num_files_in_directory(self.installation_path()) > 0)
|
||||
|
||||
if self.id == 'vs-tool': # vs-tool is a special tool since all versions must be installed to the same dir, so dir name will not differentiate the version.
|
||||
return content_exists and get_installed_vstool_version(self.installation_path()) == self.version
|
||||
|
||||
Reference in New Issue
Block a user