summaryrefslogtreecommitdiff
path: root/source/compiler-core/slang-artifact-desc-util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler-core/slang-artifact-desc-util.cpp')
-rw-r--r--source/compiler-core/slang-artifact-desc-util.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/source/compiler-core/slang-artifact-desc-util.cpp b/source/compiler-core/slang-artifact-desc-util.cpp
index 7534e1265..7e274794f 100644
--- a/source/compiler-core/slang-artifact-desc-util.cpp
+++ b/source/compiler-core/slang-artifact-desc-util.cpp
@@ -704,7 +704,13 @@ SlangResult ArtifactDescUtil::appendDefaultExtension(const ArtifactDesc& desc, S
/* static */String ArtifactDescUtil::getBaseNameFromPath(const ArtifactDesc& desc, const UnownedStringSlice& path)
{
- String name = Path::getFileName(path);
+ const String name = Path::getFileName(path);
+ return getBaseNameFromName(desc, name.getUnownedSlice());
+}
+
+/* static */String ArtifactDescUtil::getBaseNameFromName(const ArtifactDesc& desc, const UnownedStringSlice& inName)
+{
+ String name(inName);
const bool isSharedLibraryPrefixPlatform = SLANG_LINUX_FAMILY || SLANG_APPLE_FAMILY;
if (isSharedLibraryPrefixPlatform)
@@ -723,16 +729,19 @@ SlangResult ArtifactDescUtil::appendDefaultExtension(const ArtifactDesc& desc, S
}
}
- // Strip any extension
+ // Strip any extension
{
StringBuilder descExt;
-
- appendDefaultExtension(desc, descExt);
-
- // Strip the extension if it's a match
- if (descExt.getLength() &&
- Path::getPathExt(name) == descExt)
+ if (SLANG_SUCCEEDED(appendDefaultExtension(desc, descExt)) &&
+ descExt.getLength())
{
+ // TODO(JS):
+ // It has an extension. We could check if they are the same
+ // but if they are not that might be fine, because of case insensitivity
+ // or perhaps there are multiple valid extensions. So for now we just strip
+ // and don't bother confirming with something like..
+ // if (Path::getPathExt(name) == descExt))
+
name = Path::getFileNameWithoutExt(name);
}
}
@@ -740,9 +749,9 @@ SlangResult ArtifactDescUtil::appendDefaultExtension(const ArtifactDesc& desc, S
return name;
}
-/* static */String ArtifactDescUtil::getBaseName(const ArtifactDesc& desc, IFileArtifactRepresentation* fileRep)
+/* static */String ArtifactDescUtil::getBaseName(const ArtifactDesc& desc, IPathArtifactRepresentation* pathRep)
{
- UnownedStringSlice path(fileRep->getPath());
+ UnownedStringSlice path(pathRep->getPath());
return getBaseNameFromPath(desc, path);
}