From 5bf7281525b94cf4d24bcbb29655461325bbf5bd Mon Sep 17 00:00:00 2001 From: Drake Arconis Date: Sun, 25 Aug 2013 02:16:35 -0400 Subject: [PATCH] Fixes to build against windows 8 sdk --- indra/cmake/DirectX.cmake | 80 ++++++++++++++-------- indra/plugins/winmmshim/forwarding_api.cpp | 6 +- indra/plugins/winmmshim/forwarding_api.h | 4 +- indra/win_crash_logger/CMakeLists.txt | 1 + 4 files changed, 58 insertions(+), 33 deletions(-) diff --git a/indra/cmake/DirectX.cmake b/indra/cmake/DirectX.cmake index c10e7e344..a0dac0fd0 100644 --- a/indra/cmake/DirectX.cmake +++ b/indra/cmake/DirectX.cmake @@ -1,44 +1,68 @@ # -*- cmake -*- +include(Variables) + if (WINDOWS) - find_path(DIRECTX_INCLUDE_DIR dxdiag.h - "$ENV{DXSDK_DIR}/Include" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Include" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Include" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Include" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (November 2007)/Include" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2007)/Include" - "C:/DX90SDK/Include" - "$ENV{PROGRAMFILES}/DX90SDK/Include" + if (WORD_SIZE EQUAL 32) + set (DIRECTX_ARCHITECTURE x86) + elseif (WORD_SIZE EQUAL 64) + set (DIRECTX_ARCHITECTURE x64) + else (WORD_SIZE EQUAL 32) + set (DIRECTX_ARCHITECTURE x86) + endif (WORD_SIZE EQUAL 32) + + find_path(DIRECTX_ROOT_DIR Include/dxdiag.h + PATHS + "$ENV{DXSDK_DIR}" + "$ENV{ProgramFiles}/Microsoft DirectX SDK (June 2010)" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (June 2010)" + "$ENV{ProgramFiles}/Microsoft DirectX SDK (February 2010)" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (February 2010)" + "$ENV{ProgramFiles}/Microsoft DirectX SDK (March 2009)" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (March 2009)" + "$ENV{ProgramFiles}/Microsoft DirectX SDK (August 2008)" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (August 2008)" + "$ENV{ProgramFiles}/Microsoft DirectX SDK (June 2008)" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (June 2008)" + "$ENV{ProgramFiles}/Microsoft DirectX SDK (March 2008)" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (March 2008)" + "$ENV{ProgramFiles}/Microsoft DirectX SDK (November 2007)" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (November 2007)" + "$ENV{ProgramFiles}/Microsoft DirectX SDK (August 2007)" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (August 2007)" ) + + if (DIRECTX_ROOT_DIR) + set (DIRECTX_INCLUDE_DIR "${DIRECTX_ROOT_DIR}/Include") + set (DIRECTX_LIBRARY_DIR "${DIRECTX_ROOT_DIR}/Lib/${DIRECTX_ARCHITECTURE}") + else (DIRECTX_ROOT_DIR) + find_path (WIN_KIT_ROOT_DIR Include/um/windows.h + PATHS + "$ENV{ProgramFiles}/Windows Kits/8.1" + "$ENV{ProgramFiles(x86)}/Windows Kits/8.1" + "$ENV{ProgramFiles}/Windows Kits/8.0" + "$ENV{ProgramFiles(x86)}/Windows Kits/8.0" + ) + + if (WIN_KIT_ROOT_DIR) + set (DIRECTX_INCLUDE_DIR "${WIN_KIT_ROOT_DIR}/Include/um" "${WIN_KIT_ROOT_DIR}/Include/shared") + set (DIRECTX_LIBRARY_DIR "${WIN_KIT_ROOT_DIR}/Lib/Win8/um/${DIRECTX_ARCHITECTURE}") + endif (WIN_KIT_ROOT_DIR) + endif (DIRECTX_ROOT_DIR) + if (DIRECTX_INCLUDE_DIR) include_directories(${DIRECTX_INCLUDE_DIR}) - if (DIRECTX_FIND_QUIETLY) + #if (DIRECTX_FIND_QUIETLY) message(STATUS "Found DirectX include: ${DIRECTX_INCLUDE_DIR}") - endif (DIRECTX_FIND_QUIETLY) + #endif (DIRECTX_FIND_QUIETLY) else (DIRECTX_INCLUDE_DIR) message(FATAL_ERROR "Could not find DirectX SDK Include") endif (DIRECTX_INCLUDE_DIR) - - find_path(DIRECTX_LIBRARY_DIR dxguid.lib - "$ENV{DXSDK_DIR}/Lib/x86" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Lib/x86" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Lib/x86" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Lib/x86" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (November 2007)/Lib/x86" - "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2007)/Lib/x86" - "C:/DX90SDK/Lib" - "$ENV{PROGRAMFILES}/DX90SDK/Lib" - ) if (DIRECTX_LIBRARY_DIR) - if (DIRECTX_FIND_QUIETLY) + #if (DIRECTX_FIND_QUIETLY) message(STATUS "Found DirectX include: ${DIRECTX_LIBRARY_DIR}") - endif (DIRECTX_FIND_QUIETLY) + #endif (DIRECTX_FIND_QUIETLY) else (DIRECTX_LIBRARY_DIR) message(FATAL_ERROR "Could not find DirectX SDK Libraries") endif (DIRECTX_LIBRARY_DIR) diff --git a/indra/plugins/winmmshim/forwarding_api.cpp b/indra/plugins/winmmshim/forwarding_api.cpp index 495e08942..745c97309 100644 --- a/indra/plugins/winmmshim/forwarding_api.cpp +++ b/indra/plugins/winmmshim/forwarding_api.cpp @@ -1338,7 +1338,7 @@ extern "C" { return joySetThreshold_orig( uJoyID, uThreshold); } - BOOL WINAPI mciDriverNotify(HWND hwndCallback, UINT uDeviceID, UINT uStatus) + BOOL WINAPI mciDriverNotify(HANDLE hwndCallback, UINT uDeviceID, UINT uStatus) { ll_winmm_shim_initialize(); //OutputDebugString(L"mciDriverNotify\n"); @@ -1610,11 +1610,11 @@ extern "C" { return mciGetYieldProc_orig( mciId, pdwYieldData); } - UINT WINAPI mciLoadCommandResource(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType) + UINT WINAPI mciLoadCommandResource(HANDLE hInstance, LPCWSTR lpResName, UINT wType) { ll_winmm_shim_initialize(); //OutputDebugString(L"mciLoadCommandResource"); - return mciLoadCommandResource_orig(hInstance, lpResName, uType); + return mciLoadCommandResource_orig(hInstance, lpResName, wType); } diff --git a/indra/plugins/winmmshim/forwarding_api.h b/indra/plugins/winmmshim/forwarding_api.h index 076a08f76..80fd164ad 100644 --- a/indra/plugins/winmmshim/forwarding_api.h +++ b/indra/plugins/winmmshim/forwarding_api.h @@ -306,7 +306,7 @@ typedef MMRESULT (WINAPI *joySetCapture_type)( HWND hwnd, UINT uJoyID, UINT uPer extern joySetCapture_type joySetCapture_orig; typedef MMRESULT (WINAPI *joySetThreshold_type)( UINT uJoyID, UINT uThreshold); extern joySetThreshold_type joySetThreshold_orig; -typedef BOOL (WINAPI *mciDriverNotify_type)(HWND hwndCallback, UINT uDeviceID, UINT uStatus); +typedef BOOL (WINAPI *mciDriverNotify_type)(HANDLE hwndCallback, UINT uDeviceID, UINT uStatus); extern mciDriverNotify_type mciDriverNotify_orig; typedef UINT (WINAPI *mciDriverYield_type)(UINT uDeviceID); extern mciDriverYield_type mciDriverYield_orig; @@ -384,7 +384,7 @@ typedef HTASK (WINAPI *mciGetCreatorTask_type)( MCIDEVICEID mciId); extern mciGetCreatorTask_type mciGetCreatorTask_orig; typedef YIELDPROC (WINAPI *mciGetYieldProc_type)( MCIDEVICEID mciId, LPDWORD pdwYieldData); extern mciGetYieldProc_type mciGetYieldProc_orig; -typedef UINT (WINAPI *mciLoadCommandResource_type)(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType); +typedef UINT (WINAPI *mciLoadCommandResource_type)(HANDLE hInstance, LPCWSTR lpResName, UINT wType); extern mciLoadCommandResource_type mciLoadCommandResource_orig; typedef BOOL (WINAPI *mciExecute_type)(LPCSTR pszCommand); extern mciExecute_type mciExecute_orig; diff --git a/indra/win_crash_logger/CMakeLists.txt b/indra/win_crash_logger/CMakeLists.txt index 9d3021ee2..eb2f45633 100644 --- a/indra/win_crash_logger/CMakeLists.txt +++ b/indra/win_crash_logger/CMakeLists.txt @@ -3,6 +3,7 @@ project(win_crash_logger) include(00-Common) +include(DirectX) include(LLCommon) include(LLCrashLogger) include(LLMath)