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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
diff --git a/build/depends.py b/build/depends.py
index ad71733..a33d68e 100644
--- a/build/depends.py
+++ b/build/depends.py
@@ -347,25 +347,11 @@
class FidLib(Dependence):
- def sources(self, build):
- symbol = None
- if build.platform_is_windows:
- if build.toolchain_is_msvs:
- symbol = 'T_MSVC'
- elif build.crosscompile:
- # Not sure why, but fidlib won't build with mingw32msvc and
- # T_MINGW
- symbol = 'T_LINUX'
- elif build.toolchain_is_gnu:
- symbol = 'T_MINGW'
- else:
- symbol = 'T_LINUX'
-
- return [build.env.StaticObject('#lib/fidlib-0.9.10/fidlib.c',
- CPPDEFINES=symbol)]
-
def configure(self, build, conf):
- build.env.Append(CPPPATH='#lib/fidlib-0.9.10/')
+ if not conf.CheckLib('fidlib'):
+ raise Exception('Did not find fidlib library, exiting!')
+ build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/fidlib'])
+
class ReplayGain(Dependence):
@@ -378,42 +364,19 @@
class SoundTouch(Dependence):
- SOUNDTOUCH_PATH = 'soundtouch-1.8.0'
def sources(self, build):
- return ['engine/enginebufferscalest.cpp',
- '#lib/%s/AAFilter.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/BPMDetect.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/FIFOSampleBuffer.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/FIRFilter.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/InterpolateCubic.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/InterpolateLinear.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/InterpolateShannon.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/PeakFinder.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/RateTransposer.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/SoundTouch.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/TDStretch.cpp' % self.SOUNDTOUCH_PATH,
- # SoundTouch CPU optimizations are only for x86
- # architectures. SoundTouch automatically ignores these files
- # when it is not being built for an architecture that supports
- # them.
- '#lib/%s/cpu_detect_x86.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/mmx_optimized.cpp' % self.SOUNDTOUCH_PATH,
- '#lib/%s/sse_optimized.cpp' % self.SOUNDTOUCH_PATH]
+ return ['engine/enginebufferscalest.cpp']
def configure(self, build, conf, env=None):
if env is None:
env = build.env
- env.Append(CPPPATH=['#lib/%s' % self.SOUNDTOUCH_PATH])
- # Prevents circular import.
- from features import Optimize
+ if not conf.CheckLib(['SoundTouch','libSoundTouch']):
+ raise Exception('Did not find SoundTouch library, exiting!')
+ build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/soundtouch'])
+ build.env.Append(LIBS='SoundTouch')
- # If we do not want optimizations then disable them.
- optimize = (build.flags['optimize'] if 'optimize' in build.flags
- else Optimize.get_optimization_level())
- if optimize == Optimize.LEVEL_OFF:
- env.Append(CPPDEFINES='SOUNDTOUCH_DISABLE_X86_OPTIMIZATIONS')
class RubberBand(Dependence):
diff --git a/build/features.py b/build/features.py
index b61de86..639e143 100644
--- a/build/features.py
+++ b/build/features.py
@@ -45,7 +45,6 @@
class HID(Feature):
- HIDAPI_INTERNAL_PATH = '#lib/hidapi-0.8.0-pre'
def description(self):
return "HID controller support"
@@ -62,10 +61,6 @@
def configure(self, build, conf):
if not self.enabled(build):
return
- # TODO(XXX) allow external hidapi install, but for now we just use our
- # internal one.
- build.env.Append(
- CPPPATH=[os.path.join(self.HIDAPI_INTERNAL_PATH, 'hidapi')])
if build.platform_is_linux:
build.env.ParseConfig(
@@ -90,22 +85,16 @@
build.env.Append(CPPDEFINES='__HID__')
+ if not conf.CheckLib('hidapi-libusb'):
+ raise Exception('Did not find HID API library, exiting!')
+ build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/hidapi'])
+ build.env.Append(LIBS='hidapi-libusb')
+
def sources(self, build):
sources = ['controllers/hid/hidcontroller.cpp',
'controllers/hid/hidenumerator.cpp',
'controllers/hid/hidcontrollerpresetfilehandler.cpp']
- if build.platform_is_windows:
- # Requires setupapi.lib which is included by the above check for
- # setupapi.
- sources.append(
- os.path.join(self.HIDAPI_INTERNAL_PATH, "windows/hid.c"))
- elif build.platform_is_linux:
- sources.append(
- os.path.join(self.HIDAPI_INTERNAL_PATH, 'linux/hid-libusb.c'))
- elif build.platform_is_osx:
- sources.append(
- os.path.join(self.HIDAPI_INTERNAL_PATH, 'mac/hid.c'))
return sources
@@ -717,25 +706,6 @@
test_env.Append(CCFLAGS='-pthread')
test_env.Append(LINKFLAGS='-pthread')
- test_env.Append(CPPPATH="#lib/gtest-1.7.0/include")
- gtest_dir = test_env.Dir("#lib/gtest-1.7.0")
- # gtest_dir.addRepository(build.env.Dir('#lib/gtest-1.5.0'))
- # build.env['EXE_OUTPUT'] = '#/lib/gtest-1.3.0/bin' # example,
- # optional
- test_env['LIB_OUTPUT'] = '#/lib/gtest-1.7.0/lib'
-
- env = test_env
- SCons.Export('env')
- env.SConscript(env.File('SConscript', gtest_dir))
-
- # build and configure gmock
- test_env.Append(CPPPATH="#lib/gmock-1.7.0/include")
- gmock_dir = test_env.Dir("#lib/gmock-1.7.0")
- # gmock_dir.addRepository(build.env.Dir('#lib/gmock-1.5.0'))
- test_env['LIB_OUTPUT'] = '#/lib/gmock-1.7.0/lib'
-
- env.SConscript(env.File('SConscript', gmock_dir))
-
return []
|