Merge pull request #1 from billhollings/master

Updates and fixes to dynamic library creation process.
This commit is contained in:
Bill Hollings 2017-11-26 15:41:04 -05:00 committed by GitHub
commit a6c038107c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 1321 additions and 1226 deletions

View File

@ -218,9 +218,6 @@
A958167E1C03D79500792CBF = {
DevelopmentTeam = VU3TCKU48B;
};
A9A7447D1D1198A400ADB0E9 = {
DevelopmentTeam = VU3TCKU48B;
};
};
};
buildConfigurationList = A95816611C03BC4D00792CBF /* Build configuration list for PBXProject "AsynchronousTimeWarp" */;
@ -450,7 +447,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = VU3TCKU48B;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS\"";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
@ -473,7 +470,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = VU3TCKU48B;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS\"";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",

View File

@ -1 +1 @@
../../../../Khronos/Vulkan/Khronos-Vulkan-Samples/Vulkan-Samples
../../../../Khronos/Khronos-Vulkan-Samples/Vulkan-Samples

View File

@ -625,9 +625,6 @@
attributes = {
LastUpgradeCheck = 0900;
TargetAttributes = {
1D6058900D05DD3D006BFB54 = {
DevelopmentTeam = VU3TCKU48B;
};
A977BCBD1B66BB010067E5BF = {
DevelopmentTeam = VU3TCKU48B;
};
@ -724,7 +721,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = VU3TCKU48B;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"\"$(SRCROOT)/../../../MoltenVK/iOS\"",
"\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"",
@ -750,7 +747,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = VU3TCKU48B;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"\"$(SRCROOT)/../../../MoltenVK/iOS\"",
"\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"",

View File

@ -269,9 +269,6 @@
A9B53B0F1C3AC0BE00ABC6F6 = {
DevelopmentTeam = VU3TCKU48B;
};
A9B53B291C3AC15200ABC6F6 = {
DevelopmentTeam = VU3TCKU48B;
};
};
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Demos" */;
@ -389,7 +386,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = VU3TCKU48B;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
@ -410,7 +407,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = VU3TCKU48B;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",

View File

@ -357,9 +357,6 @@
attributes = {
LastUpgradeCheck = 0900;
TargetAttributes = {
1D6058900D05DD3D006BFB54 = {
DevelopmentTeam = VU3TCKU48B;
};
A977BCBD1B66BB010067E5BF = {
DevelopmentTeam = VU3TCKU48B;
};
@ -513,7 +510,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = VU3TCKU48B;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"\"$(SRCROOT)/../../../MoltenVK/iOS\"",
"\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"",
@ -532,7 +529,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
DEVELOPMENT_TEAM = VU3TCKU48B;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"\"$(SRCROOT)/../../../MoltenVK/iOS\"",
"\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"",

View File

@ -1 +1 @@
../../../../Khronos/Vulkan/LunarG-VulkanSamples/VulkanSamples
../../../../Khronos/LunarG-VulkanSamples/VulkanSamples

@ -1 +1 @@
Subproject commit c05d0571cb6e3856b96d5cfe4fc6fe74f7c76d13
Subproject commit 5989540f3e23ba8441902321b1d9176395612fdc

@ -1 +1 @@
Subproject commit dbf9b3762cd485d05387b495495e1a359da8ee37
Subproject commit c170afd93b1d69914f911f225ddaf5bab2640208

2
External/Vulkan-Hpp vendored

@ -1 +1 @@
Subproject commit e464d695dd6678cc904793a9fe0a839e24794184
Subproject commit 6e12cceb3757f794a5d12e88c7f730ab32aaa888

18
External/getLatestAll vendored Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
#
# Copyright (c) 2016-2017 The Brenwill Workshop Ltd.
#
# getLatestAll - Updates to the latest versions of all submodules.
#
# Invokes the following scripts:
# getLatestVulkanSpec
# getLatestSPIRVTools
# getLatestglslang
# getLatestSPIRVCross
#
# macOS usage: ./getLatestAll
./getLatestVulkanSpec
./getLatestSPIRVTools
./getLatestglslang
./getLatestSPIRVCross

10
External/getLatestSPIRVCross vendored Executable file
View File

@ -0,0 +1,10 @@
#!/usr/bin/env bash
#
# Copyright (c) 2016-2017 The Brenwill Workshop Ltd.
#
# getLatestSPIRVCross - Updates to the latest version of SPIRV-Cross submodule.
#
# macOS usage: ./getLatestSPIRVCross
rm -rf SPIRV-Cross
git clone https://github.com/KhronosGroup/SPIRV-Cross.git

15
External/getLatestSPIRVTools vendored Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env bash
#
# Copyright (c) 2016-2017 The Brenwill Workshop Ltd.
#
# getLatestSPIRVTools - Updates to the latest version of SPIRV-Tools submodule.
#
# macOS usage: ./getLatestSPIRVTools
rm -rf SPIRV-Headers
git clone https://github.com/KhronosGroup/SPIRV-Headers.git
rm -rf SPIRV-Tools
git clone https://github.com/KhronosGroup/SPIRV-Tools.git
./makeSPIRVTools

11
External/getLatestVulkanSpec vendored Executable file
View File

@ -0,0 +1,11 @@
#!/usr/bin/env bash
#
# Copyright (c) 2016-2017 The Brenwill Workshop Ltd.
#
# getLatestVulkanSpec - Updates to the latest version of the Vulkan spec submodule.
#
# macOS usage: ./getLatestVulkanSpec
rm -rf Vulkan-Hpp
git clone --recursive https://github.com/KhronosGroup/Vulkan-Hpp.git
./makeVulkanSpec

11
External/getLatestglslang vendored Executable file
View File

@ -0,0 +1,11 @@
#!/usr/bin/env bash
#
# Copyright (c) 2016-2017 The Brenwill Workshop Ltd.
#
# getLatestglslang - Updates to the latest version of glslang submodule.
#
# macOS usage: ./getLatestglslang
rm -rf glslang
git clone https://github.com/KhronosGroup/glslang.git
./makeglslang

2
External/glslang vendored

@ -1 +1 @@
Subproject commit e2c15b4f6e9cf918f148d62b3798f4b45bd8c454
Subproject commit 792a94809b68d7403ec7f73f59b318bed9a4c020

View File

@ -770,7 +770,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nexport MVK_PROD_NAME=\"MoltenVK\"\nexport MVK_DYLIB_NAME=\"lib${MVK_PROD_NAME}.dylib\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\nexport MVK_PLATFORM_SDK_DIR=\"${PLATFORM_DEVELOPER_SDK_DIR}/${PLATFORM_NAME}.sdk\"\nexport MVK_SYS_FWK_DIR=\"${MVK_PLATFORM_SDK_DIR}/System/Library/Frameworks\"\nexport MVK_USR_LIB_DIR=\"${MVK_PLATFORM_SDK_DIR}/usr/lib\"\n\nlibtool \\\n-dynamic \\\n-compatibility_version 1.0.0 -current_version 1.0.0 \\\n-macosx_version_min 10.11 \\\n-F${MVK_SYS_FWK_DIR} \\\n-L${MVK_USR_LIB_DIR} \\\n-framework Metal -framework IOSurface -framework QuartzCore -framework Foundation -framework System -lc++ \\\n-install_name \"@rpath/${MVK_DYLIB_NAME}\" \\\n-o \"${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}\" \\\n\"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/${MVK_PROD_NAME}\"\n";
shellScript = "set -e\n\nexport MVK_PROD_NAME=\"MoltenVK\"\nexport MVK_DYLIB_NAME=\"lib${MVK_PROD_NAME}.dylib\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\nexport MVK_PLATFORM_SDK_DIR=\"${PLATFORM_DEVELOPER_SDK_DIR}/${PLATFORM_NAME}.sdk\"\nexport MVK_SYS_FWK_DIR=\"${MVK_PLATFORM_SDK_DIR}/System/Library/Frameworks\"\nexport MVK_USR_LIB_DIR=\"${MVK_PLATFORM_SDK_DIR}/usr/lib\"\n\nclang \\\n-dynamiclib \\\n-arch x86_64 \\\n-mmacosx-version-min=10.11 \\\n-compatibility_version 1.0.0 -current_version 1.0.0 \\\n-install_name \"@rpath/${MVK_DYLIB_NAME}\" \\\n-Wno-incompatible-sysroot \\\n-isysroot ${MVK_PLATFORM_SDK_DIR} \\\n-iframework ${MVK_SYS_FWK_DIR} \\\n-framework Metal -framework IOSurface -framework QuartzCore -framework Foundation \\\n--library-directory ${MVK_USR_LIB_DIR} \\\n-lSystem -lc++ \\\n-o \"${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}\" \\\n-force_load \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/${MVK_PROD_NAME}\"\n";
};
A9731FAD1EDDAE39006B7298 /* Create Dynamic Library */ = {
isa = PBXShellScriptBuildPhase;
@ -784,7 +784,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nexport MVK_PROD_NAME=\"MoltenVK\"\nexport MVK_DYLIB_NAME=\"lib${MVK_PROD_NAME}.dylib\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\nexport MVK_PLATFORM_SDK_DIR=\"${PLATFORM_DEVELOPER_SDK_DIR}/${PLATFORM_NAME}.sdk\"\nexport MVK_SYS_FWK_DIR=\"${MVK_PLATFORM_SDK_DIR}/System/Library/Frameworks\"\nexport MVK_USR_LIB_DIR=\"${MVK_PLATFORM_SDK_DIR}/usr/lib\"\n\nlibtool \\\n-dynamic \\\n-compatibility_version 1.0.0 -current_version 1.0.0 \\\n-ios_version_min 9.0 \\\n-F${MVK_SYS_FWK_DIR} \\\n-L${MVK_USR_LIB_DIR} \\\n-framework Metal -framework IOSurface -framework QuartzCore -framework Foundation -lSystem -lc++ \\\n-install_name \"@rpath/${MVK_DYLIB_NAME}\" \\\n-o \"${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}\" \\\n\"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/${MVK_PROD_NAME}\"\n";
shellScript = "set -e\n\nexport MVK_PROD_NAME=\"MoltenVK\"\nexport MVK_DYLIB_NAME=\"lib${MVK_PROD_NAME}.dylib\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\nexport MVK_PLATFORM_SDK_DIR=\"${PLATFORM_DEVELOPER_SDK_DIR}/${PLATFORM_NAME}.sdk\"\nexport MVK_SYS_FWK_DIR=\"${MVK_PLATFORM_SDK_DIR}/System/Library/Frameworks\"\nexport MVK_USR_LIB_DIR=\"${MVK_PLATFORM_SDK_DIR}/usr/lib\"\n\nclang \\\n-dynamiclib \\\n-arch arm64 \\\n-mios-version-min=9.0 \\\n-compatibility_version 1.0.0 -current_version 1.0.0 \\\n-install_name \"@rpath/${MVK_DYLIB_NAME}\" \\\n-Wno-incompatible-sysroot \\\n-isysroot ${MVK_PLATFORM_SDK_DIR} \\\n-iframework ${MVK_SYS_FWK_DIR} \\\n-framework Metal -framework IOSurface -framework QuartzCore -framework Foundation \\\n--library-directory ${MVK_USR_LIB_DIR} \\\n-lSystem -lc++ \\\n-o \"${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}\" \\\n-force_load \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/${MVK_PROD_NAME}\"\n";
};
/* End PBXShellScriptBuildPhase section */
@ -896,11 +896,7 @@
A9B8EE1E1A98D796009C5A02 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALID_ARCHS = arm64;
};
name = Debug;
@ -908,11 +904,7 @@
A9B8EE1F1A98D796009C5A02 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALID_ARCHS = arm64;
};
name = Release;
@ -920,16 +912,16 @@
A9CBEDFF1B6299D800E45FDC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
SDKROOT = macosx;
VALID_ARCHS = x86_64;
};
name = Debug;
};
A9CBEE001B6299D800E45FDC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
SDKROOT = macosx;
VALID_ARCHS = x86_64;
};
name = Release;
};
@ -956,6 +948,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEVELOPMENT_TEAM = "";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
@ -982,12 +975,14 @@
"\"$(SRCROOT)/include\"",
"\"$(SRCROOT)/../MoltenVKShaderConverter\"",
);
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MACH_O_TYPE = staticlib;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = MoltenVK;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
@ -1014,6 +1009,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
DEVELOPMENT_TEAM = "";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
@ -1036,11 +1032,13 @@
"\"$(SRCROOT)/include\"",
"\"$(SRCROOT)/../MoltenVKShaderConverter\"",
);
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MACH_O_TYPE = staticlib;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = MoltenVK;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;

View File

@ -50,12 +50,11 @@ Updating the *Vulkan-Hpp* library version
-----------------------------------------
If you are developing enhancements to **MoltenVK**, you can update the version of `Vulkan-Hpp`
used by **MoltenVK**, by re-cloning the library as follows:
used by **MoltenVK** to the latest version available by re-cloning and re-building the
`Vulkan-Hpp` submodule using the `getLatestVulkanSpec` script:
cd External
rm -rf Vulkan-Hpp
git clone --recursive https://github.com/KhronosGroup/Vulkan-Hpp.git
./makeVulkanSpec
./getLatestVulkanSpec
The updated version will then be "locked in" the next time the `MoltenVK` repository is committed to `git`.

View File

@ -142,6 +142,11 @@
A939A6FE1F547A12006ACA0C /* makeSPIRVTools */ = {isa = PBXFileReference; lastKnownFileType = text; path = makeSPIRVTools; sourceTree = "<group>"; };
A939A6FF1F547A12006ACA0C /* makeVulkanSpec */ = {isa = PBXFileReference; lastKnownFileType = text; path = makeVulkanSpec; sourceTree = "<group>"; };
A98149E51FB78829005F00B4 /* MoltenVK_Runtime_UserGuide.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = MoltenVK_Runtime_UserGuide.md; path = Docs/MoltenVK_Runtime_UserGuide.md; sourceTree = "<group>"; };
A9B732A31FC9C588006721CB /* getLatestglslang */ = {isa = PBXFileReference; lastKnownFileType = text; path = getLatestglslang; sourceTree = "<group>"; };
A9B732A41FC9C588006721CB /* getLatestSPIRVTools */ = {isa = PBXFileReference; lastKnownFileType = text; path = getLatestSPIRVTools; sourceTree = "<group>"; };
A9B732A51FC9C588006721CB /* getLatestSPIRVCross */ = {isa = PBXFileReference; lastKnownFileType = text; path = getLatestSPIRVCross; sourceTree = "<group>"; };
A9B732A61FC9C588006721CB /* getLatestVulkanSpec */ = {isa = PBXFileReference; lastKnownFileType = text; path = getLatestVulkanSpec; sourceTree = "<group>"; };
A9B732A71FCA1D71006721CB /* getLatestAll */ = {isa = PBXFileReference; lastKnownFileType = text; path = getLatestAll; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
@ -182,6 +187,11 @@
A939A6FD1F547A12006ACA0C /* makeglslang */,
A939A6FE1F547A12006ACA0C /* makeSPIRVTools */,
A939A6FF1F547A12006ACA0C /* makeVulkanSpec */,
A9B732A71FCA1D71006721CB /* getLatestAll */,
A9B732A31FC9C588006721CB /* getLatestglslang */,
A9B732A51FC9C588006721CB /* getLatestSPIRVCross */,
A9B732A41FC9C588006721CB /* getLatestSPIRVTools */,
A9B732A61FC9C588006721CB /* getLatestVulkanSpec */,
);
path = External;
sourceTree = "<group>";

View File

@ -48,11 +48,11 @@ Updating the *SPIRV-Cross* library version
------------------------------------------
If you are developing enhancements to **MoltenVKShaderConverter**, you can update the version of
`SPIRV-Cross` used by **MoltenVKShaderConverter**, as follows:
`SPIRV-Cross` used by **MoltenVKShaderConverter** to the latest version available by re-cloning
and re-building the `SPIRV-Cross` submodule using the `getLatestSPIRVCross` script:
cd External
rm -rf SPIRV-Cross
git clone https://github.com/KhronosGroup/SPIRV-Cross.git
./getLatestSPIRVCross
The updated version will then be "locked in" the next time the `MoltenVK` repository is committed to `git`.
@ -177,17 +177,11 @@ Updating the *SPIRV-Tools* library version
------------------------------------------
If you are developing enhancements to **MoltenVKShaderConverter**, you can update the version of
`SPIRV-Tools` used by **MoltenVKShaderConverter**, as follows:
`SPIRV-Tools` used by **MoltenVKShaderConverter** to the latest version available by re-cloning
and re-building the `SPIRV-Tools` submodule using the `getLatestSPIRVTools` script:
cd External
rm -rf SPIRV-Headers
git clone https://github.com/KhronosGroup/SPIRV-Headers.git
rm -rf SPIRV-Tools
git clone https://github.com/KhronosGroup/SPIRV-Tools.git
./makeSPIRVTools
./getLatestSPIRVTools
The updated version will then be "locked in" the next time the `MoltenVK` repository is committed to `git`.
@ -254,15 +248,14 @@ from within the `MoltenVK` repository directory:
<a name="update_glslang"></a>
Updating the *glslang* library version
------------------------------------------
--------------------------------------
If you are developing enhancements to **MoltenVKShaderConverter**, you can update the version of
`glslang` used by **MoltenVKShaderConverter**, as follows:
`glslang` used by **MoltenVKShaderConverter** to the latest version available by re-cloning
and re-building the `glslang` submodule using the `getLatestglslang` script:
cd External
rm -rf glslang
git clone https://github.com/KhronosGroup/glslang.git
./makeglslang
./getLatestglslang
The updated version will then be "locked in" the next time the `MoltenVK` repository is committed to `git`.

View File

@ -20,7 +20,8 @@ Table of Contents
- [About This Document](#about_this)
- [Introduction](#intro)
- [Installing **MoltenVK**](#install)
- [Third-Party Components](#third-party)
- [Third-Party Libraries](#third-party)
- [Updating the Third-Party Library Versions](#update_third-party)
- [Building **MoltenVK**](#building)
- [Using **MoltenVK** in Your Application](#using)
- [Third-Party Credits](#credits)
@ -86,11 +87,12 @@ and how to work with them within the **MoltenVK** development environment.
<a name="third-party"></a>
Third-Party Components
----------------------
Third-Party Libraries
---------------------
**MoltenVK** makes use of several third-party open-source libraries.
Development of some of these components is managed separately.
Development of some of these components is managed separately, and are retrieved into
**MoltenVK** as submodule repositories.
If you used the `--recursive` option when cloning this repository, as described
[above](#install), all third party libraries will have been retrieved.
@ -103,10 +105,22 @@ the `MoltenVK` repository:
cd External
./makeAll
>***Note:*** Some of these libraries are maintained and updated regularly with new features.
> See the documents listed just below here to learn how to update the version of each library as needed.
**MoltenVK** uses the third-party libraries described in the following documents:
<a name="update_third-party"></a>
###Updating the Third-Party Library Versions
If you are developing enhancements to **MoltenVK**, you can update the versions of the
Third-Party libraries used by **MoltenVK** to the latest versions available by re-cloning
and re-building the submodules using the `getLatestAll` script:
cd External
./getLatestAll
The updated versions will then be "locked in" the next time the `MoltenVK` repository is committed to `git`.
This procdure updates all of the Third-Party library submodules. To update only a single submodule,
or for more information about the various Third-Party libraries and submodules used by **MoltenVK**,
please refer to the following documents:
- [`MoltenVK/ThirdPartyConfig.md`](MoltenVK/ThirdPartyConfig.md)
- [`MoltenVKShaderConverter/ThirdPartyConfig.md`](MoltenVKShaderConverter/ThirdPartyConfig.md)
@ -125,14 +139,6 @@ and install the required third-party components.
>but it does reference advanced OS frameworks during building. *Xcode 9*
>or above is required to build **MoltenVK**, and build and link **MoltenVK** projects.
>***Note for Xcode 9 on macOS Sierra (10.12):*** There is currently an issue with *Xcode 9* when building
**MoltenVK** on *macOS Sierra (10.12)*. When creating the `libMoltenVK.dylib` file for *macOS*, `libtool`
is unable to link to the file `/usr/lib/system/libsystem_darwin.dylib` that *Xcode 9* indicates is required,
because that file does not exist on *macOS Sierra (10.12)*. To work around this issue, add the following symlink:
>
ln -sfn /usr/lib/system/libsystem_coretls.dylib /usr/local/lib/libsystem_darwin.dylib
The `MoltenVKPackaging.xcodeproj` *Xcode* project contains targets and schemes to build
and package the entire **MoltenVK** runtime distribution package, or to build individual
**MoltenVK** or **MoltenVKShaderConverter** components.