test_common.sh 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. prepare() {
  2. if [ ! -d "ext/fips-cimgui" ] ; then
  3. git clone --depth 1 --recursive https://github.com/fips-libs/fips-cimgui ext/fips-cimgui
  4. fi
  5. }
  6. setup_emsdk() {
  7. if [ ! -d "build/emsdk" ] ; then
  8. mkdir -p build && cd build
  9. git clone https://github.com/emscripten-core/emsdk.git
  10. cd emsdk
  11. ./emsdk install latest
  12. ./emsdk activate latest
  13. cd ../..
  14. fi
  15. source build/emsdk/emsdk_env.sh
  16. }
  17. setup_android() {
  18. if [ ! -d "build/android_sdk" ] ; then
  19. mkdir -p build/android_sdk && cd build/android_sdk
  20. sdk_file="sdk-tools-linux-3859397.zip"
  21. wget --no-verbose https://dl.google.com/android/repository/$sdk_file
  22. unzip -q $sdk_file
  23. cd tools/bin
  24. yes | ./sdkmanager "platforms;android-28" >/dev/null
  25. yes | ./sdkmanager "build-tools;29.0.3" >/dev/null
  26. yes | ./sdkmanager "platform-tools" >/dev/null
  27. yes | ./sdkmanager "ndk-bundle" >/dev/null
  28. cd ../../../..
  29. fi
  30. }
  31. build() {
  32. cfg=$1
  33. backend=$2
  34. mode=$3
  35. mkdir -p build/$cfg && cd build/$cfg
  36. cmake -GNinja -DSOKOL_BACKEND=$backend -DCMAKE_BUILD_TYPE=$mode ../..
  37. cmake --build .
  38. cd ../..
  39. }
  40. analyze() {
  41. cfg=$1
  42. backend=$2
  43. mode=$3
  44. mkdir -p build/$cfg && cd build/$cfg
  45. cmake -GNinja -DSOKOL_BACKEND=$backend -DCMAKE_BUILD_TYPE=$mode -DUSE_ANALYZER=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../..
  46. cmake --build .
  47. cd ../..
  48. }
  49. build_arc() {
  50. cfg=$1
  51. backend=$2
  52. mode=$3
  53. mkdir -p build/$cfg && cd build/$cfg
  54. cmake -GNinja -DSOKOL_BACKEND=$backend -DUSE_ARC:BOOL=ON -DCMAKE_BUILD_TYPE=$mode ../..
  55. cmake --build .
  56. cd ../..
  57. }
  58. analyze_arc() {
  59. cfg=$1
  60. backend=$2
  61. mode=$3
  62. mkdir -p build/$cfg && cd build/$cfg
  63. cmake -GNinja -DSOKOL_BACKEND=$backend -DUSE_ARC:BOOL=ON -DCMAKE_BUILD_TYPE=$mode -DUSE_ANALYZER=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../..
  64. cmake --build .
  65. cd ../..
  66. }
  67. build_ios() {
  68. cfg=$1
  69. backend=$2
  70. mode=$3
  71. mkdir -p build/$cfg && cd build/$cfg
  72. cmake -GXcode -DSOKOL_BACKEND=$backend -DCMAKE_SYSTEM_NAME=iOS ../..
  73. cmake --build . --config $mode -- CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
  74. cd ../..
  75. }
  76. build_arc_ios() {
  77. cfg=$1
  78. backend=$2
  79. mode=$3
  80. mkdir -p build/$cfg && cd build/$cfg
  81. cmake -GXcode -DSOKOL_BACKEND=$backend -DUSE_ARC:BOOL=ON -DCMAKE_SYSTEM_NAME=iOS ../..
  82. cmake --build . --config $mode -- CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
  83. cd ../..
  84. }
  85. build_emsc() {
  86. cfg=$1
  87. backend=$2
  88. mode=$3
  89. mkdir -p build/$cfg && cd build/$cfg
  90. emcmake cmake -GNinja -DSOKOL_BACKEND=$backend -DCMAKE_BUILD_TYPE=$mode ../..
  91. cmake --build .
  92. cd ../..
  93. }
  94. build_android() {
  95. cfg=$1
  96. backend=$2
  97. mode=$3
  98. mkdir -p build/$cfg && cd build/$cfg
  99. cmake -GNinja -DSOKOL_BACKEND=$backend -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-28 -DCMAKE_TOOLCHAIN_FILE=../android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=$mode ../..
  100. cmake --build .
  101. cd ../..
  102. }
  103. runtest() {
  104. cfg=$1
  105. cd build/$cfg
  106. ./sokol-test
  107. cd ../../..
  108. }