diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 5109745..9feb2c0 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -63,6 +63,10 @@ jobs: ./N64Recomp us.rev1.toml ./RSPRecomp aspMain.us.rev1.toml ./RSPRecomp njpgdspMain.us.rev1.toml + - name: Hotpatch DXC into RT64's contrib + run: | + cp -v /usr/local/lib/libdxcompiler.so ./lib/rt64/src/contrib/dxc/lib/x64/libdxcompiler.so + cp -v /usr/local/bin/dxc ./lib/rt64/src/contrib/dxc/bin/x64/dxc - name: Build ZeldaRecomp run: |- # enable ccache diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a70a84..26bd27f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -299,30 +299,14 @@ if (${WIN32}) set (DXC "${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/bin/x64/dxc.exe") add_compile_definitions(NOMINMAX) else() - find_program(DXC dxc) - if (DXC) - execute_process(COMMAND ${DXC} --version OUTPUT_VARIABLE DXC_VERSION) - string(REGEX MATCH "([0-9]+)\\.([0-9]+)" DXC_VERSION "${DXC_VERSION}") - - if (NOT DXC_VERSION VERSION_GREATER_EQUAL "1.8") - message(STATUS "DXC version is less than 1.8, using bundled DXC") - set(DXC "") - endif() - endif() - - if (NOT DXC) + if (APPLE) + # Apple's binary is universal, so it'll work on both x86_64 and arm64 + set (DXC "DYLD_LIBRARY_PATH=${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/lib/arm64" "${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/bin/arm64/dxc-macos") + else() if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64") - if (APPLE) - set (DXC "DYLD_LIBRARY_PATH=${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/lib/x64" "${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/bin/x64/dxc") - else() - set (DXC "LD_LIBRARY_PATH=${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/lib/x64" "${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/bin/x64/dxc") - endif() + set (DXC "LD_LIBRARY_PATH=${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/lib/x64" "${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/bin/x64/dxc") else() - if (APPLE) - set (DXC "DYLD_LIBRARY_PATH=${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/lib/arm64" "${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/bin/arm64/dxc-macos") - else() - set (DXC "LD_LIBRARY_PATH=${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/lib/arm64" "${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/bin/arm64/dxc-linux") - endif() + set (DXC "LD_LIBRARY_PATH=${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/lib/arm64" "${PROJECT_SOURCE_DIR}/lib/rt64/src/contrib/dxc/bin/arm64/dxc-linux") endif() endif() endif() diff --git a/lib/rt64 b/lib/rt64 index fcca86d..e106c18 160000 --- a/lib/rt64 +++ b/lib/rt64 @@ -1 +1 @@ -Subproject commit fcca86d77afebb391e4a8e404cad46ba3ae883e3 +Subproject commit e106c18965a89b26197bde972d9a83dd2dea1691