X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=cmake%2FFindDirectX.cmake;h=e71a7733dbda7e649a7920a69554f8f2227fe32a;hb=65321858f558e0851a27158cbf3d207f530148e8;hp=7e420bec85675aa4976be8d4a821d4c45543e108;hpb=4a15339e72a7aa24a48d1b6afaf2dff669dea646;p=apitrace diff --git a/cmake/FindDirectX.cmake b/cmake/FindDirectX.cmake index 7e420be..e71a773 100644 --- a/cmake/FindDirectX.cmake +++ b/cmake/FindDirectX.cmake @@ -1,108 +1,286 @@ # - try to find DirectX include dirs and libraries + if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") - find_path (D3D8_INCLUDE_DIR d3d8.h + + + if (CMAKE_CL_64) + set (DirectX_ARCHITECTURE x64) + else () + set (DirectX_ARCHITECTURE x86) + endif () + + + # DirectX SDK + find_path (DirectX_ROOT_DIR + Include/d3d9.h PATHS - "$ENV{DXSDK_DIR}/Include" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Include" + "$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)" + "$ENV{ProgramFiles}/Microsoft DirectX SDK" + "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK" + DOC "DirectX SDK root directory" + ) + if (DirectX_ROOT_DIR) + set (DirectX_INC_SEARCH_PATH "${DirectX_ROOT_DIR}/Include") + set (DirectX_LIB_SEARCH_PATH "${DirectX_ROOT_DIR}/Lib/${DirectX_ARCHITECTURE}") + set (DirectX_BIN_SEARCH_PATH "${DirectX_ROOT_DIR}/Utilities/bin/x86") + endif () + + + # With VS 2011 and Windows 8 SDK, the DirectX SDK is included as part of + # the Windows SDK. + # + # See also: + # - http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275.aspx + # TODO: Allow using DirectX SDK with VS 2011 + if (DEFINED MSVC_VERSION AND NOT ${MSVC_VERSION} LESS 1700) + find_path (WIN8_SDK_ROOT_DIR + Include/um/windows.h + PATHS + "$ENV{ProgramFiles}/Windows Kits/8.0" + "$ENV{ProgramFiles(x86)}/Windows Kits/8.0" + DOC "Windows 8 SDK root directory" + ) + + if (WIN8_SDK_ROOT_DIR) + set (DirectX_INC_SEARCH_PATH "${WIN8_SDK_ROOT_DIR}/Include/um" "${WIN8_SDK_ROOT_DIR}/Include/shared") + set (DirectX_LIB_SEARCH_PATH "${WIN8_SDK_ROOT_DIR}/Lib/Win8/um/${DirectX_ARCHITECTURE}") + set (DirectX_BIN_SEARCH_PATH "${WIN8_SDK_ROOT_DIR}/bin/x86") + endif () + endif () + + + find_path (DirectX_D3D_INCLUDE_DIR d3d.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3d.h resides") + + find_path (DirectX_D3DX_INCLUDE_DIR d3dx.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3dx.h resides") + + find_library (DirectX_DDRAW_LIBRARY ddraw + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where ddraw resides") + + find_library (DirectX_D3DX_LIBRARY d3dx + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3dx resides") + + if (DirectX_D3D_INCLUDE_DIR AND DirectX_DDRAW_LIBRARY) + set (DirectX_D3D_FOUND 1) + if (DirectX_D3DX_INCLUDE_DIR AND DirectX_D3DX_LIBRARY) + set (DirectX_D3DX_FOUND 1) + endif () + endif () + + + find_path (DirectX_D3D8_INCLUDE_DIR d3d8.h + PATHS ${DirectX_INC_SEARCH_PATH} DOC "The directory where d3d8.h resides") - find_path (D3DX8_INCLUDE_DIR d3dx8.h - PATHS - "$ENV{DXSDK_DIR}/Include" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Include" + find_path (DirectX_D3DX8_INCLUDE_DIR d3dx8.h + PATHS ${DirectX_INC_SEARCH_PATH} DOC "The directory where d3dx8.h resides") - find_library (D3D8_LIBRARY d3d8 - PATHS - "$ENV{DXSDK_DIR}/Lib/x86" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Lib/x86" + find_library (DirectX_D3D8_LIBRARY d3d8 + PATHS ${DirectX_LIB_SEARCH_PATH} DOC "The directory where d3d8 resides") - find_library (D3DX8_LIBRARY d3dx8 - PATHS - "$ENV{DXSDK_DIR}/Lib/x86" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Lib/x86" + find_library (DirectX_D3DX8_LIBRARY d3dx8 + PATHS ${DirectX_LIB_SEARCH_PATH} DOC "The directory where d3dx8 resides") - if (D3D8_INCLUDE_DIR AND D3D8_LIBRARY) - set (D3D8_FOUND 1) - if (D3DX8_INCLUDE_DIR AND D3DX8_LIBRARY) - set (D3DX8_FOUND 1) - endif (D3DX8_INCLUDE_DIR AND D3DX8_LIBRARY) - endif (D3D8_INCLUDE_DIR AND D3D8_LIBRARY) + if (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3D8_LIBRARY) + set (DirectX_D3D8_FOUND 1) + if (DirectX_D3DX8_INCLUDE_DIR AND DirectX_D3DX8_LIBRARY) + set (DirectX_D3DX8_FOUND 1) + endif () + endif () - find_path (D3D9_INCLUDE_DIR d3d9.h - PATHS - "$ENV{DXSDK_DIR}/Include" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Include" + find_path (DirectX_D3D9_INCLUDE_DIR d3d9.h + PATHS ${DirectX_INC_SEARCH_PATH} DOC "The directory where d3d9.h resides") - find_path (D3DX9_INCLUDE_DIR d3dx9.h - PATHS - "$ENV{DXSDK_DIR}/Include" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Include" + find_path (DirectX_D3DX9_INCLUDE_DIR d3dx9.h + PATHS ${DirectX_INC_SEARCH_PATH} DOC "The directory where d3dx9.h resides") - find_library (D3D9_LIBRARY d3d9 - PATHS - "$ENV{DXSDK_DIR}/Lib/x86" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Lib/x86" + find_library (DirectX_D3D9_LIBRARY d3d9 + PATHS ${DirectX_LIB_SEARCH_PATH} DOC "The directory where d3d9 resides") - find_library (D3DX9_LIBRARY d3dx9 - PATHS - "$ENV{DXSDK_DIR}/Lib/x86" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Lib/x86" + find_library (DirectX_D3DX9_LIBRARY d3dx9 + PATHS ${DirectX_LIB_SEARCH_PATH} DOC "The directory where d3dx9 resides") - if (D3D9_INCLUDE_DIR AND D3D9_LIBRARY) - set (D3D9_FOUND 1) - if (D3DX9_INCLUDE_DIR AND D3DX9_LIBRARY) - set (D3DX9_FOUND 1) - endif (D3DX9_INCLUDE_DIR AND D3DX9_LIBRARY) - endif (D3D9_INCLUDE_DIR AND D3D9_LIBRARY) + if (DirectX_D3D9_INCLUDE_DIR AND DirectX_D3D9_LIBRARY) + set (DirectX_D3D9_FOUND 1) + if (DirectX_D3DX9_INCLUDE_DIR AND DirectX_D3DX9_LIBRARY) + set (DirectX_D3DX9_FOUND 1) + endif () + endif () - find_path (D3D10_INCLUDE_DIR d3d10.h - PATHS - "$ENV{DXSDK_DIR}/Include" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Include" + find_path (DirectX_D3D10_INCLUDE_DIR d3d10.h + PATHS ${DirectX_INC_SEARCH_PATH} DOC "The directory where d3d10.h resides") - find_path (D3DX10_INCLUDE_DIR d3dx10.h - PATHS - "$ENV{DXSDK_DIR}/Include" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Include" + find_path (DirectX_D3DX10_INCLUDE_DIR d3dx10.h + PATHS ${DirectX_INC_SEARCH_PATH} DOC "The directory where d3dx10.h resides") - find_library (D3D10_LIBRARY d3d10 - PATHS - "$ENV{DXSDK_DIR}/Lib/x86" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Lib/x86" + find_library (DirectX_D3D10_LIBRARY d3d10 + PATHS ${DirectX_LIB_SEARCH_PATH} DOC "The directory where d3d10 resides") - find_library (D3DX10_LIBRARY d3dx10 - PATHS - "$ENV{DXSDK_DIR}/Lib/x86" - "$ENV{ProgramFiles}/Microsoft DirectX SDK/Lib/x86" + find_library (DirectX_D3DX10_LIBRARY d3dx10 + PATHS ${DirectX_LIB_SEARCH_PATH} DOC "The directory where d3dx10 resides") - if (D3D10_INCLUDE_DIR AND D3D10_LIBRARY) - set (D3D10_FOUND 1) - if (D3DX10_INCLUDE_DIR AND D3DX10_LIBRARY) - set (D3DX10_FOUND 1) - endif (D3DX10_INCLUDE_DIR AND D3DX10_LIBRARY) - endif (D3D10_INCLUDE_DIR AND D3D10_LIBRARY) + if (DirectX_D3D10_INCLUDE_DIR AND DirectX_D3D10_LIBRARY) + set (DirectX_D3D10_FOUND 1) + if (DirectX_D3DX10_INCLUDE_DIR AND DirectX_D3DX10_LIBRARY) + set (DirectX_D3DX10_FOUND 1) + endif () + endif () + + + find_path (DirectX_D3D10_1_INCLUDE_DIR d3d10_1.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3d10_1.h resides") + + find_library (DirectX_D3D10_1_LIBRARY d3d10_1 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3d10_1 resides") + + if (DirectX_D3D10_1_INCLUDE_DIR AND DirectX_D3D10_1_LIBRARY) + set (DirectX_D3D10_1_FOUND 1) + endif () + + + find_path (DirectX_D3D11_INCLUDE_DIR d3d11.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3d11.h resides") + + find_path (DirectX_D3DX11_INCLUDE_DIR d3dx11.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3dx11.h resides") + + find_library (DirectX_D3D11_LIBRARY d3d11 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3d11 resides") + + find_library (DirectX_D3DX11_LIBRARY d3dx11 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3dx11 resides") + + if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY) + set (DirectX_D3D11_FOUND 1) + if (DirectX_D3DX11_INCLUDE_DIR AND DirectX_D3DX11_LIBRARY) + set (DirectX_D3DX11_FOUND 1) + endif () + endif () + + + find_path (DirectX_D3D11_1_INCLUDE_DIR d3d11_1.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3d11_1.h resides") + + if (DirectX_D3D11_1_INCLUDE_DIR AND DirectX_D3D11_LIBRARY) + set (DirectX_D3D11_1_FOUND 1) + endif () + + + find_program (DirectX_FXC_EXECUTABLE fxc + PATHS ${DirectX_BIN_SEARCH_PATH} + DOC "Path to fxc.exe executable.") + + + find_path (DirectX_D2D1_INCLUDE_DIR d2d1.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d2d1.h resides") + + find_library (DirectX_D2D1_LIBRARY d2d1 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d2d1 resides") + + if (DirectX_D2D1_INCLUDE_DIR AND DirectX_D2D1_LIBRARY) + set (DirectX_D2D1_FOUND 1) + endif (DirectX_D2D1_INCLUDE_DIR AND DirectX_D2D1_LIBRARY) + + + mark_as_advanced ( + DirectX_D3D_INCLUDE_DIR + DirectX_D3D_INCLUDE_DIR + DirectX_DDRAW_LIBRARY + DirectX_DDRAW_LIBRARY + DirectX_D3DX_INCLUDE_DIR + DirectX_D3DX_INCLUDE_DIR + DirectX_D3DX_LIBRARY + DirectX_D3DX_LIBRARY + DirectX_D3D8_INCLUDE_DIR + DirectX_D3D8_INCLUDE_DIR + DirectX_D3D8_LIBRARY + DirectX_D3D8_LIBRARY + DirectX_D3DX8_INCLUDE_DIR + DirectX_D3DX8_INCLUDE_DIR + DirectX_D3DX8_LIBRARY + DirectX_D3DX8_LIBRARY + DirectX_D3D9_INCLUDE_DIR + DirectX_D3D9_LIBRARY + DirectX_D3DX9_INCLUDE_DIR + DirectX_D3DX9_LIBRARY + DirectX_D3D10_INCLUDE_DIR + DirectX_D3D10_LIBRARY + DirectX_D3DX10_INCLUDE_DIR + DirectX_D3DX10_LIBRARY + DirectX_D3D10_1_INCLUDE_DIR + DirectX_D3D10_1_LIBRARY + DirectX_D3D11_INCLUDE_DIR + DirectX_D3D11_LIBRARY + DirectX_D3DX11_INCLUDE_DIR + DirectX_D3DX11_LIBRARY + DirectX_D3D11_1_INCLUDE_DIR + DirectX_D2D1_INCLUDE_DIR + DirectX_D2D1_LIBRARY + ) + + +endif () -endif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") mark_as_advanced ( - D3D8_FOUND - D3DX8_FOUND - D3D9_FOUND - D3DX9_FOUND - D3D10_FOUND - D3DX10_FOUND + DirectX_D3D_FOUND + DirectX_D3DX_FOUND + DirectX_D3D8_FOUND + DirectX_D3DX8_FOUND + DirectX_D3D9_FOUND + DirectX_D3DX9_FOUND + DirectX_D3D10_FOUND + DirectX_D3DX10_FOUND + DirectX_D3D10_1_FOUND + DirectX_D3D11_FOUND + DirectX_D3DX11_FOUND + DirectX_D3D11_1_FOUND + DirectX_D2D1_FOUND ) + + +# vim:set sw=4 ts=4 noet: