stable #3
12
Dockerfile
12
Dockerfile
@ -64,18 +64,18 @@ RUN echo docker_cross_compiler > /etc/hostname
|
|||||||
|
|
||||||
# Setup interactive shell.
|
# Setup interactive shell.
|
||||||
# Setup sudo. Remove password prompt for group "wheel".
|
# 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.
|
# Create a default user and switch.
|
||||||
RUN adduser --comment "" --disabled-password quik
|
RUN adduser --comment "" --disabled-password refuel
|
||||||
RUN addgroup wheel
|
RUN addgroup wheel
|
||||||
RUN usermod -aG wheel quik
|
RUN usermod -aG wheel refuel
|
||||||
USER quik
|
USER refuel
|
||||||
WORKDIR /home/quik
|
WORKDIR /home/refuel
|
||||||
|
|
||||||
# Copy bashrc
|
# Copy bashrc
|
||||||
RUN cp /etc/bash.bashrc ~/.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.
|
# Execute an interactive shell.
|
||||||
CMD bash
|
CMD bash
|
||||||
|
13
cmake/linux-arm.cmake
Normal file
13
cmake/linux-arm.cmake
Normal 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
13
cmake/linux-arm64.cmake
Normal 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
9
cmake/linux-x64.cmake
Normal 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
14
cmake/linux-x86.cmake
Normal 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
14
cmake/osx-arm64.cmake
Normal 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
14
cmake/osx-x64.cmake
Normal 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
14
cmake/win-x64.cmake
Normal 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
14
cmake/win-x86.cmake
Normal 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
54
include/rf_common.h
Normal 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
1
sh/.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.sh text eof=lf
|
@ -1,5 +1,5 @@
|
|||||||
source $HOME/src/sh/init.sh
|
source $HOME/src/sh/init.sh
|
||||||
echo QUIK Project Copyright \(C\) 2023
|
echo ReFuel Project - Copyright \(C\) 2023
|
||||||
echo
|
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.
|
echo SuperUser \(su/sudo\) commands are enabled without a password. Beware.
|
||||||
|
59
sh/build_native.sh
Normal file
59
sh/build_native.sh
Normal 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
30
sh/publish.sh
Normal 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
|
Loading…
Reference in New Issue
Block a user