diff --git a/.travis.yml b/.travis.yml
index 821d564c4..b62c60ee9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,7 +19,7 @@ matrix:
packages:
- g++
- os: linux
- env: PROFILE=m32
+ env: PROFILE=x86
addons:
apt:
packages:
@@ -36,6 +36,12 @@ matrix:
apt:
packages:
- g++-mingw-w64-x86-64
+ - os: linux
+ env: PROFILE=mingwaarch64
+ addons:
+ apt:
+ packages:
+ - clang
- os: linux
env: PROFILE=armhf
addons:
diff --git a/ant/build.xml b/ant/build.xml
new file mode 100644
index 000000000..0d346b47d
--- /dev/null
+++ b/ant/build.xml
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tests will run only if the TARGET and HOST match:${line.separator}${line.separator}
+ TARGET: ${os.target.classifier}
+ DETECTED: ${os.detected.classifier}
+
+
+
+
+
+
+ ===== ${maven.test.message} =====
+
+
+
+
+
+
+ File information:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index f52783453..3bb6b6f0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,25 +42,19 @@
${project.build.directory}/cmake
+ ${project.build.directory}/props.properties
+ ${project.basedir}
- false
-
- IGNORE
-
-
-
-
- false
-
+ false
+ false
false
true
- ${os.detected.name}-${os.detected.arch}-${os.detected.bitness}
4.12
1.2.3
- 2.3.6
+ 2.3.5
1.17
@@ -191,92 +185,50 @@
${plugin.antrun.version}
+
+ gather-props
+ validate
+ run
+
+
+
+
+
+ true
+
+
+
cmake-generate
run
generate-sources
- ${cmake.generator.skip}
-
-
-
-
-
-
-
-
-
-
-
+ ${cmake.generate.skip}
+
+
- cmake-compile
+ cmake-build
run
compile
- ${cmake.compile.skip}
-
-
-
-
-
-
-
-
-
-
+ ${cmake.build.skip}
+
+
- maven-test-helper
- compile
+ show-file-info
+ install
run
- true
-
-
-
-
-
-
-
-
- Tests will run only if the TARGET and HOST match:${line.separator}${line.separator}
- TARGET: ${maven.target.system}
- HOST: ${maven.host.system}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ===== ${maven.test.message} =====
-
+
+
@@ -336,7 +288,7 @@
single
- ${cmake.generator.skip}
+ ${cmake.generate.skip}
${project.basedir}/src/assembly/one-off-jar.xml
@@ -451,8 +403,8 @@
true
true
- true
- true
+ true
+ true
@@ -493,254 +445,101 @@
-
-
- aarch64_detected
-
-
- aarch64
-
-
-
- aarch_64
-
-
-
- x86_64_detected
-
-
- amd64
-
-
-
- x86_64
-
-
-
- x86_detected
-
-
- x86
-
-
-
- x86_32
-
-
-
-
+
aarch64
-
-
- os.detected.arch
- aarch_64
-
-
- aarch_64
- 64
- ${os.detected.name}_arm64
-
- ARM64
-
- arm64
-
- aarch64 [${os.name}]
+ aarch_64
-
+
x86_64
-
-
- os.detected.arch
- x86_64
-
-
- x86_64
- 64
- ${os.detected.name}_64
-
- x64
-
- x86_64
-
- M64
-
- amd64 [${os.name}]
+ x86_64
-
+
x86
-
-
- os.detected.arch
- x86_32
-
-
- x86_32
- 32
- ${os.detected.name}_32
-
- Win32
-
- x86_64
-
- M32
-
- x86 [${os.name}]
+ x86_32
-
-
- msvc
-
-
- windows
-
-
-
- -DCMAKE_GENERATOR_PLATFORM=${cmake.generator.msvcplatform}
-
- --config Release
-
-
-
-
-
- linux
-
-
-
- unix
-
-
-
-
- "-DFORCE_${cmake.generator.gccarch}=True"
-
-
-
-
-
- macos
-
-
- mac
-
-
-
- -DCMAKE_OSX_ARCHITECTURES=${cmake.generator.osxarchitectures}
-
-
-
-
+
mingw32
-
- windows
- x86_32
- 32
- -DCMAKE_TOOLCHAIN_FILE="${project.basedir}/toolchain/Mingw${os.detected.bitness}.cmake"
- ${os.detected.name}_${os.detected.bitness}
-
- x86 [Windows]
+ Mingw32
+
+ windows
+ x86_32
+ 32
-
+
mingw64
- windows
- x86_64
- 64
- -DCMAKE_TOOLCHAIN_FILE="${project.basedir}/toolchain/Mingw${os.detected.bitness}.cmake"
- ${os.detected.name}_${os.detected.bitness}
-
- amd64 [Windows]
+ Mingw64
+
+ windows
+ x86_64
+ 64
-
+
mingwaarch64
- windows
- arm_64
- 64
- -DCMAKE_TOOLCHAIN_FILE="${project.basedir}/toolchain/MingwAarch64.cmake"
- windows_arm64
-
- aarch64 [Windows]
+ MingwAarch64
+
+ windows
+ aarch_64
+ 64
-
+
- armsf
+ ppc64
- linux
- arm_32
- 32
- -DCMAKE_TOOLCHAIN_FILE="${project.basedir}/toolchain/Armsf.cmake"
- ${os.detected.name}_arm
-
- armsf [Linux]
+ Ppc64
+
+ linux
+ ppc_64
+ 64
-
+
armhf
- linux
- arm_32
- 32
+ Armhf
+
+ linux
- -DCMAKE_TOOLCHAIN_FILE="${project.basedir}/toolchain/Armhf.cmake"
- ${os.detected.name}_arm
-
- armhf [Linux]
+ arm_32
+ 32
-
+
- ppc64
+ armsf
- linux
- ppc_64
- 64
- -DCMAKE_TOOLCHAIN_FILE="${project.basedir}/toolchain/Ppc64.cmake"
- ${os.detected.name}_ppc
-
- ppc64 [Linux]
-
-
+ Armsf
-
-
- linux-aarch64
-
- linux
- arm_64
- 64
- -DCMAKE_TOOLCHAIN_FILE="${project.basedir}/toolchain/Aarch64.cmake"
- ${os.detected.name}_arm64
-
- aarch64 [Linux]
+ linux
+
+ arm_32
+ 32
diff --git a/toolchain/MingwAarch64.cmake b/toolchain/MingwAarch64.cmake
index 086db8096..7de43651e 100644
--- a/toolchain/MingwAarch64.cmake
+++ b/toolchain/MingwAarch64.cmake
@@ -1,5 +1,28 @@
set(CMAKE_SYSTEM_NAME Windows)
-set(TOOLCHAIN_LOCATION "$ENV{HOME}/llvm-mingw/bin")
+
+# URL for llvm-mingw
+set(URL "https://github.com/mstorsjo/llvm-mingw/releases/download/20201020/llvm-mingw-20201020-msvcrt-ubuntu-18.04.tar.xz")
+set(SHA256 "96e94e469665ee5632fff32a19b589ae1698859189d85615f3062b1544510b75")
+get_filename_component(ARCHIVE_NAME "${URL}" NAME)
+set(ARCHIVE "${CMAKE_BINARY_DIR}/llvm-mingw/${ARCHIVE_NAME}")
+
+# Try to predict the subdirectory name from the file name
+string(REPLACE ".tar.xz" "" SUBDIR "${ARCHIVE_NAME}")
+
+# Prevent extract process from running more than once
+if(NOT TOOLCHAIN_LOCATION)
+ if(NOT EXISTS "${CMAKE_BINARY_DIR}/llvm-mingw/${SUBDIR}")
+ if(NOT EXISTS "${ARCHIVE}")
+ file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/llvm-mingw")
+ message(STATUS "Downloading ${URL} to ${ARCHIVE}...")
+ file(DOWNLOAD ${URL} ${ARCHIVE} TIMEOUT 60 EXPECTED_HASH SHA256=${SHA256})
+ endif()
+ message(STATUS "Extracting ${ARCHIVE} to ${CMAKE_BINARY_DIR}/llvm-mingw/${SUBDIR}/...")
+ file(ARCHIVE_EXTRACT INPUT "${ARCHIVE}" DESTINATION "${CMAKE_BINARY_DIR}/llvm-mingw")
+ endif()
+endif()
+
+set(TOOLCHAIN_LOCATION "${CMAKE_BINARY_DIR}/llvm-mingw/${SUBDIR}/bin")
set(TOOLCHAIN_PREFIX "${TOOLCHAIN_LOCATION}/aarch64-w64-mingw32")
set(CMAKE_C_COMPILER "${TOOLCHAIN_PREFIX}-gcc")
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_PREFIX}-g++")
@@ -7,4 +30,4 @@ set(CMAKE_RC_COMPILER "${TOOLCHAIN_PREFIX}-windres")
set(CMAKE_STRIP "${TOOLCHAIN_PREFIX}-strip" CACHE FILEPATH "" FORCE)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
\ No newline at end of file
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)