diff options
Diffstat (limited to 'CMake/Modules')
-rw-r--r-- | CMake/Modules/FindDirectX.cmake | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/CMake/Modules/FindDirectX.cmake b/CMake/Modules/FindDirectX.cmake new file mode 100644 index 0000000..b6ba63d --- /dev/null +++ b/CMake/Modules/FindDirectX.cmake @@ -0,0 +1,284 @@ +# - try to find DirectX include dirs and libraries + + +if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + + + 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}" + "$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 (DirectX_D3DX8_INCLUDE_DIR d3dx8.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3dx8.h resides") + + find_library (DirectX_D3D8_LIBRARY d3d8 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3d8 resides") + + find_library (DirectX_D3DX8_LIBRARY d3dx8 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3dx8 resides") + + 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 (DirectX_D3D9_INCLUDE_DIR d3d9.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3d9.h resides") + + find_path (DirectX_D3DX9_INCLUDE_DIR d3dx9.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3dx9.h resides") + + find_library (DirectX_D3D9_LIBRARY d3d9 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3d9 resides") + + find_library (DirectX_D3DX9_LIBRARY d3dx9 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3dx9 resides") + + 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 (DirectX_D3D10_INCLUDE_DIR d3d10.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3d10.h resides") + + find_path (DirectX_D3DX10_INCLUDE_DIR d3dx10.h + PATHS ${DirectX_INC_SEARCH_PATH} + DOC "The directory where d3dx10.h resides") + + find_library (DirectX_D3D10_LIBRARY d3d10 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3d10 resides") + + find_library (DirectX_D3DX10_LIBRARY d3dx10 + PATHS ${DirectX_LIB_SEARCH_PATH} + DOC "The directory where d3dx10 resides") + + 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 () + + +mark_as_advanced ( + 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 +) + |