4 Commits

Author SHA1 Message Date
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
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
14 changed files with 257 additions and 8 deletions

View File

@@ -64,18 +64,18 @@ RUN echo docker_cross_compiler > /etc/hostname
# 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
RUN adduser --comment "" --disabled-password refuel
RUN addgroup wheel
RUN usermod -aG wheel quik
USER quik
WORKDIR /home/quik
RUN usermod -aG wheel refuel
USER refuel
WORKDIR /home/refuel
# Copy bashrc
RUN cp /etc/bash.bashrc ~/.bashrc
COPY sh/bashrc.sh /home/quik/.bashrc
COPY sh/bashrc.sh /home/refuel/.bashrc
# Execute an interactive shell.
CMD bash

13
cmake/linux-arm.cmake Normal file
View File

@@ -0,0 +1,13 @@
# ReFuel Toolchain file for Linux-arm systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
set(CMAKE_FIND_ROOT_PATH "/usr/arm-linux-gnueabihf")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

13
cmake/linux-arm64.cmake Normal file
View File

@@ -0,0 +1,13 @@
# ReFuel Toolchain file for Linux-arm64 (aarch64) systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
set(CMAKE_FIND_ROOT_PATH "/usr/aarch64-linux-gnu")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

9
cmake/linux-x64.cmake Normal file
View File

@@ -0,0 +1,9 @@
# ReFuel Toolchain file for Linux-x64 (amd64) systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
add_compile_options(-m64)

14
cmake/linux-x86.cmake Normal file
View File

@@ -0,0 +1,14 @@
# ReFuel Toolchain file for Linux-x86 (i386) systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER i686-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER i686-linux-gnu-g++)
add_compile_options(-m32 -march=i686)
set(CMAKE_FIND_ROOT_PATH "/usr/i686-linux-gnu")
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-arm64.cmake Normal file
View File

@@ -0,0 +1,14 @@
# ReFuel Toolchain file for OSX-ARM64 systems.
# Copyright (C) 2024
set(CMAKE_SYSTEM_NAME OSX)
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 OSX)
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)

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

@@ -0,0 +1,14 @@
# ReFuel Toolchain file for Windows-x64 systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
set(CMAKE_FIND_ROOT_PATH "/usr/x86_64-w64-mingw32")
add_compile_options(-m64)
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/win-x86.cmake Normal file
View File

@@ -0,0 +1,14 @@
# ReFuel Toolchain file for Windows-x86 systems.
# Copyright (C) 2023
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
set(CMAKE_FIND_ROOT_PATH "/usr/i686-w64-mingw32")
add_compile_options(-m32)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

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,5 @@
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.

59
sh/build_native.sh Normal file
View File

@@ -0,0 +1,59 @@
#!/bin/bash
# $1 Source path of the project.
# $2 Target architecture list.
# DST is the destination directory.
# NOINSTALL = 1 to skip installing.
SRC=$1
ARCHS=$2
if [ -z "$SRC" ]
then
echo You need to provide a source path.
return
fi
if [ -z "$ARCHS" ]
then
ARCHS="linux-arm linux-arm64 linux-x64 win-x64 win-x86"
fi
if [ -z "$DST" ]
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=$CMAKE_DIR/$ARCH.cmake
# Create directories.
mkdir -p $PREFIX $BUILD
# Configure CMAKE.
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
# Build and install.
ninja -C $BUILD all
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 QUIK_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