From: Mika Lindqvist Date: Wed, 31 May 2023 06:37:23 +0000 (+0300) Subject: Add MIPS to GitHub workflows. X-Git-Tag: 2.1.2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc6e56b79ff1fa0afac6ee7431cee427f600faef;p=thirdparty%2Fzlib-ng.git Add MIPS to GitHub workflows. --- diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 2a148626a..36f138f60 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -192,6 +192,12 @@ jobs: packages: qemu qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc-dev-arm64-cross codecov: ubuntu_gcc_aarch64_compat_no_opt + - name: Ubuntu GCC MIPS + os: ubuntu-latest + cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips.cmake + packages: qemu qemu-user gcc-mips-linux-gnu g++-mips-linux-gnu libc-dev-mips-cross + codecov: ubuntu_gcc_mips + - name: Ubuntu GCC PPC os: ubuntu-latest cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake diff --git a/.github/workflows/configure.yml b/.github/workflows/configure.yml index 51861533e..4b831917f 100644 --- a/.github/workflows/configure.yml +++ b/.github/workflows/configure.yml @@ -100,6 +100,13 @@ jobs: chost: aarch64-linux-gnu packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross + - name: Ubuntu GCC MIPS + os: ubuntu-latest + compiler: mips-linux-gnu-gcc + configure-args: --warn + chost: mips-linux-gnu + packages: qemu qemu-user gcc-mips-linux-gnu libc-dev-mips-cross + - name: Ubuntu GCC PPC os: ubuntu-latest compiler: powerpc-linux-gnu-gcc diff --git a/cmake/toolchain-mips.cmake b/cmake/toolchain-mips.cmake new file mode 100644 index 000000000..69a1025e3 --- /dev/null +++ b/cmake/toolchain-mips.cmake @@ -0,0 +1,29 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR mips) +set(CMAKE_SYSTEM_VERSION 1) + +if(NOT DEFINED CMAKE_C_COMPILER_TARGET) + set(CMAKE_C_COMPILER_TARGET mips-linux-gnu) +endif() +if(NOT DEFINED CMAKE_CXX_COMPILER_TARGET) + set(CMAKE_CXX_COMPILER_TARGET mips-linux-gnu) +endif() + +set(CMAKE_CROSSCOMPILING TRUE) +set(CMAKE_CROSSCOMPILING_EMULATOR qemu-mips -L /usr/${CMAKE_C_COMPILER_TARGET}/) + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +find_program(C_COMPILER_FULL_PATH NAMES ${CMAKE_C_COMPILER_TARGET}-gcc) +if(NOT C_COMPILER_FULL_PATH) + message(FATAL_ERROR "Cross-compiler for ${CMAKE_C_COMPILER_TARGET} not found") +endif() +set(CMAKE_C_COMPILER ${C_COMPILER_FULL_PATH}) + +find_program(CXX_COMPILER_FULL_PATH NAMES g++-${CMAKE_CXX_COMPILER_TARGET} ${CMAKE_CXX_COMPILER_TARGET}-g++) +if(CXX_COMPILER_FULL_PATH) + set(CMAKE_CXX_COMPILER ${CXX_COMPILER_FULL_PATH}) +endif()