From db64afc5506bf473f20c54aa870008ce4c1773ea Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Thu, 16 Sep 2021 22:00:40 -0400 Subject: [PATCH] Improve Build System --- CMakeLists.txt | 23 ++++----- cmake/arm-toolchain.cmake | 4 +- cmake/arm64-toolchain.cmake | 2 +- cmake/x86_64-toolchain.cmake | 8 +++ images/start.png | Bin 31470 -> 31455 bytes launcher/src/client/launcher.cpp | 3 +- scripts/build-all.sh | 12 ++--- scripts/build.sh | 82 ++++++++----------------------- scripts/package.sh | 2 +- 9 files changed, 49 insertions(+), 87 deletions(-) create mode 100644 cmake/x86_64-toolchain.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fc3d4a4..ef87af9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,13 +25,11 @@ else() endif() # Use Clang By Default -if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) - if(NOT DEFINED CMAKE_C_COMPILER) - set(CMAKE_C_COMPILER "clang") - endif() - if(NOT DEFINED CMAKE_CXX_COMPILER) - set(CMAKE_CXX_COMPILER "clang++") - endif() +if(NOT DEFINED CMAKE_C_COMPILER) + set(CMAKE_C_COMPILER "clang") +endif() +if(NOT DEFINED CMAKE_CXX_COMPILER) + set(CMAKE_CXX_COMPILER "clang++") endif() # Setup ARM Cross Compilation @@ -39,12 +37,6 @@ if(USE_ARM32_TOOLCHAIN) include(cmake/arm-toolchain.cmake) endif() -# Use LLD When Using Clang -if(CMAKE_C_COMPILER STREQUAL "clang") - add_link_options("-fuse-ld=lld") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld") # Fix try_compile() -endif() - # Utility Functions include(cmake/util.cmake) @@ -92,6 +84,11 @@ add_definitions(-D_GNU_SOURCE) set(CMAKE_C_STANDARD 99) set(CMAKE_CXX_STANDARD 11) +# Use LLD When Using Clang +if(CMAKE_C_COMPILER_ID STREQUAL "Clang") + add_link_options("-fuse-ld=lld") +endif() + # Specify Constants if(MCPI_SERVER_MODE) add_definitions(-DMCPI_SERVER_MODE) diff --git a/cmake/arm-toolchain.cmake b/cmake/arm-toolchain.cmake index 64610965..9ffecead 100644 --- a/cmake/arm-toolchain.cmake +++ b/cmake/arm-toolchain.cmake @@ -1,8 +1,8 @@ # Compile For ARM -if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64_be" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "armv8b" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "armv8l") +if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64_be" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "armv8b" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "armv8l") # Force 32-Bit Compile add_compile_options("-m32") -elseif(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "arm") +elseif(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm") # Use ARM Cross-Compiler include("${CMAKE_CURRENT_LIST_DIR}/base-toolchain.cmake") setup_toolchain("arm-linux-gnueabihf") diff --git a/cmake/arm64-toolchain.cmake b/cmake/arm64-toolchain.cmake index ee72cc7d..45cee3cd 100644 --- a/cmake/arm64-toolchain.cmake +++ b/cmake/arm64-toolchain.cmake @@ -1,5 +1,5 @@ # Compile For ARM64 -if(NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64_be" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "armv8b" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "armv8l")) +if(NOT (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64_be" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "armv8b" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "armv8l")) # Use ARM64 Cross-Compiler include("${CMAKE_CURRENT_LIST_DIR}/base-toolchain.cmake") setup_toolchain("aarch64-linux-gnu") diff --git a/cmake/x86_64-toolchain.cmake b/cmake/x86_64-toolchain.cmake new file mode 100644 index 00000000..3ec02864 --- /dev/null +++ b/cmake/x86_64-toolchain.cmake @@ -0,0 +1,8 @@ +# Compile For x86_64 +if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64") + # Use x86_64 Cross-Compiler + include("${CMAKE_CURRENT_LIST_DIR}/base-toolchain.cmake") + setup_toolchain("x86_64-linux-gnu") +endif() +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") diff --git a/images/start.png b/images/start.png index ff3aa47f6cbd84468ad7ad4bfaa79c488aea888c..c56ab7047957f1a8b9113d028be3dc9a65342f8d 100644 GIT binary patch delta 12095 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 diff --git a/launcher/src/client/launcher.cpp b/launcher/src/client/launcher.cpp index 0de64cb4..e4d67239 100644 --- a/launcher/src/client/launcher.cpp +++ b/launcher/src/client/launcher.cpp @@ -137,8 +137,7 @@ int main(int argc, char *argv[]) { // Minecraft Folder { char *minecraft_folder = NULL; - asprintf(&minecraft_folder, "%s/.minecraft-pi", getenv("HOME")); - ALLOC_CHECK(minecraft_folder); + safe_asprintf(&minecraft_folder, "%s/.minecraft-pi", getenv("HOME")); { // Check Minecraft Folder struct stat obj; diff --git a/scripts/build-all.sh b/scripts/build-all.sh index f1223d1d..aa60a372 100755 --- a/scripts/build-all.sh +++ b/scripts/build-all.sh @@ -6,9 +6,9 @@ set -e rm -rf out # Build -./scripts/build.sh native client -./scripts/build.sh native server -./scripts/build.sh arm64 client -./scripts/build.sh arm64 server -./scripts/build.sh arm client -./scripts/build.sh arm server +./scripts/build.sh client x86_64 +./scripts/build.sh server x86_64 +./scripts/build.sh client arm64 +./scripts/build.sh server arm64 +./scripts/build.sh client arm +./scripts/build.sh server arm diff --git a/scripts/build.sh b/scripts/build.sh index e92b6570..6fbc4b92 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -2,21 +2,22 @@ set -e -# This Script Assumes An x86_64 Host -if [ "$(uname -m)" != "x86_64" ]; then - echo 'Invalid Host Architecture' > /dev/stderr - exit 1 -fi +# Build +build() { + # Find Toolchain + local toolchain_file="$(pwd)/cmake/$2-toolchain.cmake" + if [ ! -f "${toolchain_file}" ]; then + echo "Invalid Architecture: $1" > /dev/stderr + exit 1 + fi -# Build For x86_64 -native_build() { # Create Build Dir - rm -rf build/$1-x86_64 - mkdir -p build/$1-x86_64 - cd build/$1-x86_64 + rm -rf "build/$1-$2" + mkdir -p "build/$1-$2" + cd "build/$1-$2" # Create Prefix - local prefix="$(cd ../../; pwd)/out/$1-x86_64" + local prefix="$(cd ../../; pwd)/out/$1-$2" rm -rf "${prefix}" mkdir -p "${prefix}" @@ -37,45 +38,7 @@ native_build() { # Build Native Components mkdir native cd native - cmake -DMCPI_BUILD_MODE=native "${extra_arg}" ../../.. - make -j$(nproc) - make install DESTDIR="${prefix}" - cd ../ - - # Exit - cd ../../ -} - -# Build For ARM64 -arm64_build() { - # Create Build Dir - rm -rf build/$1-arm64 - mkdir -p build/$1-arm64 - cd build/$1-arm64 - - # Create Prefix - local prefix="$(cd ../../; pwd)/out/$1-arm64" - rm -rf "${prefix}" - mkdir -p "${prefix}" - - # Prepare - local extra_arg='-DMCPI_USE_MEDIA_LAYER_PROXY=ON' - if [ "$1" = "server" ]; then - extra_arg='-DMCPI_SERVER_MODE=ON' - fi - - # Build ARM Components - mkdir arm - cd arm - cmake -DMCPI_BUILD_MODE=arm "${extra_arg}" ../../.. - make -j$(nproc) - make install DESTDIR="${prefix}" - cd ../ - - # Build Native Components - mkdir native - cd native - cmake -DCMAKE_TOOLCHAIN_FILE="$(cd ../../../; pwd)/cmake/arm64-toolchain.cmake" -DMCPI_BUILD_MODE=native "${extra_arg}" ../../.. + cmake -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" -DMCPI_BUILD_MODE=native "${extra_arg}" ../../.. make -j$(nproc) make install DESTDIR="${prefix}" cd ../ @@ -87,9 +50,9 @@ arm64_build() { # Build For ARM arm_build() { # Create Build Dir - rm -rf build/$1-arm - mkdir -p build/$1-arm - cd build/$1-arm + rm -rf "build/$1-arm" + mkdir -p "build/$1-arm" + cd "build/$1-arm" # Create Prefix local prefix="$(cd ../../; pwd)/out/$1-arm" @@ -112,19 +75,14 @@ arm_build() { } # Verify Mode -if [ "$2" != "client" ] && [ "$2" != "server" ]; then +if [ "$1" != "client" ] && [ "$1" != "server" ]; then echo "Invalid Mode: $2" > /dev/stderr exit 1 fi # Build -if [ "$1" = "native" ]; then - native_build "$2" -elif [ "$1" = "arm64" ]; then - arm64_build "$2" -elif [ "$1" = "arm" ]; then - arm_build "$2" +if [ "$2" = "arm" ]; then + arm_build "$1" else - echo "Invalid Architecture: $1" > /dev/stderr - exit 1 + build "$1" "$2" fi diff --git a/scripts/package.sh b/scripts/package.sh index 8541c0a3..a99cf141 100755 --- a/scripts/package.sh +++ b/scripts/package.sh @@ -26,7 +26,7 @@ package() { # Find And Package for dir in out/*; do - # Check If Directory + # Check If Directory Exists if [ -d "${dir}" ]; then # Check If Debian Package Exists pkg="$(basename ${dir})"