mirror of
https://github.com/aaru-dps/Aaru.Compression.Native.git
synced 2025-12-16 19:24:31 +00:00
Fix compiling for Windows/ARM(64), linking still not working.
This commit is contained in:
2
3rdparty/lzma-21.03beta/C/AesOpt.c
vendored
2
3rdparty/lzma-21.03beta/C/AesOpt.c
vendored
@@ -509,7 +509,7 @@ VAES_COMPAT_STUB (AesCtr_Code_HW)
|
||||
#elif defined(MY_CPU_ARM_OR_ARM64) && defined(MY_CPU_LE)
|
||||
|
||||
#if defined(__clang__)
|
||||
#if (__clang_major__ >= 8) && !defined(__ANDROID__) // fix that version check, Android with clang12 doesn't work
|
||||
#if (__clang_major__ >= 8) && !defined(__ANDROID__) && !defined(__MINGW32__) // fix that version check, Android with clang12 doesn't work, neither does MingW
|
||||
#define USE_HW_AES
|
||||
#endif
|
||||
#elif defined(__GNUC__)
|
||||
|
||||
2
3rdparty/lzma-21.03beta/C/Alloc.c
vendored
2
3rdparty/lzma-21.03beta/C/Alloc.c
vendored
@@ -6,7 +6,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
6
3rdparty/lzma-21.03beta/C/CpuArch.c
vendored
6
3rdparty/lzma-21.03beta/C/CpuArch.c
vendored
@@ -217,7 +217,7 @@ BoolInt CPU_Is_InOrder()
|
||||
}
|
||||
|
||||
#if !defined(MY_CPU_AMD64) && defined(_WIN32)
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
static BoolInt CPU_Sys_Is_SSE_Supported()
|
||||
{
|
||||
OSVERSIONINFO vi;
|
||||
@@ -275,7 +275,7 @@ BoolInt CPU_IsSupported_SHA()
|
||||
// #include <stdio.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
BoolInt CPU_IsSupported_AVX2()
|
||||
@@ -351,7 +351,7 @@ BoolInt CPU_IsSupported_PageGB()
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
|
||||
BoolInt CPU_IsSupported_CRC32() { return IsProcessorFeaturePresent(PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE) ? 1 : 0; }
|
||||
BoolInt CPU_IsSupported_CRYPTO() { return IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ? 1 : 0; }
|
||||
|
||||
2
3rdparty/lzma-21.03beta/C/DllSecur.c
vendored
2
3rdparty/lzma-21.03beta/C/DllSecur.c
vendored
@@ -5,7 +5,7 @@
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include "DllSecur.h"
|
||||
|
||||
|
||||
2
3rdparty/lzma-21.03beta/C/Sha256Opt.c
vendored
2
3rdparty/lzma-21.03beta/C/Sha256Opt.c
vendored
@@ -215,7 +215,7 @@ void MY_FAST_CALL Sha256_UpdateBlocks_HW(UInt32 state[8], const Byte *data, size
|
||||
#elif defined(MY_CPU_ARM_OR_ARM64)
|
||||
|
||||
#if defined(__clang__)
|
||||
#if (__clang_major__ >= 8) && !defined(__ANDROID__) // fix that version check, Android with clang12 doesn't work
|
||||
#if (__clang_major__ >= 8) && !defined(__ANDROID__) && !defined(__MINGW32__) // fix that version check, Android with clang12 doesn't work, neither does MingW
|
||||
#define USE_HW_SHA
|
||||
#endif
|
||||
#elif defined(__GNUC__)
|
||||
|
||||
2
3rdparty/lzma-21.03beta/C/Threads.h
vendored
2
3rdparty/lzma-21.03beta/C/Threads.h
vendored
@@ -5,7 +5,7 @@
|
||||
#define __7Z_THREADS_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
#else
|
||||
|
||||
#if defined(__linux__)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
|
||||
#ifdef UNDER_CE
|
||||
#undef VARIANT_TRUE
|
||||
|
||||
4
3rdparty/lzma.cmake
vendored
4
3rdparty/lzma.cmake
vendored
@@ -5,7 +5,9 @@ set("LZMA_ASM_DIRECTORY" "lzma-21.03beta/Asm")
|
||||
|
||||
add_library(lzma STATIC)
|
||||
|
||||
set_property(TARGET lzma PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW" OR (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" AND NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64"))
|
||||
set_property(TARGET lzma PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(lzma PUBLIC _REENTRANT)
|
||||
target_compile_definitions(lzma PUBLIC _FILE_OFFSET_BITS)
|
||||
|
||||
@@ -36,8 +36,6 @@ message("Detected compiler: ${CMAKE_C_COMPILER_ID}")
|
||||
message("Detected build type: ${CMAKE_BUILD_TYPE}")
|
||||
message("Detected platform: ${CMAKE_C_PLATFORM_ID}")
|
||||
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" MATCHES "Release")
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
|
||||
add_compile_options("/O2" "/fp:fast")
|
||||
@@ -57,6 +55,8 @@ if("${CMAKE_BUILD_TYPE}" MATCHES "Release")
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
add_compile_options(-flto)
|
||||
endif()
|
||||
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
|
||||
if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
add_compile_options(-march=armv8-a)
|
||||
@@ -64,8 +64,13 @@ if("${CMAKE_BUILD_TYPE}" MATCHES "Release")
|
||||
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
add_compile_options(-flto)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
add_compile_options(-march=armv7+fp -mfpu=vfpv3-d16)
|
||||
endif()
|
||||
|
||||
30
build.sh
30
build.sh
@@ -137,24 +137,36 @@ mv libAaru.Compression.Native.so runtimes/linux-x64/native/
|
||||
|
||||
## Linux (x86)
|
||||
# Detected system processor: i686
|
||||
# [ 62%] Linking C static library liblzfse.a
|
||||
# Error running link command: No such file or directory
|
||||
rm -f CMakeCache.txt
|
||||
mkdir -p runtimes/linux-x86/native
|
||||
docker run --rm dockcross/linux-x86 > docker/dockcross-linux-x86
|
||||
chmod +x docker/dockcross-linux-x86
|
||||
docker/dockcross-linux-x86 cmake -DCMAKE_BUILD_TYPE=Release -DAARU_BUILD_PACKAGE=1 -DCMAKE_POLICY_DEFAULT_CMP0077=NEW -DCMAKE_POLICY_DEFAULT_CMP0069=NEW .
|
||||
sed -e 's/CMAKE_C_COMPILER_AR\-NOTFOUND/\/usr\/i686-linux-gnu\/bin\/i686-linux-gnu-ar/g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt > link.txt
|
||||
mv link.txt ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt
|
||||
sed -e 's/CMAKE_C_COMPILER_RANLIB\-NOTFOUND/ranlib/g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt > link.txt
|
||||
mv link.txt ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt
|
||||
docker/dockcross-linux-x86 make Aaru.Compression.Native
|
||||
mv libAaru.Compression.Native.so runtimes/linux-x86/native/
|
||||
|
||||
## Windows (ARM)
|
||||
# Detected system processor: arm
|
||||
# -fPIE incompatible
|
||||
# undefined symbols in lzma/aes and flac
|
||||
rm -f CMakeCache.txt
|
||||
mkdir -p runtimes/win-arm/native
|
||||
docker run --rm dockcross/windows-armv7 > docker/dockcross-win-arm
|
||||
chmod +x docker/dockcross-win-arm
|
||||
docker/dockcross-win-arm cmake -DCMAKE_BUILD_TYPE=Release -DAARU_BUILD_PACKAGE=1 -DCMAKE_POLICY_DEFAULT_CMP0077=NEW -DCMAKE_POLICY_DEFAULT_CMP0069=NEW .
|
||||
sed -e 's/\-fPIC\s//g' ./3rdparty/bzip2/CMakeFiles/bz2_static.dir/flags.make > flags.make
|
||||
mv flags.make ./3rdparty/bzip2/CMakeFiles/bz2_static.dir/flags.make
|
||||
sed -e 's/\-fPIC\s//g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/flags.make > flags.make
|
||||
mv flags.make ./3rdparty/lzfse/CMakeFiles/lzfse.dir/flags.make
|
||||
sed -e 's/CMAKE_C_COMPILER_AR\-NOTFOUND/\/usr\/xcc\/armv7-w64-mingw32-cross\/bin\/aarch64-w64-mingw32-ar/g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt > link.txt
|
||||
mv link.txt ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt
|
||||
sed -e 's/CMAKE_C_COMPILER_RANLIB\-NOTFOUND/\/usr\/xcc\/armv7-w64-mingw32-cross\/bin\/aarch64-w64-mingw32-ranlib/g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt > link.txt
|
||||
mv link.txt ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt
|
||||
sed -e 's/\-fPIC\s//g' ./3rdparty/zstd-1.5.0/build/cmake/lib/CMakeFiles/libzstd_static.dir/flags.make > flags.make
|
||||
mv flags.make ./3rdparty/zstd-1.5.0/build/cmake/lib/CMakeFiles/libzstd_static.dir/flags.make
|
||||
sed -e 's/\-fPIC\s//g' ./CMakeFiles/Aaru.Compression.Native.dir/link.txt > link.txt
|
||||
mv link.txt ./CMakeFiles/Aaru.Compression.Native.dir/link.txt
|
||||
sed -e 's/\-fPIC\s//g' ./CMakeFiles/Aaru.Compression.Native.dir/flags.make > flags.make
|
||||
@@ -166,12 +178,22 @@ mv libAaru.Compression.Native.so runtimes/win-arm/native/libAaru.Compression.Nat
|
||||
|
||||
## Windows (ARM64)
|
||||
# Detected system processor: aarch64
|
||||
# -fPIE incompatible
|
||||
# undefined symbols in lzma/aes and flac
|
||||
rm -f CMakeCache.txt
|
||||
mkdir -p runtimes/win-arm64/native
|
||||
docker run --rm dockcross/windows-arm64 > docker/dockcross-win-arm64
|
||||
chmod +x docker/dockcross-win-arm64
|
||||
docker/dockcross-win-arm64 cmake -DCMAKE_BUILD_TYPE=Release -DAARU_BUILD_PACKAGE=1 -DCMAKE_POLICY_DEFAULT_CMP0077=NEW -DCMAKE_POLICY_DEFAULT_CMP0069=NEW .
|
||||
sed -e 's/\-fPIC\s//g' ./3rdparty/bzip2/CMakeFiles/bz2_static.dir/flags.make > flags.make
|
||||
mv flags.make ./3rdparty/bzip2/CMakeFiles/bz2_static.dir/flags.make
|
||||
sed -e 's/\-fPIC\s//g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/flags.make > flags.make
|
||||
mv flags.make ./3rdparty/lzfse/CMakeFiles/lzfse.dir/flags.make
|
||||
sed -e 's/CMAKE_C_COMPILER_AR\-NOTFOUND/\/usr\/xcc\/aarch64-w64-mingw32-cross\/bin\/aarch64-w64-mingw32-ar/g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt > link.txt
|
||||
mv link.txt ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt
|
||||
sed -e 's/CMAKE_C_COMPILER_RANLIB\-NOTFOUND/\/usr\/xcc\/aarch64-w64-mingw32-cross\/bin\/aarch64-w64-mingw32-ranlib/g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt > link.txt
|
||||
mv link.txt ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt
|
||||
sed -e 's/\-fPIC\s//g' ./3rdparty/zstd-1.5.0/build/cmake/lib/CMakeFiles/libzstd_static.dir/flags.make > flags.make
|
||||
mv flags.make ./3rdparty/zstd-1.5.0/build/cmake/lib/CMakeFiles/libzstd_static.dir/flags.make
|
||||
sed -e 's/\-fPIC\s//g' ./CMakeFiles/Aaru.Compression.Native.dir/link.txt > link.txt
|
||||
mv link.txt ./CMakeFiles/Aaru.Compression.Native.dir/link.txt
|
||||
sed -e 's/\-fPIC\s//g' ./CMakeFiles/Aaru.Compression.Native.dir/flags.make > flags.make
|
||||
|
||||
Reference in New Issue
Block a user