2016-12-11 4 views
7

ライブラリパッケージでは、言語のセマンティクス(モジュール名、可視性など)を変更せずに、いくつかのソースファイルを "Sources"フォルダからサブディレクトリに移動したいと思います。私のようなものに変更した場合、Swiftパッケージのソースサブディレクトリ

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

そして:

は今、私のようなレイアウトを持って次に

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

swift buildを呼び出すには、失敗します。

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

はこれですレイアウトは可能ですか?私はこの問題を発見したのはhttps://bugs.swift.org/browse/SR-66で、それはそうではないと示唆していますが、ドキュメントでは確認(または理由)が見つかりません。

おかげ

答えて

6

私はLinux上でスウィフトのプロジェクトのために働く2つのオプションが発見した、どちらかのすべての.swiftファイルがSourcesフォルダに直接でなければならない、またはあなたとしてその内Sourcesとなど多くのサブフォルダに1つのサブフォルダが存在しなければなりません好き。

Swiftは、Sourcesのトップレベルサブフォルダからモジュールを構築し、その中のすべてのサブフォルダを含みます。

同じSourcesフォルダ内に2つのモジュールを持つことはできませんが、モジュールはそれ自身の外部のコードを認識できないと考えています。

だからあなたの例では、作業構造は次のようになります。

LibraryProject 
    Sources 
    YourModuleName 
     AnotherThing.swift 
     Foo 
     FooProtocol.swift 
     SomeFoo.swift 
     OtherFoo.swift 
     Bar 
     BarProtocol.swift 
     SomeBar.swift 
     OtherBar.swift 
関連する問題