diff --git a/CMakeLists.txt b/CMakeLists.txt index 37f16a0049..740de8d1c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -218,38 +218,88 @@ set(DEPS_VERSION 11) option(USE_EXTERNAL_DEPS "Download or reuse dependencies from EXTERNAL_DEPS_DIR (mandatory for building and running NaCl .nexe binaries)." ON) +macro(set_deps_dir) + set(DEPS_DIR ${EXTERNAL_DEPS_DIR}/${DEPS_SYSTEM}-${DEPS_ARCH}-${DEPS_COMPILER}_${DEPS_VERSION}) +endmacro() + +set(DEFAULT_USE_EXTERNAL_DEPS_LIBS ON) + if (USE_EXTERNAL_DEPS AND NOT NACL) set(EXTERNAL_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external_deps" CACHE STRING "Directory in which to store the downloaded dependencies.") set(DEPS_EXT ".tar.xz") + set(DEPS_ARCH "${ARCH}") + + if (MSVC) + set(DEPS_COMPILER msvc) + elseif (WIN32) + set(DEPS_COMPILER mingw) + else() + set(DEPS_COMPILER default) + endif() + if (WIN32) set(DEPS_SYSTEM windows) set(SUPPORTED_${DEPS_SYSTEM}_ARCH amd64 i686) elseif (APPLE) set(DEPS_SYSTEM macos) set(SUPPORTED_${DEPS_SYSTEM}_ARCH amd64) - elseif (LINUX OR FREEBSD) + + if (ARCH STREQUAL arm64) + set(DEPS_ARCH amd64) + + set_deps_dir() + + if (NOT EXISTS ${DEPS_DIR}) + set(DEFAULT_USE_EXTERNAL_DEPS_LIBS OFF) + endif() + endif() + elseif (LINUX) set(DEPS_SYSTEM linux) set(SUPPORTED_${DEPS_SYSTEM}_ARCH amd64 i686 arm64 armhf) - endif() + elseif (FREEBSD) + set(DEPS_SYSTEM freebsd) + set(SUPPORTED_${DEPS_SYSTEM}_ARCH amd64 i686) - if (MSVC) - set(DEPS_COMPILER msvc) - elseif (WIN32) - set(DEPS_COMPILER mingw) - else() - set(DEPS_COMPILER default) + set_deps_dir() + + if (NOT EXISTS ${DEPS_DIR}) + set(DEFAULT_USE_EXTERNAL_DEPS_LIBS OFF) + set(DEPS_SYSTEM linux) + endif() endif() - if (DEPS_SYSTEM AND ARCH IN_LIST SUPPORTED_${DEPS_SYSTEM}_ARCH) - set(DEPS_DIR ${EXTERNAL_DEPS_DIR}/${DEPS_SYSTEM}-${ARCH}-${DEPS_COMPILER}_${DEPS_VERSION}) + set_deps_dir() + + if (DEPS_SYSTEM AND DEPS_ARCH IN_LIST SUPPORTED_${DEPS_SYSTEM}_ARCH) + set(HAS_NACL ON) if (DAEMON_PARENT_SCOPE_DIR) set(DEPS_DIR ${DEPS_DIR} PARENT_SCOPE) endif() else() - message(WARNING "No dependencies are provided for this system, Native Client is likely unsupported.") + message(WARNING "No prebuilt dependencies are available for this platform, Native Client is likely unsupported.") + + if (NOT EXISTS ${DEPS_DIR}) + unset(DEPS_DIR) + endif() + endif() +endif() + +option(USE_EXTERNAL_DEPS_LIBS "Build and link against libraries from the EXTERNAL_DEPS_DIR" ${DEFAULT_USE_EXTERNAL_DEPS_LIBS}) + +if (USE_EXTERNAL_DEPS AND NOT NACL) + if (DEPS_DIR) + message(STATUS "Using external deps dir: ${DEPS_DIR}") + + if (USE_EXTERNAL_DEPS_LIBS) + message(STATUS "Building against libraries from external deps dir") + else() + message(STATUS "Not building against libraries from external deps dir") + endif() + else() + message(STATUS "Not using any external deps dir") endif() endif() @@ -499,17 +549,19 @@ if (DEPS_DIR) endif() endif() - # Add to paths - set(CMAKE_FIND_ROOT_PATH ${DEPS_DIR} ${CMAKE_FIND_ROOT_PATH}) - set(CMAKE_INCLUDE_PATH ${DEPS_DIR} ${DEPS_DIR}/include ${CMAKE_INCLUDE_PATH}) - set(CMAKE_FRAMEWORK_PATH ${DEPS_DIR}/lib ${CMAKE_FRAMEWORK_PATH}) - set(CMAKE_PREFIX_PATH ${DEPS_DIR} ${CMAKE_PREFIX_PATH}) - if (DAEMON_PARENT_SCOPE_DIR) - # Also set parent scope so the top level CMakeLists can find precompiled deps - set(CMAKE_FIND_ROOT_PATH ${DEPS_DIR} ${CMAKE_FIND_ROOT_PATH} PARENT_SCOPE) - set(CMAKE_INCLUDE_PATH ${DEPS_DIR} ${DEPS_DIR}/include ${CMAKE_INCLUDE_PATH} PARENT_SCOPE) - set(CMAKE_FRAMEWORK_PATH ${DEPS_DIR} ${CMAKE_FRAMEWORK_PATH} PARENT_SCOPE) - set(CMAKE_PREFIX_PATH ${DEPS_DIR} ${CMAKE_PREFIX_PATH} PARENT_SCOPE) + if (USE_EXTERNAL_DEPS_LIBS) + # Add to paths + set(CMAKE_FIND_ROOT_PATH ${DEPS_DIR} ${CMAKE_FIND_ROOT_PATH}) + set(CMAKE_INCLUDE_PATH ${DEPS_DIR} ${DEPS_DIR}/include ${CMAKE_INCLUDE_PATH}) + set(CMAKE_FRAMEWORK_PATH ${DEPS_DIR}/lib ${CMAKE_FRAMEWORK_PATH}) + set(CMAKE_PREFIX_PATH ${DEPS_DIR} ${CMAKE_PREFIX_PATH}) + if (DAEMON_PARENT_SCOPE_DIR) + # Also set parent scope so the top level CMakeLists can find precompiled deps + set(CMAKE_FIND_ROOT_PATH ${DEPS_DIR} ${CMAKE_FIND_ROOT_PATH} PARENT_SCOPE) + set(CMAKE_INCLUDE_PATH ${DEPS_DIR} ${DEPS_DIR}/include ${CMAKE_INCLUDE_PATH} PARENT_SCOPE) + set(CMAKE_FRAMEWORK_PATH ${DEPS_DIR} ${CMAKE_FRAMEWORK_PATH} PARENT_SCOPE) + set(CMAKE_PREFIX_PATH ${DEPS_DIR} ${CMAKE_PREFIX_PATH} PARENT_SCOPE) + endif() endif() endif() @@ -871,7 +923,7 @@ macro(AddApplicationInternal Target Executable) add_executable(${Target} ${Sources}) target_link_libraries(${Target} ${A_Target}-objects ${CPP23SupportLibrary}) - if (DEPS_DIR) + if (DEPS_DIR AND HAS_NACL) add_dependencies(${Target} runtime_deps) endif() @@ -1024,7 +1076,7 @@ endif() # Runtime dependencies ################################################################################ -if (DEPS_DIR AND (BUILD_CLIENT OR BUILD_TTY_CLIENT OR BUILD_SERVER OR BUILD_DUMMY_APP)) +if (DEPS_DIR AND HAS_NACL AND (BUILD_CLIENT OR BUILD_TTY_CLIENT OR BUILD_SERVER OR BUILD_DUMMY_APP)) add_custom_target(runtime_deps) set_target_properties(runtime_deps PROPERTIES FOLDER "CMakePlumbing") diff --git a/cmake/DaemonFlags.cmake b/cmake/DaemonFlags.cmake index 95a7e04c26..2b25f92bf2 100644 --- a/cmake/DaemonFlags.cmake +++ b/cmake/DaemonFlags.cmake @@ -632,6 +632,9 @@ elseif (NOT NACL) set(GCC_GENERIC_ARCH "armv6") # There is no generic tuning option for armv6. unset(GCC_GENERIC_TUNE) + elseif (ARCH STREQUAL "riscv64") + unset(GCC_GENERIC_ARCH) + unset(GCC_GENERIC_TUNE) else() message(WARNING "Unknown architecture ${ARCH}") endif() @@ -642,7 +645,9 @@ elseif (NOT NACL) option(USE_CPU_GENERIC_ARCHITECTURE "Enforce generic -march and -mtune compiler options" ON) if (USE_CPU_GENERIC_ARCHITECTURE) - try_c_cxx_flag_werror(MARCH "-march=${GCC_GENERIC_ARCH}") + if (GCC_GENERIC_ARCH) + try_c_cxx_flag_werror(MARCH "-march=${GCC_GENERIC_ARCH}") + endif() if (GCC_GENERIC_TUNE) try_c_cxx_flag_werror(MTUNE "-mtune=${GCC_GENERIC_TUNE}") diff --git a/external_deps/build.sh b/external_deps/build.sh index 7ecc965e2a..aa54d70975 100755 --- a/external_deps/build.sh +++ b/external_deps/build.sh @@ -84,6 +84,16 @@ CFLAGS='-O3 -fPIC' CXXFLAGS='-O3 -fPIC' LDFLAGS='-O3 -fPIC' +case "$(uname -s)" in + 'FreeBSD') + # The builtin make isn't compatible enough. + MAKE='gmake' + ;; + *) + MAKE='make' + ;; +esac + log() { level="${1}"; shift printf '%s: %s\n' "${level}" "${@}" >&2 @@ -202,8 +212,8 @@ configure_build() { --libdir="${PREFIX}/lib" \ "${configure_args[@]}" - make - make install + "${MAKE}" + "${MAKE}" install } get_compiler_name() { @@ -249,7 +259,7 @@ cmake_build() { cmake --install build --strip } -# Build pkg-config, needed for opusfile and SDL3. +# Build pkg-config, needed for opusfile. # As a host-mode dependency it must be provided by the system when cross-compiling. build_pkgconfig() { local dir_name="pkg-config-${PKGCONFIG_VERSION}" @@ -262,7 +272,12 @@ build_pkgconfig() { cd "${dir_name}" - CFLAGS="${CFLAGS} -Wno-error=int-conversion" \ + # Reset the environment variables, we don't cross-compile this, + # it is part of the cross-compilation toolchain. + # CXXFLAGS is unused. + CFLAGS='-Wno-error=int-conversion' \ + LDFLAGS='' \ + HOST='' \ configure_build \ --with-internal-glib } @@ -304,8 +319,8 @@ build_zlib() { case "${PLATFORM}" in windows-*-*) - LOC="${CFLAGS}" make -f win32/Makefile.gcc PREFIX="${HOST}-" - make -f win32/Makefile.gcc install BINARY_PATH="${PREFIX}/bin" LIBRARY_PATH="${PREFIX}/lib" INCLUDE_PATH="${PREFIX}/include" SHARED_MODE=1 + LOC="${CFLAGS}" "${MAKE}" -f win32/Makefile.gcc PREFIX="${HOST}-" + "${MAKE}" -f win32/Makefile.gcc install BINARY_PATH="${PREFIX}/bin" LIBRARY_PATH="${PREFIX}/lib" INCLUDE_PATH="${PREFIX}/include" SHARED_MODE=1 ;; *) CFLAGS="${CFLAGS} -DZLIB_CONST" \ @@ -519,6 +534,11 @@ build_glew() { glew_env+=(CFLAGS.EXTRA="${CFLAGS}") glew_options+=(LIBDIR="${PREFIX}/lib" LD="${CC}") ;; + freebsd-*-*) + glew_env+=(CFLAGS.EXTRA="${CFLAGS}") + sed -e 's/ -soname / -Wl,-soname=/' config/Makefile.freebsd > config/Makefile.freebsd-fix + glew_options+=(SYSTEM=freebsd-fix LD="${CC}") + ;; *) log ERROR 'Unsupported platform for GLEW' ;; @@ -532,12 +552,12 @@ build_glew() { # manually re-add the required flags there. case "${PLATFORM}" in macos-*-*) - make "${glew_env[@]}" "${glew_options[@]}" - make install "${glew_env[@]}" "${glew_options[@]}" + "${MAKE}" "${glew_env[@]}" "${glew_options[@]}" + "${MAKE}" install "${glew_env[@]}" "${glew_options[@]}" ;; *) - env "${glew_env[@]}" make "${glew_options[@]}" - env "${glew_env[@]}" make install "${glew_options[@]}" + env "${glew_env[@]}" "${MAKE}" "${glew_options[@]}" + env "${glew_env[@]}" "${MAKE}" install "${glew_options[@]}" ;; esac @@ -590,6 +610,9 @@ build_jpeg() { linux-*-*) local SYSTEM_NAME='Linux' ;; + freebsd-*-*) + local SYSTEM_NAME='FreeBSD' + ;; *) # Other platforms can build but we need to explicitly # set CMAKE_SYSTEM_NAME for CMAKE_CROSSCOMPILING to be set @@ -598,29 +621,42 @@ build_jpeg() { ;; esac - local jpeg_cmake_args=(-DREQUIRE_SIMD=ON) + local jpeg_cmake_args=() + + local SYSTEM_PROCESSOR='unknown' + local jpeg_require_simd='OFF' case "${PLATFORM}" in *-amd64-*) - local SYSTEM_PROCESSOR='x86_64' + SYSTEM_PROCESSOR='x86_64' + jpeg_require_simd='ON' # Ensure NASM is available nasm --help >/dev/null ;; *-i686-*) - local SYSTEM_PROCESSOR='i386' + SYSTEM_PROCESSOR='i386' + jpeg_require_simd='ON' # Ensure NASM is available nasm --help >/dev/null ;; *-arm64-*) - local SYSTEM_PROCESSOR='aarch64' + SYSTEM_PROCESSOR='aarch64' + jpeg_require_simd='ON' jpeg_cmake_args+=(-DNEON_INTRINSICS=ON) ;; *-armhf-*) - local SYSTEM_PROCESSOR='arm' + SYSTEM_PROCESSOR='arm' + jpeg_require_simd='ON' jpeg_cmake_args+=(-DNEON_INTRINSICS=ON) ;; + *-riscv64-*) + # There is no riscv64 code implemented in libjpeg yet, but we can build it without SIMD code. + # This string will only be used for warnings like that: + # > SIMD extensions not available for this CPU (riscv64). Performance will suffer. + SYSTEM_PROCESSOR='riscv64' + ;; *) - log ERROR 'Unsupported platform for JPEG' + log WARNING 'Unknown platform for JPEG' ;; esac @@ -645,6 +681,7 @@ build_jpeg() { -DENABLE_STATIC="${LIBS_STATIC}" \ -DCMAKE_SYSTEM_NAME="${SYSTEM_NAME}" \ -DCMAKE_SYSTEM_PROCESSOR="${SYSTEM_PROCESSOR}" \ + -DREQUIRE_SIMD=${jpeg_require_simd} \ -DWITH_JPEG8=1 \ -DWITH_TURBOJPEG=0 \ "${jpeg_cmake_args[@]}" @@ -765,6 +802,7 @@ build_openal() { cd "${dir_name}" cmake_build \ + -DALSOFT_UTILS=OFF \ "${openal_cmake_args[@]}" ;; esac @@ -913,6 +951,9 @@ build_wasisdk() { linux-*-*) local WASISDK_PLATFORM=linux ;; + *) + log ERROR "wasi doesn't have release for ${PLATFORM}" + ;; esac case "${PLATFORM}" in *-amd64-*) @@ -949,6 +990,9 @@ build_wasmtime() { local WASMTIME_PLATFORM=linux local ARCHIVE_EXT=tar.xz ;; + *) + log ERROR "wasmtime doesn't have release for ${PLATFORM}" + ;; esac case "${PLATFORM}" in *-amd64-*) @@ -988,7 +1032,7 @@ build_naclsdk() { local EXE= local TAR_EXT=tar ;; - linux-*-*) + linux-*-*|freebsd-*-*) local NACLSDK_PLATFORM=linux local EXE= local TAR_EXT=tar @@ -999,7 +1043,7 @@ build_naclsdk() { local NACLSDK_ARCH=x86_32 local DAEMON_ARCH=i686 ;; - *-amd64-*) + *-amd64-*|macos-arm64-*) local NACLSDK_ARCH=x86_64 local DAEMON_ARCH=amd64 ;; @@ -1018,7 +1062,7 @@ build_naclsdk() { cp pepper_*"/tools/irt_core_${NACLSDK_ARCH}.nexe" "${PREFIX}/irt_core-${DAEMON_ARCH}.nexe" case "${PLATFORM}" in - linux-amd64-*) + linux-amd64-*|freebsd-amd64-*) ;; # Get sel_ldr from naclruntime package *) cp pepper_*"/tools/sel_ldr_${NACLSDK_ARCH}${EXE}" "${PREFIX}/nacl_loader${EXE}" @@ -1048,7 +1092,7 @@ build_naclsdk() { cp pepper_*"/tools/sel_ldr_x86_64.exe" "${PREFIX}/nacl_loader-amd64.exe" cp pepper_*"/tools/irt_core_x86_64.nexe" "${PREFIX}/irt_core-amd64.nexe" ;; - linux-amd64-*) + linux-amd64-*|freebsd-amd64-*) # Fix permissions on a few files which deny access to non-owner chmod 644 "${PREFIX}/irt_core-${DAEMON_ARCH}.nexe" ;; @@ -1210,6 +1254,7 @@ build_install() { rm -rf "${PKG_PREFIX}/def" rm -rf "${PKG_PREFIX}/share" rm -rf "${PKG_PREFIX}/lib/pkgconfig" + rm -rf "${PKG_PREFIX}/libdata/pkgconfig" find "${PKG_PREFIX}/bin" -not -type d -not -name '*.dll' -not -execdir rm -f -- {} \; find "${PKG_PREFIX}/lib" -name '*.la' -execdir rm -f -- {} \; find "${PKG_PREFIX}/lib" -name '*.dll.a' -execdir bash -c 'rm -f -- "$(basename "{}" .dll.a).a"' \; @@ -1229,7 +1274,7 @@ build_install() { # Fix import lib paths to use MSVC-style instead of MinGW ones (see 'genlib' target) find "${PKG_PREFIX}/lib/cmake" -name '*.cmake' -execdir sed -i -E 's@[.]dll[.]a\b@.lib@g' {} \; ;; - linux-*-*) + linux-*-*|freebsd-*-*) find "${PKG_PREFIX}/lib" -name '*.so' -execdir rm -f -- {} \; find "${PKG_PREFIX}/lib" -name '*.so.*' -execdir rm -f -- {} \; find "${PKG_PREFIX}/lib" -name '*_g.a' -execdir rm -f -- {} \; @@ -1328,6 +1373,8 @@ common_setup_arch() { CFLAGS+=' -march=armv7-a -mfpu=neon' CXXFLAGS+=' -march=armv7-a -mfpu=neon' ;; + *-riscv64-*) + ;; *) log ERROR 'Unsupported platform' ;; @@ -1385,6 +1432,15 @@ common_setup_linux() { CXXFLAGS+=' -fPIC' } +common_setup_freebsd() { + CC='clang' + CXX='clang++' + STRIP='strip' + CFLAGS+=" -target ${HOST}" + CXXFLAGS+=" -target ${HOST}" + LDFLAGS+=" -target ${HOST}" +} + # Set up environment for 32-bit i686 Windows for Visual Studio (compile all as .dll) setup_windows-i686-msvc() { BITNESS=32 @@ -1416,7 +1472,16 @@ setup_macos-amd64-default() { MACOS_ARCH=x86_64 # OpenAL requires 10.14. export MACOSX_DEPLOYMENT_TARGET=10.14 # works with CMake - common_setup macos x86_64-apple-darwin11 + common_setup macos "x86_64-apple-macosx${MACOSX_DEPLOYMENT_TARGET}" +} + +# Set up environment for 64-bit arm64 macOS +setup_macos-arm64-default() { + MACOS_ARCH=arm64 + # First macOS supporting the Apple M1. + export MACOSX_DEPLOYMENT_TARGET=11.0 + # Some old configure-based build like opusfile doen't recognize the arm64-apple prefix. + common_setup macos "aarch64-apple-macosx${MACOSX_DEPLOYMENT_TARGET}" } # Set up environment for 32-bit i686 Linux @@ -1439,6 +1504,16 @@ setup_linux-arm64-default() { common_setup linux aarch64-unknown-linux-gnu } +# Set up environment for 64-bit riscv Linux +setup_linux-riscv64-default() { + common_setup linux riscv64-unknown-linux-gnu +} + +# Set up environment for 64-bit amd64 FreeBSD +setup_freebsd-amd64-default() { + common_setup freebsd x86_64-unknown-freebsd13.3 +} + base_windows_amd64_msvc_packages='zlib gmp nettle curl sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk depcheck genlib' all_windows_amd64_msvc_packages="${base_windows_amd64_msvc_packages}" @@ -1454,6 +1529,9 @@ all_windows_i686_mingw_packages="${base_windows_amd64_mingw_packages}" base_macos_amd64_default_packages='pkgconfig nasm gmp nettle sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk' all_macos_amd64_default_packages="${base_macos_amd64_default_packages}" +base_macos_arm64_default_packages='pkgconfig gmp nettle sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk' +all_macos_arm64_default_packages="${base_macos_arm64_default_packages}" + base_linux_i686_default_packages='sdl3 naclsdk' all_linux_i686_default_packages='zlib gmp nettle curl sdl3 glew png jpeg webp openal ogg vorbis opus opusfile ncurses naclsdk' @@ -1466,10 +1544,22 @@ all_linux_arm64_default_packages='zlib gmp nettle curl sdl3 glew png jpeg webp o base_linux_armhf_default_packages="${base_linux_arm64_default_packages}" all_linux_armhf_default_packages="${all_linux_arm64_default_packages}" -all_linux_platforms='linux-amd64-default linux-arm64-default linux-armhf-default linux-i686-default' -all_windows_platforms='windows-amd64-mingw windows-amd64-msvc windows-i686-mingw windows-i686-msvc' -all_macos_platforms='macos-amd64-default' -all_platforms="${all_linux_platforms} ${all_windows_platforms} ${all_macos_platforms}" +base_linux_riscv64_default_packages='sdl3' +all_linux_riscv64_default_packages='zlib gmp nettle curl sdl3 glew png jpeg webp openal ogg vorbis opus opusfile ncurses' + +# FIXME: The naclruntime isn't rebuilt. +base_freebsd_amd64_default_packages='sdl3 naclsdk' +all_freebsd_amd64_default_packages='zlib gmp nettle curl sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk' + +supported_linux_platforms='linux-amd64-default linux-arm64-default linux-armhf-default linux-i686-default' +supported_windows_platforms='windows-amd64-mingw windows-amd64-msvc windows-i686-mingw windows-i686-msvc' +supported_macos_platforms='macos-amd64-default' +supported_platforms="${supported_linux_platforms} ${supported_windows_platforms} ${supported_macos_platforms}" + +extra_linux_platforms='linux-riscv64-default' +extra_macos_platforms='macos-arm64-default' +extra_freebsd_platforms='freebsd-amd64-default' +extra_platforms="${extra_linux_platforms} ${extra_macos_platforms} ${extra_freebsd_platforms}" printHelp() { # Please align to 4-space tabs. @@ -1482,15 +1572,18 @@ printHelp() { --download-only only download source packages, do not build them --prefer-ours attempt to download from unvanquished.net first - Platforms: - ${all_platforms} + Supported platforms: + ${supported_platforms} - Virtual platforms: - linux ${all_linux_platforms} - windows ${all_windows_platforms} - macos ${all_macos_platforms} + Supported virtual platforms: + linux ${supported_linux_platforms} + windows ${supported_windows_platforms} + macos ${supported_macos_platforms} all linux windows macos + Extra platforms: + ${extra_platforms} + Packages: pkgconfig nasm zlib gmp nettle curl sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk wasisdk wasmtime @@ -1517,6 +1610,10 @@ printHelp() { base ${base_macos_amd64_default_packages} all same + macos-arm64-default: + base ${base_macos_arm64_default_packages} + all same + linux-amd64-default: base ${base_linux_amd64_default_packages} all ${all_linux_amd64_default_packages} @@ -1530,6 +1627,14 @@ printHelp() { base ${base_linux_arm64_default_packages} all ${all_linux_arm64_default_packages} + linux-riscv64-default: + base ${base_linux_riscv64_default_packages} + all ${all_linux_riscv64_default_packages} + + freebsd-amd64-default: + base ${base_freebsd_amd64_default_packages} + all ${all_freebsd_amd64_default_packages} + EOF exit @@ -1595,19 +1700,19 @@ platform="${1}"; shift platform_list='' case "${platform}" in 'all') - platform_list="${all_platforms}" + platform_list="${supported_platforms}" ;; 'linux') - platform_list="${all_linux_platforms}" + platform_list="${supported_linux_platforms}" ;; 'windows') - platform_list="${all_windows_platforms}" + platform_list="${supported_windows_platforms}" ;; 'macos') - platform_list="${all_macos_platforms}" + platform_list="${supported_macos_platforms}" ;; *) - for known_platform in ${all_platforms} + for known_platform in ${supported_platforms} ${extra_platforms} do if [ "${platform}" = "${known_platform}" ] then