From 7daacf36ef90e7863923395e92bf1100dea6e907 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Wed, 19 Feb 2025 14:56:33 -0800 Subject: [PATCH 1/3] Fix build for Xbox with shared libs --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b418a5c2..513f6f4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -233,6 +233,12 @@ if(WIN32 AND BUILD_SHARED_LIBS) target_compile_definitions(${PROJECT_NAME} PRIVATE DIRECTX_TEX_EXPORT) target_compile_definitions(${PROJECT_NAME} INTERFACE DIRECTX_TEX_IMPORT) + + if(XBOX_CONSOLE_TARGET MATCHES "scarlett") + target_link_libraries(${PROJECT_NAME} PRIVATE xgameplatform.lib xg_xs.lib xmem.lib) + elseif(XBOX_CONSOLE_TARGET MATCHES "xboxone") + target_link_libraries(${PROJECT_NAME} PRIVATE xgameplatform.lib xg_x.lib xmem.lib) + endif() else() add_library(${PROJECT_NAME} ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) endif() From b68ca187a94715109919992063121824e5354b54 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Wed, 19 Feb 2025 15:57:23 -0800 Subject: [PATCH 2/3] Fix durango --- CMakeLists.txt | 6 ++++++ build/CompilerAndLinker.cmake | 2 ++ build/DirectXTex.rc.in | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 513f6f4b..0d38f4ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,10 @@ project (DirectXTex HOMEPAGE_URL "https://go.microsoft.com/fwlink/?LinkId=248926" LANGUAGES CXX) +if(DEFINED XBOX_CONSOLE_TARGET) + set(CMAKE_CXX_STANDARD_LIBRARIES "") +endif() + option(BUILD_TOOLS "Build tex command-line tools" ON) option(BUILD_SHARED_LIBS "Build DirectXTex as a shared library" OFF) @@ -238,6 +242,8 @@ if(WIN32 AND BUILD_SHARED_LIBS) target_link_libraries(${PROJECT_NAME} PRIVATE xgameplatform.lib xg_xs.lib xmem.lib) elseif(XBOX_CONSOLE_TARGET MATCHES "xboxone") target_link_libraries(${PROJECT_NAME} PRIVATE xgameplatform.lib xg_x.lib xmem.lib) + elseif(XBOX_CONSOLE_TARGET MATCHES "durango") + target_link_libraries(${PROJECT_NAME} PRIVATE kernelx.lib xg_x.lib combase.lib) endif() else() add_library(${PROJECT_NAME} ${LIBRARY_SOURCES} ${LIBRARY_HEADERS}) diff --git a/build/CompilerAndLinker.cmake b/build/CompilerAndLinker.cmake index aa634f95..69c0d138 100644 --- a/build/CompilerAndLinker.cmake +++ b/build/CompilerAndLinker.cmake @@ -200,12 +200,14 @@ if(DEFINED XBOX_CONSOLE_TARGET) message(FATAL_ERROR "Legacy Xbox One XDK required to build for Durango.") endif() list(APPEND COMPILER_DEFINES WINAPI_FAMILY=WINAPI_FAMILY_TV_TITLE _XBOX_ONE _TITLE MONOLITHIC=1) + list(APPEND LINKER_SWITCHES /NODEFAULTLIB:kernel32.lib /NODEFAULTLIB:ole32.lib /NODEFAULTLIB:oldnames.lib) else() CHECK_INCLUDE_FILE_CXX(gxdk.h GXDK_HEADER) if(NOT GXDK_HEADER) message(FATAL_ERROR "Microsoft GDK with Xbox Extensions required to build for Xbox. See https://aka.ms/gdkx") endif() list(APPEND COMPILER_DEFINES WINAPI_FAMILY=WINAPI_FAMILY_GAMES) + list(APPEND LINKER_SWITCHES /NODEFAULTLIB:kernel32.lib /NODEFAULTLIB:oldnames.lib) if(XBOX_CONSOLE_TARGET STREQUAL "scarlett") CHECK_INCLUDE_FILE_CXX(d3d12_xs.h D3D12XS_HEADER) if(NOT D3D12XS_HEADER) diff --git a/build/DirectXTex.rc.in b/build/DirectXTex.rc.in index 270a0384..4dacdce4 100644 --- a/build/DirectXTex.rc.in +++ b/build/DirectXTex.rc.in @@ -1,4 +1,4 @@ -#include +#include VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,0 From 01320d525499daea7d476f7ee3bc7b281f05cd72 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Wed, 19 Feb 2025 18:45:39 -0800 Subject: [PATCH 3/3] Add DLL test --- build/DirectXTex-GitHub-GDK-Dev17.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/build/DirectXTex-GitHub-GDK-Dev17.yml b/build/DirectXTex-GitHub-GDK-Dev17.yml index be7eb76b..014f3180 100644 --- a/build/DirectXTex-GitHub-GDK-Dev17.yml +++ b/build/DirectXTex-GitHub-GDK-Dev17.yml @@ -307,6 +307,19 @@ jobs: inputs: cwd: '$(Build.SourcesDirectory)' cmakeArgs: --build out\build\x64-Release-Scarlett-Clang + - task: DeleteFiles@1 + inputs: + Contents: 'out/build' + - task: CMake@1 + displayName: 'CMake (MSVC, DLL): Config Scarlett Debug' + inputs: + cwd: '$(Build.SourcesDirectory)' + cmakeArgs: --preset=x64-Debug-Scarlett -DBUILD_SHARED_LIBS=ON + - task: CMake@1 + displayName: 'CMake (MSVC, DLL): Build Scarlett Debug' + inputs: + cwd: '$(Build.SourcesDirectory)' + cmakeArgs: --build out\build\x64-Debug-Scarlett - job: BUILD_GDK_CMAKE_XBONE displayName: 'Microsoft Game Development Kit (GDK) using CMake (XboxOne)' @@ -413,3 +426,16 @@ jobs: inputs: cwd: '$(Build.SourcesDirectory)' cmakeArgs: --build out\build\x64-Release-XboxOne-Clang + - task: DeleteFiles@1 + inputs: + Contents: 'out/build' + - task: CMake@1 + displayName: 'CMake (MSVC, DLL): Config XboxOne Debug' + inputs: + cwd: '$(Build.SourcesDirectory)' + cmakeArgs: --preset=x64-Debug-XboxOne -DBUILD_SHARED_LIBS=ON + - task: CMake@1 + displayName: 'CMake (MSVC, DLL): Build XboxOne Debug' + inputs: + cwd: '$(Build.SourcesDirectory)' + cmakeArgs: --build out\build\x64-Debug-XboxOne