22
33set -e
44
5- LIBOPENAL_SHA=d3875f333fb6abe2f39d82caca329414871ae53b
6- LIBPINMAME_SHA=c69f68aca1fe28d5bb65ab10a17c09fb2593d57b
7- LIBPPUC_SHA=2bb464dd10e37649e0ec3321edfaf71b4c1d3216
8- LIBDMDUTIL_SHA=c7b28ff9b26d206820f438a54c9bc89171a3ae02
5+ source ./platforms/config.sh
96
107echo " Building libraries..."
11- echo " LIBOPENAL_SHA: ${LIBOPENAL_SHA} "
12- echo " LIBPINMAME_SHA: ${LIBPINMAME_SHA} "
8+ echo " SDL_SHA: ${SDL_SHA} "
9+ echo " SDL_IMAGE_SHA: ${SDL_IMAGE_SHA} "
10+ echo " PINMAME_SHA: ${PINMAME_SHA} "
1311echo " LIBPPUC_SHA: ${LIBPPUC_SHA} "
1412echo " LIBDMDUTIL_SHA: ${LIBDMDUTIL_SHA} "
1513echo " "
1614
17- if [ -z " ${BUILD_TYPE} " ]; then
18- BUILD_TYPE=" Release"
19- fi
20-
2115if [ -z " ${CACHE_DIR} " ]; then
2216 CACHE_DIR=" external/cache/${BUILD_TYPE} "
2317fi
@@ -29,92 +23,199 @@ echo ""
2923mkdir -p external ${CACHE_DIR}
3024cd external
3125
26+ #
27+ # build SDL3, SDL3_image
28+ #
29+
30+ SDL3_EXPECTED_SHA=" ${SDL_SHA} -${SDL_IMAGE_SHA} "
31+ SDL3_FOUND_SHA=" $( [ -f SDL3/cache.txt ] && cat SDL3/cache.txt || echo " " ) "
32+
33+ if [ " ${SDL3_EXPECTED_SHA} " != " ${SDL3_FOUND_SHA} " ]; then
34+ echo " Building SDL3. Expected: ${SDL3_EXPECTED_SHA} , Found: ${SDL3_FOUND_SHA} "
35+
36+ rm -rf SDL3
37+ mkdir SDL3
38+ cd SDL3
39+
40+ curl -sL https://github.com/libsdl-org/SDL/archive/${SDL_SHA} .tar.gz -o SDL-${SDL_SHA} .tar.gz
41+ tar xzf SDL-${SDL_SHA} .tar.gz
42+ mv SDL-${SDL_SHA} SDL
43+ cd SDL
44+ cmake \
45+ -G " Visual Studio 17 2022" \
46+ -DSDL_SHARED=ON \
47+ -DSDL_STATIC=OFF \
48+ -DSDL_TEST_LIBRARY=OFF \
49+ -B build
50+ cmake --build build --config ${BUILD_TYPE}
51+ cd ..
52+
53+ curl -sL https://github.com/libsdl-org/SDL_image/archive/${SDL_IMAGE_SHA} .tar.gz -o SDL_image-${SDL_IMAGE_SHA} .tar.gz
54+ tar xzf SDL_image-${SDL_IMAGE_SHA} .tar.gz --exclude=' */Xcode/*'
55+ mv SDL_image-${SDL_IMAGE_SHA} SDL_image
56+ cd SDL_image
57+ ./external/download.sh
58+ cmake \
59+ -G " Visual Studio 17 2022" \
60+ -DBUILD_SHARED_LIBS=ON \
61+ -DSDLIMAGE_SAMPLES=OFF \
62+ -DSDLIMAGE_DEPS_SHARED=ON \
63+ -DSDLIMAGE_VENDORED=ON \
64+ -DSDLIMAGE_AVIF=OFF \
65+ -DSDLIMAGE_WEBP=OFF \
66+ -DSDL3_DIR=../SDL/build \
67+ -B build
68+ cmake --build build --config ${BUILD_TYPE}
69+ cd ..
70+
71+ echo " $SDL3_EXPECTED_SHA " > cache.txt
72+
73+ cd ..
74+ fi
75+
3276#
3377# libdmdutil
3478#
3579
3680CACHE_NAME=" libdmdutil-${LIBDMDUTIL_SHA} "
3781
38- if [ ! -f " ../${CACHE_DIR} /${CACHE_NAME} .cache" ]; then
39- rm -f ../${CACHE_DIR} /libdmdutil-* .cache
40- rm -rf libdmdutil-*
41- curl -sL https://github.com/PPUC/libdmdutil/archive/${LIBDMDUTIL_SHA} .zip -o libdmdutil.zip
42- unzip libdmdutil.zip
43- cd libdmdutil-${LIBDMDUTIL_SHA}
44- cp -r include/DMDUtil ../../third-party/include/
45- BUILD_TYPE=${BUILD_TYPE} platforms/win/x86/external.sh
46- cp -a third-party/. ../../third-party
47- cmake \
82+ LIBDMDUTIL_EXPECTED_SHA=" ${LIBDMDUTIL_SHA} "
83+ LIBDMDUTIL_FOUND_SHA=" $( [ -f libdmdutil/cache.txt ] && cat libdmdutil/cache.txt || echo " " ) "
84+
85+ if [ " ${LIBDMDUTIL_EXPECTED_SHA} " != " ${LIBDMDUTIL_FOUND_SHA} " ]; then
86+ echo " Building libdmdutil. Expected: ${LIBDMDUTIL_EXPECTED_SHA} , Found: ${LIBDMDUTIL_FOUND_SHA} "
87+
88+ rm -rf libdmdutil
89+ mkdir libdmdutil
90+ cd libdmdutil
91+
92+ curl -sL https://github.com/vpinball/libdmdutil/archive/${LIBDMDUTIL_SHA} .tar.gz -o libdmdutil-${LIBDMDUTIL_SHA} .tar.gz
93+ tar xzf libdmdutil-${LIBDMDUTIL_SHA} .tar.gz
94+ mv libdmdutil-${LIBDMDUTIL_SHA} libdmdutil
95+ cd libdmdutil
96+ ./platforms/windows/x86/external.sh
97+ cmake \
4898 -G " Visual Studio 17 2022" \
49- -A Win32 \
5099 -DPLATFORM=win \
51100 -DARCH=x86 \
52- -DBUILD_SHARED=OFF \
53- -DBUILD_STATIC=ON \
101+ -DBUILD_SHARED=ON \
102+ -DBUILD_STATIC=OFF \
54103 -B build
55- cmake --build build --config ${BUILD_TYPE}
56- cp build/${BUILD_TYPE} /dmdutil.lib ../../third-party/build-libs/win/x86/
57- cp build/${BUILD_TYPE} /dmdutil.dll ../../third-party/runtime-libs/win/x86/
58- cd ..
59- touch " ../${CACHE_DIR} /${CACHE_NAME} .cache"
104+ cmake --build build --config ${BUILD_TYPE}
105+ cd ..
106+
107+ echo " $LIBDMDUTIL_EXPECTED_SHA " > cache.txt
108+
109+ cd ..
60110fi
61111
62112#
63- # libpiname
113+ # build pinmame
64114#
65115
66- CACHE_NAME=" pinmame-${LIBPINMAME_SHA} "
67-
68- if [ ! -f " ../${CACHE_DIR} /${CACHE_NAME} .cache" ]; then
69- rm -f ../${CACHE_DIR} /pinmame-* .cache
70- rm -rf pinmame-*
71- curl -sL https://github.com/vpinball/pinmame/archive/${LIBPINMAME_SHA} .zip -o pinmame.zip
72- unzip pinmame.zip
73- cd pinmame-${LIBPINMAME_SHA}
74- cp src/libpinmame/libpinmame.h ../../third-party/include/
75- cp cmake/libpinmame/CMakeLists.txt CMakeLists.txt
76- cmake \
116+ PINMAME_EXPECTED_SHA=" ${PINMAME_SHA} "
117+ PINMAME_FOUND_SHA=" $( [ -f pinmame/cache.txt ] && cat pinmame/cache.txt || echo " " ) "
118+
119+ if [ " ${PINMAME_EXPECTED_SHA} " != " ${PINMAME_FOUND_SHA} " ]; then
120+ echo " Building libpinmame. Expected: ${PINMAME_EXPECTED_SHA} , Found: ${PINMAME_FOUND_SHA} "
121+
122+ rm -rf pinmame
123+ mkdir pinmame
124+ cd pinmame
125+
126+ curl -sL https://github.com/vbousquet/pinmame/archive/${PINMAME_SHA} .tar.gz -o pinmame-${PINMAME_SHA} .tar.gz
127+ tar xzf pinmame-${PINMAME_SHA} .tar.gz
128+ mv pinmame-${PINMAME_SHA} pinmame
129+ cd pinmame
130+ cp cmake/libpinmame/CMakeLists.txt .
131+ cmake \
77132 -G " Visual Studio 17 2022" \
78- -A Win32 \
79133 -DPLATFORM=win \
80134 -DARCH=x86 \
81- -DBUILD_SHARED=OFF \
82- -DBUILD_STATIC=ON \
135+ -DBUILD_SHARED=ON \
136+ -DBUILD_STATIC=OFF \
83137 -B build
84- cmake --build build --config ${BUILD_TYPE}
85- cp build/${BUILD_TYPE} /pinmame.lib ../../third-party/build-libs/win/x86/
86- cp build/${BUILD_TYPE} /pinamme.dll ../../third-party/runtime-libs/win/x86/
87- cd ..
88- touch " ../${CACHE_DIR} /${CACHE_NAME} .cache"
138+ cmake --build build --config ${BUILD_TYPE}
139+ cd ..
140+
141+ echo " $PINMAME_EXPECTED_SHA " > cache.txt
142+
143+ cd ..
89144fi
90145
91146#
92147# libppuc
93148#
94149
95- CACHE_NAME=" libppuc-${LIBPPUC_SHA} "
96-
97- if [ ! -f " ../${CACHE_DIR} /${CACHE_NAME} .cache" ]; then
98- rm -f ../${CACHE_DIR} /libppuc-* .cache
99- rm -rf libppuc-*
100- curl -sL https://github.com/PPUC/libppuc/archive/${LIBPPUC_SHA} .zip -o libppuc.zip
101- unzip libppuc.zip
102- cd libppuc-${LIBPPUC_SHA}
103- cp src/PPUC.h ../../third-party/include/
104- cp src/PPUC_structs.h ../../third-party/include/
105- BUILD_TYPE=${BUILD_TYPE} platforms/win/x86/external.sh
106- cp -a third-party/. ../../third-party
107- cmake \
150+ LIBPPUC_EXPECTED_SHA=" ${LIBPPUC_SHA} "
151+ LIBPPUC_FOUND_SHA=" $( [ -f libppuc/cache.txt ] && cat libppuc/cache.txt || echo " " ) "
152+
153+ if [ " ${LIBPPUC_EXPECTED_SHA} " != " ${LIBPPUC_FOUND_SHA} " ]; then
154+ echo " Building libppuc. Expected: ${LIBPPUC_EXPECTED_SHA} , Found: ${LIBPPUC_FOUND_SHA} "
155+
156+ rm -rf libppuc
157+ mkdir libppuc
158+ cd libppuc
159+
160+ curl -sL https://github.com/PPUC/libppuc/archive/${LIBPPUC_SHA} .tar.gz -o libppuc-${LIBPPUC_SHA} .tar.gz
161+ tar xzf libppuc-${LIBPPUC_SHA} .tar.gz
162+ mv libppuc-${LIBPPUC_SHA} libppuc
163+ cd libppuc
164+
165+ BUILD_TYPE=${BUILD_TYPE} platforms/windows/x86/external.sh
166+ cmake \
108167 -G " Visual Studio 17 2022" \
109- -A Win32 \
110168 -DPLATFORM=win \
111169 -DARCH=x86 \
112- -DBUILD_SHARED=OFF \
113- -DBUILD_STATIC=ON \
170+ -DBUILD_SHARED=ON \
171+ -DBUILD_STATIC=OFF \
114172 -B build
115- cmake --build build --config ${BUILD_TYPE}
116- cp build/${BUILD_TYPE} /ppuc.lib ../../third-party/build-libs/win/x86/
117- cp build/${BUILD_TYPE} /ppuc.dll ../../third-party/runtime-libs/win/x86/
118- cd ..
119- touch " ../${CACHE_DIR} /${CACHE_NAME} .cache"
173+ cmake --build build --config ${BUILD_TYPE}
174+ cd ..
175+
176+ echo " $LIBPPUC_EXPECTED_SHA " > cache.txt
177+
178+ cd ..
120179fi
180+
181+ cp SDL3/SDL/build/${BUILD_TYPE} /SDL3.lib ../third-party/build-libs/windows-x86/
182+ cp SDL3/SDL/build/${BUILD_TYPE} /SDL3.dll ../third-party/runtime-libs/windows-x86/
183+ cp -r SDL3/SDL/include/SDL3 ../third-party/include/
184+
185+ cp SDL3/SDL_image/build/${BUILD_TYPE} /SDL3_image64.lib ../third-party/build-libs/windows-x86/
186+ cp SDL3/SDL_image/build/${BUILD_TYPE} /SDL3_image64.dll ../third-party/runtime-libs/windows-x86/
187+ cp -r SDL3/SDL_image/include/SDL3_image ../third-party/include/
188+
189+ cp pinmame/pinmame/build/${BUILD_TYPE} /pinmame64.lib ../third-party/build-libs/windows-x86/
190+ cp pinmame/pinmame/build/${BUILD_TYPE} /pinmame64.dll ../third-party/runtime-libs/windows-x86/
191+ cp pinmame/pinmame/src/libpinmame/libpinmame.h ../third-party/include/
192+ # cp pinmame/pinmame/src/libpinmame/pinmamedef.h ../third-party/include/
193+
194+ cp libdmdutil/libdmdutil/build/${BUILD_TYPE} /dmdutil64.lib ../third-party/build-libs/windows-x86/
195+ cp libdmdutil/libdmdutil/build/${BUILD_TYPE} /dmdutil64.dll ../third-party/runtime-libs/windows-x86/
196+ cp -r libdmdutil/libdmdutil/include/DMDUtil ../third-party/include/
197+ cp libdmdutil/libdmdutil/third-party/build-libs/win/x86/zedmd64.lib ../third-party/build-libs/windows-x86/
198+ cp libdmdutil/libdmdutil/third-party/runtime-libs/win/x86/zedmd64.dll ../third-party/runtime-libs/windows-x86/
199+ cp libdmdutil/libdmdutil/third-party/include/ZeDMD.h ../third-party/include/
200+ cp libdmdutil/libdmdutil/third-party/build-libs/win/x86/serum64.lib ../third-party/build-libs/windows-x86/
201+ cp libdmdutil/libdmdutil/third-party/runtime-libs/win/x86/serum64.dll ../third-party/runtime-libs/windows-x86/
202+ cp libdmdutil/libdmdutil/third-party/include/serum.h ../third-party/include/
203+ cp libdmdutil/libdmdutil/third-party/include/serum-decode.h ../third-party/include/
204+ cp libdmdutil/libdmdutil/third-party/build-libs/win/x86/libserialport64.lib ../third-party/build-libs/windows-x86/
205+ cp libdmdutil/libdmdutil/third-party/runtime-libs/win/x86/libserialport64.dll ../third-party/runtime-libs/windows-x86/
206+ cp libdmdutil/libdmdutil/third-party/build-libs/win/x86/pupdmd64.lib ../third-party/build-libs/windows-x86/
207+ cp libdmdutil/libdmdutil/third-party/runtime-libs/win/x86/pupdmd64.dll ../third-party/runtime-libs/windows-x86/
208+ cp libdmdutil/libdmdutil/third-party/include/pupdmd.h ../third-party/include/
209+ cp libdmdutil/libdmdutil/third-party/build-libs/win/x86/sockpp64.lib ../third-party/build-libs/windows-x86/
210+ cp libdmdutil/libdmdutil/third-party/runtime-libs/win/x86/sockpp64.dll ../third-party/runtime-libs/windows-x86/
211+ cp libdmdutil/libdmdutil/third-party/build-libs/win/x86/cargs64.lib ../third-party/build-libs/windows-x86/
212+ cp libdmdutil/libdmdutil/third-party/runtime-libs/win/x86/cargs64.dll ../third-party/runtime-libs/windows-x86/
213+
214+ cp libppuc/libppuc/src/PPUC.h ../third-party/include/
215+ cp libppuc/libppuc/src/PPUC_structs.h ../third-party/include/
216+ cp -r libppuc/libppuc/third-party/include/yaml-cpp ../third-party/include/
217+ cp -r libppuc/libppuc/third-party/include/io-boards ../third-party/include/
218+ cp libppuc/libppuc/build/${BUILD_TYPE} /libppuc.lib ../third-party/build-libs/windows-x86/
219+ cp libppuc/libppuc/build/${BUILD_TYPE} /libppuc.dll ../third-party/runtime-libs/windows-x86/
220+ cp -a libppuc/libppuc/third-party/runtime-libs/windows/x86/libyaml-cpp.lib ../third-party/build-libs/windows-x86/
221+ cp -a libppuc/libppuc/third-party/runtime-libs/windows/x86/libyaml-cpp.dll ../third-party/runtime-libs/windows-x86/
0 commit comments