diff --git a/Bundler.toml b/Bundler.toml index 6d13902d9..00ea0f415 100644 --- a/Bundler.toml +++ b/Bundler.toml @@ -1,12 +1,90 @@ format_version = 2 +[projects.default] +source = 'git(https://github.com/PixarAnimationStudios/OpenUSD.git)' +revision = 'release' + +[projects.default.products] +usd_ar = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_arch = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_gf = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_js = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_kind = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_ndr = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_pcp = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_pegtl = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_plug = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_sdf = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_sdr = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_tf = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_trace = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_ts = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usd = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdGeom = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdHydra = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdLux = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdMedia = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdMtlx = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdPhysics = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdProc = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdRender = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdRi = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdSemantics = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdShade = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdSkel = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdUI = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdUtils = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_usdVol = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_vt = { type = 'dynamicLibrary', output_directory = 'lib' } +usd_work = { type = 'dynamicLibrary', output_directory = 'lib' } + +[projects.default.builder] +name = 'build_usd.swift' +type = 'wholeProject' +api_source = 'git(https://github.com/stackotter/swift-bundler.git)' +api = 'revision(main)' + [apps.UsdView] identifier = 'foundation.wabi.UsdView' product = 'UsdView' version = '1.0.0' category = 'public.app-category.graphics-design' icon = 'usdview.png' +dependencies = [ + 'usd_ar', + 'usd_arch', + 'usd_gf', + 'usd_js', + 'usd_kind', + 'usd_ndr', + 'usd_pcp', + 'usd_pegtl', + 'usd_plug', + 'usd_sdf', + 'usd_sdr', + 'usd_tf', + 'usd_trace', + 'usd_ts', + 'usd_usd', + 'usd_usdGeom', + 'usd_usdHydra', + 'usd_usdLux', + 'usd_usdMedia', + 'usd_usdMtlx', + 'usd_usdPhysics', + 'usd_usdProc', + 'usd_usdRender', + 'usd_usdRi', + 'usd_usdSemantics', + 'usd_usdShade', + 'usd_usdSkel', + 'usd_usdUI', + 'usd_usdUtils', + 'usd_usdVol', + 'usd_vt', + 'usd_work' +] [apps.UsdView.plist] commit = '$(COMMIT_HASH)' -CFBundleDocumentTypes = [ { type = "dict", value = { CFBundleTypeExtensions = [ 'usd', 'usda', 'usdc', 'usdz' ], CFBundleTypeIconFile = 'AppIcon.icns', CFBundleTypeName = 'Universal Scene Description File', CFBundleTypeRole = 'Editor', LSIsAppleDefaultForType = true, LSItemContentTypes = [ 'com.pixar.universal-scene-description', 'com.pixar.universal-scene-description-mobile', 'com.pixar.usd.ascii', 'com.pixar.usd.crate' ], CFBundleTypeIconSystemGenerated = true } } ] \ No newline at end of file +CFBundleDocumentTypes = [ { type = 'dict', value = { CFBundleTypeExtensions = [ 'usd', 'usda', 'usdc', 'usdz' ], CFBundleTypeIconFile = 'AppIcon.icns', CFBundleTypeName = 'Universal Scene Description File', CFBundleTypeRole = 'Editor', LSIsAppleDefaultForType = true, LSItemContentTypes = [ 'com.pixar.universal-scene-description', 'com.pixar.universal-scene-description-mobile', 'com.pixar.usd.ascii', 'com.pixar.usd.crate' ], CFBundleTypeIconSystemGenerated = true } } ] diff --git a/Sources/PixarMacros/StringifyMacros.swift b/Sources/PixarMacros/StringifyMacros.swift index 841eb428e..8feb0624d 100644 --- a/Sources/PixarMacros/StringifyMacros.swift +++ b/Sources/PixarMacros/StringifyMacros.swift @@ -21,7 +21,7 @@ public struct StringifyMacro: ExpressionMacro in _: some MacroExpansionContext ) -> ExprSyntax { - guard let argument = node.argumentList.first?.expression + guard let argument = node.arguments.first?.expression else { fatalError("compiler bug: the macro does not have any arguments") diff --git a/build_usd.swift b/build_usd.swift new file mode 100644 index 000000000..5861f7c2e --- /dev/null +++ b/build_usd.swift @@ -0,0 +1,35 @@ +/* ---------------------------------------------------------------- + * :: : M E T A V E R S E : :: + * ---------------------------------------------------------------- + * Licensed under the terms set forth in the LICENSE.txt file, this + * file is available at https://openusd.org/license. + * + * Copyright (C) 2016 Pixar. + * Copyright (C) 2024 Wabi Foundation. All Rights Reserved. + * ---------------------------------------------------------------- + * . x x x . o o o . x x x . : : : . o x o . : : : . + * ---------------------------------------------------------------- */ + +import Foundation +import SwiftBundlerBuilders + +@main +public struct OpenUSDBuilder: Builder +{ + public static func build(_ context: some BuilderContext) throws -> BuilderResult + { + try context.run( + "/usr/bin/python3", [ + "build_scripts/build_usd.py", + "--build-shared", + "--no-python", + "--no-imaging", + "--no-usdview", + "--build-variant", "release", + context.buildDirectory.path + ] + ) + + return .init() + } +}