私のプロジェクトには2つの依存関係がありますlibevent
とlibressl
です。どちらもローカルにインストールされています(それぞれ/usr/local/include
と/usr/local/opt/libressl/include
)Swiftパッケージマネージャとlibeventを使って/ usr/local /をきれいに扱う
私が探しているのは、SPMが自動的にこれらのディレクトリを検索することです。
私はこれを達成するために迅速な構築にフラグを渡すことができることを知っています。私の究極の目標は、Xcodeにカスタムビルドフラグを絶えず追加することなく、コマンドラインからxcodeプロジェクトを適切に生成できることです。
私はPostgreSQLのカスタム設定を入力する必要がないので、これは可能です。
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "CEvent",
providers: [
.brew(["libevent"]),
.apt(["libevent-dev"])
],
products: [
// Products define the executables and libraries produced by a package, and make them visible to other packages.
.library(
name: "CEvent",
targets: ["CEvent"]),
],
dependencies: [
],
targets: [
.target(
name: "CEvent",
dependencies: []
),
]
)
モジュールマップ:
スウィフト・ツールのバージョンは、参考のために
Package.swift 4.0.xのである
module CEvent [system] {
header "shim.h"
link "event"
export *
}
そして、私の現在のビルドスクリプト(build.sh) :
#!/usr/local/bin/fish
swift build -Xcc -O0 -Xcc -fblocks -Xswiftc -lbcrypt -Xswiftc -I/usr/local/include -Xswiftc -L/usr/local/lib -Xswiftc -ltls -Xswiftc -lcrypto -Xswiftc -lssl -Xswiftc -L/usr/local/opt/postgresql/lib -Xswi$
A私はこれを望んでいるからです。依存関係を迅速に追加/更新/削除する場合は、新しいxcodeプロジェクトを生成し、それぞれのビルドマシンでその設定を修正する必要はありません。代わりにapt/ubuntu/usr/libを使用します。
すばらしい追加情報ありがとう!それは私の将来のサーバー側の迅速な努力に私を助けてくれるでしょう。現在、私は変更を加えて以来、Linuxでlibresslのsegfaultsと苦労しています...しかしそれはポイントの外にあります。私は1つの簡単なサイドノートを追加したい、libsodium 1.0.12/13が監査されている。それが醸造の場合は更新を行ってください! –