aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/bundle
diff options
context:
space:
mode:
Diffstat (limited to 'share/qbs/modules/bundle')
-rw-r--r--share/qbs/modules/bundle/MacOSX-Package-Types.xcspec943
-rw-r--r--share/qbs/modules/bundle/MacOSX-Product-Types.xcspec1345
2 files changed, 1286 insertions, 1002 deletions
diff --git a/share/qbs/modules/bundle/MacOSX-Package-Types.xcspec b/share/qbs/modules/bundle/MacOSX-Package-Types.xcspec
index b36353fc7..23f094641 100644
--- a/share/qbs/modules/bundle/MacOSX-Package-Types.xcspec
+++ b/share/qbs/modules/bundle/MacOSX-Package-Types.xcspec
@@ -1,462 +1,533 @@
-[
- {
- "DefaultBuildSettings" : {
- "EXECUTABLE_PATH" : "$(EXECUTABLE_NAME)",
- "EXECUTABLE_PREFIX" : "",
- "EXECUTABLE_SUFFIX" : "",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"
- },
- "Identifier" : "com.apple.package-type.mach-o-executable",
- "Type" : "PackageType",
- "Name" : "Mach-O Executable",
- "Description" : "Mach-O executable",
- "ProductReference" : {
- "FileType" : "compiled.mach-o.executable",
- "Name" : "$(EXECUTABLE_NAME)",
- "IsLaunchable" : "YES"
- }
- },
- {
- "DefaultBuildSettings" : {
- "EXECUTABLE_PATH" : "$(EXECUTABLE_NAME)",
- "EXECUTABLE_PREFIX" : "",
- "EXECUTABLE_SUFFIX" : "",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"
- },
- "Identifier" : "com.apple.package-type.mach-o-objfile",
- "Type" : "PackageType",
- "Name" : "Mach-O Object File",
- "Description" : "Mach-O Object File",
- "ProductReference" : {
- "FileType" : "compiled.mach-o.objfile",
- "Name" : "$(EXECUTABLE_NAME)",
- "IsLaunchable" : "NO"
- }
- },
- {
- "DefaultBuildSettings" : {
- "EXECUTABLE_PATH" : "$(EXECUTABLE_NAME)",
- "EXECUTABLE_PREFIX" : "",
- "EXECUTABLE_SUFFIX" : "",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"
- },
- "Identifier" : "com.apple.package-type.mach-o-dylib",
- "Type" : "PackageType",
- "Name" : "Mach-O Dynamic Library",
- "Description" : "Mach-O dynamic library",
- "ProductReference" : {
- "FileType" : "compiled.mach-o.dylib",
- "Name" : "$(EXECUTABLE_NAME)",
- "IsLaunchable" : "NO"
- }
- },
- {
- "DefaultBuildSettings" : {
- "EXECUTABLE_PATH" : "$(EXECUTABLE_NAME)",
- "EXECUTABLE_PREFIX" : "lib",
- "EXECUTABLE_SUFFIX" : ".a",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"
- },
- "Identifier" : "com.apple.package-type.static-library",
- "Type" : "PackageType",
- "Name" : "Mach-O Static Library",
- "Description" : "Mach-O static library",
- "ProductReference" : {
- "FileType" : "archive.ar",
- "Name" : "$(EXECUTABLE_NAME)",
- "IsLaunchable" : "NO"
- }
- },
- {
- "DefaultBuildSettings" : {
- "EXECUTABLE_PATH" : "$(EXECUTABLE_NAME)",
- "EXECUTABLE_PREFIX" : "",
- "EXECUTABLE_SUFFIX" : ".dylib",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"
- },
- "Identifier" : "com.apple.package-type.mach-o-bundle",
- "Type" : "PackageType",
- "Name" : "Mach-O Loadable",
- "Description" : "Mach-O loadable",
- "ProductReference" : {
- "FileType" : "compiled.mach-o.bundle",
- "Name" : "$(EXECUTABLE_NAME)",
- "IsLaunchable" : "NO"
- }
- },
- {
- "DefaultBuildSettings" : {
- "PUBLIC_HEADERS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/Headers",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)",
- "EXECUTABLE_PREFIX" : "",
- "PLUGINS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/PlugIns",
- "DOCUMENTATION_FOLDER_PATH" : "$(LOCALIZED_RESOURCES_FOLDER_PATH)\/Documentation",
- "EXECUTABLES_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/Executables",
- "INFOSTRINGS_PATH" : "$(LOCALIZED_RESOURCES_FOLDER_PATH)\/InfoPlist.strings",
- "INFOPLIST_PATH" : "$(CONTENTS_FOLDER_PATH)\/Info.plist",
- "EXECUTABLE_SUFFIX" : "",
- "VERSIONPLIST_PATH" : "$(CONTENTS_FOLDER_PATH)\/version.plist",
- "SHARED_SUPPORT_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/SharedSupport",
- "EXECUTABLE_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/MacOS",
- "PBDEVELOPMENTPLIST_PATH" : "$(CONTENTS_FOLDER_PATH)\/pbdevelopment.plist",
- "FRAMEWORKS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/Frameworks",
- "LOCALIZED_RESOURCES_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/$(DEVELOPMENT_LANGUAGE).lproj",
- "SCRIPTS_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/Scripts",
- "WRAPPER_PREFIX" : "",
- "PRIVATE_HEADERS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/PrivateHeaders",
- "CONTENTS_FOLDER_PATH" : "$(WRAPPER_NAME)\/Contents",
- "WRAPPER_NAME" : "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)",
- "PKGINFO_PATH" : "$(CONTENTS_FOLDER_PATH)\/PkgInfo",
- "EXECUTABLE_PATH" : "$(EXECUTABLE_FOLDER_PATH)\/$(EXECUTABLE_NAME)",
- "UNLOCALIZED_RESOURCES_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/Resources",
- "JAVA_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/Java",
- "SHARED_FRAMEWORKS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/SharedFrameworks",
- "WRAPPER_SUFFIX" : ".bundle"
- },
- "Identifier" : "com.apple.package-type.wrapper",
- "Type" : "PackageType",
- "Name" : "Wrapper",
- "Description" : "Wrapper",
- "ProductReference" : {
- "FileType" : "wrapper.cfbundle",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
- }
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.cfbundle",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
- },
- "DefaultBuildSettings" : {
- "CONTENTS_FOLDER_PATH" : "$(WRAPPER_NAME)",
- "UNLOCALIZED_RESOURCES_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "SHALLOW_BUNDLE" : "YES",
- "EXECUTABLE_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)"
- },
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper",
- "Name" : "Wrapper (Shallow)",
- "Identifier" : "com.apple.package-type.wrapper.shallow",
- "Description" : "Shallow Wrapper"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.application",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "YES"
- },
- "DefaultBuildSettings" : {
- "GENERATE_PKGINFO_FILE" : "YES"
- },
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper",
- "Name" : "Application Wrapper",
- "Identifier" : "com.apple.package-type.wrapper.application",
- "Description" : "Application Wrapper"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.application",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "YES"
- },
- "DefaultBuildSettings" : {
- "UNLOCALIZED_RESOURCES_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "SHALLOW_BUNDLE" : "YES",
- "GENERATE_PKGINFO_FILE" : "YES"
- },
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper.shallow",
- "Name" : "Application Wrapper (Shallow)",
- "Identifier" : "com.apple.package-type.wrapper.application.shallow",
- "Description" : "Shallow Application Wrapper"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.cfbundle",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
- },
- "DefaultBuildSettings" : {
- "PRIVATE_HEADERS_FOLDER_PATH" : "$(KEXT_FRAMEWORK)\/Contents\/PrivateHeaders\/$(KEXT_FAMILY_NAME)",
- "PUBLIC_HEADERS_FOLDER_PATH" : "$(KEXT_FRAMEWORK)\/Contents\/Headers\/$(KEXT_FAMILY_NAME)"
+/**
+ MacOSX Package Types.xcspec
+
+ Copyright (c) 1999-2015 Apple Inc. All rights reserved.
+
+ Package type specifications in the Mac OS X platform.
+*/
+(
+ // Mach-O executable
+ { Type = PackageType;
+ Identifier = com.apple.package-type.mach-o-executable;
+ Name = "Mach-O Executable";
+ Description = "Mach-O executable";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = "";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = compiled.mach-o.executable;
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = YES;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper",
- "Name" : "Kernel Extension Wrapper",
- "Identifier" : "com.apple.package-type.wrapper.kernel-extension",
- "Description" : "Kernel Extension Wrapper"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.cfbundle",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // Mach-O object file
+ { Type = PackageType;
+ Identifier = com.apple.package-type.mach-o-objfile;
+ Name = "Mach-O Object File";
+ Description = "Mach-O Object File";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = "";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = compiled.mach-o.objfile;
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
- "PRIVATE_HEADERS_FOLDER_PATH" : "$(KEXT_FRAMEWORK)\/Contents\/PrivateHeaders\/$(KEXT_FAMILY_NAME)",
- "PUBLIC_HEADERS_FOLDER_PATH" : "$(KEXT_FRAMEWORK)\/Contents\/Headers\/$(KEXT_FAMILY_NAME)",
- "SHALLOW_BUNDLE" : "YES"
+
+ // Mach-O dynamic library
+ { Type = PackageType;
+ Identifier = com.apple.package-type.mach-o-dylib;
+ Name = "Mach-O Dynamic Library";
+ Description = "Mach-O dynamic library";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = "";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = compiled.mach-o.dylib;
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper.shallow",
- "Name" : "Kernel Extension Wrapper (Shallow)",
- "Identifier" : "com.apple.package-type.wrapper.kernel-extension.shallow",
- "Description" : "Shallow Kernel Extension Wrapper"
- },
- {
- "DefaultBuildSettings" : {
- "PUBLIC_HEADERS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/Headers",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)",
- "EXECUTABLE_PREFIX" : "",
- "PLUGINS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/PlugIns",
- "DOCUMENTATION_FOLDER_PATH" : "$(LOCALIZED_RESOURCES_FOLDER_PATH)\/Documentation",
- "EXECUTABLES_FOLDER_PATH" : "$(LOCALIZED_RESOURCES_FOLDER_PATH)",
- "INFOPLIST_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/Info.plist",
- "EXECUTABLE_SUFFIX" : "",
- "INFOPLISTSTRINGS_PATH" : "$(LOCALIZED_RESOURCES_FOLDER_PATH)\/InfoPlist.strings",
- "VERSIONPLIST_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/version.plist",
- "SHARED_SUPPORT_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)",
- "EXECUTABLE_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "PBDEVELOPMENTPLIST_PATH" : "$(CONTENTS_FOLDER_PATH)\/pbdevelopment.plist",
- "VERSIONS_FOLDER_PATH" : "$(WRAPPER_NAME)\/Versions",
- "FRAMEWORKS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/Frameworks",
- "CODESIGNING_FOLDER_PATH" : "$(TARGET_BUILD_DIR)\/$(CONTENTS_FOLDER_PATH)",
- "LOCALIZED_RESOURCES_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/$(DEVELOPMENT_LANGUAGE).lproj",
- "SCRIPTS_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/Scripts",
- "WRAPPER_PREFIX" : "",
- "PRIVATE_HEADERS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/PrivateHeaders",
- "CURRENT_VERSION" : "Current",
- "PKGINFO_PATH" : "$(WRAPPER_NAME)\/PkgInfo",
- "WRAPPER_NAME" : "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)",
- "CONTENTS_FOLDER_PATH" : "$(VERSIONS_FOLDER_PATH)\/$(FRAMEWORK_VERSION)",
- "EXECUTABLE_PATH" : "$(EXECUTABLE_FOLDER_PATH)\/$(EXECUTABLE_NAME)",
- "UNLOCALIZED_RESOURCES_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/Resources",
- "JAVA_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/Java",
- "SHARED_FRAMEWORKS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)\/SharedFrameworks",
- "WRAPPER_SUFFIX" : ".framework"
+
+ // Static library ('ar' archive containing .o files)
+ { Type = PackageType;
+ Identifier = com.apple.package-type.static-library;
+ Name = "Mach-O Static Library";
+ Description = "Mach-O static library";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "lib";
+ EXECUTABLE_SUFFIX = ".a";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = archive.ar;
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Identifier" : "com.apple.package-type.wrapper.framework",
- "Type" : "PackageType",
- "Name" : "Framework Wrapper",
- "Description" : "Framework wrapper",
- "ProductReference" : {
- "FileType" : "wrapper.framework",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
- }
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.framework.static",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // Mach-O bundle (not related to a CFBundle)
+ { Type = PackageType;
+ Identifier = com.apple.package-type.mach-o-bundle;
+ Name = "Mach-O Loadable";
+ Description = "Mach-O loadable";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = ".dylib";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = compiled.mach-o.bundle;
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
- "EXECUTABLE_SUFFIX" : "",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)",
- "EXECUTABLE_PREFIX" : ""
+
+ // CFBundle wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper;
+ Name = "Wrapper";
+ Description = "Wrapper";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "BNDL";
+ WRAPPER_PREFIX = "";
+ WRAPPER_SUFFIX = ".bundle";
+ WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)";
+ CONTENTS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH_SHALLOW_BUNDLE_$(SHALLOW_BUNDLE))";
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = "";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_FOLDER_PATH = "$(EXECUTABLE_FOLDER_PATH_SHALLOW_BUNDLE_$(SHALLOW_BUNDLE))";
+ EXECUTABLE_PATH = "$(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME)";
+ INFOPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/Info.plist";
+ INFOSTRINGS_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings";
+ PKGINFO_PATH = "$(CONTENTS_FOLDER_PATH)/PkgInfo";
+ PBDEVELOPMENTPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/pbdevelopment.plist";
+ VERSIONPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/version.plist";
+ PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Headers";
+ PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders";
+ EXECUTABLES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Executables"; // Not the same as EXECUTABLE_FOLDER_PATH
+ FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Frameworks";
+ SHARED_FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedFrameworks";
+ SHARED_SUPPORT_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedSupport";
+ UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH_SHALLOW_BUNDLE_$(SHALLOW_BUNDLE))";
+ LOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj";
+ DOCUMENTATION_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation";
+ MODULES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Modules";
+ PLUGINS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PlugIns";
+ SCRIPTS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts";
+ JAVA_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Java";
+ SYSTEM_EXTENSIONS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Library/SystemExtensions";
+
+ // Settings specific to deep bundles (macOS)
+ CONTENTS_FOLDER_PATH_SHALLOW_BUNDLE_NO = "$(WRAPPER_NAME)/Contents";
+ EXECUTABLE_FOLDER_PATH_SHALLOW_BUNDLE_NO = "$(CONTENTS_FOLDER_PATH)/MacOS";
+ UNLOCALIZED_RESOURCES_FOLDER_PATH_SHALLOW_BUNDLE_NO = "$(CONTENTS_FOLDER_PATH)/Resources";
+
+ // Settings specific to shallow bundles (iOS, DriverKit on any OS)
+ CONTENTS_FOLDER_PATH_SHALLOW_BUNDLE_YES = "$(WRAPPER_NAME)";
+ EXECUTABLE_FOLDER_PATH_SHALLOW_BUNDLE_YES = "$(CONTENTS_FOLDER_PATH)";
+ UNLOCALIZED_RESOURCES_FOLDER_PATH_SHALLOW_BUNDLE_YES = "$(CONTENTS_FOLDER_PATH)";
+
+ // DriverKit should always use shallow bundles
+ SHALLOW_BUNDLE = "$(SHALLOW_BUNDLE_$(SWIFT_PLATFORM_TARGET_PREFIX))";
+ SHALLOW_BUNDLE_ = YES;
+ SHALLOW_BUNDLE_macos = NO;
+ SHALLOW_BUNDLE_ios = NO; // for macCatalyst
+ SHALLOW_BUNDLE_driverkit = YES;
+ };
+ ProductReference = {
+ FileType = wrapper.cfbundle;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper.framework",
- "Name" : "Mach-O Static Framework",
- "Identifier" : "com.apple.package-type.wrapper.framework.static",
- "Description" : "Mach-O static framework"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.framework",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // Shallow CFBundle wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.shallow;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "Wrapper (Shallow)";
+ Description = "Shallow Wrapper";
+ DefaultBuildSettings = {
+ SHALLOW_BUNDLE = YES;
+ };
+ ProductReference = {
+ FileType = wrapper.cfbundle;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
- "UNLOCALIZED_RESOURCES_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "CONTENTS_FOLDER_PATH" : "$(WRAPPER_NAME)",
- "SHALLOW_BUNDLE" : "YES",
- "VERSIONS_FOLDER_PATH" : "$(WRAPPER_NAME)"
+
+ // Application wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.application;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "Application Wrapper";
+ Description = "Application Wrapper";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "APPL";
+ GENERATE_PKGINFO_FILE = YES;
+ };
+ ProductReference = {
+ FileType = wrapper.application;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = YES;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper.framework",
- "Name" : "Shallow Framework Wrapper",
- "Identifier" : "com.apple.package-type.wrapper.framework.shallow",
- "Description" : "Shallow framework wrapper"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.cfbundle",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // Shallow Application wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.application.shallow;
+ BasedOn = com.apple.package-type.wrapper.shallow;
+ Name = "Application Wrapper (Shallow)";
+ Description = "Shallow Application Wrapper";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "APPL";
+ GENERATE_PKGINFO_FILE = YES;
+ SHALLOW_BUNDLE = YES;
+ };
+ ProductReference = {
+ FileType = wrapper.application;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = YES;
+ };
},
- "DefaultBuildSettings" : {
- "WRAPPER_SUFFIX" : "xctest"
+
+ // System extension wrapper
+ {
+ Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.system-extension;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "System Extension Wrapper";
+ Description = "System Extension Wrapper";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "SYSX";
+ };
+ ProductReference = {
+ FileType = wrapper.system-extension;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper",
- "Name" : "Unit Test Bundle",
- "Identifier" : "com.apple.package-type.bundle.unit-test",
- "Description" : "Unit Test Bundle"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.cfbundle",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // Driver extension wrapper
+ {
+ Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.driver-extension;
+ BasedOn = com.apple.package-type.wrapper.system-extension;
+ Name = "Driver Extension Wrapper";
+ Description = "Driver Extension Wrapper";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "DEXT";
+ };
+ ProductReference = {
+ FileType = wrapper.driver-extension;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
- "WRAPPER_SUFFIX" : "octest"
+
+ // Kernel extension wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.kernel-extension;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "Kernel Extension Wrapper";
+ Description = "Kernel Extension Wrapper";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "KEXT";
+ PUBLIC_HEADERS_FOLDER_PATH = "$(KEXT_FRAMEWORK)/Contents/Headers/$(KEXT_FAMILY_NAME)";
+ PRIVATE_HEADERS_FOLDER_PATH = "$(KEXT_FRAMEWORK)/Contents/PrivateHeaders/$(KEXT_FAMILY_NAME)";
+ };
+ ProductReference = {
+ FileType = wrapper.cfbundle;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper",
- "Name" : "OCUnit Test Bundle",
- "Identifier" : "com.apple.package-type.bundle.ocunit-test",
- "Description" : "OCUnit Test Bundle"
- },
- {
- "ProductReference" : {
- "FileType" : "folder",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // Shallow Kernel extension wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.kernel-extension.shallow;
+ BasedOn = com.apple.package-type.wrapper.shallow;
+ Name = "Kernel Extension Wrapper (Shallow)";
+ Description = "Shallow Kernel Extension Wrapper";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "KEXT";
+ PUBLIC_HEADERS_FOLDER_PATH = "$(KEXT_FRAMEWORK)/Contents/Headers/$(KEXT_FAMILY_NAME)";
+ PRIVATE_HEADERS_FOLDER_PATH = "$(KEXT_FRAMEWORK)/Contents/PrivateHeaders/$(KEXT_FAMILY_NAME)";
+ SHALLOW_BUNDLE = YES;
+ };
+ ProductReference = {
+ FileType = wrapper.cfbundle;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
- "EXECUTABLE_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "JAVA_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)",
- "INFOSTRINGS_PATH" : "$(LOCALIZED_RESOURCES_FOLDER_PATH)\/ContentInfo.strings",
- "INFOPLIST_PATH" : "$(WRAPPER_NAME)\/ContentInfo.plist",
- "WRAPPER_SUFFIX" : "",
- "UNLOCALIZED_RESOURCES_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "DOCUMENTATION_FOLDER_PATH" : "$(LOCALIZED_RESOURCES_FOLDER_PATH)",
- "EXECUTABLES_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "LOCALIZED_RESOURCES_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\/$(DEVELOPMENT_LANGUAGE).lproj",
- "PLUGINS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "PUBLIC_HEADERS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "SHARED_SUPPORT_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "SHARED_FRAMEWORKS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "PRIVATE_HEADERS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)",
- "SCRIPTS_FOLDER_PATH" : "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)",
- "FRAMEWORKS_FOLDER_PATH" : "$(CONTENTS_FOLDER_PATH)"
+
+ // Framework wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.framework;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "Framework Wrapper";
+ Description = "Framework wrapper";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "FMWK";
+ WRAPPER_SUFFIX = ".framework";
+ VERSIONS_FOLDER_PATH = "$(VERSIONS_FOLDER_PATH_SHALLOW_BUNDLE_$(SHALLOW_BUNDLE))";
+ CURRENT_VERSION = "Current";
+ INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist";
+ PKGINFO_PATH = "$(WRAPPER_NAME)/PkgInfo";
+ VERSIONPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/version.plist";
+ EXECUTABLES_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)"; // Not the same as EXECUTABLE_FOLDER_PATH
+ SHARED_SUPPORT_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)";
+ CODESIGNING_FOLDER_PATH = "$(TARGET_BUILD_DIR)/$(CONTENTS_FOLDER_PATH)";
+
+ // Settings specific to deep bundles (macOS)
+ VERSIONS_FOLDER_PATH_SHALLOW_BUNDLE_NO = "$(WRAPPER_NAME)/Versions";
+ CONTENTS_FOLDER_PATH_SHALLOW_BUNDLE_NO = "$(VERSIONS_FOLDER_PATH)/$(FRAMEWORK_VERSION)";
+ EXECUTABLE_FOLDER_PATH_SHALLOW_BUNDLE_NO = "$(CONTENTS_FOLDER_PATH)";
+
+ // Settings specific to shallow bundles (iOS, DriverKit on any OS)
+ VERSIONS_FOLDER_PATH_SHALLOW_BUNDLE_YES = "$(WRAPPER_NAME)";
+ };
+ ProductReference = {
+ FileType = wrapper.framework;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper",
- "Name" : "In-App Purchase Content",
- "Identifier" : "com.apple.package-type.in-app-purchase-content",
- "Description" : "In-App Purchase Content"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.xpc-service",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // Static framework wrapper (like a framework, except that it contains a libX.a instead of a dylib)
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.framework.static;
+ Name = "Mach-O Static Framework";
+ Description = "Mach-O static framework";
+ BasedOn = com.apple.package-type.wrapper.framework;
+ DefaultBuildSettings = {
+ };
+ ProductReference = {
+ FileType = wrapper.framework.static;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
- "WRAPPER_SUFFIX" : ".xpc"
+
+ // Shallow Framework Package
+ { Type = PackageType;
+ Identifier = com.apple.package-type.wrapper.framework.shallow;
+ Name = "Shallow Framework Wrapper";
+ Description = "Shallow framework wrapper";
+ BasedOn = com.apple.package-type.wrapper.framework;
+ DefaultBuildSettings = {
+ SHALLOW_BUNDLE = YES;
+ };
+ ProductReference = {
+ FileType = wrapper.framework;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper",
- "Name" : "XPC Service",
- "Identifier" : "com.apple.package-type.xpc-service",
- "Description" : "XPC Service"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.app-extension",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // Unit Test Bundle wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.bundle.unit-test;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "Unit Test Bundle";
+ Description = "Unit Test Bundle";
+ DefaultBuildSettings = {
+ WRAPPER_SUFFIX = "xctest";
+ };
+ ProductReference = {
+ FileType = wrapper.cfbundle;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
- "WRAPPER_SUFFIX" : ".pluginkit"
+
+ // Legacy OCUnit Test Bundle wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.bundle.ocunit-test;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "OCUnit Test Bundle";
+ Description = "OCUnit Test Bundle";
+ DefaultBuildSettings = {
+ WRAPPER_SUFFIX = "octest";
+ };
+ ProductReference = {
+ FileType = wrapper.cfbundle;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.xpc-service",
- "Name" : "PlugInKit PlugIn",
- "Identifier" : "com.apple.package-type.pluginkit-plugin",
- "Description" : "PlugInKit PlugIn"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.app-extension",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // In-app Purchase Content wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.in-app-purchase-content;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "In-App Purchase Content";
+ Description = "In-App Purchase Content";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "";
+ WRAPPER_SUFFIX = "";
+ EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ INFOPLIST_PATH = "$(WRAPPER_NAME)/ContentInfo.plist";
+ INFOSTRINGS_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/ContentInfo.strings";
+ PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ EXECUTABLES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ SHARED_FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ SHARED_SUPPORT_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ LOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj";
+ DOCUMENTATION_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)";
+ MODULES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ PLUGINS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)";
+ SCRIPTS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)";
+ JAVA_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)";
+ };
+ ProductReference = {
+ FileType = folder;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
- "WRAPPER_SUFFIX" : ".appex"
+
+ // XPC Service wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.xpc-service;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "XPC Service";
+ Description = "XPC Service";
+ DefaultBuildSettings = {
+ PRODUCT_BUNDLE_PACKAGE_TYPE = "XPC!";
+ WRAPPER_SUFFIX = ".xpc";
+ };
+ ProductReference = {
+ FileType = wrapper.xpc-service;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.pluginkit-plugin",
- "Name" : "App Extension",
- "Identifier" : "com.apple.package-type.app-extension",
- "Description" : "App Extension"
- },
- {
- "ProductReference" : {
- "FileType" : "wrapper.spotlight-importer",
- "Name" : "$(WRAPPER_NAME)",
- "IsLaunchable" : "NO"
+
+ // PlugInKit PlugIn wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.pluginkit-plugin;
+ BasedOn = com.apple.package-type.xpc-service;
+ Name = "PlugInKit PlugIn";
+ Description = "PlugInKit PlugIn";
+ DefaultBuildSettings = {
+ WRAPPER_SUFFIX = ".pluginkit";
+ };
+ ProductReference = {
+ FileType = wrapper.app-extension;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "DefaultBuildSettings" : {
+
+ // App Extension wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.app-extension;
+ BasedOn = com.apple.package-type.pluginkit-plugin;
+ Name = "App Extension";
+ Description = "App Extension";
+ DefaultBuildSettings = {
+ WRAPPER_SUFFIX = ".appex";
+ };
+ ProductReference = {
+ FileType = wrapper.app-extension;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Type" : "PackageType",
- "BasedOn" : "com.apple.package-type.wrapper",
- "Name" : "Spotlight Importer",
- "Identifier" : "com.apple.package-type.spotlight-importer",
- "Description" : "Spotlight Importer"
- },
- {
- "DefaultBuildSettings" : {
- "EXECUTABLE_PATH" : "$(EXECUTABLE_NAME)",
- "JAVA_MAKE_ZIPFILE" : "NO",
- "JAVA_ARCHIVE_CLASSES" : "YES",
- "EXECUTABLE_PREFIX" : "",
- "EXECUTABLE_SUFFIX" : ".jar",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)"
+
+ // Spotlight Importer wrapper
+ { Type = PackageType;
+ Identifier = com.apple.package-type.spotlight-importer;
+ BasedOn = com.apple.package-type.wrapper;
+ Name = "Spotlight Importer";
+ Description = "Spotlight Importer";
+ DefaultBuildSettings = {
+ };
+ ProductReference = {
+ FileType = wrapper.spotlight-importer;
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Identifier" : "com.apple.package-type.jarfile",
- "Type" : "PackageType",
- "Name" : "Jar File",
- "Description" : "Jar file",
- "ProductReference" : {
- "FileType" : "archive.jar",
- "Name" : "$(EXECUTABLE_NAME)",
- "IsLaunchable" : "NO"
- }
- },
- {
- "DefaultBuildSettings" : {
- "EXECUTABLE_PATH" : "$(EXECUTABLE_NAME)",
- "JAVA_MAKE_ZIPFILE" : "YES",
- "JAVA_ARCHIVE_CLASSES" : "YES",
- "EXECUTABLE_PREFIX" : "",
- "EXECUTABLE_SUFFIX" : ".zip",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)"
+
+ // Jar file
+ { Type = PackageType;
+ Identifier = com.apple.package-type.jarfile;
+ Name = "Jar File";
+ Description = "Jar file";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = ".jar";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ JAVA_ARCHIVE_CLASSES = YES;
+ JAVA_MAKE_ZIPFILE = NO;
+ };
+ ProductReference = {
+ FileType = archive.jar;
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Identifier" : "com.apple.package-type.zipfile",
- "Type" : "PackageType",
- "Name" : "Zip File",
- "Description" : "Zip file",
- "ProductReference" : {
- "FileType" : "archive.zip",
- "Name" : "$(EXECUTABLE_NAME)",
- "IsLaunchable" : "NO"
- }
- },
- {
- "DefaultBuildSettings" : {
- "EXECUTABLE_PATH" : "$(EXECUTABLE_NAME)",
- "JAVA_ARCHIVE_CLASSES" : "NO",
- "EXECUTABLE_PREFIX" : "",
- "EXECUTABLE_SUFFIX" : "",
- "EXECUTABLE_NAME" : "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)"
+
+ // Zip file
+ { Type = PackageType;
+ Identifier = com.apple.package-type.zipfile;
+ Name = "Zip File";
+ Description = "Zip file";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = ".zip";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ JAVA_ARCHIVE_CLASSES = YES;
+ JAVA_MAKE_ZIPFILE = YES;
+ };
+ ProductReference = {
+ FileType = archive.zip;
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = NO;
+ };
},
- "Identifier" : "com.apple.package-type.javaclassfolder",
- "Type" : "PackageType",
- "Name" : "Class Folder",
- "Description" : "Class folder",
- "ProductReference" : {
- "FileType" : "wrapper.java-classfolder",
- "Name" : "$(EXECUTABLE_NAME)",
- "IsLaunchable" : "NO"
- }
- }
-]
+
+ // Java class folder
+ { Type = PackageType;
+ Identifier = com.apple.package-type.javaclassfolder;
+ Name = "Class Folder";
+ Description = "Class folder";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = "";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ JAVA_ARCHIVE_CLASSES = NO;
+ };
+ ProductReference = {
+ FileType = wrapper.java-classfolder;
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = NO;
+ };
+ },
+)
diff --git a/share/qbs/modules/bundle/MacOSX-Product-Types.xcspec b/share/qbs/modules/bundle/MacOSX-Product-Types.xcspec
index 8d8450869..bc1d087d6 100644
--- a/share/qbs/modules/bundle/MacOSX-Product-Types.xcspec
+++ b/share/qbs/modules/bundle/MacOSX-Product-Types.xcspec
@@ -1,590 +1,803 @@
-[
- {
- "IconNamePrefix" : "TargetExecutable",
- "DefaultBuildProperties" : {
- "REZ_EXECUTABLE" : "YES",
- "FULL_PRODUCT_NAME" : "$(EXECUTABLE_NAME)",
- "LIBRARY_FLAG_NOSPACE" : "YES",
- "FRAMEWORK_FLAG_PREFIX" : "-framework",
- "INSTALL_PATH" : "\/usr\/local\/bin",
- "GCC_INLINES_ARE_PRIVATE_EXTERN" : "YES",
- "GCC_DYNAMIC_NO_PIC" : "NO",
- "GCC_SYMBOLS_PRIVATE_EXTERN" : "YES",
- "CODE_SIGNING_ALLOWED" : "YES",
- "STRIP_STYLE" : "all",
- "EXECUTABLE_PREFIX" : "",
- "MACH_O_TYPE" : "mh_execute",
- "EXECUTABLE_SUFFIX" : "",
- "LIBRARY_FLAG_PREFIX" : "-l"
+//
+// MacOSX Product Types.xcspec
+//
+// Copyright © 1999-2020 Apple Inc. All rights reserved.
+//
+// Product type specifications in the macOS platform.
+//
+(
+ //
+ // Single-file product types
+ //
+
+ // Tool (normal Unix command-line executable)
+ { Type = ProductType;
+ Identifier = com.apple.product-type.tool;
+ Class = PBXToolProductType;
+ Name = "Command-line Tool";
+ Description = "Standalone command-line tool";
+ IconNamePrefix = "TargetExecutable";
+ DefaultTargetName = "Command-line Tool";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)";
+ MACH_O_TYPE = "mh_execute";
+ EXECUTABLE_PREFIX = "";
+ EXECUTABLE_SUFFIX = "";
+ REZ_EXECUTABLE = YES;
+ INSTALL_PATH = "/usr/local/bin";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = YES;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ STRIP_STYLE = "all";
+ CODE_SIGNING_ALLOWED = YES;
+ };
+ PackageTypes = (
+ com.apple.package-type.mach-o-executable // default
+ );
+ WantsSigningEditing = YES;
+ WantsBundleIdentifierEditing = YES;
},
- "PackageTypes" : [
- "com.apple.package-type.mach-o-executable"
- ],
- "Type" : "ProductType",
- "DefaultTargetName" : "Command-line Tool",
- "Name" : "Command-line Tool",
- "Identifier" : "com.apple.product-type.tool",
- "Description" : "Standalone command-line tool",
- "Class" : "PBXToolProductType"
- },
- {
- "IconNamePrefix" : "TargetExecutable",
- "IsJava" : "YES",
- "PackageTypes" : [
- "com.apple.package-type.jarfile",
- "com.apple.package-type.zipfile",
- "com.apple.package-type.javaclassfolder"
- ],
- "Type" : "ProductType",
- "DefaultTargetName" : "Java Command-line Tool",
- "Name" : "Java Command-line Tool",
- "Identifier" : "com.apple.product-type.tool.java",
- "Description" : "Java Command-line tool",
- "DefaultBuildProperties" : {
- "REZ_EXECUTABLE" : "YES",
- "INSTALL_PATH" : "\/usr\/local\/bin",
- "FULL_PRODUCT_NAME" : "$(EXECUTABLE_NAME)"
- }
- },
- {
- "IconNamePrefix" : "TargetPlugin",
- "DefaultBuildProperties" : {
- "DEAD_CODE_STRIPPING" : "NO",
- "REZ_EXECUTABLE" : "YES",
- "LINK_WITH_STANDARD_LIBRARIES" : "NO",
- "FULL_PRODUCT_NAME" : "$(EXECUTABLE_NAME)",
- "LIBRARY_FLAG_NOSPACE" : "YES",
- "FRAMEWORK_FLAG_PREFIX" : "-framework",
- "INSTALL_PATH" : "$(HOME)\/Objects",
- "SKIP_INSTALL" : "YES",
- "GCC_INLINES_ARE_PRIVATE_EXTERN" : "YES",
- "KEEP_PRIVATE_EXTERNS" : "YES",
- "EXECUTABLE_EXTENSION" : "o",
- "PUBLIC_HEADERS_FOLDER_PATH" : "\/usr\/local\/include",
- "MACH_O_TYPE" : "mh_object",
- "EXECUTABLE_SUFFIX" : ".$(EXECUTABLE_EXTENSION)",
- "LIBRARY_FLAG_PREFIX" : "-l",
- "PRIVATE_HEADERS_FOLDER_PATH" : "\/usr\/local\/include",
- "STRIP_STYLE" : "debugging"
+
+ // Java tool
+ { Type = ProductType;
+ Identifier = com.apple.product-type.tool.java;
+ Name = "Java Command-line Tool";
+ Description = "Java Command-line tool";
+ IconNamePrefix = "TargetExecutable";
+ DefaultTargetName = "Java Command-line Tool";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)";
+ REZ_EXECUTABLE = YES;
+ INSTALL_PATH = "/usr/local/bin";
+ };
+ IsJava = YES;
+ PackageTypes = (
+ com.apple.package-type.jarfile, // default
+ com.apple.package-type.zipfile,
+ com.apple.package-type.javaclassfolder
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.mach-o-objfile"
- ],
- "Type" : "ProductType",
- "DefaultTargetName" : "Object File",
- "Name" : "Object File",
- "Identifier" : "com.apple.product-type.objfile",
- "Description" : "Object File",
- "Class" : "XCStandaloneExecutableProductType"
- },
- {
- "IconNamePrefix" : "TargetLibrary",
- "DefaultBuildProperties" : {
- "LIBRARY_FLAG_PREFIX" : "-l",
- "STRIP_STYLE" : "debugging",
- "REZ_EXECUTABLE" : "YES",
- "FULL_PRODUCT_NAME" : "$(EXECUTABLE_NAME)",
- "LD_DYLIB_INSTALL_NAME" : "$(DYLIB_INSTALL_NAME_BASE:standardizepath)\/$(EXECUTABLE_PATH)",
- "DYLIB_COMPATIBILITY_VERSION" : "1",
- "INSTALL_PATH" : "\/usr\/local\/lib",
- "FRAMEWORK_FLAG_PREFIX" : "-framework",
- "LIBRARY_FLAG_NOSPACE" : "YES",
- "GCC_INLINES_ARE_PRIVATE_EXTERN" : "YES",
- "CODE_SIGNING_ALLOWED" : "YES",
- "CODE_SIGNING_REQUIRED" : "NO",
- "EXECUTABLE_EXTENSION" : "dylib",
- "PUBLIC_HEADERS_FOLDER_PATH" : "\/usr\/local\/include",
- "DYLIB_INSTALL_NAME_BASE" : "$(INSTALL_PATH)",
- "EXECUTABLE_SUFFIX" : ".$(EXECUTABLE_EXTENSION)",
- "PRIVATE_HEADERS_FOLDER_PATH" : "\/usr\/local\/include",
- "MACH_O_TYPE" : "mh_dylib",
- "DYLIB_CURRENT_VERSION" : "1"
+
+ // Object file
+ { Type = ProductType;
+ Identifier = com.apple.product-type.objfile;
+ Class = XCStandaloneExecutableProductType;
+ Name = "Object File";
+ Description = "Object File";
+ IconNamePrefix = "TargetPlugin";
+ DefaultTargetName = "Object File";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)";
+ MACH_O_TYPE = "mh_object";
+ LINK_WITH_STANDARD_LIBRARIES = NO;
+ REZ_EXECUTABLE = YES;
+ EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)";
+ EXECUTABLE_EXTENSION = "o";
+ PUBLIC_HEADERS_FOLDER_PATH = "/usr/local/include";
+ PRIVATE_HEADERS_FOLDER_PATH = "/usr/local/include";
+ INSTALL_PATH = "$(HOME)/Objects";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = YES;
+ SKIP_INSTALL = YES;
+ STRIP_STYLE = "debugging";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ KEEP_PRIVATE_EXTERNS = YES;
+ DEAD_CODE_STRIPPING = NO;
+ };
+ PackageTypes = (
+ com.apple.package-type.mach-o-objfile // default
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.mach-o-dylib"
- ],
- "Type" : "ProductType",
- "DefaultTargetName" : "Dynamic Library",
- "Name" : "Dynamic Library",
- "Identifier" : "com.apple.product-type.library.dynamic",
- "Description" : "Dynamic library",
- "Class" : "PBXDynamicLibraryProductType"
- },
- {
- "IconNamePrefix" : "TargetLibrary",
- "DefaultBuildProperties" : {
- "STRIP_STYLE" : "debugging",
- "CLANG_ENABLE_MODULE_DEBUGGING" : "NO",
- "REZ_EXECUTABLE" : "YES",
- "FULL_PRODUCT_NAME" : "$(EXECUTABLE_NAME)",
- "LIBRARY_FLAG_NOSPACE" : "YES",
- "FRAMEWORK_FLAG_PREFIX" : "-framework",
- "INSTALL_PATH" : "\/usr\/local\/lib",
- "EXECUTABLE_EXTENSION" : "a",
- "EXECUTABLE_PREFIX" : "lib",
- "PUBLIC_HEADERS_FOLDER_PATH" : "\/usr\/local\/include",
- "EXECUTABLE_SUFFIX" : ".$(EXECUTABLE_EXTENSION)",
- "LIBRARY_FLAG_PREFIX" : "-l",
- "PRIVATE_HEADERS_FOLDER_PATH" : "\/usr\/local\/include",
- "MACH_O_TYPE" : "staticlib"
+
+ // Dynamic library
+ { Type = ProductType;
+ Identifier = com.apple.product-type.library.dynamic;
+ Class = PBXDynamicLibraryProductType;
+ Name = "Dynamic Library";
+ Description = "Dynamic library";
+ IconNamePrefix = "TargetLibrary";
+ DefaultTargetName = "Dynamic Library";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)";
+ MACH_O_TYPE = "mh_dylib";
+ REZ_EXECUTABLE = YES;
+ EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)";
+ EXECUTABLE_EXTENSION = "dylib";
+ PUBLIC_HEADERS_FOLDER_PATH = "/usr/local/include";
+ PRIVATE_HEADERS_FOLDER_PATH = "/usr/local/include";
+ INSTALL_PATH = "/usr/local/lib";
+ DYLIB_INSTALL_NAME_BASE = "$(INSTALL_PATH)";
+ LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
+ DYLIB_COMPATIBILITY_VERSION = "1";
+ DYLIB_CURRENT_VERSION = "1";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = YES;
+ STRIP_STYLE = "debugging";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ CODE_SIGNING_ALLOWED = YES;
+ CODE_SIGNING_REQUIRED = NO;
+ };
+ PackageTypes = (
+ com.apple.package-type.mach-o-dylib // default
+ );
},
- "AlwaysPerformSeparateStrip" : "YES",
- "PackageTypes" : [
- "com.apple.package-type.static-library"
- ],
- "Type" : "ProductType",
- "DefaultTargetName" : "Static Library",
- "Name" : "Static Library",
- "Identifier" : "com.apple.product-type.library.static",
- "Description" : "Static library",
- "Class" : "PBXStaticLibraryProductType"
- },
- {
- "IconNamePrefix" : "TargetPlugin",
- "IsJava" : "YES",
- "PackageTypes" : [
- "com.apple.package-type.jarfile",
- "com.apple.package-type.zipfile",
- "com.apple.package-type.javaclassfolder"
- ],
- "Type" : "ProductType",
- "DefaultTargetName" : "Java Library",
- "Name" : "Java Library",
- "Identifier" : "com.apple.product-type.library.java.archive",
- "Description" : "Java library packaged as a Jar file, Zip file, or class folder",
- "DefaultBuildProperties" : {
- "INSTALL_PATH" : "\/usr\/local\/lib",
- "FULL_PRODUCT_NAME" : "$(PRODUCT_NAME)"
- }
- },
- {
- "HasInfoPlistStrings" : "YES",
- "Description" : "Generic bundle",
- "HasInfoPlist" : "YES",
- "Name" : "Bundle",
- "Class" : "PBXBundleProductType",
- "DefaultTargetName" : "Bundle",
- "DefaultBuildProperties" : {
- "LIBRARY_FLAG_NOSPACE" : "YES",
- "WRAPPER_NAME" : "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)",
- "FRAMEWORK_FLAG_PREFIX" : "-framework",
- "GCC_INLINES_ARE_PRIVATE_EXTERN" : "YES",
- "WRAPPER_SUFFIX" : ".$(WRAPPER_EXTENSION)",
- "FULL_PRODUCT_NAME" : "$(WRAPPER_NAME)",
- "WRAPPER_EXTENSION" : "bundle",
- "CODE_SIGNING_ALLOWED" : "YES",
- "WRAPPER_PREFIX" : "",
- "STRIP_STYLE" : "non-global",
- "MACH_O_TYPE" : "mh_bundle",
- "LIBRARY_FLAG_PREFIX" : "-l"
+
+ // Static library
+ { Type = ProductType;
+ Identifier = com.apple.product-type.library.static;
+ Class = PBXStaticLibraryProductType;
+ Name = "Static Library";
+ Description = "Static library";
+ IconNamePrefix = "TargetLibrary";
+ DefaultTargetName = "Static Library";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)";
+ MACH_O_TYPE = "staticlib";
+ REZ_EXECUTABLE = YES;
+ EXECUTABLE_PREFIX = "lib";
+ EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)";
+ EXECUTABLE_EXTENSION = "a";
+ PUBLIC_HEADERS_FOLDER_PATH = "/usr/local/include";
+ PRIVATE_HEADERS_FOLDER_PATH = "/usr/local/include";
+ INSTALL_PATH = "/usr/local/lib";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = YES;
+ STRIP_STYLE = "debugging";
+ CLANG_ENABLE_MODULE_DEBUGGING = NO;
+ CODE_SIGNING_ALLOWED = NO;
+ };
+ AlwaysPerformSeparateStrip = YES;
+ PackageTypes = (
+ com.apple.package-type.static-library // default
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.wrapper",
- "com.apple.package-type.wrapper.shallow"
- ],
- "IsWrapper" : "YES",
- "Type" : "ProductType",
- "Identifier" : "com.apple.product-type.bundle",
- "IconNamePrefix" : "TargetPlugin"
- },
- {
- "PackageTypes" : [
- "com.apple.package-type.wrapper.shallow"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.bundle",
- "Name" : "Bundle (Shallow)",
- "Identifier" : "com.apple.product-type.bundle.shallow",
- "Description" : "Bundle (Shallow)",
- "Class" : "PBXBundleProductType"
- },
- {
- "Description" : "Application",
- "Class" : "PBXApplicationProductType",
- "Name" : "Application",
- "RunpathSearchPathForEmbeddedFrameworks" : "@executable_path\/..\/Frameworks",
- "ValidateEmbeddedBinaries" : "YES",
- "ProvisioningProfileSupported" : "YES",
- "DefaultTargetName" : "Application",
- "DefaultBuildProperties" : {
- "INSTALL_PATH" : "$(LOCAL_APPS_DIR)",
- "WRAPPER_EXTENSION" : "app",
- "GCC_DYNAMIC_NO_PIC" : "NO",
- "STRIP_STYLE" : "all",
- "CODE_SIGNING_ALLOWED" : "YES",
- "GCC_INLINES_ARE_PRIVATE_EXTERN" : "YES",
- "WRAPPER_SUFFIX" : ".$(WRAPPER_EXTENSION)",
- "GCC_SYMBOLS_PRIVATE_EXTERN" : "YES",
- "MACH_O_TYPE" : "mh_execute"
+
+ // Java library (jar or zip file)
+ { Type = ProductType;
+ Identifier = com.apple.product-type.library.java.archive;
+ Name = "Java Library";
+ Description = "Java library packaged as a Jar file, Zip file, or class folder";
+ IconNamePrefix = "TargetPlugin";
+ DefaultTargetName = "Java Library";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(PRODUCT_NAME)";
+ INSTALL_PATH = "/usr/local/lib";
+ };
+ IsJava = YES;
+ PackageTypes = (
+ com.apple.package-type.jarfile, // default
+ com.apple.package-type.zipfile,
+ com.apple.package-type.javaclassfolder
+ );
},
- "BasedOn" : "com.apple.product-type.bundle",
- "ProvisioningProfileRequired" : "NO",
- "PackageTypes" : [
- "com.apple.package-type.wrapper.application"
- ],
- "Type" : "ProductType",
- "CanEmbedCompilerSanitizerLibraries" : "YES",
- "Identifier" : "com.apple.product-type.application",
- "IconNamePrefix" : "TargetApp"
- },
- {
- "PackageTypes" : [
- "com.apple.package-type.wrapper.application.shallow"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.application",
- "Name" : "Application (Shallow Bundle)",
- "Identifier" : "com.apple.product-type.application.shallow",
- "Description" : "Application (Shallow Bundle)",
- "Class" : "PBXApplicationProductType"
- },
- {
- "DefaultBuildProperties" : {
- "PKGINFO_PATH" : "",
- "INFOPLIST_PATH" : ""
+
+
+ //
+ // Wrapper product types
+ //
+
+ // Bundle
+ { Type = ProductType;
+ Identifier = com.apple.product-type.bundle;
+ Class = PBXBundleProductType;
+ Name = "Bundle";
+ Description = "Generic bundle";
+ IconNamePrefix = "TargetPlugin";
+ DefaultTargetName = "Bundle";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(WRAPPER_NAME)";
+ MACH_O_TYPE = "mh_bundle";
+ WRAPPER_PREFIX = "";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "bundle";
+ WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = YES;
+ STRIP_STYLE = "non-global";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ CODE_SIGNING_ALLOWED = YES;
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper, // default
+ com.apple.package-type.wrapper.shallow // Not clear if this is needed in the presence of the Shallow Bundle product type below.
+ );
+ IsWrapper = YES;
+ HasInfoPlist = YES;
+ HasInfoPlistStrings = YES;
+ WantsBundleIdentifierEditing = YES;
+ WantsSigningEditing = YES;
},
- "IsJava" : "YES",
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.application",
- "Name" : "Java Application",
- "Identifier" : "com.apple.product-type.application.java",
- "Description" : "Java Application",
- "DefaultTargetName" : "Java Application"
- },
- {
- "IconNamePrefix" : "TargetFramework",
- "DefaultTargetName" : "Framework",
- "DefaultBuildProperties" : {
- "CODE_SIGNING_REQUIRES_TEAM" : "YES",
- "LD_DYLIB_INSTALL_NAME" : "$(DYLIB_INSTALL_NAME_BASE:standardizepath)\/$(EXECUTABLE_PATH)",
- "CODE_SIGNING_REQUIRED" : "NO",
- "CODE_SIGNING_ALLOWED" : "YES",
- "INSTALL_PATH" : "$(LOCAL_LIBRARY_DIR)\/Frameworks",
- "WRAPPER_SUFFIX" : ".$(WRAPPER_EXTENSION)",
- "WRAPPER_EXTENSION" : "framework",
- "FRAMEWORK_VERSION" : "A",
- "ENTITLEMENTS_REQUIRED" : "NO",
- "STRIP_STYLE" : "debugging",
- "DYLIB_INSTALL_NAME_BASE" : "$(INSTALL_PATH)",
- "MACH_O_TYPE" : "mh_dylib"
+
+ // Shallow Bundle Product
+ { Type = ProductType;
+ Identifier = com.apple.product-type.bundle.shallow;
+ BasedOn = com.apple.product-type.bundle;
+ Class = PBXBundleProductType;
+ Name = "Bundle (Shallow)";
+ Description = "Bundle (Shallow)";
+ PackageTypes = (
+ com.apple.package-type.wrapper.shallow
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.wrapper.framework"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.bundle",
- "Name" : "Framework",
- "Identifier" : "com.apple.product-type.framework",
- "Description" : "Framework",
- "Class" : "PBXFrameworkProductType"
- },
- {
- "PackageTypes" : [
- "com.apple.package-type.wrapper.framework.shallow"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.framework",
- "Name" : "Framework (Shallow Bundle)",
- "Identifier" : "com.apple.product-type.framework.shallow",
- "Description" : "Framework (Shallow Bundle)",
- "Class" : "PBXFrameworkProductType"
- },
- {
- "IconNamePrefix" : "TargetFramework",
- "DefaultTargetName" : "Static Framework",
- "DefaultBuildProperties" : {
- "WRAPPER_EXTENSION" : "framework",
- "DYLIB_INSTALL_NAME_BASE" : "",
- "CODE_SIGNING_ALLOWED" : "NO",
- "FRAMEWORK_VERSION" : "A",
- "LD_DYLIB_INSTALL_NAME" : "",
- "GCC_INLINES_ARE_PRIVATE_EXTERN" : "NO",
- "INSTALL_PATH" : "$(LOCAL_LIBRARY_DIR)\/Frameworks",
- "WRAPPER_SUFFIX" : ".$(WRAPPER_EXTENSION)",
- "MACH_O_TYPE" : "staticlib"
+
+ // Application
+ { Type = ProductType;
+ Identifier = com.apple.product-type.application;
+ BasedOn = com.apple.product-type.bundle;
+ Class = PBXApplicationProductType;
+ Name = "Application";
+ Description = "Application";
+ IconNamePrefix = "TargetApp";
+ DefaultTargetName = "Application";
+ DefaultBuildProperties = {
+ MACH_O_TYPE = "mh_execute";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "app";
+ INSTALL_PATH = "$(LOCAL_APPS_DIR)";
+ STRIP_STYLE = "all";
+ CODE_SIGNING_ALLOWED = YES;
+ LD_RUNPATH_SEARCH_PATHS = "$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST))";
+ LD_RUNPATH_SEARCH_PATHS_YES = ( "@loader_path/../Frameworks", );
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper.application // default
+ );
+
+ /** Product type validation hooks */
+ Validation = {
+
+ // Checks - a dictionary of checks that are perform just prior to building the product
+ // Each dictionary key is the "XCPropertyMacroExpression" to evaluate
+ // The dictionary value contains the error message to display if the condition evaluates to false.
+ Checks = {
+ // This is intentially empty as currently all of the checks are done in-code for this particular application type. However, we enable the plubmbing for the validation tool spec infrastructure to be called to avoid any further hacks in pbxbuild or xcbuild. This is to enable rdar://problem/45590882.
+ };
+
+ // Determines if the legacy build system has support for this validation hook. This is a workaround for enabling additional validation in xcbuild (specifically for rdar://problem/45590882), which does not have the same plugin restriction that is imposed on pbxbuild's implementation of the validation hooks.
+ EnabledForLegacyBuildSystem = NO;
+
+ // ValidationToolSpec - the identifier of the tool (script) to run after a target is constructed.
+ ValidationToolSpec = "com.apple.build-tools.platform.validate";
+ };
+ CanEmbedCompilerSanitizerLibraries = YES;
+ RunpathSearchPathForEmbeddedFrameworks = "@executable_path/../Frameworks";
+ ValidateEmbeddedBinaries = YES;
+ ProvisioningProfileSupported = YES;
+ ProvisioningProfileRequired = NO;
+ WantsBundleIdentifierEditing = YES;
+ WantsSigningEditing = YES;
},
- "AlwaysPerformSeparateStrip" : "YES",
- "PackageTypes" : [
- "com.apple.package-type.wrapper.framework.static"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.framework",
- "Name" : "Static Framework",
- "Identifier" : "com.apple.product-type.framework.static",
- "Description" : "Static Framework",
- "Class" : "XCStaticFrameworkProductType"
- },
- {
- "DefaultTargetName" : "Kernel Extension",
- "DefaultBuildProperties" : {
- "GCC_ENABLE_BUILTIN_FUNCTIONS" : "NO",
- "MODULE_START" : "0",
- "PRIVATE_HEADERS_FOLDER_PATH" : "$(KEXT_FRAMEWORK)\/Contents\/PrivateHeaders\/$(KEXT_FAMILY_NAME)",
- "WRAPPER_SUFFIX" : ".$(WRAPPER_EXTENSION)",
- "MACH_O_TYPE" : "mh_execute",
- "GCC_ENABLE_KERNEL_DEVELOPMENT" : "YES",
- "PRODUCT_TYPE_CPLUSPLUSFLAGS" : "$(inherited) $(KEXT_CPLUSPLUSFLAGS)",
- "MODULE_STOP" : "0",
- "GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS" : "YES",
- "GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS" : "$(inherited) KERNEL KERNEL_PRIVATE DRIVER_PRIVATE APPLE NeXT",
- "GCC_DISABLE_STATIC_FUNCTION_INLINING" : "YES",
- "ENABLE_APPLE_KEXT_CODE_GENERATION" : "YES",
- "CODE_SIGNING_ALLOWED" : "YES",
- "GCC_FORCE_CPU_SUBTYPE_ALL" : "YES",
- "PRODUCT_SPECIFIC_LDFLAGS" : "$(inherited) $(KEXT_LDFLAGS)",
- "WRAPPER_EXTENSION" : "kext",
- "KERNEL_EXTENSION_HEADER_SEARCH_PATHS" : "$(KERNEL_FRAMEWORK)\/PrivateHeaders $(KERNEL_FRAMEWORK_HEADERS)",
- "GCC_INLINES_ARE_PRIVATE_EXTERN" : "NO",
- "PRODUCT_TYPE_CFLAGS" : "$(inherited) $(KEXT_CFLAGS)",
- "KEXT_FRAMEWORK_NAME" : "Kernel",
- "GCC_NO_COMMON_BLOCKS" : "YES",
- "GCC_ENABLE_PASCAL_STRINGS" : "NO",
- "PUBLIC_HEADERS_FOLDER_PATH" : "$(KEXT_FRAMEWORK)\/Contents\/Headers\/$(KEXT_FAMILY_NAME)",
- "GCC_ENABLE_FUNCTION_INLINING" : "YES",
- "KERNEL_FRAMEWORK_HEADERS" : "$(KERNEL_FRAMEWORK)\/Headers",
- "KEXT_FAMILY_NAME" : "family",
- "KEXT_FRAMEWORK" : "$(SYSTEM_LIBRARY_DIR)\/Frameworks\/$(KEXT_FRAMEWORK_NAME).framework",
- "GCC_ENABLE_CPP_EXCEPTIONS" : "NO",
- "GCC_ENABLE_CPP_RTTI" : "NO",
- "MODULE_NAME" : "com.company.driver.modulename",
- "GCC_USE_STANDARD_INCLUDE_SEARCHING" : "NO",
- "KERNEL_FRAMEWORK" : "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)\/Frameworks\/Kernel.framework",
- "MODULE_VERSION" : "1.0",
- "INSTALL_PATH" : "$(DEFAULT_KEXT_INSTALL_PATH)",
- "PRODUCT_TYPE_HEADER_SEARCH_PATHS" : "$(inherited) $(KERNEL_EXTENSION_HEADER_SEARCH_PATHS)",
- "GCC_CHECK_RETURN_VALUE_OF_OPERATOR_NEW" : "YES",
- "STRIP_STYLE" : "debugging"
+
+ // Shallow Application Product
+ { Type = ProductType;
+ Identifier = com.apple.product-type.application.shallow;
+ BasedOn = com.apple.product-type.application;
+ Class = PBXApplicationProductType; // see radar 5604879, this shouldn't be necesary
+ Name = "Application (Shallow Bundle)";
+ Description = "Application (Shallow Bundle)";
+ PackageTypes = (
+ com.apple.package-type.wrapper.application.shallow
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.wrapper.kernel-extension",
- "com.apple.package-type.wrapper.kernel-extension.shallow"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.bundle",
- "Name" : "Kernel Extension",
- "Identifier" : "com.apple.product-type.kernel-extension",
- "Description" : "Kernel extension",
- "Class" : "XCKernelExtensionProductType"
- },
- {
- "DefaultBuildProperties" : {
+ // Java Application
+ { Type = ProductType;
+ Identifier = com.apple.product-type.application.java;
+ BasedOn = com.apple.product-type.application;
+ Name = "Java Application";
+ Description = "Java Application";
+ DefaultTargetName = "Java Application";
+ DefaultBuildProperties = {
+ INFOPLIST_PATH = "";
+ PKGINFO_PATH = "";
+ };
+ IsJava = YES;
},
- "PackageTypes" : [
- "com.apple.package-type.wrapper.kernel-extension.shallow"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.kernel-extension",
- "Name" : "Kernel Extension (Shallow)",
- "Identifier" : "com.apple.product-type.kernel-extension.shallow",
- "Description" : "Kernel extension (shallow)",
- "Class" : "XCKernelExtensionProductType"
- },
- {
- "DefaultTargetName" : "IOKit Kernel Extension",
- "DefaultBuildProperties" : {
- "CODE_SIGNING_ALLOWED" : "YES"
+
+ // Framework
+ { Type = ProductType;
+ Identifier = com.apple.product-type.framework;
+ BasedOn = com.apple.product-type.bundle;
+ Class = PBXFrameworkProductType;
+ Name = "Framework";
+ Description = "Framework";
+ IconNamePrefix = "TargetFramework";
+ DefaultTargetName = "Framework";
+ DefaultBuildProperties = {
+ MACH_O_TYPE = "mh_dylib";
+ FRAMEWORK_VERSION = "A";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "framework";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ DYLIB_INSTALL_NAME_BASE = "$(INSTALL_PATH)";
+ LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)";
+ STRIP_STYLE = "debugging";
+ CODE_SIGNING_ALLOWED = YES;
+ CODE_SIGNING_REQUIRED = NO;
+ ENTITLEMENTS_REQUIRED = NO;
+ CODE_SIGNING_REQUIRES_TEAM = YES;
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper.framework // default
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.wrapper.kernel-extension",
- "com.apple.package-type.wrapper.kernel-extension.shallow"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.kernel-extension",
- "Name" : "IOKit Kernel Extension",
- "Identifier" : "com.apple.product-type.kernel-extension.iokit",
- "Description" : "IOKit Kernel extension",
- "Class" : "XCKernelExtensionProductType"
- },
- {
- "DefaultTargetName" : "IOKit Kernel Extension (Shallow)",
- "DefaultBuildProperties" : {
+ // Shallow Framework Product
+ { Type = ProductType;
+ Identifier = com.apple.product-type.framework.shallow;
+ BasedOn = com.apple.product-type.framework;
+ Class = PBXFrameworkProductType;
+ Name = "Framework (Shallow Bundle)";
+ Description = "Framework (Shallow Bundle)";
+ PackageTypes = (
+ com.apple.package-type.wrapper.framework.shallow
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.wrapper.kernel-extension.shallow"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.kernel-extension",
- "Name" : "IOKit Kernel Extension (Shallow)",
- "Identifier" : "com.apple.product-type.kernel-extension.iokit.shallow",
- "Description" : "IOKit Kernel extension (Shallow)",
- "Class" : "XCKernelExtensionProductType"
- },
- {
- "DefaultBuildProperties" : {
- "TEST_FRAMEWORK_SEARCH_PATHS" : [
- "$(inherited)",
- "$(PLATFORM_DIR)\/Developer\/Library\/Frameworks"
- ],
- "PRODUCT_SPECIFIC_LDFLAGS" : "-framework XCTest",
- "WRAPPER_EXTENSION" : "xctest",
- "PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHS" : "$(TEST_FRAMEWORK_SEARCH_PATHS)"
+
+ // Static framework
+ { Type = ProductType;
+ Identifier = com.apple.product-type.framework.static;
+ BasedOn = com.apple.product-type.framework;
+ Class = XCStaticFrameworkProductType;
+ Name = "Static Framework";
+ Description = "Static Framework";
+ IconNamePrefix = "TargetFramework";
+ DefaultTargetName = "Static Framework";
+ DefaultBuildProperties = {
+ MACH_O_TYPE = "staticlib";
+ FRAMEWORK_VERSION = "A";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "framework";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ DYLIB_INSTALL_NAME_BASE = "";
+ LD_DYLIB_INSTALL_NAME = "";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ CODE_SIGNING_ALLOWED = NO;
+ };
+ AlwaysPerformSeparateStrip = YES;
+ PackageTypes = (
+ com.apple.package-type.wrapper.framework.static // default
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.bundle.unit-test"
- ],
- "CanEmbedCompilerSanitizerLibraries" : "YES",
- "IsUnitTest" : "YES",
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.bundle",
- "Name" : "Unit Test Bundle",
- "Identifier" : "com.apple.product-type.bundle.unit-test",
- "Description" : "Unit Test Bundle",
- "Class" : "PBXXCTestBundleProductType"
- },
- {
- "DefaultBuildProperties" : {
- "TEST_FRAMEWORK_SEARCH_PATHS" : [
- "$(inherited)",
- "$(PLATFORM_DIR)\/Developer\/Library\/Frameworks"
- ],
- "PRODUCT_SPECIFIC_LDFLAGS" : "-framework XCTest",
- "WRAPPER_EXTENSION" : "xctest",
- "USES_XCTRUNNER" : "YES",
- "PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHS" : "$(TEST_FRAMEWORK_SEARCH_PATHS)"
+
+ // System extension
+ { Type = ProductType;
+ Identifier = com.apple.product-type.system-extension;
+ BasedOn = com.apple.product-type.bundle;
+ Name = "DriverKit Driver";
+ Description = "DriverKit driver";
+ DefaultTargetName = "DriverKit Driver";
+ DefaultBuildProperties = {
+ MACH_O_TYPE = "mh_execute";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "systemextension";
+
+ PRODUCT_NAME = "$(PRODUCT_BUNDLE_IDENTIFIER)";
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper.system-extension,
+ );
+ ProvisioningProfileSupported = YES;
+ ProvisioningProfileRequired = NO;
},
- "PackageTypes" : [
- "com.apple.package-type.bundle.unit-test"
- ],
- "ProvisioningProfileSupported" : "YES",
- "IsUITest" : "YES",
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.bundle.unit-test",
- "Name" : "UI Testing Bundle",
- "Identifier" : "com.apple.product-type.bundle.ui-testing",
- "Description" : "UI Testing Bundle",
- "Class" : "PBXXCTestBundleProductType"
- },
- {
- "DefaultBuildProperties" : {
- "WRAPPER_EXTENSION" : "octest"
+
+ // DriverKit driver
+ { Type = ProductType;
+ Identifier = com.apple.product-type.driver-extension;
+ BasedOn = com.apple.product-type.system-extension;
+ Name = "DriverKit Driver";
+ Description = "DriverKit driver";
+ DefaultTargetName = "DriverKit Driver";
+ DefaultBuildProperties = {
+ SDKROOT = "driverkit";
+ MACH_O_TYPE = "mh_execute";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "dext";
+ INSTALL_PATH = "$(DEFAULT_DEXT_INSTALL_PATH)";
+ STRIP_STYLE = "debugging";
+
+ DEXT_FRAMEWORK_NAME = "DriverKit";
+ DEXT_FRAMEWORK = "$(SYSTEM_LIBRARY_DIR)/Frameworks/$(DEXT_FRAMEWORK_NAME).framework";
+
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+
+ PRODUCT_NAME = "$(PRODUCT_BUNDLE_IDENTIFIER)";
+ PRODUCT_TYPE_HEADER_SEARCH_PATHS = "$(inherited) $(IIG_HEADERS_DIR)";
+ };
+ DefaultEntitlements = {
+ "com.apple.developer.driverkit" = YES;
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper.driver-extension,
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.bundle.ocunit-test"
- ],
- "IsUnitTest" : "YES",
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.bundle",
- "Name" : "OCUnit Test Bundle",
- "Identifier" : "com.apple.product-type.bundle.ocunit-test",
- "Description" : "OCUnit Test Bundle",
- "Class" : "PBXBundleProductType"
- },
- {
- "HasInfoPlistStrings" : "NO",
- "PackageTypes" : [
- "com.apple.package-type.in-app-purchase-content"
- ],
- "HasInfoPlist" : "YES",
- "IsWrapper" : "YES",
- "Type" : "ProductType",
- "DefaultBuildProperties" : {
- "FULL_PRODUCT_NAME" : "$(WRAPPER_NAME)"
+
+ // Kernel Extension
+ { Type = ProductType;
+ Identifier = com.apple.product-type.kernel-extension;
+ BasedOn = com.apple.product-type.bundle;
+ Class = XCKernelExtensionProductType;
+ Name = "Kernel Extension";
+ Description = "Kernel extension";
+ DefaultTargetName = "Kernel Extension";
+ DefaultBuildProperties = {
+ MACH_O_TYPE = "mh_execute";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "kext";
+ INSTALL_PATH = "$(DEFAULT_KEXT_INSTALL_PATH)";
+ STRIP_STYLE = "debugging";
+
+ KEXT_FRAMEWORK_NAME = "Kernel";
+ KEXT_FRAMEWORK = "$(SYSTEM_LIBRARY_DIR)/Frameworks/$(KEXT_FRAMEWORK_NAME).framework";
+ KEXT_FAMILY_NAME = "family";
+ PUBLIC_HEADERS_FOLDER_PATH = "$(KEXT_FRAMEWORK)/Contents/Headers/$(KEXT_FAMILY_NAME)";
+ PRIVATE_HEADERS_FOLDER_PATH = "$(KEXT_FRAMEWORK)/Contents/PrivateHeaders/$(KEXT_FAMILY_NAME)";
+ MODULE_NAME = "com.company.driver.modulename";
+ MODULE_VERSION = "1.0";
+ MODULE_START = "0";
+ MODULE_STOP = "0";
+
+ ENABLE_APPLE_KEXT_CODE_GENERATION = YES; // -fapple-kext
+ GCC_ENABLE_KERNEL_DEVELOPMENT = YES; // -mkernel
+
+ GCC_USE_STANDARD_INCLUDE_SEARCHING = NO; // -nostdinc
+ GCC_ENABLE_PASCAL_STRINGS = NO; // Disables -fpascal-strings
+ GCC_FORCE_CPU_SUBTYPE_ALL = YES; // -force_cpusubtype_ALL
+ GCC_CHECK_RETURN_VALUE_OF_OPERATOR_NEW = YES; // -fcheck-new
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO; // -fvisibility-inlines-hidden
+ GCC_ENABLE_BUILTIN_FUNCTIONS = NO; // -fno-builtin
+ GCC_NO_COMMON_BLOCKS = YES; // -fno-common
+ GCC_ENABLE_CPP_EXCEPTIONS = NO; // -fno-exceptions
+ GCC_ENABLE_CPP_RTTI = NO; // -fno-rtti
+
+ // Supposedly these two flags are the default in GCC, but they're provided here for compatibility with older Xcode versions.
+ GCC_ENABLE_FUNCTION_INLINING = YES; // -finline
+ GCC_DISABLE_STATIC_FUNCTION_INLINING = YES; // -fno-keep-inline-functions
+
+ // Per-product-type settings.
+ // The KERNEL_*** settings are defined differently for some SDKs, so we continue to use them for compatibility reasons.
+ KERNEL_FRAMEWORK = "$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks/Kernel.framework";
+ KERNEL_FRAMEWORK_HEADERS = "$(KERNEL_FRAMEWORK)/Headers";
+ KERNEL_EXTENSION_HEADER_SEARCH_PATHS = "$(KERNEL_FRAMEWORK)/PrivateHeaders $(KERNEL_FRAMEWORK_HEADERS)";
+ // These settings are reserved for use by product types.
+ GCC_PRODUCT_TYPE_PREPROCESSOR_DEFINITIONS = "$(inherited) KERNEL KERNEL_PRIVATE DRIVER_PRIVATE APPLE NeXT";
+ PRODUCT_TYPE_CFLAGS = "$(inherited) $(KEXT_CFLAGS)";
+ PRODUCT_TYPE_CPLUSPLUSFLAGS = "$(inherited) $(KEXT_CPLUSPLUSFLAGS)";
+ PRODUCT_SPECIFIC_LDFLAGS = "$(inherited) $(KEXT_LDFLAGS)";
+ PRODUCT_TYPE_HEADER_SEARCH_PATHS = "$(inherited) $(KERNEL_EXTENSION_HEADER_SEARCH_PATHS)";
+
+ CODE_SIGNING_ALLOWED = YES;
+
+ ARCHS_STANDARD = "arm64e x86_64";
+ ARCHS_STANDARD_64_BIT = "$(ARCHS_STANDARD)";
+ ARCHS_STANDARD_INCLUDING_64_BIT = "$(ARCHS_STANDARD)";
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper.kernel-extension, // Default
+ com.apple.package-type.wrapper.kernel-extension.shallow,
+ );
+ },
+
+ // Shallow Kernel Extension
+ {
+ Type = ProductType;
+ Identifier = com.apple.product-type.kernel-extension.shallow;
+ BasedOn = com.apple.product-type.kernel-extension;
+ Class = XCKernelExtensionProductType;
+ Name = "Kernel Extension (Shallow)";
+ Description = "Kernel extension (shallow)";
+ DefaultBuildProperties = {
+ // None yet
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper.kernel-extension.shallow,
+ );
+ },
+
+ // IOKit Kernel Extension
+ { Type = ProductType;
+ Identifier = com.apple.product-type.kernel-extension.iokit;
+ BasedOn = com.apple.product-type.kernel-extension;
+ Class = XCKernelExtensionProductType;
+ Name = "IOKit Kernel Extension";
+ Description = "IOKit Kernel extension";
+ DefaultTargetName = "IOKit Kernel Extension";
+ DefaultBuildProperties = {
+ CODE_SIGNING_ALLOWED = YES;
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper.kernel-extension, // Default
+ com.apple.package-type.wrapper.kernel-extension.shallow,
+ );
+ },
+
+ // Shallow IOKit Kernel Extension
+ { Type = ProductType;
+ Identifier = com.apple.product-type.kernel-extension.iokit.shallow;
+ BasedOn = com.apple.product-type.kernel-extension;
+ Class = XCKernelExtensionProductType;
+ Name = "IOKit Kernel Extension (Shallow)";
+ Description = "IOKit Kernel extension (Shallow)";
+ DefaultTargetName = "IOKit Kernel Extension (Shallow)";
+ DefaultBuildProperties = {
+ // None yet
+ };
+ PackageTypes = (
+ com.apple.package-type.wrapper.kernel-extension.shallow,
+ );
+ },
+
+ // Unit Test Bundle
+ { Type = ProductType;
+ Identifier = com.apple.product-type.bundle.unit-test;
+ BasedOn = com.apple.product-type.bundle;
+ Class = PBXXCTestBundleProductType;
+ Name = "Unit Test Bundle";
+ Description = "Unit Test Bundle";
+ DefaultBuildProperties = {
+ WRAPPER_EXTENSION = "xctest";
+ ENABLE_TESTING_SEARCH_PATHS = YES;
+ PRODUCT_SPECIFIC_LDFLAGS = "-framework XCTest";
+ XCTRUNNER_PATH = "$(XCTRUNNER_PATH$(TEST_BUILD_STYLE))";
+ LD_RUNPATH_SEARCH_PATHS = "$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST))";
+ LD_RUNPATH_SEARCH_PATHS_YES = (
+ "@loader_path/../Frameworks",
+ "@executable_path/../Frameworks",
+ );
+ };
+ PackageTypes = (
+ com.apple.package-type.bundle.unit-test
+ );
+ CanEmbedCompilerSanitizerLibraries = YES;
+ IsUnitTest = YES;
+ WantsBundleIdentifierEditing = NO;
+ },
+
+ // UI Testing Bundle
+ { Type = ProductType;
+ Identifier = com.apple.product-type.bundle.ui-testing;
+ BasedOn = com.apple.product-type.bundle.unit-test;
+ Class = PBXXCTestBundleProductType;
+ Name = "UI Testing Bundle";
+ Description = "UI Testing Bundle";
+ DefaultBuildProperties = {
+ USES_XCTRUNNER = "YES";
+ };
+ PackageTypes = (
+ com.apple.package-type.bundle.unit-test
+ );
+ ProvisioningProfileSupported = YES;
+ IsUITest = YES;
+ InfoPlistAdditions = {
+ XCTContainsUITests = YES;
+ };
+ WantsBundleIdentifierEditing = NO;
},
- "Name" : "In-App Purchase Content",
- "Identifier" : "com.apple.product-type.in-app-purchase-content",
- "Description" : "In-App Purchase Content",
- "Class" : "PBXBundleProductType"
- },
- {
- "IconNamePrefix" : "XPCService",
- "DefaultTargetName" : "XPC Service",
- "CanEmbedCompilerSanitizerLibraries" : "YES",
- "DefaultBuildProperties" : {
- "MACH_O_TYPE" : "mh_execute",
- "WRAPPER_EXTENSION" : "xpc"
+
+ // Legacy OCUnit Test Bundle
+ { Type = ProductType;
+ Identifier = com.apple.product-type.bundle.ocunit-test;
+ BasedOn = com.apple.product-type.bundle;
+ Class = PBXBundleProductType;
+ Name = "OCUnit Test Bundle";
+ Description = "OCUnit Test Bundle";
+ DefaultBuildProperties = {
+ WRAPPER_EXTENSION = "octest";
+ };
+ PackageTypes = (
+ com.apple.package-type.bundle.ocunit-test
+ );
+ IsUnitTest = YES;
+ },
+
+ // In-App Purchase Content
+ { Type = ProductType;
+ Identifier = com.apple.product-type.in-app-purchase-content;
+ Class = PBXBundleProductType;
+ Name = "In-App Purchase Content";
+ Description = "In-App Purchase Content";
+ DefaultBuildProperties = {
+ CODE_SIGNING_ALLOWED = NO;
+ FULL_PRODUCT_NAME = "$(WRAPPER_NAME)";
+ };
+ PackageTypes = (
+ com.apple.package-type.in-app-purchase-content, // default
+ );
+ IsWrapper = YES;
+ HasInfoPlist = YES;
+ HasInfoPlistStrings = NO;
+ },
+
+ // XPC Service
+ {
+ Type = ProductType;
+ Identifier = "com.apple.product-type.xpc-service";
+ BasedOn = "com.apple.product-type.bundle";
+ Class = PBXBundleProductType;
+ Name = "XPC Service";
+ Description = "XPC Service";
+ IconNamePrefix = XPCService;
+ DefaultTargetName = "XPC Service";
+ CanEmbedCompilerSanitizerLibraries = YES;
+ "DefaultBuildProperties" = {
+ "MACH_O_TYPE" = "mh_execute";
+ WRAPPER_EXTENSION = "xpc";
+ LD_RUNPATH_SEARCH_PATHS = "$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST)_$(_BOOL_$(SKIP_INSTALL)))";
+ LD_RUNPATH_SEARCH_PATHS_YES_YES = (
+ "@loader_path/../Frameworks",
+ "@loader_path/../../../../Frameworks",
+ );
+ LD_RUNPATH_SEARCH_PATHS_YES_NO = ( "@loader_path/../Frameworks", );
+ };
+ PackageTypes = (
+ "com.apple.package-type.xpc-service",
+ );
+ ProvisioningProfileSupported = YES;
+ ProvisioningProfileRequired = NO;
+ WantsBundleIdentifierEditing = YES;
+ WantsSigningEditing = YES;
+ },
+
+ // PlugIn-Kit PlugIn
+ {
+ Type = ProductType;
+ Identifier = "com.apple.product-type.pluginkit-plugin";
+ BasedOn = "com.apple.product-type.xpc-service";
+ Class = PBXBundleProductType;
+ Name = "PlugInKit PlugIn";
+ Description = "PlugInKit PlugIn";
+ IconNamePrefix = XPCService;
+ DefaultTargetName = "PlugInKit PlugIn";
+ "DefaultBuildProperties" = {
+ "PRODUCT_SPECIFIC_LDFLAGS" = "$(SDKROOT)/System/Library/PrivateFrameworks/PlugInKit.framework/PlugInKit";
+ WRAPPER_EXTENSION = "pluginkit";
+ };
+ PackageTypes = (
+ "com.apple.package-type.pluginkit-plugin",
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.xpc-service"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.bundle",
- "Name" : "XPC Service",
- "Identifier" : "com.apple.product-type.xpc-service",
- "Description" : "XPC Service",
- "Class" : "PBXBundleProductType"
- },
- {
- "IconNamePrefix" : "XPCService",
- "DefaultTargetName" : "PlugInKit PlugIn",
- "DefaultBuildProperties" : {
- "WRAPPER_EXTENSION" : "pluginkit",
- "PRODUCT_SPECIFIC_LDFLAGS" : "$(SDKROOT)\/System\/Library\/PrivateFrameworks\/PlugInKit.framework\/PlugInKit"
+
+ // App Extension
+ {
+ Type = ProductType;
+ Identifier = "com.apple.product-type.app-extension";
+ BasedOn = "com.apple.product-type.pluginkit-plugin";
+ Class = PBXBundleProductType;
+ Name = "App Extension";
+ Description = "App Extension";
+ IconNamePrefix = AppExtension;
+ DefaultTargetName = "App Extension";
+ "DefaultBuildProperties" = {
+ "CODE_SIGNING_ALLOWED" = YES;
+ "APPLICATION_EXTENSION_API_ONLY" = YES;
+ "PRODUCT_SPECIFIC_LDFLAGS" = "-e _NSExtensionMain";
+ WRAPPER_EXTENSION = "appex";
+ };
+ PackageTypes = (
+ "com.apple.package-type.app-extension",
+ );
+ ProvisioningProfileSupported = YES;
+ ProvisioningProfileRequired = NO;
+ WantsBundleIdentifierEditing = YES;
+ WantsSigningEditing = YES;
},
- "PackageTypes" : [
- "com.apple.package-type.pluginkit-plugin"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.xpc-service",
- "Name" : "PlugInKit PlugIn",
- "Identifier" : "com.apple.product-type.pluginkit-plugin",
- "Description" : "PlugInKit PlugIn",
- "Class" : "PBXBundleProductType"
- },
- {
- "Description" : "App Extension",
- "Class" : "PBXBundleProductType",
- "Name" : "App Extension",
- "ProvisioningProfileSupported" : "YES",
- "DefaultTargetName" : "App Extension",
- "DefaultBuildProperties" : {
- "APPLICATION_EXTENSION_API_ONLY" : "YES",
- "PRODUCT_SPECIFIC_LDFLAGS" : "-e _NSExtensionMain",
- "WRAPPER_EXTENSION" : "appex",
- "CODE_SIGNING_ALLOWED" : "YES"
+
+ // Xcode Extension
+ {
+ Type = ProductType;
+ Identifier = "com.apple.product-type.xcode-extension";
+ BasedOn = "com.apple.product-type.app-extension";
+ Name = "Xcode Extension";
+ Description = "Xcode Extension";
+ IconNamePrefix = XcodeExtension;
+ DefaultTargetName = "Xcode Extension";
+ "DefaultBuildProperties" = {
+ "CODE_SIGNING_ALLOWED" = YES;
+ "APPLICATION_EXTENSION_API_ONLY" = YES;
+ "PRODUCT_SPECIFIC_LDFLAGS" = "-e _XCExtensionMain -lXcodeExtension";
+ "PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHS" = (
+ "$(inherited)",
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
+ );
+ "PRODUCT_TYPE_LIBRARY_SEARCH_PATHS" = (
+ "$(inherited)",
+ "$(DEVELOPER_USR_DIR)/lib",
+ );
+ LD_RUNPATH_SEARCH_PATHS = (
+ "@loader_path/../Frameworks",
+ );
+ WRAPPER_EXTENSION = "appex";
+ };
+ PackageTypes = (
+ "com.apple.package-type.app-extension",
+ );
+ ProvisioningProfileSupported = YES;
+ ProvisioningProfileRequired = NO;
+ WantsBundleIdentifierEditing = YES;
+ WantsSigningEditing = YES;
},
- "BasedOn" : "com.apple.product-type.pluginkit-plugin",
- "ProvisioningProfileRequired" : "NO",
- "PackageTypes" : [
- "com.apple.package-type.app-extension"
- ],
- "Type" : "ProductType",
- "Identifier" : "com.apple.product-type.app-extension",
- "IconNamePrefix" : "AppExtension"
- },
- {
- "Description" : "Xcode Extension",
- "Class" : "PBXBundleProductType",
- "Name" : "Xcode Extension",
- "ProvisioningProfileSupported" : "YES",
- "DefaultTargetName" : "Xcode Extension",
- "DefaultBuildProperties" : {
- "APPLICATION_EXTENSION_API_ONLY" : "YES",
- "PRODUCT_SPECIFIC_LDFLAGS" : "-e _XCExtensionMain -lXcodeExtension -weak_framework XcodeKit",
- "PRODUCT_TYPE_LIBRARY_SEARCH_PATHS" : [
- "$(inherited)",
- "$(DEVELOPER_USR_DIR)\/lib"
- ],
- "CODE_SIGNING_ALLOWED" : "YES",
- "WRAPPER_EXTENSION" : "appex",
- "PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHS" : [
- "$(inherited)",
- "$(DEVELOPER_FRAMEWORKS_DIR)"
- ]
+
+ // Spotlight Importer
+ {
+ Type = ProductType;
+ Identifier = "com.apple.product-type.spotlight-importer";
+ BasedOn = "com.apple.product-type.bundle";
+ Class = PBXBundleProductType;
+ Name = "Spotlight Importer";
+ Description = "Spotlight Importer";
+ DefaultTargetName = "Spotlight";
+ "DefaultBuildProperties" = {
+ "CODE_SIGNING_ALLOWED" = YES;
+ };
+ PackageTypes = (
+ "com.apple.package-type.spotlight-importer",
+ );
},
- "BasedOn" : "com.apple.product-type.app-extension",
- "ProvisioningProfileRequired" : "NO",
- "PackageTypes" : [
- "com.apple.package-type.app-extension"
- ],
- "Type" : "ProductType",
- "Identifier" : "com.apple.product-type.xcode-extension",
- "IconNamePrefix" : "XcodeExtension"
- },
- {
- "DefaultTargetName" : "Spotlight",
- "DefaultBuildProperties" : {
- "CODE_SIGNING_ALLOWED" : "YES"
+
+ // Copied from iOS specs to aid in build system diagnostic support.
+ // Later, we should put these in some central place.
+ {
+ Type = ProductType;
+ Identifier = "com.apple.product-type.app-extension.messages";
+ BasedOn = "com.apple.product-type.app-extension";
+ },
+
+ {
+ Type = ProductType;
+ Identifier = "com.apple.product-type.app-extension.messages-sticker-pack";
+ BasedOn = "com.apple.product-type.app-extension";
+ IsCapabilitiesUnsupported = YES;
+ WantsSimpleTargetEditing = YES;
+ DefaultBuildProperties = {
+ MESSAGES_APPLICATION_EXTENSION_PRODUCT_BINARY_SOURCE_PATH = "$(PLATFORM_DIR)/Library/Application Support/MessagesApplicationExtensionStub/MessagesApplicationExtensionStub";
+ ASSETCATALOG_COMPILER_INCLUDE_STICKER_CONTENT = YES;
+ ASSETCATALOG_COMPILER_TARGET_STICKERS_ICON_ROLE = "extension";
+ ASSETCATALOG_COMPILER_STICKER_PACK_IDENTIFIER_PREFIX = "$(PRODUCT_BUNDLE_IDENTIFIER).sticker-pack.";
+ };
+ AllowedBuildPhases = (
+ "com.apple.buildphase.resources",
+ "com.apple.buildphase.shell-script",
+ );
+ InfoPlistAdditions = {
+ LSApplicationIsStickerProvider = YES;
+ };
+ },
+
+ {
+ Type = ProductType;
+ Identifier = "com.apple.product-type.application.on-demand-install-capable";
+ BasedOn = "com.apple.product-type.application";
+ Name = "App Clip";
+ Description = "App Clip";
+ DefaultBuildProperties = {
+ ENABLE_ON_DEMAND_RESOURCES = NO;
+ ASSETCATALOG_COMPILER_STANDALONE_ICON_BEHAVIOR = none; // Don't include standalone icons to keep size down
+ PRODUCT_SPECIFIC_LDFLAGS = "$(inherited) -framework AppClip";
+ SKIP_INSTALL = YES;
+ };
+ DefaultEntitlements = {
+ "com.apple.developer.on-demand-install-capable" = YES;
+ };
+ SupportsOnDemandResources = NO;
+ IsEmbeddable = YES;
+ BuildPhaseInjectionsWhenEmbedding = (
+ {
+ BuildPhase = "CopyFiles";
+ Name = "Embed App Clips";
+ RunOnlyForDeploymentPostprocessing = NO;
+ DstSubFolderSpec = 16;
+ DstPath = "$(CONTENTS_FOLDER_PATH)/AppClips";
+ }
+ );
},
- "PackageTypes" : [
- "com.apple.package-type.spotlight-importer"
- ],
- "Type" : "ProductType",
- "BasedOn" : "com.apple.product-type.bundle",
- "Name" : "Spotlight Importer",
- "Identifier" : "com.apple.product-type.spotlight-importer",
- "Description" : "Spotlight Importer",
- "Class" : "PBXBundleProductType"
- }
-]
+)