Fix lib name resolution if extension is substring.
If a library happens to contain the extension as a substring in its name, libNameFromFilePath will return a truncated library name. Change this calculation to remove the last instance of the extension substring instead. Bug: 147140513 Test: Modified rust tests pass. Change-Id: I0ed91e5f571ed5c4040ee15956a1598846aee43a
This commit is contained in:
parent
026ffecb9d
commit
d648c43fec
|
@ -705,13 +705,15 @@ func (mod *Module) InstallInData() bool {
|
||||||
func linkPathFromFilePath(filepath android.Path) string {
|
func linkPathFromFilePath(filepath android.Path) string {
|
||||||
return strings.Split(filepath.String(), filepath.Base())[0]
|
return strings.Split(filepath.String(), filepath.Base())[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
func libNameFromFilePath(filepath android.Path) string {
|
func libNameFromFilePath(filepath android.Path) string {
|
||||||
libName := strings.Split(filepath.Base(), filepath.Ext())[0]
|
libName := strings.TrimSuffix(filepath.Base(), filepath.Ext())
|
||||||
if strings.HasPrefix(libName, "lib") {
|
if strings.HasPrefix(libName, "lib") {
|
||||||
libName = libName[3:]
|
libName = libName[3:]
|
||||||
}
|
}
|
||||||
return libName
|
return libName
|
||||||
}
|
}
|
||||||
|
|
||||||
func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
||||||
ctx := &depsContext{
|
ctx := &depsContext{
|
||||||
BottomUpMutatorContext: actx,
|
BottomUpMutatorContext: actx,
|
||||||
|
|
|
@ -114,13 +114,13 @@ func testRustError(t *testing.T, pattern string, bp string) {
|
||||||
|
|
||||||
// Test that we can extract the lib name from a lib path.
|
// Test that we can extract the lib name from a lib path.
|
||||||
func TestLibNameFromFilePath(t *testing.T) {
|
func TestLibNameFromFilePath(t *testing.T) {
|
||||||
libBarPath := android.PathForTesting("out/soong/.intermediates/external/libbar/libbar/linux_glibc_x86_64_shared/libbar.so")
|
libBarPath := android.PathForTesting("out/soong/.intermediates/external/libbar/libbar/linux_glibc_x86_64_shared/libbar.so.so")
|
||||||
libLibPath := android.PathForTesting("out/soong/.intermediates/external/libbar/libbar/linux_glibc_x86_64_shared/liblib.dylib.so")
|
libLibPath := android.PathForTesting("out/soong/.intermediates/external/libbar/libbar/linux_glibc_x86_64_shared/liblib.dylib.so")
|
||||||
|
|
||||||
libBarName := libNameFromFilePath(libBarPath)
|
libBarName := libNameFromFilePath(libBarPath)
|
||||||
libLibName := libNameFromFilePath(libLibPath)
|
libLibName := libNameFromFilePath(libLibPath)
|
||||||
|
|
||||||
expectedResult := "bar"
|
expectedResult := "bar.so"
|
||||||
if libBarName != expectedResult {
|
if libBarName != expectedResult {
|
||||||
t.Errorf("libNameFromFilePath returned the wrong name; expected '%#v', got '%#v'", expectedResult, libBarName)
|
t.Errorf("libNameFromFilePath returned the wrong name; expected '%#v', got '%#v'", expectedResult, libBarName)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue