From 34efbab012d3cb873b64c0e12c7283d8df5d79ab Mon Sep 17 00:00:00 2001 From: lat9nq Date: Sat, 26 Sep 2020 16:55:32 -0400 Subject: [PATCH 1/2] linux-mingw: upgrade conan packages, conan GCC version Also use ownstuff ffmpeg, instead of the dead link from mingw-setup.sh mingw-setup.sh was thus removed as it only did one thing that could be reduced to a single command in the Dockerfile. --- linux-mingw/Dockerfile | 11 +++-- linux-mingw/default | 2 +- linux-mingw/mingw-setup.sh | 20 -------- linux-mingw/settings.yml | 95 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 102 insertions(+), 26 deletions(-) delete mode 100644 linux-mingw/mingw-setup.sh create mode 100644 linux-mingw/settings.yml diff --git a/linux-mingw/Dockerfile b/linux-mingw/Dockerfile index 4df14e6..914ac2f 100644 --- a/linux-mingw/Dockerfile +++ b/linux-mingw/Dockerfile @@ -22,6 +22,7 @@ RUN useradd -m -u 1027 -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \ cmake \ ninja \ mingw-w64-boost \ + mingw-w64-ffmpeg \ mingw-w64-gcc \ mingw-w64-lz4 \ mingw-w64-opus \ @@ -40,16 +41,16 @@ RUN useradd -m -u 1027 -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \ rm -rf /usr/share/man/ /tmp/ /var/tmp/ # Setup extra mingw work arounds -COPY mingw-setup.sh /tmp/ -RUN cd /tmp/ && bash -e mingw-setup.sh +RUN pip3 install pefile # Compatibility with the old Ubuntu MingW image RUN ln -s /usr/x86_64-w64-mingw32/lib/qt /usr/x86_64-w64-mingw32/lib/qt5 # Install conan and add the mingw cross compile as the default profile RUN pip3 install conan COPY --chown=yuzu:yuzu default /home/yuzu/.conan/profiles/ +COPY --chown=yuzu:yuzu settings.yml /home/yuzu/.conan/settings.yml USER 1027 # Install/build the missing libs (uses the default mingw cross compile profile) -RUN conan install catch2/2.11.0@ --build=missing && \ - conan install fmt/6.2.0@ --build=missing && \ - conan install nlohmann_json/3.7.3@ --build=missing +RUN conan install catch2/2.13.1@ --build=missing && \ + conan install fmt/7.0.3@ --build=missing && \ + conan install nlohmann_json/3.9.1@ --build=missing diff --git a/linux-mingw/default b/linux-mingw/default index fd66ef9..d60d297 100644 --- a/linux-mingw/default +++ b/linux-mingw/default @@ -21,6 +21,6 @@ arch=x86_64 compiler=gcc # Adjust to the gcc version of your MinGW package -compiler.version=9 +compiler.version=10.2 compiler.libcxx=libstdc++11 build_type=Release diff --git a/linux-mingw/mingw-setup.sh b/linux-mingw/mingw-setup.sh deleted file mode 100644 index 4538a3c..0000000 --- a/linux-mingw/mingw-setup.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/bash -e -# install pefile -pip3 install pefile - -# ffmpeg -FFMPEG_VER='4.1' -for i in 'shared' 'dev'; do - echo "Downloading ffmpeg (${i})..." - wget -q -c "https://ffmpeg.zeranoe.com/builds/win64/${i}/ffmpeg-${FFMPEG_VER}-win64-${i}.zip" - 7z x "ffmpeg-${FFMPEG_VER}-win64-${i}.zip" > /dev/null -done - -echo "Copying ffmpeg ${FFMPEG_VER} files to sysroot..." -cp -v "ffmpeg-${FFMPEG_VER}-win64-shared"/bin/*.dll /usr/x86_64-w64-mingw32/lib/ -cp -vr "ffmpeg-${FFMPEG_VER}-win64-dev"/include /usr/x86_64-w64-mingw32/ -cp -v "ffmpeg-${FFMPEG_VER}-win64-dev"/lib/*.{a,def} /usr/x86_64-w64-mingw32/lib/ - -# remove the directory -ABS_PATH="$(readlink -f $0)" -rm -rf "$(dirname ${ABS_PATH})" diff --git a/linux-mingw/settings.yml b/linux-mingw/settings.yml new file mode 100644 index 0000000..ad51f5f --- /dev/null +++ b/linux-mingw/settings.yml @@ -0,0 +1,95 @@ + +# Only for cross building, 'os_build/arch_build' is the system that runs Conan +os_build: [Windows, WindowsStore, Linux, Macos, FreeBSD, SunOS, AIX] +arch_build: [x86, x86_64, ppc32be, ppc32, ppc64le, ppc64, armv5el, armv5hf, armv6, armv7, armv7hf, armv7s, armv7k, armv8, armv8_32, armv8.3, sparc, sparcv9, mips, mips64, avr, s390, s390x, sh4le] + +# Only for building cross compilation tools, 'os_target/arch_target' is the system for +# which the tools generate code +os_target: [Windows, Linux, Macos, Android, iOS, watchOS, tvOS, FreeBSD, SunOS, AIX, Arduino, Neutrino] +arch_target: [x86, x86_64, ppc32be, ppc32, ppc64le, ppc64, armv5el, armv5hf, armv6, armv7, armv7hf, armv7s, armv7k, armv8, armv8_32, armv8.3, sparc, sparcv9, mips, mips64, avr, s390, s390x, asm.js, wasm, sh4le] + +# Rest of the settings are "host" settings: +# - For native building/cross building: Where the library/program will run. +# - For building cross compilation tools: Where the cross compiler will run. +os: + Windows: + subsystem: [None, cygwin, msys, msys2, wsl] + WindowsStore: + version: ["8.1", "10.0"] + WindowsCE: + platform: ANY + version: ["5.0", "6.0", "7.0", "8.0"] + Linux: + Macos: + version: [None, "10.6", "10.7", "10.8", "10.9", "10.10", "10.11", "10.12", "10.13", "10.14", "10.15"] + Android: + api_level: ANY + iOS: + version: ["7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "9.0", "9.1", "9.2", "9.3", "10.0", "10.1", "10.2", "10.3", "11.0", "11.1", "11.2", "11.3", "11.4", "12.0", "12.1", "12.2", "12.3", "12.4", "13.0", "13.1"] + watchOS: + version: ["4.0", "4.1", "4.2", "4.3", "5.0", "5.1", "5.2", "5.3", "6.0", "6.1"] + tvOS: + version: ["11.0", "11.1", "11.2", "11.3", "11.4", "12.0", "12.1", "12.2", "12.3", "12.4", "13.0"] + FreeBSD: + SunOS: + AIX: + Arduino: + board: ANY + Emscripten: + Neutrino: + version: ["6.4", "6.5", "6.6", "7.0"] +arch: [x86, x86_64, ppc32be, ppc32, ppc64le, ppc64, armv4, armv4i, armv5el, armv5hf, armv6, armv7, armv7hf, armv7s, armv7k, armv8, armv8_32, armv8.3, sparc, sparcv9, mips, mips64, avr, s390, s390x, asm.js, wasm, sh4le] +compiler: + sun-cc: + version: ["5.10", "5.11", "5.12", "5.13", "5.14", "5.15"] + threads: [None, posix] + libcxx: [libCstd, libstdcxx, libstlport, libstdc++] + gcc: &gcc + version: ["4.1", "4.4", "4.5", "4.6", "4.7", "4.8", "4.9", + "5", "5.1", "5.2", "5.3", "5.4", "5.5", + "6", "6.1", "6.2", "6.3", "6.4", "6.5", + "7", "7.1", "7.2", "7.3", "7.4", "7.5", + "8", "8.1", "8.2", "8.3", "8.4", + "9", "9.1", "9.2", "9.3", + "10", "10.1", "10.2"] + libcxx: [libstdc++, libstdc++11] + threads: [None, posix, win32] # Windows MinGW + exception: [None, dwarf2, sjlj, seh] # Windows MinGW + cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20] + Visual Studio: &visual_studio + runtime: [MD, MT, MTd, MDd] + version: ["8", "9", "10", "11", "12", "14", "15", "16"] + toolset: [None, v90, v100, v110, v110_xp, v120, v120_xp, + v140, v140_xp, v140_clang_c2, LLVM-vs2012, LLVM-vs2012_xp, + LLVM-vs2013, LLVM-vs2013_xp, LLVM-vs2014, LLVM-vs2014_xp, + LLVM-vs2017, LLVM-vs2017_xp, v141, v141_xp, v141_clang_c2, v142] + cppstd: [None, 14, 17, 20] + clang: + version: ["3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0", + "5.0", "6.0", "7.0", "7.1", + "8", "9", "10"] + libcxx: [libstdc++, libstdc++11, libc++, c++_shared, c++_static] + cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20] + apple-clang: &apple_clang + version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0", "9.1", "10.0", "11.0"] + libcxx: [libstdc++, libc++] + cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20] + intel: + version: ["11", "12", "13", "14", "15", "16", "17", "18", "19", "19.1"] + base: + gcc: + <<: *gcc + threads: [None] + exception: [None] + Visual Studio: + <<: *visual_studio + apple-clang: + <<: *apple_clang + qcc: + version: ["4.4", "5.4"] + libcxx: [cxx, gpp, cpp, cpp-ne, accp, acpp-ne, ecpp, ecpp-ne] + +build_type: [None, Debug, Release, RelWithDebInfo, MinSizeRel] + + +cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20] # Deprecated, use compiler.cppstd From 4439b95fb1d9ef7ed25e2bcb09ae5284b9e39dd4 Mon Sep 17 00:00:00 2001 From: lat9nq Date: Sun, 27 Sep 2020 15:23:19 -0400 Subject: [PATCH 2/2] linux-fresh: add avcodec, avutil, and swscale library headers --- linux-fresh/Dockerfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/linux-fresh/Dockerfile b/linux-fresh/Dockerfile index cb0d403..297e38c 100644 --- a/linux-fresh/Dockerfile +++ b/linux-fresh/Dockerfile @@ -24,10 +24,13 @@ RUN useradd -m -u 1027 -s /bin/bash yuzu && \ git \ ccache \ cmake \ + libavcodec-dev \ + libavutil-dev \ + libswscale-dev \ ninja-build && \ pip3 install conan && \ apt-get clean autoclean && apt-get autoremove --yes && rm -rf /var/lib/apt /var/lib/dpkg /var/lib/cache /var/lib/log USER 1027 -RUN conan install catch2/2.11.0@ -s compiler.libcxx=libstdc++11 --build=missing && \ - conan install fmt/6.2.0@ -s compiler.libcxx=libstdc++11 --build=missing && \ - conan install nlohmann_json/3.7.3@ -s compiler.libcxx=libstdc++11 --build=missing +RUN conan install catch2/2.13.0@ -s compiler.libcxx=libstdc++11 --build=missing && \ + conan install fmt/7.0.3@ -s compiler.libcxx=libstdc++11 --build=missing && \ + conan install nlohmann_json/3.9.1@ -s compiler.libcxx=libstdc++11 --build=missing