Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[directxtk, directxtk12, directxtex, directxmesh, uvatlas] ports updated for September 2021 release #20457

Merged
merged 5 commits into from
Oct 2, 2021

Conversation

walbourn
Copy link
Member

@walbourn walbourn commented Oct 1, 2021

DirectX Tool Kit

  • Added ModelBone support for transformation hierarchies
    • Rigid-body & skinned animation Draw support added to Model
  • Added type aliases ModelMeshPart::InputLayoutCollection, GeometricPrimitive::VertexCollection and IndexCollection.
  • EnvironmentMapEffect and NormalMapEffect will now use default diffuse/normal textures if none are set
  • VS 2017 projects updated to require the Windows 10 SDK (19401)
  • Code review updates

DirectX Tool Kit for DX12

  • Added ModelBone support for transformation hierarchies
    • Rigid-body & skinned animation Draw support added to Model
  • Support for loading Visual Studio CMO models added using BasicEffect or SkinnedEffect materials
  • Added type aliases Model::EffectCollection, ModelMeshPart::InputLayoutCollection, GeometricPrimitive::VertexCollection and IndexCollection
  • Fixed handle leak in ResourceUploadBatch
  • Updated ScopeBarrier to conform with C++14 std::initializer_list
  • VS 2017 projects updated to require the Windows 10 SDK (19401) and make use of Shader Model 6.0
  • Code review updates

DirectXMesh

  • Fixed overflow case in meshlet generation with degenerate triangles
  • Minor code review and project cleanup

DirectXTex

  • Minor code and project cleanup

UVatlas

  • Minor code and project cleanup

directxtk12 port now opts into Shader Model 6 which is what all the other projects are doing with Sept 2021.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/directxmesh/portfile.cmake
  • ports/directxtex/portfile.cmake
  • ports/directxtk/portfile.cmake
  • ports/directxtk12/portfile.cmake
  • ports/uvatlas/portfile.cmake

@walbourn
Copy link
Member Author

walbourn commented Oct 1, 2021

A GitHub action told me to try out using the new vcpkg-cmake port commands.

I did, and for directxtk, directxtk12, and directxtex it fails using the new commands because my CMakeLists generates C headers via a custom_command that needs to be used for building:

CMake Error at CMakeLists.txt:152 (add_custom_command):
  OUTPUT path

    D:/vcpkg/buildtrees/directxtk/src/sept2021-e237a84202.clean/Src/Shaders/Compiled/SpriteEffect_SpriteVertexShader.inc

  in a source directory as an output of custom command.

I was able to use the new commands successfully for directxmesh, uvatlas which do not have embedded HLSL shaders.

config-x64-windows-out.log

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/directxtex/portfile.cmake
  • ports/directxtk/portfile.cmake
  • ports/directxtk12/portfile.cmake

@dg0yt
Copy link
Contributor

dg0yt commented Oct 1, 2021

my CMakeLists generates C headers via a custom_command that needs to be used for building:

If you need to generate files, better do that in the binary directory, not in the source directory.

The new cmake maintainer functions use Ninja by default. And they build debug and release in parallel by default. This isn't compatible with modifying files in the source directory.

@walbourn
Copy link
Member Author

walbourn commented Oct 1, 2021

If you need to generate files, better do that in the binary directory, not in the source directory.

This would break compatibility with all my vcxprojs in the current design. I'll take a look at options for resolving this in a future update of my libraries.

@BillyONeal BillyONeal merged commit 339d01f into microsoft:master Oct 2, 2021
@BillyONeal
Copy link
Member

Thanks for the updates! Please do consider avoiding edits to the source tree during build soon.

@walbourn walbourn deleted the sept2021update branch October 7, 2021 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants