私は、OSに依存するいくつかのアプリケーションを構築する必要があります。たとえば、私はディレクトリを検索していますが、いくつかの項目がシンボリックリンク(Linuxの場合)であれば、それらをスキップして行きます。これをチェックするには、 "unix"パッケージで提供されるSystem.Posix.Files.isSymbolicLink関数を使用します。問題は、このパッケージがWindows上に構築されないことです。アプリケーションがWindows上に構築されたときに、この制限を何とか回避する必要があります。
1)追加ファイル:./System/Posix/Files.hsを作成しました。公開された関数は、シンボルが常に、偽を返します。以下で
2)更新.cabalファイル:haskell + cabalでビルド依存関係を設定するには?
if os(windows)
other-modules: System.Posix.Files
else
build-depends: unix
しかし、私は輸入System.Posix.Filesを持っているので、私の設定にもかかわらず、徒党ビルドはいつも私の/System/Posix/Files.hsを構築私main.hs中:テスト-1.1.1用
前処理の実行...
ビルテスト-1.1.1 ...
[2の1]コンパイルSystem.Posix.Files(システム/ Posix/Files.hs、dist/build/te
[2/2]メイン(main.hs、dist/build/test/test-tmp/Main.o)のコンパイル
dist/build/testのリンク/テスト...
だから、でも私は、Linux上に構築、アプリケーションではなく、「UNIX」パッケージで提供されるもの、私の空白isSymbolicLink機能を取得します。私はcabalにこのファイルを含めないようにするにはどうしたらいいですか?Linuxでビルドするときに "unix"パッケージで提供されるモジュールを使用しますか?あるいは、そのような問題を解決するための別のアプローチがありますか?
両方の方法が適しています。ありがとうございました! –