aboutsummaryrefslogtreecommitdiff
path: root/ports/portaudio/find_dsound.patch
blob: be82b56411ccefbe47776bbf9e9c44f4f1428cd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
--- a/cmake_support/FindDXSDK.cmake
+++ b/cmake_support/FindDXSDK.cmake
@@ -16,44 +16,70 @@ else(WIN32)
   message(FATAL_ERROR "FindDXSDK.cmake: Unsupported platform ${CMAKE_SYSTEM_NAME}" )
 endif(WIN32)
 
-find_path(DXSDK_ROOT_DIR
-  include/dxsdkver.h
-  HINTS
-    $ENV{DXSDK_DIR}
-)
-
-find_path(DXSDK_INCLUDE_DIR
-  dxsdkver.h
-  PATHS
-    ${DXSDK_ROOT_DIR}/include 
-)  
-
-IF(CMAKE_CL_64)
-find_path(DXSDK_LIBRARY_DIR
-  dsound.lib
-  PATHS
-  ${DXSDK_ROOT_DIR}/lib/x64
-)
-ELSE(CMAKE_CL_64)
-find_path(DXSDK_LIBRARY_DIR
-  dsound.lib
-  PATHS
-  ${DXSDK_ROOT_DIR}/lib/x86
-)
-ENDIF(CMAKE_CL_64)
-
-find_library(DXSDK_DSOUND_LIBRARY 
-  dsound.lib
-  PATHS
-  ${DXSDK_LIBRARY_DIR}
-)
-
-# handle the QUIETLY and REQUIRED arguments and set DXSDK_FOUND to TRUE if 
-# all listed variables are TRUE
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(DXSDK DEFAULT_MSG DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR)
-
-MARK_AS_ADVANCED(
-    DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR
-    DXSDK_LIBRARY_DIR DXSDK_DSOUND_LIBRARY
-)
+# Dsound.lib is statically linked (i.e. dsound.dll not required) and DXSDK_LIBRARY_DIR not used.
+# In the environments supported by VCPKG we may as well avoid looking out for DX9 to avoid version
+# mismatch in find.
+
+if(MSVC AND MSVC_VERSION GREATER_EQUAL 1900)
+
+  # if the environment is set up properly, matching lib and header will be found
+
+  find_path(DXSDK_INCLUDE_DIR
+    dsound.h
+  )
+  find_library(DXSDK_DSOUND_LIBRARY
+    dsound.lib
+  )
+
+  INCLUDE(FindPackageHandleStandardArgs)
+  FIND_PACKAGE_HANDLE_STANDARD_ARGS(DXSDK DEFAULT_MSG DXSDK_INCLUDE_DIR DXSDK_DSOUND_LIBRARY)
+
+  MARK_AS_ADVANCED(
+    DXSDK_INCLUDE_DIR DXSDK_DSOUND_LIBRARY
+  )
+
+else()
+
+  find_path(DXSDK_ROOT_DIR
+    include/dxsdkver.h
+    HINTS
+      $ENV{DXSDK_DIR}
+  )
+
+  find_path(DXSDK_INCLUDE_DIR
+    dxsdkver.h
+    HINTS
+      ${DXSDK_ROOT_DIR}/include 
+  )  
+
+  IF(CMAKE_CL_64)
+  find_path(DXSDK_LIBRARY_DIR
+    dsound.lib
+    HINTS
+    ${DXSDK_ROOT_DIR}/lib/x64
+  )
+  ELSE(CMAKE_CL_64)
+  find_path(DXSDK_LIBRARY_DIR
+    dsound.lib
+    HINTS
+    ${DXSDK_ROOT_DIR}/lib/x86
+  )
+  ENDIF(CMAKE_CL_64)
+
+  find_library(DXSDK_DSOUND_LIBRARY 
+    dsound.lib
+    HINTS
+    ${DXSDK_LIBRARY_DIR}
+  )
+
+  # handle the QUIETLY and REQUIRED arguments and set DXSDK_FOUND to TRUE if 
+  # all listed variables are TRUE
+  INCLUDE(FindPackageHandleStandardArgs)
+  FIND_PACKAGE_HANDLE_STANDARD_ARGS(DXSDK DEFAULT_MSG DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR)
+
+  MARK_AS_ADVANCED(
+      DXSDK_ROOT_DIR DXSDK_INCLUDE_DIR
+      DXSDK_LIBRARY_DIR DXSDK_DSOUND_LIBRARY
+  )
+
+endif()