File: gdk_toolchain.cmake

package info (click to toggle)
onnxruntime 1.21.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 333,732 kB
  • sloc: cpp: 3,153,079; python: 179,219; ansic: 109,131; asm: 37,791; cs: 34,424; perl: 13,070; java: 11,047; javascript: 6,330; pascal: 4,126; sh: 3,277; xml: 598; objc: 281; makefile: 59
file content (91 lines) | stat: -rw-r--r-- 2,892 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Options to configure the toolchain.
set(GDK_EDITION 210602 CACHE STRING "GDK edition.")
set(GDK_PLATFORM Scarlett CACHE STRING "GDK target platform.")

# Required to propagate variables when CMake calls try_compile() to test the toolchain.
# https://cmake.org/cmake/help/latest/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.html
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES GDK_EDITION GDK_PLATFORM)

cmake_path(SET gdk_gxdk_path $ENV{GameDK}/${GDK_EDITION}/GXDK NORMALIZE)

# Set C/C++ compile flags and additional include directories.
foreach(lang C CXX)
    set(CMAKE_${lang}_FLAGS_INIT "")
    string(APPEND CMAKE_${lang}_FLAGS_INIT 
        " /D_GAMING_XBOX"
        " /DWINAPI_FAMILY=WINAPI_FAMILY_GAMES"
        " /D_ATL_NO_DEFAULT_LIBS"
        " /D__WRL_NO_DEFAULT_LIB__"
        " /D__WRL_CLASSIC_COM_STRICT__"
        " /D_CRT_USE_WINAPI_PARTITION_APP"
        " /DWIN32_LEAN_AND_MEAN"
        " /favor:AMD64"
    )

    if(GDK_PLATFORM STREQUAL Scarlett)
        string(APPEND CMAKE_${lang}_FLAGS_INIT " /D_GAMING_XBOX_SCARLETT /arch:AVX2")
    elseif(GDK_PLATFORM STREQUAL XboxOne)
        string(APPEND CMAKE_${lang}_FLAGS_INIT " /D_GAMING_XBOX_XBOXONE /arch:AVX")
    endif()

    set(CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES ${gdk_gxdk_path}/gameKit/Include/${GDK_PLATFORM})

    set(CMAKE_${lang}_STANDARD_LIBRARIES "onecoreuap_apiset.lib" CACHE STRING "" FORCE)
endforeach()

# It's best to avoid inadvertently linking with any libraries not present in the OS.
list(APPEND nodefault_libs 
    advapi32.lib
    comctl32.lib
    comsupp.lib
    dbghelp.lib
    gdi32.lib
    gdiplus.lib
    guardcfw.lib
    kernel32.lib
    mmc.lib
    msimg32.lib
    msvcole.lib
    msvcoled.lib
    mswsock.lib
    ntstrsafe.lib
    ole2.lib
    ole2autd.lib
    ole2auto.lib
    ole2d.lib
    ole2ui.lib
    ole2uid.lib
    ole32.lib
    oleacc.lib
    oleaut32.lib
    oledlg.lib
    oledlgd.lib
    oldnames.lib
    runtimeobject.lib
    shell32.lib
    shlwapi.lib
    strsafe.lib
    urlmon.lib
    user32.lib
    userenv.lib
    wlmole.lib
    wlmoled.lib
    onecore.lib
)

foreach(link_type EXE SHARED MODULE)
    set(CMAKE_${link_type}_LINKER_FLAGS_INIT "")
    foreach(lib ${nodefault_libs})
        string(APPEND CMAKE_${link_type}_LINKER_FLAGS_INIT " /NODEFAULTLIB:${lib}")
    endforeach()
    string(APPEND CMAKE_${link_type}_LINKER_FLAGS_INIT " /DYNAMICBASE /NXCOMPAT /MANIFEST:NO")
endforeach()

set(gdk_dx_libs ${gdk_gxdk_path}/gameKit/lib/amd64/PIXEvt.lib)
if(GDK_PLATFORM STREQUAL Scarlett)
    list(APPEND gdk_dx_libs ${gdk_gxdk_path}/gameKit/lib/amd64/Scarlett/d3d12_xs.lib)
    list(APPEND gdk_dx_libs ${gdk_gxdk_path}/gameKit/lib/amd64/Scarlett/xg_xs.lib)
elseif(GDK_PLATFORM STREQUAL XboxOne)
    list(APPEND gdk_dx_libs ${gdk_gxdk_path}/gameKit/lib/amd64/XboxOne/d3d12_x.lib)
    list(APPEND gdk_dx_libs ${gdk_gxdk_path}/gameKit/lib/amd64/XboxOne/xg_x.lib)
endif()