diff --git a/build.sh b/build.sh index e31486f..3687cb0 100755 --- a/build.sh +++ b/build.sh @@ -3,27 +3,30 @@ set -e SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) OUTPUT_DIR="$SCRIPT_DIR/output" -BUILD_DIR="$SCRIPT_DIR/build" PROJECT_NAME="dehydrate" + + +BUILD_DIR="$SCRIPT_DIR/build" rm -rf "$BUILD_DIR" mkdir -p "$BUILD_DIR" "$OUTPUT_DIR" cd "$BUILD_DIR" - cmake .. make -j$(nproc) - -# Copy the binary to output directory with .amd64 suffix if x86_64 -if [[ $(uname -m) == "x86_64" ]]; then - cp "$PROJECT_NAME" "$OUTPUT_DIR/$PROJECT_NAME.amd64" - echo "Built $OUTPUT_DIR/$PROJECT_NAME.amd64 (x86_64, static if CMake is configured for musl/static)" -fi - +cp "$PROJECT_NAME" "$OUTPUT_DIR/$PROJECT_NAME.amd64" +echo "Built $OUTPUT_DIR/$PROJECT_NAME.amd64 (x86_64, static if CMake is configured for musl/static)" cd "$SCRIPT_DIR" # Build for arm64 (musl static) if cross-compiler available if command -v aarch64-linux-musl-g++ &>/dev/null; then - echo "Building for arm64 (musl static)..." - aarch64-linux-musl-g++ -O2 -static -o "$OUTPUT_DIR/$PROJECT_NAME.arm64" src/*.cpp - echo "Built $PROJECT_NAME.arm64 (arm64, static)" + echo "Building for arm64 (musl static) with CMake..." + BUILD_DIR_ARM64="$SCRIPT_DIR/build_arm64" + rm -rf "$BUILD_DIR_ARM64" + mkdir -p "$BUILD_DIR_ARM64" + cd "$BUILD_DIR_ARM64" + cmake -DCMAKE_CXX_COMPILER=aarch64-linux-musl-g++ .. + make -j$(nproc) + cp "$PROJECT_NAME" "$OUTPUT_DIR/$PROJECT_NAME.arm64" + echo "Built $OUTPUT_DIR/$PROJECT_NAME.arm64 (arm64, static)" + cd "$SCRIPT_DIR" fi diff --git a/build_arm64/dehydrate b/build_arm64/dehydrate new file mode 100755 index 0000000..fc1dfcc Binary files /dev/null and b/build_arm64/dehydrate differ diff --git a/src/generator.cpp b/src/generator.cpp index a472e92..2556c87 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -52,7 +52,7 @@ static uint64_t fnv1a_64(const void* data, size_t len) { // Embed file data cpp << "static const unsigned char filedata[] = {"; for (size_t i = 0; i < filedata.size(); ++i) { - if (i % 16 == 0) cpp << "\\n "; + if (i % 16 == 0) cpp << "\n "; cpp << "0x" << std::hex << std::setw(2) << std::setfill('0') << (int)(unsigned char)filedata[i]; if (i + 1 != filedata.size()) cpp << ", "; } @@ -139,7 +139,7 @@ void generate_folder_code(const std::string& source, const std::string& destfold std::string var = sanitize(rel); cpp << "static const unsigned char data_" << var << "[] = {"; for (size_t i = 0; i < filedata.size(); ++i) { - if (i % 16 == 0) cpp << "\\n "; + if (i % 16 == 0) cpp << "\n "; cpp << "0x" << std::hex << std::setw(2) << std::setfill('0') << (int)(unsigned char)filedata[i]; if (i + 1 != filedata.size()) cpp << ", "; }