Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,36 @@ on:
types: [opened, reopened, synchronize]

jobs:
tests:
name: Test
audio-workstation-guest:
name: Build AudioWorkstation Plugins
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
linux_build_command: "cd AudioWorkstation/Guest && ./build.sh"
linux_exclude_swift_versions: '[{"swift_version": "5.9"}, {"swift_version": "5.10"}]'
enable_embedded_wasm_sdk_build: true
enable_linux_checks: false
enable_macos_checks: false
enable_windows_checks: false
swift_flags: --package-path AudioWorkstation/Guest --product Plotter

audio-workstation-host:
name: Build AudioWorkstation Server
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
enable_linux_checks: true
linux_exclude_swift_versions: '[{"swift_version": "5.9"}, {"swift_version": "5.10"}, {"swift_version": "6.0"}]'
enable_windows_checks: false
swift_flags: --package-path AudioWorkstation/ServerHost

webgpu-demo:
name: Build WebGPU Demo
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@main
with:
enable_embedded_wasm_sdk_build: true
wasm_exclude_swift_versions: '[{"swift_version": "nightly-6.2"}]'
enable_linux_checks: false
enable_macos_checks: false
enable_windows_checks: false
swift_flags: --package-path WebGPUDemo

soundness:
name: Soundness
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
Expand Down
44 changes: 3 additions & 41 deletions AudioWorkstation/Guest/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,63 +15,25 @@

import PackageDescription

let embeddedSwiftSettings: [SwiftSetting] = [
.enableExperimentalFeature("Embedded"),
.enableExperimentalFeature("Extern"),
.interoperabilityMode(.Cxx),
.unsafeFlags(["-wmo", "-disable-cmo", "-Xfrontend", "-gnone", "-Xfrontend", "-disable-stack-protector"]),
]

let embeddedCSettings: [CSetting] = [
.unsafeFlags(["-fdeclspec"]),
]

let linkerSettings: [LinkerSetting] = [
.unsafeFlags([
"-Xclang-linker", "-nostdlib",
"-Xlinker", "--no-entry",
]),
]

let libcSettings: [CSetting] = [
.define("LACKS_TIME_H"),
.define("LACKS_SYS_TYPES_H"),
.define("LACKS_STDLIB_H"),
.define("LACKS_STRING_H"),
.define("LACKS_SYS_MMAN_H"),
.define("LACKS_FCNTL_H"),
.define("NO_MALLOC_STATS", to: "1"),
.define("__wasilibc_unmodified_upstream"),
]

let package = Package(
name: "Guest",
targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products from dependencies.
.executableTarget(
name: "Plotter",
dependencies: ["dlmalloc"],
cSettings: embeddedCSettings,
swiftSettings: embeddedSwiftSettings,
linkerSettings: linkerSettings
swiftSettings: [.enableExperimentalFeature("Extern")]
),
.target(name: "VultDSP"),
.target(
name: "dlmalloc",
cSettings: libcSettings
),
]
)

for module in ["Kick", "HiHat", "Bass", "Mix"] {
package.targets.append(
.executableTarget(
name: module,
dependencies: ["VultDSP", "dlmalloc"],
cSettings: embeddedCSettings,
swiftSettings: embeddedSwiftSettings,
linkerSettings: linkerSettings
dependencies: ["VultDSP"],
swiftSettings: [.interoperabilityMode(.Cxx), .enableExperimentalFeature("Extern")]
)
)
}
23 changes: 1 addition & 22 deletions AudioWorkstation/LICENSE-vendored.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,3 @@
# WASI libc

Code in `Sources/dlmalloc` directory is derived from WASI libc: https://github.com/WebAssembly/wasi-libc

wasi-libc as a whole is multi-licensed under the
Apache License v2.0 with LLVM Exceptions, the Apache License v2.0, and
the MIT License. See the LICENSE-APACHE-LLVM, LICENSE-APACHE and LICENSE-MIT
files, respectively, for details.

Portions of this software are derived from third-party works covered by
their own licenses:

dlmalloc/ - CC0; see the notice in malloc.c for details
emmalloc/ - MIT; see the notice in emmalloc.c for details
libc-bottom-half/cloudlibc/ - BSD-2-Clause; see the LICENSE file for details
libc-top-half/musl/ - MIT; see the COPYRIGHT file for details

wasi-libc's changes to these files are multi-licensed under the
Apache License v2.0 with LLVM Exceptions, the Apache License v2.0,
the MIT License, and the original licenses of the third-party works.

# WavAudioEncoder.js

`.wav` format encoding implementation is derived from WavAudioEncoder.js library https://github.com/higuma/wav-audio-encoder-js and is licensed as following:
Expand Down Expand Up @@ -69,4 +48,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
Loading