diff --git a/CMakeLists.txt b/CMakeLists.txt index dbe65a87..5eaf559d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -363,8 +363,10 @@ if(MSYS AND CMAKE_CXX_COMPILER_ID STREQUAL Clang) set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH}" CACHE INTERNAL "prefix search path for find_XXXX" FORCE) endif() -# Add support for Homebrew, MacPorts and Fink on OS X -if(APPLE) +# Add support for Homebrew, MacPorts and Fink on macOS +option(DISABLE_MACOS_PACKAGE_MANAGERS "Set to TRUE to disable support for macOS Homebrew, MacPorts and Fink." FALSE) + +if(APPLE AND NOT DISABLE_MACOS_PACKAGE_MANAGERS) include(MacPackageManagers) endif() @@ -609,10 +611,10 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL Clang AND NOT MSVC # common optimization flags if(NOT (APPLE AND CMAKE_CXX_COMPILER_ID STREQUAL Clang AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.3)) - set(MY_C_OPT_FLAGS ${MY_C_OPT_FLAGS} -O2 -fomit-frame-pointer ${LTO_FLAGS}) + set(MY_C_OPT_FLAGS ${MY_C_OPT_FLAGS} -Ofast -fomit-frame-pointer ${LTO_FLAGS}) else() # LTO and -fomit-frame-pointer generate broken binaries on Lion with XCode 4.2 tools - set(MY_C_OPT_FLAGS ${MY_C_OPT_FLAGS} -O2) + set(MY_C_OPT_FLAGS ${MY_C_OPT_FLAGS} -Ofast) endif() # Common flags. @@ -620,15 +622,22 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL Clang AND NOT MSVC include(CheckCXXCompilerFlag) - # Optimize for Core2 and tune for Rocketlake on macOS and Zen3 for the rest - # on X86_64. + # Require and optimize for Core2 level support, tune for generic. if(X86_64) set(MY_C_FLAGS ${MY_C_FLAGS} -march=core2 -mtune=generic) - # Optimize for pentium-mmx and tune for Core2 on X86_32. + # Optimize for pentium-mmx and tune for generic for older XP builds. elseif(X86_32) - set(MY_C_FLAGS ${MY_C_FLAGS} -march=pentium-mmx -mtune=core2) + set(MY_C_FLAGS ${MY_C_FLAGS} -march=pentium-mmx -mtune=generic) endif() + # Check for -fopenmp=libomp on clang. + # if(CMAKE_CXX_COMPILER_ID STREQUAL Clang) + # check_cxx_compiler_flag("-fopenmp=libomp" FOPENMP_LIBOMP_FLAG) + # if(FOPENMP_LIBOMP_FLAG) + # set(MY_C_FLAGS ${MY_C_FLAGS} -fopenmp=libomp) + # endif() + # endif() + # common debug flags if(CMAKE_COMPILER_IS_GNUCXX) set(MY_C_DBG_FLAGS -ggdb3 -Og -fno-omit-frame-pointer) diff --git a/cmake/FindSFML.cmake b/cmake/FindSFML.cmake index fe84c961..b99d485b 100644 --- a/cmake/FindSFML.cmake +++ b/cmake/FindSFML.cmake @@ -89,9 +89,9 @@ if(SFML_FIND_VERSION AND SFML_INCLUDE_DIR) set(SFML_CONFIG_HPP_INPUT "${SFML_INCLUDE_DIR}/SFML/Config.hpp") endif() FILE(READ "${SFML_CONFIG_HPP_INPUT}" SFML_CONFIG_HPP_CONTENTS) - STRING(REGEX REPLACE ".*#define SFML_VERSION_MAJOR ([0-9]+).*" "\\1" SFML_VERSION_MAJOR "${SFML_CONFIG_HPP_CONTENTS}") - STRING(REGEX REPLACE ".*#define SFML_VERSION_MINOR ([0-9]+).*" "\\1" SFML_VERSION_MINOR "${SFML_CONFIG_HPP_CONTENTS}") - STRING(REGEX REPLACE ".*#define SFML_VERSION_PATCH ([0-9]+).*" "\\1" SFML_VERSION_PATCH "${SFML_CONFIG_HPP_CONTENTS}") + STRING(REGEX REPLACE ".*#define *SFML_VERSION_MAJOR *([0-9]+).*" "\\1" SFML_VERSION_MAJOR "${SFML_CONFIG_HPP_CONTENTS}") + STRING(REGEX REPLACE ".*#define *SFML_VERSION_MINOR *([0-9]+).*" "\\1" SFML_VERSION_MINOR "${SFML_CONFIG_HPP_CONTENTS}") + STRING(REGEX REPLACE ".*#define *SFML_VERSION_PATCH *([0-9]+).*" "\\1" SFML_VERSION_PATCH "${SFML_CONFIG_HPP_CONTENTS}") if (NOT "${SFML_VERSION_PATCH}" MATCHES "^[0-9]+$") set(SFML_VERSION_PATCH 0) endif() diff --git a/src/wx/CMakeLists.txt b/src/wx/CMakeLists.txt index ef7ba429..aab05525 100644 --- a/src/wx/CMakeLists.txt +++ b/src/wx/CMakeLists.txt @@ -946,8 +946,8 @@ if(NOT TRANSLATIONS_ONLY) if(APPLE AND ENABLE_ONLINEUPDATES) include(FetchContent) FetchContent_Declare(Sparkle - URL "https://github.com/sparkle-project/Sparkle/releases/download/1.23.0/Sparkle-1.23.0.tar.bz2" - URL_HASH SHA512=fa7e9736d4319bf839cd5e11177d1ddac78c38048be7e59b5c94ea76c9ffc02919dd17890295d21b7f0e35afe0ec9aba9ba36912caed6e5017420345f9f66682 + URL "https://github.com/sparkle-project/Sparkle/releases/download/2.3.0-beta.2/Sparkle-2.3.0-beta.2.tar.xz" + URL_HASH SHA256=6875388aae23c1705c3956c62a9c967f4b788bc4f1dad93ab5645bc6096ef13b DOWNLOAD_EXTRACT_TIMESTAMP TRUE ) FetchContent_MakeAvailable(Sparkle) @@ -963,23 +963,25 @@ if(NOT TRANSLATIONS_ONLY) ) set(APPCAST_URL "https://data.vba-m.com/appcast.xml") - set(CCS1 mkdir -p ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Frameworks) + set(CCS1 rm -rf ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Frameworks/Sparkle.framework) + set(CCS2 mkdir -p ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Frameworks) # The following commands *should* be run to make sure Sparkle is not going - # to bug randomly (version=1.23) - set(CCS2 cp -a ${SPARKLE_FRAMEWORK} ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Frameworks/Sparkle.framework) - set(CCS3 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist CFBundleVersion -string "${VERSION}") - set(CCS4 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist CFBundleShortVersionString -string "${VERSION}") - set(CCS5 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUEnableAutomaticChecks -bool YES) - #set(CCS6 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUPublicEDKey -string "${PUBLIC_KEY}") - set(CCS7 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUFeedURL -string "${APPCAST_URL}") + # to bug randomly. + set(CCS3 cp -a ${SPARKLE_FRAMEWORK} ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Frameworks/Sparkle.framework) + set(CCS4 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist CFBundleVersion -string "${VERSION}") + set(CCS5 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist CFBundleShortVersionString -string "${VERSION}") + set(CCS6 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUEnableAutomaticChecks -bool YES) + #set(CCS7 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUPublicEDKey -string "${PUBLIC_KEY}") + set(CCS8 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUFeedURL -string "${APPCAST_URL}") add_custom_command(TARGET visualboyadvance-m POST_BUILD COMMAND ${CCS1} COMMAND ${CCS2} COMMAND ${CCS3} COMMAND ${CCS4} COMMAND ${CCS5} - #COMMAND ${CCS6} - COMMAND ${CCS7} + COMMAND ${CCS6} + #COMMAND ${CCS7} + COMMAND ${CCS8} ) TARGET_LINK_LIBRARIES(visualboyadvance-m ${SPARKLE_FRAMEWORK}) @@ -1218,7 +1220,7 @@ if(NOT TRANSLATIONS_ONLY) if(CMAKE_BUILD_TYPE MATCHES "^(Release|MinSizeRel)$") add_custom_command( TARGET visualboyadvance-m POST_BUILD - COMMAND ${CMAKE_SOURCE_DIR}/tools/osx/third_party_libs_tool ./visualboyadvance-m.app + COMMAND ${CMAKE_SOURCE_DIR}/tools/macOS/third_party_libs_tool ./visualboyadvance-m.app WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" ) diff --git a/tools/linux/builder b/tools/Linux/builder similarity index 100% rename from tools/linux/builder rename to tools/Linux/builder diff --git a/tools/unix/builder b/tools/UNIX/builder similarity index 100% rename from tools/unix/builder rename to tools/UNIX/builder diff --git a/tools/win/cygwin-cross-builder b/tools/Windows/cygwin-cross-builder similarity index 100% rename from tools/win/cygwin-cross-builder rename to tools/Windows/cygwin-cross-builder diff --git a/tools/win/linux-cross-builder b/tools/Windows/linux-cross-builder similarity index 100% rename from tools/win/linux-cross-builder rename to tools/Windows/linux-cross-builder diff --git a/tools/win/mac-cross-builder b/tools/Windows/mac-cross-builder similarity index 100% rename from tools/win/mac-cross-builder rename to tools/Windows/mac-cross-builder diff --git a/tools/win/msys2-builder b/tools/Windows/msys2-builder similarity index 100% rename from tools/win/msys2-builder rename to tools/Windows/msys2-builder diff --git a/tools/builder/mingw-cross.sh b/tools/builder/MINGW-cross.sh similarity index 100% rename from tools/builder/mingw-cross.sh rename to tools/builder/MINGW-cross.sh diff --git a/tools/builder/mingw.sh b/tools/builder/MINGW.sh similarity index 100% rename from tools/builder/mingw.sh rename to tools/builder/MINGW.sh diff --git a/tools/builder/unix.sh b/tools/builder/UNIX.sh similarity index 100% rename from tools/builder/unix.sh rename to tools/builder/UNIX.sh diff --git a/tools/builder/core.sh b/tools/builder/core.sh index ca95cecb..52a54824 100644 --- a/tools/builder/core.sh +++ b/tools/builder/core.sh @@ -40,11 +40,11 @@ case "\$CC" in ;; esac -export CPPFLAGS="$CPPFLAGS${CPPFLAGS:+ }-I\$BUILD_ROOT/root/include -DCURL_STATICLIB -DGRAPHITE2_STATIC" -export CFLAGS="$CFLAGS${CFLAGS:+ }-fPIC -I\$BUILD_ROOT/root/include -L\$BUILD_ROOT/root/lib -pthread -lm -DCURL_STATICLIB -DGRAPHITE2_STATIC" -export CXXFLAGS="$CXXFLAGS${CXXFLAGS:+ }-fPIC -I\$BUILD_ROOT/root/include -L\$BUILD_ROOT/root/lib -std=gnu++17 -fpermissive -pthread -lm -DCURL_STATICLIB -DGRAPHITE2_STATIC" -export OBJCXXFLAGS="$OBJCXXFLAGS${OBJCXXFLAGS:+ }-fPIC -I\$BUILD_ROOT/root/include -L\$BUILD_ROOT/root/lib -std=gnu++17 -fpermissive -pthread -lm -DCURL_STATICLIB -DGRAPHITE2_STATIC" -export LDFLAGS="$LDFLAGS${LDFLAGS:+ }-fPIC -L\$BUILD_ROOT/root/lib -pthread -lm" +export CPPFLAGS="$CPPFLAGS${CPPFLAGS:+ }-I\$BUILD_ROOT/root/include -DCURL_STATICLIB -DGRAPHITE2_STATIC -DFLOAT_APPROX" +export CFLAGS="$CFLAGS${CFLAGS:+ }-fPIC -I\$BUILD_ROOT/root/include -L\$BUILD_ROOT/root/lib -pthread -lm -DCURL_STATICLIB -DGRAPHITE2_STATIC -DFLOAT_APPROX -Ofast -march=core2 -mtune=generic -pipe" +export CXXFLAGS="$CXXFLAGS${CXXFLAGS:+ }-fPIC -I\$BUILD_ROOT/root/include -L\$BUILD_ROOT/root/lib -std=gnu++17 -fpermissive -pthread -lm -DCURL_STATICLIB -DGRAPHITE2_STATIC -DFLOAT_APPROX -Ofast -march=core2 -mtune=generic -pipe" +export OBJCXXFLAGS="$OBJCXXFLAGS${OBJCXXFLAGS:+ }-fPIC -I\$BUILD_ROOT/root/include -L\$BUILD_ROOT/root/lib -std=gnu++17 -fpermissive -pthread -lm -DCURL_STATICLIB -DGRAPHITE2_STATIC -DFLOAT_APPROX -Ofast -march=core2 -mtune=generic -pipe" +export LDFLAGS="$LDFLAGS${LDFLAGS:+ }-fPIC -L\$BUILD_ROOT/root/lib -pthread -lm -Ofast -march=core2 -mtune=generic -pipe" export STRIP="\${STRIP:-strip}" if [ -z "\$OPENMP" ] && echo "\$CC" | grep -Eq gcc; then @@ -58,6 +58,7 @@ fi export CMAKE_PREFIX_PATH="\${CMAKE_PREFIX_PATH:-\$BUILD_ROOT/root}" export PKG_CONFIG_PATH="\$BUILD_ROOT/root/lib/pkgconfig:\$BUILD_ROOT/root/share/pkgconfig" +export LIBRARY_PATH="\$BUILD_ROOT/root/lib" export LD_LIBRARY_PATH="\$BUILD_ROOT/root/lib" export PERL_MM_USE_DEFAULT=1 @@ -103,111 +104,115 @@ PRE_BUILD_DISTS="$PRE_BUILD_DISTS bzip2 xz unzip" DISTS=$DISTS' bzip2 ftp://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz lib/libbz2.a - xz https://tukaani.org/xz/xz-5.2.4.tar.gz lib/liblzma.a + xz https://tukaani.org/xz/xz-5.2.6.tar.gz lib/liblzma.a unzip https://downloads.sourceforge.net/project/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz bin/unzip - zlib https://www.zlib.net/zlib-1.2.11.tar.gz lib/libz.a - ccache https://www.samba.org/ftp/ccache/ccache-3.4.3.tar.xz bin/ccache + zlib-ng https://github.com/zlib-ng/zlib-ng/archive/ce01b1e41da298334f8214389cc9369540a7560f.tar.gz lib/libz.a zip https://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz bin/zip - openssl https://www.openssl.org/source/openssl-1.1.1f.tar.gz lib/libssl.a - curl https://curl.haxx.se/download/curl-7.65.3.tar.xz lib/libcurl.a - cmake https://github.com/Kitware/CMake/releases/download/v3.19.4/cmake-3.19.4.tar.gz bin/cmake + openssl https://www.openssl.org/source/openssl-1.1.1g.tar.gz lib/libssl.a + curl https://curl.haxx.se/download/curl-7.85.0.tar.xz lib/libcurl.a + cmake https://github.com/Kitware/CMake/releases/download/v3.24.1/cmake-3.24.1.tar.gz bin/cmake + zstd https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz lib/libzstd.a + hiredis https://github.com/redis/hiredis/archive/refs/tags/v1.0.2.tar.gz lib/libhiredis.a + ccache https://github.com/ccache/ccache/releases/download/v4.6.3/ccache-4.6.3.tar.xz bin/ccache m4 http://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz bin/m4 - autoconf https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz bin/autoconf - autoconf-archive http://mirror.team-cymru.org/gnu/autoconf-archive/autoconf-archive-2017.09.28.tar.xz share/aclocal/ax_check_gl.m4 + autoconf https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz bin/autoconf + autoconf-archive http://gnu.askapache.com/autoconf-archive/autoconf-archive-2022.09.03.tar.xz share/aclocal/ax_check_gl.m4 automake https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz bin/automake - libtool https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz bin/libtool + libtool https://ftp.gnu.org/gnu/libtool/libtool-2.4.7.tar.xz bin/libtool xorg-macros https://www.x.org/archive//individual/util/util-macros-1.19.1.tar.bz2 share/pkgconfig/xorg-macros.pc - help2man https://ftp.gnu.org/gnu/help2man/help2man-1.47.5.tar.xz bin/help2man - libiconv https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz lib/libiconv.a + help2man https://ftp.gnu.org/gnu/help2man/help2man-1.49.2.tar.xz bin/help2man + libiconv https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz lib/libiconv.a gettext http://ftp.gnu.org/pub/gnu/gettext/gettext-0.21.tar.xz lib/libintl.a getopt https://fossies.org/linux/misc/getopt-1.1.6.tar.gz bin/getopt - gsed http://ftp.gnu.org/gnu/sed/sed-4.4.tar.xz bin/sed - bison https://ftp.gnu.org/gnu/bison/bison-3.0.5.tar.xz bin/bison - texinfo http://ftp.gnu.org/gnu/texinfo/texinfo-6.5.tar.xz bin/makeinfo + gsed http://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz bin/sed + bison https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz bin/bison + texinfo http://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz bin/makeinfo flex-2.6.3 https://github.com/westes/flex/releases/download/v2.6.3/flex-2.6.3.tar.gz bin/flex - flex https://github.com/westes/flex/archive/e7d45afc6aeb49745f17d21ddba4848e0c0118fc.tar.gz bin/flex + flex https://github.com/westes/flex/archive/ea6493d9b6f1915ba096160df666637a6e1b3f20.tar.gz bin/flex xmlto https://releases.pagure.org/xmlto/xmlto-0.0.28.tar.bz2 bin/xmlto gperf http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz bin/gperf - libicu https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz lib/libicud*t*.a - pkgconfig https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz bin/pkg-config - nasm https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.xz bin/nasm + libicu https://github.com/unicode-org/icu/releases/download/release-71-1/icu4c-71_1-src.tgz lib/libicud*t*.a + pkgconf https://github.com/pkgconf/pkgconf/archive/refs/tags/pkgconf-1.9.3.tar.gz bin/pkgconf + nasm https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.xz bin/nasm yasm http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz bin/yasm - pcre https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.bz2 lib/libpcre.a - libffi ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz lib/libffi.a + pcre https://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.bz2 lib/libpcre.a + pcre2 https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.bz2 lib/libpcre2-posix.a + libffi https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz lib/libffi.a c2man https://github.com/fribidi/c2man/archive/577ed4095383ef5284225d45709e6b5f0598a064.tar.gz bin/c2man - libxml2 ftp://xmlsoft.org/libxml2/libxml2-2.9.12.tar.gz lib/libxml2.a - libxslt https://github.com/GNOME/libxslt/archive/v1.1.33-rc2.tar.gz lib/libxslt.a + libxml2 https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.10.2/libxml2-v2.10.2.tar.bz2 lib/libxml2.a + libxslt https://gitlab.gnome.org/GNOME/libxslt/-/archive/v1.1.37/libxslt-v1.1.37.tar.bz2 lib/libxslt.a XML-NamespaceSupport https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz perl5/lib/perl5/XML/NamespaceSupport.pm XML-SAX-Base https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz perl5/lib/perl5/XML/SAX/Base.pm - XML-SAX https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-0.99.tar.gz perl5/lib/perl5/XML/SAX.pm + XML-SAX https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz perl5/lib/perl5/XML/SAX.pm docbook2x https://downloads.sourceforge.net/project/docbook2x/docbook2x/0.8.8/docbook2X-0.8.8.tar.gz bin/docbook2man - expat https://github.com/libexpat/libexpat/archive/R_2_2_4.tar.gz lib/libexpat.a + expat https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.xz lib/libexpat.a libpng https://download.sourceforge.net/libpng/libpng-1.6.37.tar.xz lib/libpng.a - libjpeg-turbo https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.4.tar.gz lib/libjpeg.a - libtiff http://download.osgeo.org/libtiff/tiff-4.1.0.tar.gz lib/libtiff.a -# libcroco http://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.12.tar.xz lib/libcroco-0.6.a + libjpeg-turbo https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.1.4.tar.gz lib/libjpeg.a + libtiff https://download.osgeo.org/libtiff/tiff-4.4.0.tar.xz lib/libtiff.a +# libcroco http://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.13.tar.xz lib/libcroco-0.6.a libuuid https://downloads.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz lib/libuuid.a - freetype http://download.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.bz2 lib/libfreetype.a + freetype http://download.savannah.gnu.org/releases/freetype/freetype-2.12.1.tar.xz lib/libfreetype.a fontconfig https://freedesktop.org/software/fontconfig/release/fontconfig-2.13.1.tar.bz2 lib/libfontconfig.a - libgd https://github.com/libgd/libgd/releases/download/gd-2.2.5/libgd-2.2.5.tar.xz lib/libgd.a - dejavu https://downloads.sourceforge.net/project/dejavu/dejavu/2.37/dejavu-fonts-ttf-2.37.tar.bz2 share/fonts/dejavu/DejaVuSansMono.ttf - liberation https://releases.pagure.org/liberation-fonts/liberation-fonts-ttf-2.00.1.tar.gz share/fonts/liberation/LiberationMono-Regular.ttf - urw http://git.ghostscript.com/?p=urw-core35-fonts.git;a=snapshot;h=91edd6ece36e84a1c6d63a1cf63a1a6d84bd443a;sf=tgz share/fonts/urw/URWBookman-Light.ttf - graphviz https://gitlab.com/graphviz/graphviz/repository/archive.tar.bz2?ref=4bf0ec9b0f8320fd7ba63617e9207c1e72f816b7 bin/dot_static + libgd https://github.com/libgd/libgd/releases/download/gd-2.3.3/libgd-2.3.3.tar.xz lib/libgd.a + dejavu http://sourceforge.net/projects/dejavu/files/dejavu/2.37/dejavu-fonts-ttf-2.37.tar.bz2 share/fonts/dejavu/DejaVuSansMono.ttf + liberation https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz share/fonts/liberation/LiberationMono-Regular.ttf + urw https://github.com/ArtifexSoftware/urw-base35-fonts/archive/refs/tags/20200910.tar.gz share/fonts/urw/URWBookman-Light.ttf + graphviz https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/5.0.1/graphviz-5.0.1.tar.xz bin/dot_static docbook4.2 http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip share/xml/docbook/schema/dtd/4.2/catalog.xml docbook4.1.2 http://www.docbook.org/xml/4.1.2/docbkx412.zip share/xml/docbook/schema/dtd/4.1.2/catalog.xml docbook4.3 http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip share/xml/docbook/schema/dtd/4.3/catalog.xml docbook4.4 http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip share/xml/docbook/schema/dtd/4.4/catalog.xml docbook4.5 http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip share/xml/docbook/schema/dtd/4.5/catalog.xml - docbook5.0 http://www.docbook.org/xml/5.0/docbook-5.0.zip share/xml/docbook/schema/dtd/5.0/catalog.xml + docbook5.0.1 http://www.docbook.org/xml/5.0.1/docbook-5.0.1.zip share/xml/docbook/schema/dtd/5.0.1/catalog.xml + docbook5.1 https://docbook.org/xml/5.1/docbook-v5.1-os.zip share/xml/docbook/schema/dtd/5.0.1/catalog.xml docbook-xsl https://downloads.sourceforge.net/project/docbook/docbook-xsl/1.79.1/docbook-xsl-1.79.1.tar.bz2 share/xml/docbook/stylesheet/docbook-xsl/catalog.xml docbook-xsl-ns https://downloads.sourceforge.net/project/docbook/docbook-xsl-ns/1.79.1/docbook-xsl-ns-1.79.1.tar.bz2 share/xml/docbook/stylesheet/docbook-xsl-ns/catalog.xml - python2 https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tar.xz bin/python - python3 https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz bin/python3 - swig https://downloads.sourceforge.net/project/swig/swig/swig-3.0.12/swig-3.0.12.tar.gz bin/swig - libxml2-python ftp://xmlsoft.org/libxml2/libxml2-2.9.12.tar.gz lib/python2.7/site-packages/libxml2.py - doxygen https://downloads.sourceforge.net/project/doxygen/rel-1.8.14/doxygen-1.8.14.src.tar.gz bin/doxygen - bakefile https://github.com/vslavik/bakefile/archive/33c270a565ba0954cca9611b2443593b2e9e698a.tar.gz bin/bakefile_gen - XML-Parser https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz perl5/man/man3/XML*Parser.3* + python2 https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz bin/python + python3 https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tar.xz bin/python3 + swig https://sourceforge.net/projects/swig/files/swig/swig-4.0.2/swig-4.0.2.tar.gz/download bin/swig + doxygen https://www.doxygen.nl/files/doxygen-1.9.5.src.tar.gz bin/doxygen + bakefile https://github.com/vslavik/bakefile/archive/7a218d89d860f01d64b558b7e198bb0cbc538511.tar.gz bin/bakefile_gen + XML-Parser https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz perl5/man/man3/XML*Parser.3* intltool https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz bin/intltoolize - ninja https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz bin/ninja - meson https://github.com/mesonbuild/meson/releases/download/0.51.2/meson-0.51.2.tar.gz bin/meson - glib https://github.com/GNOME/glib/archive/2.62.2.tar.gz lib/libglib-2.0.a - libgpg-error https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.41.tar.bz2 lib/libgpg-error.a - libgcrypt https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.5.tar.bz2 lib/libgcrypt.a - libsecret http://ftp.gnome.org/pub/gnome/sources/libsecret/0.19/libsecret-0.19.1.tar.xz lib/libsecret-1.a - sdl2 https://www.libsdl.org/release/SDL2-2.0.10.tar.gz lib/libSDL2.a - flac https://ftp.osuosl.org/pub/xiph/releases/flac/flac-1.3.3.tar.xz lib/libFLAC.a - libogg http://downloads.xiph.org/releases/ogg/libogg-1.3.4.tar.xz lib/libogg.a - libvorbis https://github.com/xiph/vorbis/archive/v1.3.6.tar.gz lib/libvorbis.a - harfbuzz https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-1.7.5.tar.bz2 lib/libharfbuzz.a - sfml https://github.com/SFML/SFML/archive/0337568846584fffcee38036880f9f48888c8b7c.tar.gz lib/libsfml-system-s.a - shared-mime-info http://freedesktop.org/~hadess/shared-mime-info-1.9.tar.xz bin/update-mime-database - wxwidgets https://github.com/wxWidgets/wxWidgets/archive/9cc0c9a082e0c3b2a4c14e3c6811de0e3a1a3799.tar.gz lib/libwx_baseu-3.1*.a - graphite2 https://github.com/silnrsi/graphite/archive/ce0e793f22127d7ba6422d440bd83b58f864ef7e.tar.gz lib/libgraphite2.a - xvidcore http://downloads.xvid.org/downloads/xvidcore-1.3.5.tar.bz2 lib/libxvidcore.a - fribidi https://github.com/fribidi/fribidi/releases/download/v1.0.1/fribidi-1.0.1.tar.bz2 lib/libfribidi.a - libgsm http://www.quut.com/gsm/gsm-1.0.18.tar.gz lib/libgsm.a - libmodplug https://github.com/Konstanty/libmodplug/archive/5a39f5913d07ba3e61d8d5afdba00b70165da81d.tar.gz lib/libmodplug.a - libopencore-amrnb https://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.5.tar.gz lib/libopencore-amrnb.a + ninja https://github.com/ninja-build/ninja/archive/v1.11.1.tar.gz bin/ninja + meson https://github.com/mesonbuild/meson/releases/download/0.63.2/meson-0.63.2.tar.gz bin/meson + + glib https://gitlab.gnome.org/GNOME/glib/-/archive/51251940640b217ed2f1bf83ce7560cecef66bb7/glib-51251940640b217ed2f1bf83ce7560cecef66bb7.tar.bz2 lib/libglib-2.0.a + + libgpg-error https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.45.tar.bz2 lib/libgpg-error.a + libgcrypt https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.10.1.tar.bz2 lib/libgcrypt.a + libsecret https://gitlab.gnome.org/GNOME/libsecret/-/archive/0.20.5/libsecret-0.20.5.tar.bz2 lib/libsecret-1.a + sdl2 https://github.com/libsdl-org/SDL/releases/download/release-2.24.0/SDL2-2.24.0.tar.gz lib/libSDL2.a + flac https://ftp.osuosl.org/pub/xiph/releases/flac/flac-1.3.4.tar.xz lib/libFLAC.a + libogg http://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.xz lib/libogg.a + libvorbis http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz lib/libvorbis.a + harfbuzz https://github.com/harfbuzz/harfbuzz/releases/download/5.1.0/harfbuzz-5.1.0.tar.xz lib/libharfbuzz.a + sfml https://github.com/SFML/SFML/releases/download/2.5.1/SFML-2.5.1-sources.zip lib/libsfml-system-s.a + shared-mime-info https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.2/shared-mime-info-2.2.tar.bz2 bin/update-mime-database + wxwidgets https://github.com/wxWidgets/wxWidgets/archive/31720e1ee102b195265203f9e9886929bff0528d.tar.gz lib/libwx_baseu-3.*.a + graphite2 https://github.com/silnrsi/graphite/archive/425da3d08926b9cf321fc0014dfa979c24d2cf64.tar.gz lib/libgraphite2.a + xvidcore https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.bz2 lib/libxvidcore.a + fribidi https://github.com/fribidi/fribidi/releases/download/v1.0.12/fribidi-1.0.12.tar.xz lib/libfribidi.a + libgsm https://www.quut.com/gsm/gsm-1.0.22.tar.gz lib/libgsm.a + libmodplug https://github.com/Konstanty/libmodplug/archive/d1b97ed0020bc620a059d3675d1854b40bd2608d.tar.gz lib/libmodplug.a + libopencore-amrnb https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.6.tar.gz/download lib/libopencore-amrnb.a opus https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz lib/libopus.a - snappy https://github.com/google/snappy/archive/1.1.7.tar.gz lib/libsnappy.a + snappy https://github.com/google/snappy/archive/af720f9a3b2c831f173b6074961737516f2d3a46.tar.gz lib/libsnappy.a libsoxr https://downloads.sourceforge.net/project/soxr/soxr-0.1.3-Source.tar.xz lib/libsoxr.a - speex http://downloads.us.xiph.org/releases/speex/speex-1.2.0.tar.gz lib/libspeex.a + speex http://downloads.xiph.org/releases/speex/speex-1.2.1.tar.gz lib/libspeex.a libtheora https://github.com/Distrotech/libtheora/archive/17b02c8c564475bb812e540b551219fc42b1f75f.tar.gz lib/libtheora.a - vidstab https://github.com/georgmartius/vid.stab/archive/v1.1.0.tar.gz lib/libvidstab.a - libvo-amrwbenc https://github.com/mstorsjo/vo-amrwbenc/archive/v0.1.3.tar.gz lib/libvo-amrwbenc.a + vidstab https://github.com/georgmartius/vid.stab/archive/90c76aca2cb06c3ff6f7476a7cd6851b39436656.tar.gz lib/libvidstab.a + libvo-amrwbenc https://github.com/mstorsjo/vo-amrwbenc/archive/3b3fcd0d250948e74cd67e7ea81af431ab3928f9.tar.gz lib/libvo-amrwbenc.a mp3lame https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz lib/libmp3lame.a - libass https://github.com/libass/libass/releases/download/0.14.0/libass-0.14.0.tar.xz lib/libass.a - libbluray https://download.videolan.org/pub/videolan/libbluray/1.1.2/libbluray-1.1.2.tar.bz2 lib/libbluray.a - libvpx https://github.com/webmproject/libvpx/archive/v1.8.1.tar.gz lib/libvpx.a - libwavpack http://www.wavpack.com/wavpack-5.1.0.tar.bz2 lib/libwavpack.a - libx264 https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20190913-2245-stable.tar.bz2 lib/libx264.a + libass https://github.com/libass/libass/releases/download/0.16.0/libass-0.16.0.tar.xz lib/libass.a + libbluray https://download.videolan.org/pub/videolan/libbluray/1.3.2/libbluray-1.3.2.tar.bz2 lib/libbluray.a + libvpx https://github.com/webmproject/libvpx/archive/refs/tags/v1.12.0.tar.gz lib/libvpx.a + libx264 https://code.videolan.org/videolan/x264/-/archive/f7074e12d90de71f22aebd5040b8c6d31ca8f926/x264-f7074e12d90de71f22aebd5040b8c6d31ca8f926.tar.bz2 lib/libx264.a libx265 https://github.com/videolan/x265/archive/3.4.tar.gz lib/libx265.a - libxavs https://github.com/Distrotech/xavs/archive/distrotech-xavs-git.tar.gz lib/libxavs.a - libzmq https://github.com/zeromq/libzmq/releases/download/v4.2.2/zeromq-4.2.2.tar.gz lib/libzmq.a + libxavs https://github.com/Distrotech/xavs/archive/8300fbf4918bca2af1af2aee6a337815e90b51e1.tar.gz lib/libxavs.a + libzmq https://github.com/zeromq/libzmq/releases/download/v4.3.4/zeromq-4.3.4.tar.gz lib/libzmq.a # libzvbi https://downloads.sourceforge.net/project/zapping/zvbi/0.2.35/zvbi-0.2.35.tar.bz2 lib/libzvbi.a - ffmpeg https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.bz2 lib/libavformat.a + ffmpeg http://ffmpeg.org/releases/ffmpeg-5.1.1.tar.xz lib/libavformat.a ' BUILD_FFMPEG=1 @@ -215,10 +220,10 @@ BUILD_FFMPEG=1 FFMPEG_DISTS=' graphite2 xvidcore fribidi libgsm libmodplug libopencore-amrnb opus snappy libsoxr speex libtheora vidstab libvo-amrwbenc mp3lame libass libbluray - libvpx libwavpack libx264 libx265 libxavs libzmq libzvbi ffmpeg + libvpx libx264 libx265 libxavs libzmq libzvbi ffmpeg ' -PROJECT_ARGS="-DwxWidgets_CONFIG_OPTIONS='--prefix=$BUILD_ROOT/root' -DBUILD_TESTING=NO" +PROJECT_ARGS="-DDISABLE_MACOS_PACKAGE_MANAGERS=TRUE -DwxWidgets_CONFIG_EXECUTABLE='$BUILD_ROOT/root/bin/wx-config' -DwxWidgets_CONFIG_OPTIONS='--prefix=$BUILD_ROOT/root' -DBUILD_TESTING=NO" : ${PATH_SEP:=':'} @@ -238,11 +243,10 @@ fi export CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-shared --enable-static $CONFIGURE_INSTALL_ARGS" export CMAKE_ARGS="$CMAKE_BASE_ARGS $CMAKE_ARGS $CMAKE_INSTALL_ARGS" -export MESON_ARGS="$MESON_BASE_ARGS --buildtype release --default-library static -Dintrospection=false $MESON_INSTALL_ARGS" +export MESON_ARGS="$MESON_BASE_ARGS --buildtype release --default-library static $MESON_INSTALL_ARGS" DIST_PATCHES=$DIST_PATCHES' docbook2x https://gist.githubusercontent.com/rkitover/0b5dcc95a0703a9b0e0e7eb6d325a98e/raw/e256d2fad8d19633ac8abe02a0d1e119063d1fd9/docbook2x.patch - ccache https://gist.githubusercontent.com/rkitover/4dd30c2841a2131be8715038f538d622/raw/40a8f0f50aa6ca5f9658a0c37aa17393cc80c109/ccache-3.4.2-msys.patch graphite2 https://gist.githubusercontent.com/rkitover/e753f41a7f6461ad412c2d076ec24e0f/raw/d0c2b8cccd556e407e15da8a2e739a902bd1a3b5/graphite2-static-cmake-opts.patch python2 https://gist.githubusercontent.com/rkitover/2d9e5baff1f1cc4f2618dee53083bd35/raw/7f33fcf5470a9f1013ac6ae7bb168368a98fe5a0/python-2.7.14-custom-static-openssl.patch https://gist.githubusercontent.com/rkitover/afab7ed3ac7ce1860c43a258571c8ae1/raw/6f5fc90a7acf5f5c3ffda2edf402b28f469a4b3b/python-2.7.14-static-libintl.patch intltool https://gist.githubusercontent.com/rkitover/d638882f52e5d5f8e392cbf6842cd6d0/raw/dcfbe358bbb8b89f88b40a9c3402494552fd33f8/intltool-0.51.0.patch @@ -254,12 +258,12 @@ DIST_TAR_ARGS="$DIST_TAR_ARGS DIST_CONFIGURE_TYPES="$DIST_CONFIGURE_TYPES unzip make zip make + pkgconf autoreconf_noargs fontconfig autoreconf libgd autoreconf harfbuzz autoconf python2 autoreconf python3 autoreconf - libxml2-python python graphviz autoreconf docbook2x autoreconf libvorbis autoreconf @@ -279,16 +283,17 @@ DIST_PRE_BUILD="$DIST_PRE_BUILD flex mkdir -p build-aux; touch build-aux/config.rpath; mkdir -p po; touch po/Makefile.in.in; sed -i.bak '/po \\\\$/d' Makefile.am; fontconfig sed -i.bak 'd;q' test/Makefile.am; python3 sed -i.bak '/-Wl,-stack_size,/d' configure.ac; - libxml2-python sh autogen.sh \"--with-python=\$BUILD_ROOT/root/bin/python3\"; cd python; \ - sed -i.bak \"s,^ROOT = .*,ROOT = os.getenv('BUILD_ROOT') + '/root',; s|^\\( *platformLibs = \\[ *[^]].*\\)\\] *\$|\\1, 'lzma', 'iconv', 'intl']|\" setup.py; bakefile sed -i.bak '/SUBDIRS = doc/d' Makefile.am; unzip rm -f unix/Contents; ln -sf \$(find unix -mindepth 1 -maxdepth 1) .; zip rm -f unix/Contents; ln -sf \$(find unix -mindepth 1 -maxdepth 1) .; gettext sed -i.bak 's/-Wl,--disable-auto-import//' m4/woe32-dll.m4; - expat cd expat; \ - sed -i.bak '/doc\\/Makefile/d' configure.ac; \ - sed -i.bak '/SUBDIRS/{; s/ doc//; }' Makefile.am; \ - sed -i.bak 's/cp \\\$ declspec.h; harfbuzz touch test/CMakeLists.txt; @@ -305,31 +310,35 @@ DIST_PRE_BUILD="$DIST_PRE_BUILD XML-SAX sed -i.bak 's/-MXML::SAX/-Mblib -MXML::SAX/' Makefile.PL; docbook2x sed -i.bak 's/^\\( *SUBDIRS *= *.*\\)doc\\(.*\\)\$/\1\2/' Makefile.am; \ sed -i.bak 's/^\\( *SUBDIRS *= *.*\\)documentation\\(.*\\)\$/\1\2/' xslt/Makefile.am; + hiredis sed -i.bak 's/ SHARED / STATIC /' CMakeLists.txt; " DIST_POST_BUILD="$DIST_POST_BUILD - harfbuzz rebuild_dist freetype --with-harfbuzz=yes; + pkgconf ln -sf \"\$BUILD_ROOT/root/bin/pkgconf\" \"\$BUILD_ROOT/root/bin/pkg-config\"; + harfbuzz rebuild_dist freetype -Dharfbuzz=enabled; flex-2.6.3 build_dist flex || :; libtool ln -sf \"\$BUILD_ROOT/root/bin/libtoolize\" \"\$BUILD_ROOT/root/bin/glibtoolize\"; glib rebuild_dist gettext --without-included-glib --without-included-libxml; # graphviz (cd \"\$BUILD_ROOT/root/bin\"; path_exists dot_static && ! path_exists dot && ln -sf \"\$BUILD_ROOT/root/bin/dot_static\" ./dot || :); libxml2 mkdir -p \"\$BUILD_ROOT/root/etc/xml\"; \ xmlcatalog --noout --create \"\$(cygpath -m \"\$BUILD_ROOT/root/etc/xml/catalog.xml\")\" || :; - python2 pip2 install six; - python3 pip3 install six; + python2 python2 -m pip install six; + python3 python3 -m pip install six; \ + rebuild_dist libxml2 --with-python --with-python3; fontconfig mkdir -p \"\$BUILD_ROOT/root/etc/fonts\"; \ touch \"\$BUILD_ROOT/root/etc/fonts/fonts.conf\"; \ sed -i.bak \"s|/usr/share/fonts|\$BUILD_ROOT/root/share/fonts|g\" \"\$BUILD_ROOT/root/etc/fonts/fonts.conf\"; + ffmpeg sed -i.bak 's/-lX11/ /g' \$BUILD_ROOT/root/lib/pkgconfig/libavutil.pc " DIST_CONFIGURE_OVERRIDES="$DIST_CONFIGURE_OVERRIDES + zlib-ng ./configure --prefix=/usr --static --zlib-compat openssl ./config no-shared --prefix=/usr --openssldir=/etc/ssl - cmake ./configure --prefix=/usr --no-qt-gui --parallel=\$NUM_CPUS --enable-ccache - zlib ./configure --prefix=/usr --static - XML-SAX echo no | PERL_MM_USE_DEFAULT=0 perl Makefile.PL + cmake ./configure --prefix=/usr --no-qt-gui --parallel=\$NUM_CPUS + XML-SAX echo no | PERL_MM_USE_DEFAULT=0 \"\$perl\" Makefile.PL wxwidgets ./configure \$CONFIGURE_REQUIRED_ARGS --disable-shared --prefix=/usr --enable-stl --disable-precomp-headers --enable-cxx11 --enable-permissive --with-opengl --with-libpng libvpx ./configure --disable-shared --enable-static --prefix=/usr --disable-unit-tests --disable-tools --disable-docs --disable-examples - ffmpeg ./configure --disable-shared --enable-static --prefix=/usr --pkg-config-flags=--static --enable-nonfree --extra-version=tessus --enable-fontconfig --enable-gpl --enable-version3 --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-openssl --enable-lzma --extra-cflags='-DMODPLUG_STATIC -DZMQ_STATIC' --extra-cxxflags='-DMODPLUG_STATIC -DZMQ_STATIC' --extra-objcflags='-DMODPLUG_STATIC -DZMQ_STATIC' --extra-libs=-liconv + ffmpeg ./configure --disable-shared --enable-static --prefix=/usr --pkg-config-flags=--static --enable-nonfree --extra-version=tessus --enable-fontconfig --enable-gpl --enable-version3 --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-openssl --enable-lzma --extra-cflags='-DMODPLUG_STATIC -DZMQ_STATIC' --extra-cxxflags='-DMODPLUG_STATIC -DZMQ_STATIC' --extra-objcflags='-DMODPLUG_STATIC -DZMQ_STATIC' --extra-libs=-liconv --cc=\"\$CC\" --cxx=\"\$CXX\" " DIST_BUILD_OVERRIDES="$DIST_BUILD_OVERRIDES @@ -337,7 +346,6 @@ DIST_BUILD_OVERRIDES="$DIST_BUILD_OVERRIDES sed -i.bak \"s|/[^ ][^ ]*/libfl[.][^ ]*|-L\$BUILD_ROOT/root/lib -lfl|\" Makefile; \ make -j\$NUM_CPUS; \ make install bin=\"\$BUILD_ROOT/root/bin\" mansrc=\"\$BUILD_ROOT/root/share/man/man1\" privlib=\"\$BUILD_ROOT/root/lib/c2man\" - libxml2-python python setup.py build install && python3 setup.py build install setuptools python bootstrap.py; python easy_install.py . pip easy_install . ninja python configure.py --bootstrap && cp -af ./ninja \"\$BUILD_ROOT/root/bin\" @@ -348,7 +356,8 @@ DIST_BUILD_OVERRIDES="$DIST_BUILD_OVERRIDES docbook4.3 install_docbook_dist schema docbook4.4 install_docbook_dist schema docbook4.5 install_docbook_dist schema - docbook5.0 install_docbook_dist schema + docbook5.0.1 install_docbook_dist schema + docbook5.1 install_docbook_dist schema docbook-xsl install_docbook_dist stylesheet docbook-xsl-ns install_docbook_dist stylesheet dejavu install_fonts @@ -357,31 +366,35 @@ DIST_BUILD_OVERRIDES="$DIST_BUILD_OVERRIDES " DIST_ARGS="$DIST_ARGS - libicu --disable-extras --disable-tools --disable-tests --disable-samples + pkgconf --disable-tests + libicu --disable-extras --disable-tools --disable-tests --disable-samples --with-library-bits=64 gettext --with-included-gettext --with-included-glib --with-included-libcroco --with-included-libunistring --with-included-libxml --disable-curses CPPFLAGS=\"\$CPPFLAGS -DLIBXML_STATIC\" pkgconfig --with-internal-glib --with-libiconv=gnu curl --with-ssl --without-brotli - pcre --enable-utf8 --enable-pcre8 --enable-pcre16 --enable-pcre32 --enable-unicode-properties --enable-pcregrep-libz --enable-pcregrep-libbz2 --enable-jit + pcre --enable-utf --enable-unicode-properties --enable-pcre16 --enable-pcre32 --enable-jit + pcre2 --enable-utf8 --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode-properties --enable-pcregrep-libz --enable-pcregrep-libbz2 --enable-jit libxslt --without-python --without-crypto libgd --without-xpm fontconfig --with-baseconfigdir=/etc/fonts graphviz --disable-ltdl --without-x --disable-swig CFLAGS=\"-include \$PWD/declspec.h \$CFLAGS\" CC=\"\$CXX\" - python2 --with-ensurepip --with-system-expat - python3 --with-ensurepip --with-system-expat + python2 --with-ensurepip=install --with-system-expat + python3 --with-ensurepip=install --with-system-expat bakefile --enable-shared XML-Parser EXPATINCPATH=\"\$BUILD_ROOT/root/include\" EXPATLIBPATH=\"\$BUILD_ROOT/root/lib\" doxygen -DICONV_ACCEPTS_NONCONST_INPUT:BOOL=FALSE -DICONV_ACCEPTS_CONST_INPUT:BOOL=TRUE sfml -DSFML_USE_SYSTEM_DEPS=TRUE libcroco --disable-Bsymbolic + snappy -DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF libjpeg-turbo -DWITH_JPEG8=ON -DWITH_SIMD=OFF libtiff --disable-lzma --disable-webp - freetype --with-harfbuzz=no + freetype -Dharfbuzz=disabled harfbuzz --with-cairo=no --with-icu=no graphite2 -DGRAPHITE2_NFILEFACE=ON -DGRAPHITE2_TESTS=OFF -DGRAPHITE2_DOCS=OFF flac --disable-ogg + libsoxr -DWITH_OPENMP=NO libxavs --disable-asm libzvbi --without-x - libxml2 --without-python + libxml2 --without-python --without-python3 libbluray --disable-bdjava-jar --disable-examples libopencore-amrnb --disable-compile-c vidstab -DUSE_OMP=NO @@ -389,7 +402,7 @@ DIST_ARGS="$DIST_ARGS libx265 -DHIGH_BIT_DEPTH=ON -DENABLE_ASSEMBLY=OFF -DENABLE_CLI=OFF " -export DIST_BARE_MAKE_ARGS='CC="$CC"' +export DIST_BARE_MAKE_ARGS='CC="$CC" CXX="$CXX" LD="$CXX"' export ALL_MAKE_ARGS='V=1 VERBOSE=1' @@ -411,6 +424,7 @@ DIST_MAKE_INSTALL_ARGS="$DIST_MAKE_INSTALL_ARGS " DIST_EXTRA_LDFLAGS="$DIST_EXTRA_LDFLAGS + python2 -lffi glib -liconv graphviz -lpcreposix doxygen -lintl -liconv @@ -420,6 +434,7 @@ DIST_EXTRA_LDFLAGS="$DIST_EXTRA_LDFLAGS DIST_EXTRA_CXXFLAGS="$DIST_EXTRA_CXXFLAGS gperf -std=gnu++11 doxygen -std=gnu++11 + sfml -std=gnu++11 wxwidgets -std=gnu++11 libmodplug -std=gnu++11 libopencore-amrnb -std=gnu++11 @@ -445,6 +460,8 @@ builder() { read_command_line "$@" install_core_deps setup_perl + setup_meson + setup_ninja delete_outdated_dists pre_build_all build_prerequisites @@ -547,7 +564,7 @@ export MAKEFLAGS=-j$NUM_CPUS " eval "$BUILD_ENV" - CHECKOUT=$(find_checkout) + : ${CHECKOUT:=$(find_checkout)} TMP_DIR=${TMP_DIR:-/tmp/builder-$$} @@ -583,9 +600,56 @@ num_cpus() { } setup_perl() { - if command -v perl >/dev/null; then + if [ -x /usr/local/bin/perl ]; then + perl=/usr/local/bin/perl + else + perl=$(command -v perl || :) + fi + + if [ -n "$perl" ]; then + if [ -n "$msys2" ] || [ -n "$cygwin" ]; then + ln -sf "$perl" "$BUILD_ROOT/root/bin/perl.exe" + perl="$BUILD_ROOT/root/bin/perl.exe" + else + ln -sf "$perl" "$BUILD_ROOT/root/bin/perl" + fi + if ! command -v cpanm >/dev/null; then - perl -MApp::Cpan -e 'App::Cpan->run' -- -f -i App::cpanminus + "$perl" -MApp::Cpan -e 'App::Cpan->run(qw/-f -i App::cpanminus/)' + fi + fi +} + +setup_meson() { + if [ -x /usr/local/bin/meson ]; then + meson=/usr/local/bin/meson + else + meson=$(command -v meson || :) + fi + + if [ -n "$meson" ]; then + if [ -n "$msys2" ] || [ -n "$cygwin" ]; then + ln -sf "$meson" "$BUILD_ROOT/root/bin/meson.exe" + meson="$BUILD_ROOT/root/bin/meson.exe" + else + ln -sf "$meson" "$BUILD_ROOT/root/bin/meson" + fi + fi +} + +setup_ninja() { + if [ -x /usr/local/bin/ninja ]; then + ninja=/usr/local/bin/ninja + else + ninja=$(command -v ninja || :) + fi + + if [ -n "$ninja" ]; then + if [ -n "$msys2" ] || [ -n "$cygwin" ]; then + ln -sf "$ninja" "$BUILD_ROOT/root/bin/ninja.exe" + ninja="$BUILD_ROOT/root/bin/ninja.exe" + else + ln -sf "$ninja" "$BUILD_ROOT/root/bin/ninja" fi fi } @@ -718,7 +782,6 @@ msys2_install_core_deps() { # make sure msys perl takes precedence over mingw perl if the latter is installed mkdir -p "$BUILD_ROOT/root/bin" - ln -sf /usr/bin/perl.exe "$BUILD_ROOT/root/bin/perl.exe" # alias python2 to python ln -sf /usr/bin/python2.exe "$BUILD_ROOT/root/bin/python.exe" @@ -765,11 +828,11 @@ mac_install_core_deps() { error 'Please install XCode and the XCode Command Line Tools, then run this script again. On newer systems this can be done with: ;xcode-select --install' fi - if ! command -v brew >/dev/null; then + if ! [ -x /usr/local/bin/brew ]; then error 'Please install Mac Homebrew: ;https://brew.sh/' fi - brew -v install perl meson + /usr/local/bin/brew install -q perl meson ninja } setup_tmp_dir() { @@ -1431,7 +1494,7 @@ build_dist() { fi check_install_artifact "$current_dist" - elif [ "$config_type" = autoconf -o "$config_type" = autoreconf ] || [ -z "$config_type" -a \( -f configure -o -f Configure -o -f configure.ac -o -f configure.in -o -f Makefile.am \) ]; then + elif [ "$config_type" = autoconf -o "$config_type" = autoreconf -o "$config_type" = autoreconf_noargs ] || [ -z "$config_type" -a \( -f configure -o -f Configure -o -f configure.ac -o -f configure.in -o -f Makefile.am \) ]; then # workaround a sometimes autoconf bug touch config.rpath @@ -1441,20 +1504,23 @@ build_dist() { else autogen= - if [ "$config_type" = autoreconf ] || [ ! -f configure ]; then + if [ "$config_type" = autoreconf -o "$config_type" = autoreconf_noargs ] || [ ! -f configure ]; then autogen=1 + if [ "$config_type" != autoreconf_noargs ]; then + eval "set -- $CONFIGURE_REQUIRED_ARGS $(dist_args "$current_dist" autoconf) $extra_dist_args" + else + set -- + fi + if [ -f autogen.sh ]; then chmod +x autogen.sh - eval "set -- $CONFIGURE_REQUIRED_ARGS $(dist_args "$current_dist" autoconf) $extra_dist_args" echo_run ./autogen.sh "$@" elif [ -f buildconf.sh ]; then chmod +x buildconf.sh - eval "set -- $CONFIGURE_REQUIRED_ARGS $(dist_args "$current_dist" autoconf) $extra_dist_args" echo_run ./buildconf.sh "$@" elif [ -f bootstrap ]; then chmod +x bootstrap - eval "set -- $CONFIGURE_REQUIRED_ARGS $(dist_args "$current_dist" autoconf) $extra_dist_args" echo_run ./bootstrap "$@" else if [ -d m4 ]; then @@ -1574,18 +1640,18 @@ build_dist() { check_install_artifact "$current_dist" elif [ "$config_type" = python ] || [ -z "$config_type" -a -f setup.py ]; then if [ -z "$install_override" ]; then - pip= + set -- if grep -Eq 'Python :: 3' PKG-INFO 2>/dev/null; then - pip=pip3 + set -- 'python3 -m pip' fi if grep -Eq 'Python :: 2' PKG-INFO 2>/dev/null; then - pip="$pip pip2" + set -- "$@" 'python2 -m pip' fi # default to python2 if no package info - [ -z "$pip" ] && pip=pip + [ "$#" = 0 ] && set -- 'python2 -m pip' - for pip in $pip; do + for pip in "$@"; do if [ -n "$configure_override" ]; then eval "set -- $extra_dist_args" echo_eval_run "$configure_override $@" @@ -1607,7 +1673,7 @@ build_dist() { echo_eval_run "$configure_override $@" else eval "set -- $(dist_args "$current_dist" perl) $extra_dist_args" - echo_run perl Makefile.PL "$@" + echo_run "$perl" Makefile.PL "$@" fi dist_post_configure "$current_dist" @@ -1680,11 +1746,16 @@ make_install() { cd .. + ORIG_LIBRARY_PATH="$LIBRARY_PATH" + unset LIBRARY_PATH + if grep -Eq 'DESTDIR|cmake_install\.cmake' $(find . -name Makefile -o -name makefile -o -name '*.mk' -o -name '*.mak') 2>/dev/null; then echo_eval_run make install $(dist_make_args $current_dist) prefix="${prefix}" PREFIX="${prefix}" DESTDIR="$PWD/destdir" "$@" || : else echo_eval_run make install $(dist_make_args $current_dist) prefix="$PWD/destdir${prefix}" PREFIX="$PWD/destdir${prefix}" INSTALL_PREFIX="$PWD/destdir${prefix}" INSTALL_ROOT="$PWD/destdir${prefix}" INSTALLTOP="/..${prefix}/" "$@" || : fi + + export LIBRARY_PATH="$ORIG_LIBRARY_PATH" } # assumes make install has run into ./destdir diff --git a/tools/osx/builder b/tools/macOS/builder similarity index 67% rename from tools/osx/builder rename to tools/macOS/builder index aa16bd58..19bd9de4 100755 --- a/tools/osx/builder +++ b/tools/macOS/builder @@ -43,14 +43,40 @@ if [ "$target_bits" -eq 32 ] && [ -d /Applications/Xcode9.app ]; then sudo xcode-select -s /Applications/Xcode9.app/Contents/Developer fi -# Unlink brew wxwidgets if installed because it interferes with ours. -brew unlink wxwidgets >/dev/null 2>&1 +export BUILD_ROOT="${BUILD_ROOT:-$HOME/vbam-build-mac-${target_bits}bit}$BUILD_ROOT_SUFFIX" -export BUILD_ROOT="$HOME/vbam-build-mac-${target_bits}bit" +ver_file=$(mktemp) +sw_vers -productVersion | sed 's/\./ /g' > "$ver_file" +read -r macos_major macos_minor macos_patch < "$ver_file" +rm -f "$ver_file" + +# Find the highest version clang and llvm in Nix or Homebrew. +best_llvm=$( + ( + for nix_clang in $(find /nix/store -maxdepth 1 -type d -name '*-clang-[0-9]*[0-9]'); do + llvm_ver=$(echo "$nix_clang" | sed -E 's/.*-([0-9][0-9.]*[0-9])$/\1/') + nix_llvm=$(find /nix/store -maxdepth 1 -type d -name '*-llvm-'"$llvm_ver") + + if [ -x "$nix_clang/bin/clang++" ]; then + echo "$nix_clang:$nix_llvm $($nix_clang/bin/clang++ --version | head -1 | awk '{ print $NF }')" + fi + done + + for brew_llvm in $(find /usr/local/opt -maxdepth 1 -type l -name 'llvm*'); do + if [ -x "$brew_llvm/bin/clang++" ]; then + echo "$brew_llvm $($brew_llvm/bin/clang++ --version | head -1 | awk '{ print $NF }')" + fi + done + ) | sort -k2,2 -V -r | head -1 | awk '{ print $1 }' +) BUILD_ENV=$(cat </dev/null 2>&1 diff --git a/tools/osx/third_party_libs_tool b/tools/macOS/third_party_libs_tool similarity index 100% rename from tools/osx/third_party_libs_tool rename to tools/macOS/third_party_libs_tool