xmake.lua 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package("directx12-agility")
  2. set_homepage("https://devblogs.microsoft.com/directx/directx-12-agility-sdk")
  3. set_description("DirectX 12 Agility SDK")
  4. set_license("Microsoft")
  5. set_urls("https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/$(version)/#Microsoft.DXSDK.D3DX-$(version).zip")
  6. add_versions("1.618.1", "35a1bb4139f751e19956a0471fb621442450c63b1f100752b27ada6abed7a3da")
  7. add_configs("shared", {description = "Build shared library.", default = true, type = "boolean", readonly = true})
  8. add_deps("cmake")
  9. add_syslinks("d3d12")
  10. on_install("windows", function (package)
  11. os.cp("build/native/include", package:installdir())
  12. local REDIST_ARCH = ""
  13. if package:is_arch("arm64") then
  14. REDIST_ARCH = "arm64"
  15. elseif not package:is_arch("arm.*") and package:is_arch64() then
  16. REDIST_ARCH = "x64"
  17. elseif not package:is_arch("arm.*") and not package:is_arch64() then
  18. REDIST_ARCH = "win32"
  19. end
  20. os.cp(path.join("build/native/bin", REDIST_ARCH, "D3D12Core.dll"), package:installdir("bin"))
  21. os.cp(path.join("build/native/bin", REDIST_ARCH, "D3D12Core.pdb"), package:installdir("bin"))
  22. os.cp(path.join("build/native/bin", REDIST_ARCH, "d3d12SDKLayers.dll"), package:installdir("bin"))
  23. os.cp(path.join("build/native/bin", REDIST_ARCH, "d3d12SDKLayers.pdb"), package:installdir("bin"))
  24. os.cp(path.join("build/native/bin", REDIST_ARCH, "d3dconfig.exe"), package:installdir("bin"))
  25. os.cp(path.join("build/native/bin", REDIST_ARCH, "d3dconfig.pdb"), package:installdir("bin"))
  26. os.cp(path.join(package:scriptdir(), "port/directx12-agility-targets.cmake.in"), "directx12-agility-targets.cmake.in")
  27. os.cp(path.join(package:scriptdir(), "port/directx12-agility-config.cmake.in"), "directx12-agility-config.cmake.in")
  28. os.cp(path.join(package:scriptdir(), "port/directx12-agility.pc.in"), "directx12-agility.pc.in")
  29. os.cp(path.join(package:scriptdir(), "port/cmakelists.txt"), "CMakeLists.txt")
  30. local configs = {
  31. "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release"),
  32. "-DVERSION=" .. package:version()
  33. }
  34. import("package.tools.cmake").install(package, configs)
  35. end)
  36. on_test(function (package)
  37. assert(package:check_cxxsnippets({test = [[
  38. void test() {
  39. IDXGIAdapter1* dxgiAdapter = nullptr;
  40. ID3D12Device* device = nullptr;
  41. D3D12CreateDevice(dxgiAdapter, D3D_FEATURE_LEVEL_12_0, IID_PPV_ARGS(&device));
  42. }
  43. ]]}, {configs = {languages = "c++14"}, includes = {"dxgi.h", "d3d12.h"}}))
  44. end)