@@ -20,6 +20,8 @@ elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]64$")
2020 set (DIRECTX_ARCH arm64)
2121elseif (CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]64EC$" )
2222 set (DIRECTX_ARCH arm64ec)
23+ elseif (CMAKE_GENERATOR_PLATFORM MATCHES "^[Pp][Pp][Cc]64|powerpc64|powerpc64le" )
24+ set (DIRECTX_ARCH powerpc64)
2325elseif (CMAKE_VS_PLATFORM_NAME_DEFAULT MATCHES "^[Ww][Ii][Nn]32$" )
2426 set (DIRECTX_ARCH x86)
2527elseif (CMAKE_VS_PLATFORM_NAME_DEFAULT MATCHES "^[Xx]64$" )
@@ -30,9 +32,13 @@ elseif(CMAKE_VS_PLATFORM_NAME_DEFAULT MATCHES "^[Aa][Rr][Mm]64$")
3032 set (DIRECTX_ARCH arm64)
3133elseif (CMAKE_VS_PLATFORM_NAME_DEFAULT MATCHES "^[Aa][Rr][Mm]64EC$" )
3234 set (DIRECTX_ARCH arm64ec)
35+ elseif (CMAKE_VS_PLATFORM_NAME_DEFAULT MATCHES "^[Pp][Pp][Cc]64|powerpc64|powerpc64le" )
36+ set (DIRECTX_ARCH powerpc64)
3337elseif (NOT (DEFINED DIRECTX_ARCH))
3438 if (CMAKE_SYSTEM_PROCESSOR MATCHES "[Aa][Rr][Mm]64|aarch64|arm64" )
3539 set (DIRECTX_ARCH arm64)
40+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "[Pp][Pp][Cc]64|powerpc64|powerpc64le" )
41+ set (DIRECTX_ARCH powerpc64)
3642 else ()
3743 set (DIRECTX_ARCH x64)
3844 endif ()
@@ -41,6 +47,8 @@ endif()
4147#--- Determines host architecture
4248if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "[Aa][Rr][Mm]64|aarch64|arm64" )
4349 set (DIRECTX_HOST_ARCH arm64)
50+ elseif (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "[Pp][Pp][Cc]64|powerpc64|powerpc64le" )
51+ set (DIRECTX_HOST_ARCH powerpc64)
4452else ()
4553 set (DIRECTX_HOST_ARCH x64)
4654endif ()
@@ -96,6 +104,9 @@ if(XBOX_CONSOLE_TARGET STREQUAL "scarlett")
96104 list (APPEND COMPILER_SWITCHES $<IF :$<CXX_COMPILER_ID :MSVC >,/favor :AMD64 /arch :AVX2 ,-march =znver2 >)
97105elseif (XBOX_CONSOLE_TARGET MATCHES "xboxone|durango" )
98106 list (APPEND COMPILER_SWITCHES $<IF :$<CXX_COMPILER_ID :MSVC >,/favor :AMD64 /arch :AVX ,-march =btver2 >)
107+ elseif (${DIRECTX_ARCH} MATCHES "^powerpc64" )
108+ list (APPEND COMPILER_DEFINES NO_WARN_X86_INTRINSICS)
109+ list (APPEND COMPILER_SWITCHES -m64 -mcpu=power9 -maltivec)
99110elseif (NOT (${DIRECTX_ARCH} MATCHES "^arm" ))
100111 if ((${DIRECTX_ARCH} STREQUAL "x86" ) OR (CMAKE_SIZEOF_VOID_P EQUAL 4))
101112 set (ARCH_SSE2 $<$<CXX_COMPILER_ID :MSVC ,Intel >:/arch :SSE2 > $<$<NOT :$<CXX_COMPILER_ID :MSVC ,Intel >>:-msse2 >)
0 commit comments