Cross-Platform build scripts for audio plugins
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
3.8KB

  1. #!/bin/bash
  2. SOURCING_FILES=1
  3. target="${1}"
  4. # ---------------------------------------------------------------------------------------------------------------------
  5. # find path to this script
  6. if [ -n "${BASH_SOURCE-}" ]; then
  7. CURRENT_SCRIPT="${BASH_SOURCE}"
  8. elif [ -n "${ZSH_VERSION-}" ]; then
  9. CURRENT_SCRIPT="${(%):-%x}"
  10. elif [ -n "${KSH_VERSION-}" ]; then
  11. CURRENT_SCRIPT=${.sh.file}
  12. else
  13. CURRENT_SCRIPT=""
  14. fi
  15. if [ -n "${CURRENT_SCRIPT-}" ]; then
  16. SCRIPT_DIR=$(dirname "${CURRENT_SCRIPT}")
  17. else
  18. SCRIPT_DIR="."
  19. fi
  20. # ---------------------------------------------------------------------------------------------------------------------
  21. # missing target
  22. if [ -z "${target}" ]; then
  23. echo "usage: source local.env <target>"
  24. # ---------------------------------------------------------------------------------------------------------------------
  25. # contains target
  26. elif [ -e "${SCRIPT_DIR}/setup/check_target.sh" ]; then
  27. source "${SCRIPT_DIR}/setup/check_target.sh"
  28. # ---------------------------------------------------------------------------------------------------------------------
  29. # export vars if valid target
  30. if [ "${INVALID_TARGET}" -eq 0 ]; then
  31. source "${SCRIPT_DIR}/setup/env.sh"
  32. export AR="${TARGET_AR}"
  33. export CC="${TARGET_CC}"
  34. export CXX="${TARGET_CXX}"
  35. export LD="${TARGET_LD}"
  36. export NM="${TARGET_NM}"
  37. export RANLIB="${TARGET_RANLIB}"
  38. export STRIP="${TARGET_STRIP}"
  39. export WINDRES="${TARGET_WINDRES}"
  40. export CFLAGS="${TARGET_CFLAGS} ${EXTRA_CFLAGS}"
  41. export CXXFLAGS="${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS}"
  42. export LDFLAGS="${TARGET_LDFLAGS} ${EXTRA_LDFLAGS}"
  43. export PKG_CONFIG="${PAWPAW_PREFIX}/bin/pkg-config"
  44. export PKG_CONFIG_PATH="${TARGET_PKG_CONFIG_PATH}"
  45. unset CPP
  46. unset CPPFLAGS
  47. export OLD_PATH="${PATH}"
  48. export PATH="${TARGET_PATH}"
  49. alias ar="${AR}"
  50. alias cc="${CC}"
  51. alias gcc="${CC}"
  52. alias g++="${CXX}"
  53. alias ld="${LD}"
  54. alias nm="${NM}"
  55. alias ranlib="${RANLIB}"
  56. alias strip="${STRIP}"
  57. if [ -e "${PAWPAW_PREFIX}/bin/python3${APP_EXT}" ]; then
  58. alias python="${EXE_WRAPPER} '${PAWPAW_PREFIX}/bin/python3${APP_EXT}'"
  59. alias python3="${EXE_WRAPPER} '${PAWPAW_PREFIX}/bin/python3${APP_EXT}'"
  60. fi
  61. if [ "${WASM}" -eq 1 ]; then
  62. CMAKE="emcmake cmake"
  63. elif [ "${CROSS_COMPILING}" -eq 1 ]; then
  64. CMAKE_AR=$(which ${TARGET_AR})
  65. CMAKE_RANLIB=$(which ${TARGET_RANLIB})
  66. CMAKE="cmake \
  67. -DCMAKE_CROSSCOMPILING=ON \
  68. -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} \
  69. -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR} \
  70. -DCMAKE_AR=${CMAKE_AR} \
  71. -DCMAKE_C_COMPILER_AR=${CMAKE_AR} \
  72. -DCMAKE_CXX_COMPILER_AR=${CMAKE_AR} \
  73. -DCMAKE_RANLIB=${CMAKE_RANLIB} \
  74. -DCMAKE_C_COMPILER_RANLIB=${CMAKE_RANLIB} \
  75. -DCMAKE_CXX_COMPILER_RANLIB=${CMAKE_RANLIB}"
  76. if [ -n "${EXE_WRAPPER}" ]; then
  77. CMAKE="${CMAKE} -DCMAKE_CROSSCOMPILING_EMULATOR=${EXE_WRAPPER}"
  78. fi
  79. else
  80. CMAKE="cmake"
  81. fi
  82. if [ "${MACOS_UNIVERSAL_10_15}" -eq 1 ]; then
  83. CMAKE="${CMAKE} -DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_OSX_SYSROOT=macosx"
  84. elif [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
  85. CMAKE="${CMAKE} -DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DCMAKE_OSX_SYSROOT=macosx"
  86. elif [ "${MACOS}" -eq 1 ]; then
  87. CMAKE="${CMAKE} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 -DCMAKE_OSX_SYSROOT=macosx"
  88. elif [ "${WIN32}" -eq 1 ]; then
  89. CMAKE="${CMAKE} -DCMAKE_RC_COMPILER=${WINDRES}"
  90. fi
  91. alias cmake="$CMAKE"
  92. if [ -z "${PAWPAW_QUIET}" ]; then
  93. echo "Success! Environment is now ready to build stuff"
  94. fi
  95. fi
  96. # ---------------------------------------------------------------------------------------------------------------------
  97. # end target check
  98. else
  99. echo "Please source this file from within the PawPaw root directory"
  100. fi
  101. # ---------------------------------------------------------------------------------------------------------------------
  102. unset CURRENT_SCRIPT
  103. unset SCRIPT_DIR