diff --git a/bootstrap-audacity.sh b/bootstrap-audacity.sh index 75f6d47..089da18 100755 --- a/bootstrap-audacity.sh +++ b/bootstrap-audacity.sh @@ -19,7 +19,7 @@ fi # run bootstrap dependencies ./bootstrap-common.sh "${target}" -./bootstrap-plugins.sh "${target}" +# ./bootstrap-plugins.sh "${target}" # --------------------------------------------------------------------------------------------------------------------- # source setup code @@ -32,7 +32,43 @@ source setup/versions.sh # --------------------------------------------------------------------------------------------------------------------- # wxwidgets +# wxwidgets_args+=" -DwxWidgets_USE_REL_AND_DBG=no" +# wxwidgets_args+=" -Daudacity_use_pch=no" + +# override PawPaw default +wxwidgets_args="-DBUILD_SHARED_LIBS=ON" + +# win32 +wxwidgets_args+=" -DwxUSE_ACCESSIBILITY=YES" +wxwidgets_args+=" -DwxBUILD_PRECOMP=YES" + +wxwidgets_args+=" -DwxBUILD_CXX_STANDARD=14" +wxwidgets_args+=" -DwxUSE_EXPAT=builtin" +wxwidgets_args+=" -DwxUSE_LIBJPEG=builtin" +wxwidgets_args+=" -DwxUSE_LIBPNG=builtin" +wxwidgets_args+=" -DwxUSE_LIBTIFF=builtin" +wxwidgets_args+=" -DwxUSE_REGEX=builtin" +wxwidgets_args+=" -DwxUSE_ZLIB=builtin" +# wxwidgets_args+=" -D" + +# custom wxwidgets flags +# wxwidgets_args+=" -DwxBUILD_MONOLITHIC=ON" +# wxwidgets_args+=" -DwxBUILD_PRECOMP=OFF" +# wxwidgets_args+=" -DwxBUILD_OPTIMISE=ON" +wxwidgets_args+=" -DwxBUILD_SHARED=ON" +# win32 only +wxwidgets_args+=" -DwxUSE_WINSOCK2=yes" + +# set(wxSOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +# set(wxBINARY_DIR ${CMAKE_BINARY_DIR}) +# set(wxOUTPUT_DIR ${wxBINARY_DIR}/lib) +# set(wxVERSION 3.1.3) +# set(wxCOPYRIGHT "1992-2019 wxWidgets") + +win32_target=_WIN32_WINNT_WIN7 +export EXTRA_CXXFLAGS="-DWINVER=${win32_target} -D_WIN32_WINNT=${win32_target} -D_WIN32_IE=${win32_target}" + download wxWidgets "audacity-fixes-3.1.3" "https://github.com/audacity/wxWidgets.git" "" "git" -build_cmake wxWidgets "audacity-fixes-3.1.3" +build_cmake wxWidgets "audacity-fixes-3.1.3" "${wxwidgets_args}" # --------------------------------------------------------------------------------------------------------------------- diff --git a/bootstrap-common.sh b/bootstrap-common.sh index ad4242b..f9b090d 100755 --- a/bootstrap-common.sh +++ b/bootstrap-common.sh @@ -117,3 +117,11 @@ patch_file libsndfile "${LIBSNDFILE_VERSION}" "configure" 's/ -Wvla//' build_autoconf libsndfile "${LIBSNDFILE_VERSION}" "--disable-alsa --disable-full-suite --disable-sqlite" # --------------------------------------------------------------------------------------------------------------------- +# zlib (skipped on macOS) + +if [ "${MACOS}" -eq 0 ]; then + download zlib ${ZLIB_VERSION} "https://github.com/madler/zlib/archive" + build_conf zlib ${ZLIB_VERSION} "--static --prefix=${PAWPAW_PREFIX}" +fi + +# --------------------------------------------------------------------------------------------------------------------- diff --git a/bootstrap-plugins.sh b/bootstrap-plugins.sh index 4a5119d..8c79ea0 100755 --- a/bootstrap-plugins.sh +++ b/bootstrap-plugins.sh @@ -212,14 +212,6 @@ fi download mxml ${MXML_VERSION} "https://github.com/michaelrsweet/mxml/archive" build_autoconf mxml ${MXML_VERSION} -# --------------------------------------------------------------------------------------------------------------------- -# zlib - -if [ "${MACOS}" -eq 0 ]; then - download zlib ${ZLIB_VERSION} "https://github.com/madler/zlib/archive" - build_conf zlib ${ZLIB_VERSION} "--static --prefix=${PAWPAW_PREFIX}" -fi - # --------------------------------------------------------------------------------------------------------------------- # carla (backend only) diff --git a/build-audacity.sh b/build-audacity.sh index a1b786f..68d4ce3 100755 --- a/build-audacity.sh +++ b/build-audacity.sh @@ -5,10 +5,6 @@ set -e cd $(dirname ${0}) PAWPAW_ROOT="${PWD}" -JACK2_VERSION=${JACK2_VERSION:=git} -JACK_ROUTER_VERSION=${JACK_ROUTER_VERSION:=6c2e532bb05d2ba59ef210bef2fe270d588c2fdf} -QJACKCTL_VERSION=${QJACKCTL_VERSION:=0.9.2} - # --------------------------------------------------------------------------------------------------------------------- target="${1}" @@ -21,7 +17,7 @@ fi # --------------------------------------------------------------------------------------------------------------------- # run bootstrap dependency -# ./bootstrap-audacity.sh "${target}" +./bootstrap-audacity.sh "${target}" # --------------------------------------------------------------------------------------------------------------------- @@ -32,20 +28,64 @@ source setup/versions.sh # --------------------------------------------------------------------------------------------------------------------- -audacity_repo="https://github.com/jackaudio/jack2.git" +# audacity_repo="https://github.com/jackaudio/jack2.git" # audacity_prefix="${PAWPAW_PREFIX}-audacity" -audacity_args="-DCMAKE_BUILD_TYPE=Release -DwxWidgets_USE_REL_AND_DBG=no -Daudacity_use_pch=no" - -audacity_args+=" -Daudacity_use_wxwidgets=local" +audacity_args="" +audacity_args+=" -DwxWidgets_USE_REL_AND_DBG=no" +audacity_args+=" -Daudacity_use_pch=no" + +audacity_args+=" -Daudacity_use_libflac=system" +audacity_args+=" -Daudacity_use_libogg=system" +audacity_args+=" -Daudacity_use_libsndfile=system" +audacity_args+=" -Daudacity_use_libvorbis=system" +audacity_args+=" -Daudacity_use_wxwidgets=system" + +# TODO +audacity_args+=" -Daudacity_use_expat=local" +audacity_args+=" -Daudacity_use_lame=local" +audacity_args+=" -Daudacity_use_libsoxr=local" +audacity_args+=" -Daudacity_use_portaudio-v19=local" +audacity_args+=" -Daudacity_use_sqlite=local" +audacity_args+=" -Daudacity_use_libid3tag=local" +audacity_args+=" -Daudacity_use_libmad=local" +audacity_args+=" -Daudacity_use_libnyquist=local" +audacity_args+=" -Daudacity_use_libvamp=local" +audacity_args+=" -Daudacity_use_lv2=local" +audacity_args+=" -Daudacity_use_portmidi=local" +audacity_args+=" -Daudacity_use_portmixer=local" +audacity_args+=" -Daudacity_use_portsmf=local" +audacity_args+=" -Daudacity_use_libsbsms=local" +audacity_args+=" -Daudacity_use_soundtouch=local" +audacity_args+=" -Daudacity_use_twolame=local" + +# optional +# audacity_args+=" -Daudacity_use_ffmpeg=local" + +# FIXME +audacity_args+=" -Daudacity_use_pa_jack=off" # audacity_args+=" -DwxWidgets_ROOT_DIR=${PAWPAW_PREFIX}" -# audacity_args+=" -DwxWidgets_LIB_DIR=${PAWPAW_PREFIX}/lib/mswu" -# audacity_args+=" -DwxWidgets_CONFIGURATION=mswu" # audacity_args+=" -DwxWidgets_FOUND=BOOL:TRUE" -# audacity_args+=" -DwxWidgets_INCLUDE_DIRS=${PAWPAW_PREFIX}/include" -# audacity_args+=" -DwxWidgets_LIBRARIES=${PAWPAW_PREFIX}/lib/mswu" +# audacity_args+=" -DwxWidgets_INCLUDE_DIRS_NO_SYSTEM" + +# audacity_args+=" -DwxWidgets_INCLUDE_DIRS=${PAWPAW_PREFIX}/include;${PAWPAW_PREFIX}/lib/gcc_x64_dll/mswu" +# audacity_args+=" -DwxWidgets_LIBRARIES='winmm comctl32 uuid oleacc uxtheme rpcrt4 shlwapi version wsock32'" +# audacity_args+=" -DwxWidgets_LIBRARY_DIRS=${PAWPAW_PREFIX}/lib/gcc_x64_dll" +# audacity_args+=" -Dtoolkit=mswu" +# audacity_args+=" -D" +# audacity_args+=" -D" + +audacity_args+=" -DwxWidgets_FIND_STYLE=win32" # must be forced in the cmake file +audacity_args+=" -DwxWidgets_ROOT_DIR=${PAWPAW_PREFIX}" +audacity_args+=" -DwxWidgets_LIB_DIR=${PAWPAW_PREFIX}/lib/gcc_x64_dll" +audacity_args+=" -DwxWidgets_CONFIGURATION=mswu" +audacity_args+=" -DWX_ROOT_DIR=${PAWPAW_PREFIX}" + +win32_target=_WIN32_WINNT_WIN7 +export EXTRA_CXXFLAGS="-DWINVER=${win32_target} -D_WIN32_WINNT=${win32_target} -D_WIN32_IE=${win32_target} -std=gnu++14" +# -DwxUSE_UNICODE_WINDOWS_H=1" download audacity "e93fdd16c50d9d4630bc64595990e2ee0f96bc17" "https://github.com/KXStudio/audacity.git" "" "git" build_cmake audacity "e93fdd16c50d9d4630bc64595990e2ee0f96bc17" "${audacity_args}" diff --git a/patches/audacity/01_build-fix-pt2.patch b/patches/audacity/01_build-fix-pt2.patch new file mode 100644 index 0000000..695710e --- /dev/null +++ b/patches/audacity/01_build-fix-pt2.patch @@ -0,0 +1,55 @@ +diff --git a/cmake-proxies/cmake-modules/FindwxWidgets.cmake b/cmake-proxies/cmake-modules/FindwxWidgets.cmake +index 86fc471..cb2f6f6 100644 +--- a/cmake-proxies/cmake-modules/FindwxWidgets.cmake ++++ b/cmake-proxies/cmake-modules/FindwxWidgets.cmake +@@ -209,11 +209,7 @@ endif() + #===================================================================== + # Determine whether unix or win32 paths should be used + #===================================================================== +-if(WIN32 AND NOT CYGWIN AND NOT MSYS AND NOT CMAKE_CROSSCOMPILING) + set(wxWidgets_FIND_STYLE "win32") +-else() +- set(wxWidgets_FIND_STYLE "unix") +-endif() + + #===================================================================== + # WIN32_FIND_STYLE +diff --git a/include/audacity/Types.h b/include/audacity/Types.h +index 9547b19..994a150 100644 +--- a/include/audacity/Types.h ++++ b/include/audacity/Types.h +@@ -844,6 +844,9 @@ using EffectFamilySymbol = ComponentInterfaceSymbol; + #endif + #endif + #endif ++ ++ // KXStudio custom build ++ #define AUDACITY_DLL_API __attribute__((visibility("default"))) + #endif + + #endif // __AUDACITY_TYPES_H__ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 409b34a..79e8f3c 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1028,7 +1028,6 @@ audacity_append_common_compiler_options( OPTIONS ) + list( APPEND LDFLAGS + PRIVATE + $<$:/MANIFEST:NO> +- $<$:-Wl,--disable-new-dtags> + ) + + # +diff --git a/src/effects/VST/VSTControlMSW.h b/src/effects/VST/VSTControlMSW.h +index f9477ea..f679a3e 100644 +--- a/src/effects/VST/VSTControlMSW.h ++++ b/src/effects/VST/VSTControlMSW.h +@@ -11,7 +11,7 @@ + #ifndef AUDACITY_VSTCONTROLMSW_H + #define AUDACITY_VSTCONTROLMSW_H + +-#include ++#include + + #include "VSTControl.h" + diff --git a/setup/functions.sh b/setup/functions.sh index a40bd30..7261999 100644 --- a/setup/functions.sh +++ b/setup/functions.sh @@ -265,6 +265,9 @@ function build_cmake() { local pkgdir="${PAWPAW_BUILDDIR}/${name}-${version}" + _prebuild "${name}" "${pkgdir}" + mkdir -p "${pkgdir}/build" + if [ "${CROSS_COMPILING}" -eq 1 ]; then extraconfrules+=" -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}" fi @@ -282,9 +285,9 @@ function build_cmake() { extraconfrules+=" -DCMAKE_OSX_ARCHITECTURES=${OSX_ARCHS}" extraconfrules+=" -DCMAKE_OSX_DEPLOYMENT_TARGET=${OSX_TARGET}" fi - - _prebuild "${name}" "${pkgdir}" - mkdir -p "${pkgdir}/build" + if [ "${WIN32}" -eq 1 ]; then + extraconfrules+=" -DCMAKE_RC_COMPILER=${WINDRES}" + fi if [ ! -f "${pkgdir}/.stamp_configured" ]; then pushd "${pkgdir}/build"