2016-12-11 8 views
7

W pakiecie biblioteki chciałbym przenieść niektóre pliki źródłowe z folderu "Źródła" do podkatalogów, bez zmiany semantyki języka (nazwa modułu, widoczność, itp.).Źródłowe podkatalogi w pakiecie Swift

Teraz mam układ jak:

LibraryProject 
    Sources 
    AnotherThing.swift 
    FooProtocol.swift 
    SomeFoo.swift 
    OtherFoo.swift 
    BarProtocol.swift 
    SomeBar.swift 
    OtherBar.swift 

A gdybym go zmienić na coś takiego:

LibraryProject 
    Sources 
    AnotherThing.swift 
    Foo 
     FooProtocol.swift 
     SomeFoo.swift 
     OtherFoo.swift 
    Bar 
     BarProtocol.swift 
     SomeBar.swift 
     OtherBar.swift 

Następnie, powołując swift build zawiedzie:

error: the package has an unsupported layout, unexpected source file(s) found: [...]

Czy to układ możliwy? Znalazłem tylko ten problem https://bugs.swift.org/browse/SR-66 sugerujący, że tak nie jest, ale nie mogę znaleźć potwierdzenia (lub przyczyny) w dokumentacji.

Dzięki

Odpowiedz

6

znalazłem dwie opcje, które działają na projekty Swift na Linuksa, albo wszystkie .swift pliki muszą być bezpośrednio w folderze Sources, lub muszą wystąpić jeden podfolder w Sources i jak wiele podfolderów wewnątrz że jak ty lubić.

Swift tworzy moduł z podfolderu najwyższego poziomu w Sources i zawiera wszystkie podfoldery w tym podfolderze.

Nie sądzę, że możliwe jest posiadanie dwóch modułów w tym samym folderze Sources, ponieważ moduł nie rozpoznałby żadnego kodu poza nim.

Więc w przykładzie struktura pracy będzie:

LibraryProject 
    Sources 
    YourModuleName 
     AnotherThing.swift 
     Foo 
     FooProtocol.swift 
     SomeFoo.swift 
     OtherFoo.swift 
     Bar 
     BarProtocol.swift 
     SomeBar.swift 
     OtherBar.swift