upgrade.sh 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-3.0-or-later
  3. # Copyright (c) 2012-2025 Daniele Bartolini et al.
  4. git_clone () {
  5. local DEST=$1
  6. local REPO=$2
  7. local BRANCH=$3
  8. local COMMIT=$4
  9. local DEPTH=1
  10. if [ ! -z "${COMMIT}" ]; then
  11. DEPTH=100 # Ensure enough commits are available for COMMIT option to work.
  12. fi
  13. git clone "${REPO}" "${DEST}" --branch="${BRANCH}" --depth="${DEPTH}" --separate-git-dir="$(mktemp -u)"
  14. if [ ! -z "${COMMIT}" ]; then
  15. pushd "${PWD}" > /dev/null
  16. cd "${DEST}" \
  17. && git reset --hard "${COMMIT}" \
  18. && rm .git
  19. popd > /dev/null
  20. fi
  21. }
  22. update_luajit () {
  23. local DEST=3rdparty/luajit
  24. local REPO=https://github.com/LuaJIT/LuaJIT.git
  25. local BRANCH=v2.1
  26. # Download latest luajit.
  27. rm -rf "${DEST}"
  28. git_clone "${DEST}" "${REPO}" "${BRANCH}"
  29. # Cleanup.
  30. rm -rf "${DEST}"/.gitignore
  31. rm -rf "${DEST}"/doc
  32. rm -rf "${DEST:?}"/etc
  33. rm -rf "${DEST}"/Makefile
  34. rm -rf "${DEST}"/README
  35. # Bump affected resources versions.
  36. RESOURCE_TYPES_H=src/resource/types.h
  37. sed -Ei 's/(.*RESOURCE_VERSION_SCRIPT)(.*RESOURCE_VERSION\()([0-9]+)(.*)/echo "\1\2$((\3 + 1))\4"/ge' src/resource/types.h
  38. # Add changes and commit.
  39. git add -f "${DEST}"
  40. git add "${RESOURCE_TYPES_H}"
  41. git commit -m "3rdparty: update luajit"
  42. }
  43. update_bx () {
  44. local DEST=3rdparty/bx
  45. local REPO=https://github.com/bkaradzic/bx
  46. local BRANCH=master
  47. local COMMIT=ae17a19ca2198ecd028c09568037dcd59fb93ae7 # Avoid mandatory C++17.
  48. # Download latest bx.
  49. rm -rf "${DEST}"
  50. git_clone "${DEST}" "${REPO}" "${BRANCH}" "${COMMIT}"
  51. # Cleanup bx.
  52. rm -rf "${DEST}"/.appveyor.yml
  53. rm -rf "${DEST}"/.editorconfig
  54. rm -rf "${DEST}"/.gitattributes
  55. rm -rf "${DEST}"/.gitignore
  56. rm -rf "${DEST}"/.travis.yml
  57. rm -rf "${DEST}"/3rdparty/catch
  58. rm -rf "${DEST}"/makefile
  59. rm -rf "${DEST}"/README.md
  60. rm -rf "${DEST}"/scripts/bin2c.lua
  61. rm -rf "${DEST}"/scripts/lemon.lua
  62. rm -rf "${DEST}"/tests
  63. rm -rf "${DEST}"/tools
  64. # Ensure BX_CONFIG_DEBUG is set in development builds.
  65. sed -i 's/{ "Release" }$/{ "Release or development" }/' "${DEST}"/scripts/bx.lua
  66. sed -i 's/{ "Release" }$/{ "Release or development" }/' "${DEST}"/scripts/bx.lua
  67. git add -f "${DEST}"
  68. }
  69. update_bimg () {
  70. local DEST=3rdparty/bimg
  71. local REPO=https://github.com/bkaradzic/bimg
  72. local BRANCH=master
  73. local COMMIT=5d61905eb1aa8074ee62553b4a7bd2dc16f4cf24 # Avoid mandatory C++17.
  74. # Download latest bimg.
  75. rm -rf "${DEST}"
  76. git_clone "${DEST}" "${REPO}" "${BRANCH}" "${COMMIT}"
  77. # Cleanup bimg.
  78. rm -rf "${DEST}"/.appveyor.yml
  79. rm -rf "${DEST}"/.editorconfig
  80. rm -rf "${DEST}"/.gitattributes
  81. rm -rf "${DEST}"/.gitignore
  82. rm -rf "${DEST}"/.travis.yml
  83. rm -rf "${DEST}"/makefile
  84. rm -rf "${DEST}"/README.md
  85. git add -f "${DEST}"
  86. }
  87. update_bgfx () {
  88. local DEST=3rdparty/bgfx
  89. local REPO=https://github.com/bkaradzic/bgfx
  90. local BRANCH=master
  91. local COMMIT=c3dab115a86d41f0dedbc97b86560e2e85f22c47 # Avoid mandatory C++17.
  92. # Update bgfx's dependencies.
  93. update_bx
  94. update_bimg
  95. # Download latest bgfx.
  96. rm -rf "${DEST}"
  97. git_clone "${DEST}" "${REPO}" "${BRANCH}" "${COMMIT}"
  98. # Regenerate samples/core/shaders/common.shader.
  99. COMMON_SHADER=samples/core/shaders/common.shader
  100. rm "${COMMON_SHADER}"
  101. {
  102. echo "sampler_states = {"
  103. echo " clamp_point = {"
  104. echo " wrap_u = \"clamp\""
  105. echo " wrap_v = \"clamp\""
  106. echo " wrap_w = \"clamp\""
  107. echo " filter_min = \"point\""
  108. echo " filter_mag = \"point\""
  109. echo " }"
  110. echo ""
  111. echo " clamp_anisotropic = {"
  112. echo " wrap_u = \"clamp\""
  113. echo " wrap_v = \"clamp\""
  114. echo " wrap_w = \"clamp\""
  115. echo " filter_min = \"anisotropic\""
  116. echo " filter_mag = \"anisotropic\""
  117. echo " }"
  118. echo ""
  119. echo " mirror_point = {"
  120. echo " wrap_u = \"mirror\""
  121. echo " wrap_v = \"mirror\""
  122. echo " wrap_w = \"mirror\""
  123. echo " filter_min = \"point\""
  124. echo " filter_mag = \"point\""
  125. echo " }"
  126. echo ""
  127. echo " mirror_anisotropic = {"
  128. echo " wrap_u = \"mirror\""
  129. echo " wrap_v = \"mirror\""
  130. echo " wrap_w = \"mirror\""
  131. echo " filter_min = \"anisotropic\""
  132. echo " filter_mag = \"anisotropic\""
  133. echo " }"
  134. echo "}"
  135. echo ""
  136. echo "bgfx_shaders = {"
  137. echo " common = {"
  138. echo " code = \"\"\""
  139. sed 's/^/\t\t\t/' "${DEST}"/src/bgfx_shader.sh "${DEST}"/examples/common/shaderlib.sh
  140. echo " \"\"\""
  141. echo " }"
  142. echo "}"
  143. } >> "${COMMON_SHADER}"
  144. # Remove trailing tabs.
  145. sed -i 's/\t*$//' "${COMMON_SHADER}"
  146. # Cleanup bgfx.
  147. rm -rf "${DEST}"/.appveyor.yml
  148. rm -rf "${DEST}"/.editorconfig
  149. rm -rf "${DEST}"/.gitattributes
  150. rm -rf "${DEST}"/.github
  151. rm -rf "${DEST}"/.gitignore
  152. rm -rf "${DEST}"/.travis.yml
  153. rm -rf "${DEST}"/3rdparty/.editorconfig
  154. rm -rf "${DEST}"/3rdparty/cgltf
  155. rm -rf "${DEST}"/3rdparty/dear-imgui
  156. rm -rf "${DEST}"/3rdparty/freetype
  157. rm -rf "${DEST}"/3rdparty/glslang/build
  158. rm -rf "${DEST}"/3rdparty/glslang/build_info.py
  159. rm -rf "${DEST}"/3rdparty/glslang/license-checker.cfg
  160. rm -rf "${DEST}"/3rdparty/iconfontheaders
  161. rm -rf "${DEST}"/3rdparty/meshoptimizer
  162. rm -rf "${DEST}"/3rdparty/sdf
  163. rm -rf "${DEST}"/3rdparty/stb
  164. rm -rf "${DEST}"/bindings
  165. rm -rf "${DEST}"/CODEOWNERS
  166. rm -rf "${DEST}"/CONTRIBUTING.md
  167. rm -rf "${DEST}"/examples
  168. rm -rf "${DEST}"/makefile
  169. rm -rf "${DEST}"/README.md
  170. rm -rf "${DEST}"/scripts/bgfx-codegen.lua
  171. rm -rf "${DEST}"/scripts/bgfx.doxygen
  172. rm -rf "${DEST}"/scripts/bgfx.idl
  173. rm -rf "${DEST}"/scripts/bindings-*.lua
  174. rm -rf "${DEST}"/scripts/build.ninja
  175. rm -rf "${DEST}"/scripts/codegen.lua
  176. rm -rf "${DEST}"/scripts/doxygen.lua
  177. rm -rf "${DEST}"/scripts/geometryc.lua
  178. rm -rf "${DEST}"/scripts/geometryv.lua
  179. rm -rf "${DEST}"/scripts/idl.lua
  180. rm -rf "${DEST}"/scripts/shader-embeded.mk
  181. rm -rf "${DEST}"/scripts/shader.mk
  182. rm -rf "${DEST}"/scripts/temp.bgfx.h
  183. rm -rf "${DEST}"/scripts/temp.bgfx.idl.inl
  184. rm -rf "${DEST}"/scripts/temp.defines.h
  185. rm -rf "${DEST}"/scripts/texturev.lua
  186. rm -rf "${DEST}"/scripts/tools.mk
  187. rm -rf "${DEST}"/src/bgfx_compute.sh
  188. rm -rf "${DEST}"/src/bgfx_shader.sh
  189. rm -rf "${DEST}"/src/fs_clear0.sc
  190. rm -rf "${DEST}"/src/fs_clear1.sc
  191. rm -rf "${DEST}"/src/fs_clear2.sc
  192. rm -rf "${DEST}"/src/fs_clear3.sc
  193. rm -rf "${DEST}"/src/fs_clear4.sc
  194. rm -rf "${DEST}"/src/fs_clear5.sc
  195. rm -rf "${DEST}"/src/fs_clear6.sc
  196. rm -rf "${DEST}"/src/fs_clear7.sc
  197. rm -rf "${DEST}"/src/fs_debugfont.sc
  198. rm -rf "${DEST}"/src/makefile
  199. rm -rf "${DEST}"/src/varying.def.sc
  200. rm -rf "${DEST}"/src/vs_clear.sc
  201. rm -rf "${DEST}"/src/vs_debugfont.sc
  202. rm -rf "${DEST}"/tools/geometryc
  203. rm -rf "${DEST}"/tools/geometryv
  204. rm -rf "${DEST}"/tools/texturev
  205. rm -rf "${DEST}"/tools/bin
  206. rm -rf "${DEST}"/docs
  207. sed -i '/dofile \"texturev.lua\"/d' "${DEST}"/scripts/genie.lua
  208. sed -i '/dofile \"geometryc.lua\"/d' "${DEST}"/scripts/genie.lua
  209. sed -i '/dofile \"geometryv.lua\"/d' "${DEST}"/scripts/genie.lua
  210. # Bump affected resources versions.
  211. RESOURCE_TYPES_H=src/resource/types.h
  212. sed -Ei 's/(.*RESOURCE_VERSION_TEXTURE)(.*RESOURCE_VERSION\()([0-9]+)(.*)/echo "\1\2$((\3 + 1))\4"/ge' src/resource/types.h
  213. sed -Ei 's/(.*RESOURCE_VERSION_SHADER)(.*RESOURCE_VERSION\()([0-9]+)(.*)/echo "\1\2$((\3 + 1))\4"/ge' src/resource/types.h
  214. # Add changes and commit.
  215. git add -f "${DEST}"
  216. git add "${COMMON_SHADER}"
  217. git add "${RESOURCE_TYPES_H}"
  218. git commit -m "3rdparty: update bx, bimg and bgfx"
  219. }
  220. update_bullet () {
  221. local DEST=3rdparty/bullet3
  222. local REPO=https://github.com/bulletphysics/bullet3
  223. local BRANCH=master
  224. # Download latest bullet3.
  225. rm -rf "${DEST}"
  226. git_clone "${DEST}" "${REPO}" "${BRANCH}"
  227. # Cleanup.
  228. rm -rf "${DEST}"/.ci
  229. rm -rf "${DEST}"/.github
  230. rm -rf "${DEST}"/.gitignore
  231. rm -rf "${DEST}"/.style.yapf
  232. rm -rf "${DEST}"/.travis.yml
  233. rm -rf "${DEST}"/_clang-format
  234. rm -rf "${DEST}"/appveyor.yml
  235. rm -rf "${DEST}"/AUTHORS.txt
  236. rm -rf "${DEST}"/build3
  237. rm -rf "${DEST}"/build_cmake_pybullet_double.sh
  238. rm -rf "${DEST}"/build_visual_studio_vr_pybullet_double.bat
  239. rm -rf "${DEST}"/build_visual_studio_vr_pybullet_double_cmake.bat
  240. rm -rf "${DEST}"/build_visual_studio_vr_pybullet_double_dynamic.bat
  241. rm -rf "${DEST}"/build_visual_studio_without_pybullet_vr.bat
  242. rm -rf "${DEST}"/bullet.pc.cmake
  243. rm -rf "${DEST}"/BulletConfig.cmake.in
  244. rm -rf "${DEST}"/clang-format-all.sh
  245. rm -rf "${DEST}"/CMakeLists.txt
  246. rm -rf "${DEST}"/data
  247. rm -rf "${DEST}"/docs
  248. rm -rf "${DEST}"/Doxyfile
  249. rm -rf "${DEST}"/examples
  250. rm -rf "${DEST}"/Extras
  251. rm -rf "${DEST}"/MANIFEST.in
  252. rm -rf "${DEST}"/README.md
  253. rm -rf "${DEST}"/setup.py
  254. rm -rf "${DEST}"/src/*.cpp
  255. rm -rf "${DEST}"/src/*.h
  256. rm -rf "${DEST}"/src/.DS_Store
  257. rm -rf "${DEST}"/src/Bullet3Collision/
  258. rm -rf "${DEST}"/src/Bullet3Common
  259. rm -rf "${DEST}"/src/Bullet3Dynamics
  260. rm -rf "${DEST}"/src/Bullet3Geometry
  261. rm -rf "${DEST}"/src/Bullet3OpenCL
  262. rm -rf "${DEST}"/src/Bullet3Serialize
  263. rm -rf "${DEST}"/src/BulletCollision/CollisionDispatch/btCollisionWorldImporter.cpp
  264. rm -rf "${DEST}"/src/BulletCollision/Gimpact
  265. rm -rf "${DEST}"/src/BulletInverseDynamics
  266. rm -rf "${DEST}"/src/clew
  267. rm -rf "${DEST}"/test
  268. rm -rf "${DEST}"/UseBullet.cmake
  269. rm -rf "${DEST}"/VERSION
  270. rm -rf "${DEST}"/xcode.command
  271. find "${DEST}" -type f -name 'CMakeLists.txt' -exec rm {} +
  272. find "${DEST}" -type f -name 'premake4.lua' -exec rm {} +
  273. # Add changes and commit.
  274. git add -f "${DEST}"
  275. git commit -m "3rdparty: update bullet3"
  276. }
  277. update_openal () {
  278. local DEST=3rdparty/openal
  279. local REPO=https://github.com/kcat/openal-soft
  280. local BRANCH=master
  281. # Backup generated headers.
  282. cp "${DEST}"/config.h /tmp/config.h
  283. cp "${DEST}"/version.h /tmp/version.h
  284. cp "${DEST}"/bsinc_inc.h /tmp/bsinc_inc.h
  285. # Download latest sources.
  286. rm -rf "${DEST}"
  287. git_clone "${DEST}" "${REPO}" "${BRANCH}"
  288. # Cleanup.
  289. rm -rf "${DEST}"/.gitignore
  290. rm -rf "${DEST}"/.travis.yml
  291. rm -rf "${DEST}"/CMakeLists.txt
  292. rm -rf "${DEST}"/README.md
  293. rm -rf "${DEST}"/XCompile-Android.txt
  294. rm -rf "${DEST}"/XCompile.txt
  295. rm -rf "${DEST}"/alsoftrc.sample
  296. rm -rf "${DEST}"/appveyor.yml
  297. rm -rf "${DEST}"/build/.empty
  298. rm -rf "${DEST}"/cmake/FindALSA.cmake
  299. rm -rf "${DEST}"/cmake/FindAudioIO.cmake
  300. rm -rf "${DEST}"/cmake/FindDSound.cmake
  301. rm -rf "${DEST}"/cmake/FindFFmpeg.cmake
  302. rm -rf "${DEST}"/cmake/FindJACK.cmake
  303. rm -rf "${DEST}"/cmake/FindMySOFA.cmake
  304. rm -rf "${DEST}"/cmake/FindOSS.cmake
  305. rm -rf "${DEST}"/cmake/FindOpenSL.cmake
  306. rm -rf "${DEST}"/cmake/FindPortAudio.cmake
  307. rm -rf "${DEST}"/cmake/FindPulseAudio.cmake
  308. rm -rf "${DEST}"/cmake/FindQSA.cmake
  309. rm -rf "${DEST}"/cmake/FindSDL2.cmake
  310. rm -rf "${DEST}"/cmake/FindSDL_sound.cmake
  311. rm -rf "${DEST}"/cmake/FindSoundIO.cmake
  312. rm -rf "${DEST}"/cmake/FindWindowsSDK.cmake
  313. rm -rf "${DEST}"/config.h.in
  314. rm -rf "${DEST}"/docs/3D7.1.txt
  315. rm -rf "${DEST}"/docs/ambdec.txt
  316. rm -rf "${DEST}"/docs/ambisonics.txt
  317. rm -rf "${DEST}"/docs/env-vars.txt
  318. rm -rf "${DEST}"/docs/hrtf.txt
  319. rm -rf "${DEST}"/examples/alffplay.cpp
  320. rm -rf "${DEST}"/examples/alhrtf.c
  321. rm -rf "${DEST}"/examples/allatency.c
  322. rm -rf "${DEST}"/examples/alloopback.c
  323. rm -rf "${DEST}"/examples/almultireverb.c
  324. rm -rf "${DEST}"/examples/alplay.c
  325. rm -rf "${DEST}"/examples/alrecord.c
  326. rm -rf "${DEST}"/examples/alreverb.c
  327. rm -rf "${DEST}"/examples/alstream.c
  328. rm -rf "${DEST}"/examples/altonegen.c
  329. rm -rf "${DEST}"/examples/common/alhelpers.c
  330. rm -rf "${DEST}"/examples/common/alhelpers.h
  331. rm -rf "${DEST}"/native-tools/CMakeLists.txt
  332. rm -rf "${DEST}"/native-tools/bin2h.c
  333. rm -rf "${DEST}"/native-tools/bsincgen.c
  334. rm -rf "${DEST}"/openal.pc.in
  335. rm -rf "${DEST}"/resources/openal32.rc
  336. rm -rf "${DEST}"/resources/resource.h
  337. rm -rf "${DEST}"/resources/router.rc
  338. rm -rf "${DEST}"/resources/soft_oal.rc
  339. rm -rf "${DEST}"/router/al.cpp
  340. rm -rf "${DEST}"/router/alc.cpp
  341. rm -rf "${DEST}"/router/router.cpp
  342. rm -rf "${DEST}"/router/router.h
  343. rm -rf "${DEST}"/utils/CIAIR.def
  344. rm -rf "${DEST}"/utils/IRC_1005.def
  345. rm -rf "${DEST}"/utils/MIT_KEMAR.def
  346. rm -rf "${DEST}"/utils/MIT_KEMAR_sofa.def
  347. rm -rf "${DEST}"/utils/SCUT_KEMAR.def
  348. rm -rf "${DEST}"/utils/alsoft-config/CMakeLists.txt
  349. rm -rf "${DEST}"/utils/alsoft-config/main.cpp
  350. rm -rf "${DEST}"/utils/alsoft-config/mainwindow.cpp
  351. rm -rf "${DEST}"/utils/alsoft-config/mainwindow.h
  352. rm -rf "${DEST}"/utils/alsoft-config/mainwindow.ui
  353. rm -rf "${DEST}"/utils/alsoft-config/verstr.cpp
  354. rm -rf "${DEST}"/utils/alsoft-config/verstr.h
  355. rm -rf "${DEST}"/utils/getopt.c
  356. rm -rf "${DEST}"/utils/getopt.h
  357. rm -rf "${DEST}"/utils/makemhr/loaddef.cpp
  358. rm -rf "${DEST}"/utils/makemhr/loaddef.h
  359. rm -rf "${DEST}"/utils/makemhr/loadsofa.cpp
  360. rm -rf "${DEST}"/utils/makemhr/loadsofa.h
  361. rm -rf "${DEST}"/utils/makemhr/makemhr.cpp
  362. rm -rf "${DEST}"/utils/makemhr/makemhr.h
  363. rm -rf "${DEST}"/utils/openal-info.c
  364. rm -rf "${DEST}"/utils/sofa-info.cpp
  365. rm -rf "${DEST}"/version.cmake
  366. rm -rf "${DEST}"/version.h.in
  367. rm -rf "${DEST}"/.github
  368. # Restore generated sources.
  369. cp /tmp/config.h "${DEST}"/config.h
  370. cp /tmp/version.h "${DEST}"/version.h
  371. cp /tmp/bsinc_inc.h "${DEST}"/bsinc_inc.h
  372. # Add changes and commit.
  373. git add -f "${DEST}"
  374. git commit -m "3rdparty: update openal"
  375. echo ""
  376. echo "!!! Remember to update ALSOFT_VERSION !!!"
  377. }
  378. update_sphinx_rtd_theme () {
  379. local REPO=https://github.com/readthedocs/sphinx_rtd_theme
  380. local DEST=docs/_themes/sphinx_rtd_theme
  381. local BRANCH=master
  382. local RTD_THEME=$(mktemp -d)
  383. # Download latest sphinx_rtd_theme.
  384. git_clone "${RTD_THEME}" "${REPO}" "${BRANCH}"
  385. rm -rf "${DEST}"
  386. mv "${RTD_THEME}"/sphinx_rtd_theme "${DEST}"
  387. # Add changes and commit.
  388. git add -f "${DEST}"
  389. git commit -m "docs: update sphinx_rtd_theme"
  390. }
  391. update_gtk_theme () {
  392. local REPO=https://gitlab.gnome.org/GNOME/gtk.git
  393. local DEST=tools/level_editor/resources/theme/Adwaita
  394. local BRANCH=gtk-3-24
  395. local GTK_THEME=$(mktemp -d)
  396. # Download latest sphinx_rtd_theme.
  397. git_clone "${GTK_THEME}" "${REPO}" "${BRANCH}"
  398. rm -rf "${DEST}"
  399. mv "${GTK_THEME}"/gtk/theme/Adwaita "${DEST}"
  400. sed -i 's/resource:\/\/\/org\/gtk\/libgtk\/theme\/Adwaita\/gtk-contained.css/resource:\/\/\/org\/crown\/level_editor\/theme\/Adwaita\/gtk-contained.css/' "${DEST}"/gtk.css
  401. sed -i 's/resource:\/\/\/org\/gtk\/libgtk\/theme\/Adwaita\/gtk-contained-dark.css/resource:\/\/\/org\/crown\/level_editor\/theme\/Adwaita\/gtk-contained-dark.css/' "${DEST}"/gtk-dark.css
  402. # Add changes and commit.
  403. git add -f "${DEST}"
  404. git commit -m "tools: update GTK theme"
  405. }
  406. update_tinyexpr () {
  407. # Download latest tinyexpr.
  408. local REPO=https://github.com/codeplea/tinyexpr
  409. local DEST=3rdparty/tinyexpr
  410. local BRANCH=master
  411. rm -rf "${DEST}"
  412. git_clone "${DEST}" "${REPO}" "${BRANCH}"
  413. # Cleanup.
  414. rm -r "${DEST}"/doc
  415. rm "${DEST}"/benchmark.c
  416. rm "${DEST}"/CONTRIBUTING
  417. rm "${DEST}"/example2.c
  418. rm "${DEST}"/example3.c
  419. rm "${DEST}"/example.c
  420. rm "${DEST}"/Makefile
  421. rm "${DEST}"/minctest.h
  422. rm "${DEST}"/README.md
  423. rm "${DEST}"/repl.c
  424. rm "${DEST}"/smoke.c
  425. rm "${DEST}"/.travis.yml
  426. # Add changes and commit.
  427. git add -f "${DEST}"
  428. git commit -m "3rdparty: update tinyexpr"
  429. }
  430. update_ufbx () {
  431. # Download latest tinyexpr.
  432. local REPO=https://github.com/ufbx/ufbx
  433. local DEST=3rdparty/ufbx
  434. local BRANCH=v0.15.0
  435. rm -rf "${DEST}"
  436. git_clone "${DEST}" "${REPO}" "${BRANCH}"
  437. # Cleanup.
  438. rm -r "${DEST}"/.git
  439. rm -r "${DEST}"/.github
  440. rm -r "${DEST}"/bindgen
  441. rm -r "${DEST}"/data
  442. rm -r "${DEST}"/examples
  443. rm -r "${DEST}"/extra
  444. rm -r "${DEST}"/misc
  445. rm -r "${DEST}"/test
  446. rm "${DEST}"/.gitattributes
  447. rm "${DEST}"/.gitignore
  448. rm "${DEST}"/README.md
  449. # Add changes and commit.
  450. git add -f "${DEST}"
  451. git commit -m "3rdparty: update ufbx"
  452. }
  453. print_help () {
  454. echo "Usage: scripts/upgrade.sh <dependency-name>"
  455. }
  456. while true; do
  457. case "$1" in
  458. luajit)
  459. update_luajit
  460. exit $?
  461. ;;
  462. bgfx)
  463. update_bgfx
  464. exit $?
  465. ;;
  466. bullet)
  467. update_bullet
  468. exit $?
  469. ;;
  470. openal)
  471. update_openal
  472. exit $?
  473. ;;
  474. sphinx_rtd_theme)
  475. update_sphinx_rtd_theme
  476. exit $?
  477. ;;
  478. tinyexpr)
  479. update_tinyexpr
  480. exit $?
  481. ;;
  482. gtk_theme)
  483. update_gtk_theme
  484. exit $?
  485. ;;
  486. ufbx)
  487. update_ufbx
  488. exit $?
  489. ;;
  490. *)
  491. echo "Unknown option or target \`$1\`"
  492. print_help
  493. exit 1
  494. ;;
  495. esac
  496. done