mirror of
https://github.com/monero-project/monero.git
synced 2025-02-09 05:58:28 -05:00
Rust cross compilation
This commit is contained in:
parent
d6ca63618e
commit
8b76958485
13
.github/workflows/depends.yml
vendored
13
.github/workflows/depends.yml
vendored
@ -31,36 +31,47 @@ jobs:
|
||||
toolchain:
|
||||
- name: "RISCV 64bit"
|
||||
host: "riscv64-linux-gnu"
|
||||
rust_host: "riscv64gc-unknown-linux-gnu"
|
||||
packages: "python3 gperf g++-riscv64-linux-gnu"
|
||||
- name: "ARM v7"
|
||||
host: "arm-linux-gnueabihf"
|
||||
rust_host: "armv7-unknown-linux-gnueabihf"
|
||||
packages: "python3 gperf g++-arm-linux-gnueabihf"
|
||||
- name: "ARM v8"
|
||||
host: "aarch64-linux-gnu"
|
||||
rust_host: "aarch64-unknown-linux-gnu"
|
||||
packages: "python3 gperf g++-aarch64-linux-gnu"
|
||||
- name: "i686 Win"
|
||||
host: "i686-w64-mingw32"
|
||||
rust_host: "i686-pc-windows-gnu"
|
||||
packages: "python3 g++-mingw-w64-i686"
|
||||
- name: "i686 Linux"
|
||||
host: "i686-pc-linux-gnu"
|
||||
rust_host: "i686-unknown-linux-gnu"
|
||||
packages: "gperf cmake g++-multilib python3-zmq"
|
||||
- name: "Win64"
|
||||
host: "x86_64-w64-mingw32"
|
||||
rust_host: "x86_64-pc-windows-gnu"
|
||||
packages: "cmake python3 g++-mingw-w64-x86-64"
|
||||
- name: "x86_64 Linux"
|
||||
host: "x86_64-unknown-linux-gnu"
|
||||
rust_host: "x86_64-unknown-linux-gnu"
|
||||
packages: "gperf cmake python3-zmq libdbus-1-dev libharfbuzz-dev"
|
||||
- name: "Cross-Mac x86_64"
|
||||
host: "x86_64-apple-darwin"
|
||||
rust_host: "x86_64-apple-darwin"
|
||||
packages: "cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev python3-setuptools-git"
|
||||
- name: "Cross-Mac aarch64"
|
||||
host: "aarch64-apple-darwin"
|
||||
rust_host: "aarch64-apple-darwin"
|
||||
packages: "cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev python3-setuptools-git"
|
||||
- name: "x86_64 Freebsd"
|
||||
host: "x86_64-unknown-freebsd"
|
||||
rust_host: "x86_64-unknown-freebsd"
|
||||
packages: "clang-8 gperf cmake python3-zmq libdbus-1-dev libharfbuzz-dev"
|
||||
- name: "ARMv8 Android"
|
||||
host: "aarch64-linux-android"
|
||||
rust_host: "aarch64-linux-android"
|
||||
packages: "gperf cmake python3"
|
||||
name: ${{ matrix.toolchain.name }}
|
||||
steps:
|
||||
@ -95,6 +106,8 @@ jobs:
|
||||
run: ${{env.APT_SET_CONF}}
|
||||
- name: install dependencies
|
||||
run: sudo apt update; sudo apt -y install build-essential libtool cmake autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache ${{ matrix.toolchain.packages }}
|
||||
- name: install rust target
|
||||
run: rustup update stable; rustup target add ${{ matrix.toolchain.rust_host }}
|
||||
- name: prepare w64-mingw32
|
||||
if: ${{ matrix.toolchain.host == 'x86_64-w64-mingw32' || matrix.toolchain.host == 'i686-w64-mingw32' }}
|
||||
run: |
|
||||
|
@ -26,11 +26,55 @@
|
||||
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
||||
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
if(MINGW)
|
||||
set(RUST_PLATFORM "pc-windows")
|
||||
set(RUST_TOOLCHAIN "-gnu")
|
||||
elseif(MSVC)
|
||||
set(RUST_PLATFORM "pc-windows")
|
||||
set(RUST_TOOLCHAIN "-msvc")
|
||||
elseif(APPLE)
|
||||
set(RUST_PLATFORM "apple-darwin")
|
||||
set(RUST_TOOLCHAIN "")
|
||||
elseif(FREEBSD)
|
||||
set(RUST_PLATFORM "unknown-freebsd")
|
||||
set(RUST_TOOLCHAIN "")
|
||||
elseif(OPENBSD)
|
||||
set(RUST_PLATFORM "unknown-openbsd")
|
||||
set(RUST_TOOLCHAIN "")
|
||||
elseif(ANDROID)
|
||||
set(RUST_PLATFORM "linux-android")
|
||||
if(ARCH_ID MATCHES "(arm|armv7)")
|
||||
set(RUST_TOOLCHAIN "eabi")
|
||||
else()
|
||||
set(RUST_TOOLCHAIN "")
|
||||
endif()
|
||||
elseif(DRAGONFLY)
|
||||
set(RUST_PLATFORM "unknown-dragonfly")
|
||||
set(RUST_TOOLCHAIN "")
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "(SunOS|Solaris)")
|
||||
if(ARCH_ID MATCHES "x86_64")
|
||||
set(RUST_PLATFORM "pc-solaris")
|
||||
set(RUST_TOOLCHAIN "")
|
||||
elseif(ARCH_ID MATCHES "sparcv9")
|
||||
set(RUST_PLATFORM "sun-solaris")
|
||||
set(RUST_TOOLCHAIN "")
|
||||
endif()
|
||||
else()
|
||||
set(RUST_PLATFORM "unknown-linux")
|
||||
if(ARCH_ID MATCHES "armv7")
|
||||
set(RUST_TOOLCHAIN "-gnueabi")
|
||||
else()
|
||||
set(RUST_TOOLCHAIN "-gnu")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(RUST_TARGET "${ARCH_ID}-${RUST_PLATFORM}${RUST_TOOLCHAIN}")
|
||||
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CARGO_CMD cargo build)
|
||||
set(CARGO_CMD cargo build --target "${RUST_TARGET}")
|
||||
set(TARGET_DIR "debug")
|
||||
else ()
|
||||
set(CARGO_CMD cargo build --release)
|
||||
set(CARGO_CMD cargo build --target "${RUST_TARGET}" --release)
|
||||
set(TARGET_DIR "release")
|
||||
endif ()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user