32 Commits

Author SHA1 Message Date
d0f5760c7a Add --no-cache to the correct place in the build command.
All checks were successful
Build / build (push) Successful in 27m11s
2024-07-23 22:48:53 +03:00
db4b7e7c46 Add --no-cache to build command.
Some checks failed
Build / build (push) Failing after 32s
2024-07-23 22:47:16 +03:00
165fd4f7f3 Add the .net 8.0 sdk to the build image.
Some checks failed
Build / build (push) Failing after 1m47s
2024-07-23 22:41:38 +03:00
518969e2c9 Merge branch 'stable' of https://git.mixedup.dev/ReFuel/docker-cross-compiler into stable
All checks were successful
Build / build (push) Successful in 36s
2024-06-20 12:57:36 +03:00
3b4d6cee18 Rename additional cmake variable. 2024-06-20 12:45:58 +03:00
5901e3e317 Update build_native to honor build options. 2024-06-14 22:11:22 +03:00
44c8ab3212 Update the cmake scripts by copying the correct commit. 2024-06-14 22:00:05 +03:00
36660bcf38 Add osx options again. 2024-06-14 21:52:51 +03:00
caafc898f3 Convert all files to lf. 2024-06-14 18:24:14 +03:00
797197b562 Revert "Remove init.sh."
All checks were successful
Build / build (push) Successful in 40s
This reverts commit 5959c1229f.
2024-06-13 21:20:50 +03:00
74e192bb05 Change workflow to use tags. 2024-06-13 21:17:13 +03:00
d3f2aee3c3 Fix .bashrc after removing init.sh 2024-06-13 21:16:38 +03:00
35f1d46e81 Fix typo 2024-06-13 21:01:26 +03:00
5959c1229f Remove init.sh. 2024-06-13 21:00:57 +03:00
7aeb3ab967 Rebrand as ReFuel. 2024-06-13 19:58:34 +02:00
57bd32ea77 Reintroduce build essentials into this repository. 2024-06-13 19:58:34 +02:00
4107bf9df4 Rebrand as ReFuel.
Some checks failed
Build / build (push) Failing after 30s
2024-06-13 20:57:08 +03:00
fe004342de Reintroduce build essentials into this repository. 2024-06-13 20:49:00 +03:00
9eb5f90a2e Merge branch 'stable' of https://git.mixedup.dev/QUIK/docker-cross-compiler into stable
All checks were successful
Build / build (push) Successful in 25m12s
2024-03-30 14:34:19 +03:00
9a1e45f9e3 Add support for osxcross. 2024-03-30 14:13:32 +03:00
ac01f7f2aa [v1.0] Add automatic build action.
All checks were successful
Build / build (push) Successful in 34s
Try adding secrets to the workflow script.

Fix workflow.

Fix typo.

fix docker name conflict.

Removed cmake files from this repository and added node and meson to the apt packages list.

Update .gitea/workflows/build.yaml

node -> nodejs
2024-03-23 11:33:28 +03:00
b979f9a579 Merge branch 'master' of https://git.mixedup.dev/QUIK/docker-cross-compiler 2024-03-23 11:28:24 +03:00
0aa4ab377c node -> nodejs
All checks were successful
Build / build (push) Successful in 10m54s
2024-03-23 11:11:32 +03:00
a644c84827 Merge branch 'stable' of https://git.mixedup.dev/QUIK/docker-cross-compiler into stable
Some checks failed
Build / build (push) Failing after 34s
2024-03-23 11:05:30 +03:00
20af74f962 Removed cmake files from this repository and added node and meson to the apt packages list. 2024-03-23 11:05:23 +03:00
themixedupstuff
aae31f8a25 Update .gitea/workflows/build.yaml
All checks were successful
Build / build (push) Successful in 5m15s
2024-03-19 17:56:37 +01:00
themixedupstuff
1e3ba6c54c Update .gitea/workflows/build.yaml 2024-03-19 17:55:45 +01:00
74bc3a4d42 fix docker name conflict.
Some checks failed
Build / build (push) Failing after 31s
2024-03-19 18:49:09 +03:00
f3ee885fa2 Fix typo.
Some checks failed
Build / build (push) Failing after 31s
2024-03-19 18:45:14 +03:00
56fc90dddb Merge branch 'master' of https://git.mixedup.dev/QUIK/docker-cross-compiler 2024-03-19 18:43:57 +03:00
a1ca2ee3ea Try adding secrets to the workflow script. 2024-03-19 18:42:11 +03:00
themixedupstuff
0f007a1a30 Merge pull request 'Fix workflow.' (#1) from stable into master
Reviewed-on: QUIK/docker-cross-compiler#1
2024-03-19 16:22:09 +01:00
15 changed files with 169 additions and 23 deletions

View File

@@ -2,7 +2,8 @@ name: Build
run-name: Building docker container.
on:
push:
branches: stable
tags:
- '*'
jobs:
build:
@@ -12,7 +13,15 @@ jobs:
run: apt update -y
- name: Gather dependencies.
run: apt install -y docker.io
- name: Log into Docker registry.
run: "echo ${{secrets.REFUEL_API_KEY}} | docker login -u ${{vars.DOCKER_USER_NAME}} --password-stdin git.mixedup.dev"
- name: Check repository out.
uses: actions/checkout@v3
- name: Build Docker Image
run: docker build -t quik/docker-cross-compiler .
run: "docker build --no-cache -t git.mixedup.dev/refuel/docker-cross-compiler:${{gitea.ref_name}} ."
- name: Upload Docker Image
run: "docker push git.mixedup.dev/refuel/docker-cross-compiler:${{gitea.ref_name}}"
- name: Alias image as latest and push.
run: |
docker tag git.mixedup.dev/refuel/docker-cross-compiler:${{gitea.ref_name}} git.mixedup.dev/refuel/docker-cross-compiler:latest && \
docker push git.mixedup.dev/refuel/docker-cross-compiler:latest

View File

@@ -26,40 +26,57 @@ RUN echo docker_cross_compiler > /etc/hostname
cmake \
clang \
cpio \
curl \
dotnet-sdk-6.0 \
dotnet-sdk-8.0 \
gcc-arm-linux-gnueabihf \
gcc-aarch64-linux-gnu \
gcc-i686-linux-gnu \
git \
libbz2-dev \
libharfbuzz-dev \
libpng-dev \
libssl-dev \
libxml2-dev \
llvm \
lzma-dev \
mingw-w64 \
meson \
nuget \
ninja-build \
nodejs \
patch \
python3 \
uuid \
xz-utils \
zlib1g-dev
# Clone osxcross
# Let's do this later.
# RUN git clone https://github.com/tpoechtrager/osxcross.git osxcross
RUN git clone --recurse-submodules "https://github.com/tpoechtrager/osxcross.git" osxcross
# Download packaged SDK from this random github (very safe i know)
WORKDIR /root/osxcross/tarballs
RUN wget "https://github.com/joseluisq/macosx-sdks/releases/download/14.0/MacOSX14.0.sdk.tar.xz" -O "MacOSX14.0.sdk.tar.xz"
WORKDIR /root/osxcross
ENV UNATTENDED=1 TARGET_DIR=/usr/local SDK_DIR=/usr/local/osxcross-sdk
RUN bash -c "./build.sh"
# Setup interactive shell.
# Setup sudo. Remove password prompt for group "wheel".
RUN echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/quik_sudo_conf
RUN echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/refuel_sudo_conf
# Create a default user and switch.
RUN adduser --comment "" --disabled-password quik
USER quik
WORKDIR /home/quik
RUN adduser --comment "" --disabled-password refuel
RUN addgroup wheel
RUN usermod -aG wheel refuel
USER refuel
WORKDIR /home/refuel
# Copy bashrc
RUN cp /etc/bash.bashrc ~/.bashrc
RUN echo source $HOME/src/sh/bashrc.sh >> ~/.bashrc
COPY sh/bashrc.sh /home/refuel/.bashrc
# Execute an interactive shell.
CMD bash

View File

@@ -1,4 +1,4 @@
# QUIK Toolchain file for Linux-arm systems.
# ReFuel Toolchain file for Linux-arm systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Linux)

View File

@@ -1,4 +1,4 @@
# QUIK Toolchain file for Linux-arm64 (aarch64) systems.
# ReFuel Toolchain file for Linux-arm64 (aarch64) systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Linux)

View File

@@ -1,4 +1,4 @@
# QUIK Toolchain file for Linux-x64 (amd64) systems.
# ReFuel Toolchain file for Linux-x64 (amd64) systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Linux)

View File

@@ -1,4 +1,4 @@
# QUIK Toolchain file for Linux-x86 (i386) systems.
# ReFuel Toolchain file for Linux-x86 (i386) systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Linux)

14
cmake/osx-arm64.cmake Normal file
View File

@@ -0,0 +1,14 @@
# ReFuel Toolchain file for OSX-ARM64 systems.
# Copyright (C) 2024
set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_C_COMPILER aarch64-apple-darwin23-clang)
set(CMAKE_CXX_COMPILER aarch64-apple-darwin23-clang++)
set(CMAKE_FIND_ROOT_PATH "/usr/local/SDK/MacOSX14.0.sdk/usr"
"/usr/local/SDK/MacOSX14.0.sdk/System")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

14
cmake/osx-x64.cmake Normal file
View File

@@ -0,0 +1,14 @@
# ReFuel Toolchain file for OSX-ARM64 systems.
# Copyright (C) 2024
set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_C_COMPILER x86_64-apple-darwin23-clang)
set(CMAKE_CXX_COMPILER x86_64-apple-darwin23-clang++)
set(CMAKE_FIND_ROOT_PATH "/usr/local/SDK/MacOSX14.0.sdk/usr"
"/usr/local/SDK/MacOSX14.0.sdk/System")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

View File

@@ -1,4 +1,4 @@
# QUIK Toolchain file for Windows-x64 systems.
# ReFuel Toolchain file for Windows-x64 systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Windows)

View File

@@ -1,4 +1,4 @@
# QUIK Toolchain file for Windows-x86 systems.
# ReFuel Toolchain file for Windows-x86 systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Windows)

54
include/rf_common.h Normal file
View File

@@ -0,0 +1,54 @@
#ifndef _REFUEL_COMMON_H_
#define _REFUEL_COMMON_H_
#include "stdlib.h"
#include "stdio.h"
#if __GNUC__ || _MSC_VER
#define __REFUEL_FUNCTION__ __FUNCTION__
#else
#define __REFUEL_FUNCTION__ NULL
#endif
#if WIN32 || _MSC_VER > 0 || __MINGW__
#define RFEXTERN __declspec(dllexport)
#else
#define RFEXTERN
#endif
/**
* @brief Callback for failed assert function for QUIK redist libraries.
* @param[in] expr The expression that failed.
* @param[in] file The failing file (if available)
* @param[in] line The failing line number (if available)
* @param[in] func The failing function (if available)
*/
typedef void (*rf_failed_assert_cb_t)(const char *expr, const char *file, int line, const char* func);
#define DECLARE_ASSERT_CB(NAME) \
RFEXTERN rf_failed_assert_cb_t NAME##_failed_assert
#define DECLARE_ASSERT_STORE(NAME) \
RFEXTERN void NAME##_failed_assert_store(rf_failed_assert_cb_t cb)
#define DEFINE_ASSERT_CB(NAME) \
rf_failed_assert_cb_t NAME##_failed_assert
#define DEFINE_ASSERT_STORE(NAME) \
void NAME##_failed_assert_store(rf_failed_assert_cb_t cb) { \
NAME##_failed_assert = cb != NULL ? cb : rf_default_assert; \
}
#define REFUEL_DECLARE_LIB(NAME) \
DECLARE_ASSERT_CB(NAME); \
DECLARE_ASSERT_STORE(NAME);
#define REFUEL_DEFINE_LIB(NAME) \
DEFINE_ASSERT_CB(NAME); \
DEFINE_ASSERT_STORE(NAME);
inline static void rf_default_assert(const char *expr, const char *file, int line, const char *function)
{
fprintf(stderr, "Assert failed at %s:%d in %s()\n %s", file, line, function, expr);
abort();
}
#endif

1
sh/.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.sh text eof=lf

View File

@@ -1,5 +1,4 @@
source $HOME/src/sh/init.sh
echo QUIK Project Copyright \(C\) 2023
echo ReFuel Project - Copyright \(C\) 2023
echo
echo This is an interactive shell for QUIK build image.
echo This is an interactive shell for ReFuel build image.
echo SuperUser \(su/sudo\) commands are enabled without a password. Beware.

20
sh/quik_build_native.sh → sh/build_native.sh Normal file → Executable file
View File

@@ -3,6 +3,7 @@
# $1 Source path of the project.
# $2 Target architecture list.
# DST is the destination directory.
# NOINSTALL = 1 to skip installing.
SRC=$1
ARCHS=$2
@@ -15,7 +16,7 @@ fi
if [ -z "$ARCHS" ]
then
ARCHS="linux-arm linux-arm64 linux-x64 win-x64 win-x86"
ARCHS="linux-arm linux-arm64 linux-x64 win-x64 win-x86 osx-arm64 osx-x64"
fi
if [ -z "$DST" ]
@@ -23,13 +24,18 @@ then
DST=$PWD
fi
if [ -z "$CMAKE_DIR"]
then
CMAKE_DIR="$SRC/docker-cross-compiler/cmake"
fi
for ARCH in $ARCHS; do
# Output directory.
PREFIX=$DST/runtimes/$ARCH/native
# Build directory.
BUILD=$DST/out/$ARCH
# Cmake toolchain file.
TOOLCHAIN=$DST/../cmake/$ARCH.cmake
TOOLCHAIN=$CMAKE_DIR/$ARCH.cmake
# Create directories.
mkdir -p $PREFIX $BUILD
@@ -37,13 +43,15 @@ for ARCH in $ARCHS; do
cmake -B $BUILD -S $SRC \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS=-static-libgcc \
-DCMAKE_CXX_FLAGS=-static-libgcc \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN \
$QUIK_ADDITIONAL_CMAKE
$REFUEL_ADDITIONAL_CMAKE
# Build and install.
ninja -C $BUILD all
ninja -C $BUILD install
if [ ! $NOINSTALL ]
then
ninja -C $BUILD install
fi
done

30
sh/publish.sh Normal file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
if [-z "$1"]
then
$1 = $(dirname "$0")
fi
if [ -z "$NUGET_API_KEY" ]
then
echo "Please define NUGET_API_KEY"
exit 1
fi
if [ -z "$NUGET_USER_NAME" ]
then
echo "Please define NUGET_USER_NAME"
exit 1
fi
if [ -z "$NUGET_INDEX" ]
then
echo "Please define NUGET_INDEX"
exit 1
fi
cd $1
dotnet nuget add source \
-n ReFuel -u "$NUGET_USER_NAME" -p "$NUGET_API_KEY" \
--store-password-in-clear-text \
"$NUGET_INDEX"
dotnet nuget push -s ReFuel bin/*/*.nupkg