From 25347ab5b639a61358f2e0a0ddd4626a30007e80 Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 10 May 2021 20:43:48 +0100 Subject: [PATCH] Continue audacity building; Only 1 step needed for win64 Signed-off-by: falkTX --- bootstrap-audacity.sh | 44 ++++++------ build-audacity.sh | 57 +++++++--------- ...d-fix-pt2.patch => 02_build-fix-pt2.patch} | 0 patches/audacity/03_build-fix-pt3.patch | 27 ++++++++ patches/audacity/04_build-fix-pt4.patch | 64 ++++++++++++++++++ patches/audacity/05_build-fix-pt5.patch | 26 +++++++ patches/audacity/ImageCache.png | Bin 0 -> 39983 bytes patches/audacity/ImageCache.url.txt | 22 ++++++ 8 files changed, 186 insertions(+), 54 deletions(-) rename patches/audacity/{01_build-fix-pt2.patch => 02_build-fix-pt2.patch} (100%) create mode 100644 patches/audacity/03_build-fix-pt3.patch create mode 100644 patches/audacity/04_build-fix-pt4.patch create mode 100644 patches/audacity/05_build-fix-pt5.patch create mode 100644 patches/audacity/ImageCache.png create mode 100644 patches/audacity/ImageCache.url.txt diff --git a/bootstrap-audacity.sh b/bootstrap-audacity.sh index 089da18..ea8559f 100755 --- a/bootstrap-audacity.sh +++ b/bootstrap-audacity.sh @@ -32,42 +32,44 @@ 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" - +# common flags wxwidgets_args+=" -DwxBUILD_CXX_STANDARD=14" +wxwidgets_args+=" -DwxBUILD_MONOLITHIC=ON" +wxwidgets_args+=" -DwxBUILD_OPTIMISE=ON" +wxwidgets_args+=" -DwxBUILD_SHARED=ON" 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" +# these match upstream cmake setup +if [ "${MACOS}" -eq 1 ]; then + wxwidgets_args+=" -DwxUSE_ACCESSIBILITY=YES" + wxwidgets_args+=" -DwxBUILD_PRECOMP=NO" +elif [ "${WIN32}" -eq 1 ]; then + wxwidgets_args+=" -DwxUSE_ACCESSIBILITY=YES" + wxwidgets_args+=" -DwxBUILD_PRECOMP=YES" +else + wxwidgets_args+=" -DwxUSE_ACCESSIBILITY=NO" + wxwidgets_args+=" -DwxBUILD_PRECOMP=YES" +fi + +# needed for mingw +if [ "${WIN32}" -eq 1 ]; then + wxwidgets_args+=" -DwxUSE_WINSOCK2=yes" + win32_target=_WIN32_WINNT_WIN7 + export EXTRA_CXXFLAGS="-DWINVER=${win32_target} -D_WIN32_WINNT=${win32_target} -D_WIN32_IE=${win32_target}" +fi -# set(wxSOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -# set(wxBINARY_DIR ${CMAKE_BINARY_DIR}) -# set(wxOUTPUT_DIR ${wxBINARY_DIR}/lib) +# needed? # 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" "${wxwidgets_args}" diff --git a/build-audacity.sh b/build-audacity.sh index 68d4ce3..5fb8c4c 100755 --- a/build-audacity.sh +++ b/build-audacity.sh @@ -28,64 +28,55 @@ source setup/versions.sh # --------------------------------------------------------------------------------------------------------------------- -# audacity_repo="https://github.com/jackaudio/jack2.git" -# audacity_prefix="${PAWPAW_PREFIX}-audacity" - +# common flags audacity_args="" -audacity_args+=" -DwxWidgets_USE_REL_AND_DBG=no" -audacity_args+=" -Daudacity_use_pch=no" +audacity_args+=" -DwxWidgets_EXCLUDE_COMMON_LIBRARIES=YES" +audacity_args+=" -DwxWidgets_FIND_COMPONENTS=mono" # FIXME needs forcing +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 +# TODO build these locally 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_libsbsms=local" +audacity_args+=" -Daudacity_use_libsoxr=local" audacity_args+=" -Daudacity_use_libvamp=local" audacity_args+=" -Daudacity_use_lv2=local" +audacity_args+=" -Daudacity_use_portaudio-v19=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_sqlite=local" audacity_args+=" -Daudacity_use_twolame=local" -# optional -# audacity_args+=" -Daudacity_use_ffmpeg=local" - # FIXME +audacity_args+=" -Daudacity_use_ffmpeg=loaded" audacity_args+=" -Daudacity_use_pa_jack=off" -# audacity_args+=" -DwxWidgets_ROOT_DIR=${PAWPAW_PREFIX}" - -# audacity_args+=" -DwxWidgets_FOUND=BOOL:TRUE" -# 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}" +if [ "${WIN32}" -eq 1 ]; then + audacity_args+=" -DwxWidgets_FIND_STYLE=win32" # FIXME needs forcing + 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}" + export EXTRA_LDFLAGS="-lpthread -lz" # FIXME not working! +fi -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" +# TODO +# 1. linker flags end up with -lLIB_m-NOTFOUND +# 2. win32 build requires copying std mingw mutex workarounds 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/02_build-fix-pt2.patch similarity index 100% rename from patches/audacity/01_build-fix-pt2.patch rename to patches/audacity/02_build-fix-pt2.patch diff --git a/patches/audacity/03_build-fix-pt3.patch b/patches/audacity/03_build-fix-pt3.patch new file mode 100644 index 0000000..72837cc --- /dev/null +++ b/patches/audacity/03_build-fix-pt3.patch @@ -0,0 +1,27 @@ +diff --git a/src/widgets/FileDialog/win/FileDialogPrivate.cpp b/src/widgets/FileDialog/win/FileDialogPrivate.cpp +index 255c287..43bd18b 100644 +--- a/src/widgets/FileDialog/win/FileDialogPrivate.cpp ++++ b/src/widgets/FileDialog/win/FileDialogPrivate.cpp +@@ -78,10 +78,6 @@ static wxRect gs_rectDialog(0, 0, 428, 266); + // implementation + // ============================================================================ + +-IMPLEMENT_CLASS(FileDialog, wxFileDialogBase) +- +-// ---------------------------------------------------------------------------- +- + namespace + { + +diff --git a/src/widgets/FileDialog/win/FileDialogPrivate.h b/src/widgets/FileDialog/win/FileDialogPrivate.h +index dfc95d9..ce732eb 100644 +--- a/src/widgets/FileDialog/win/FileDialogPrivate.h ++++ b/src/widgets/FileDialog/win/FileDialogPrivate.h +@@ -116,7 +116,6 @@ private: + int mModalCount; + } mDisabler; + +- DECLARE_DYNAMIC_CLASS(FileDialog) + DECLARE_NO_COPY_CLASS(FileDialog) + }; + diff --git a/patches/audacity/04_build-fix-pt4.patch b/patches/audacity/04_build-fix-pt4.patch new file mode 100644 index 0000000..409b4ad --- /dev/null +++ b/patches/audacity/04_build-fix-pt4.patch @@ -0,0 +1,64 @@ +diff --git a/cmake-proxies/cmake-modules/CopyLibs.cmake b/cmake-proxies/cmake-modules/CopyLibs.cmake +index ddb5d9a..eb00020 100644 +--- a/cmake-proxies/cmake-modules/CopyLibs.cmake ++++ b/cmake-proxies/cmake-modules/CopyLibs.cmake +@@ -95,7 +95,8 @@ function( gather_libs src ) + set( postcmds ${postcmds} PARENT_SCOPE ) + endfunction() + +-gather_libs( "${SRC}" ) ++set( libs "${WXWIN}/wxmsw313u_gcc_x64_custom.dll" ) ++set( postcmds "" ) + + list( REMOVE_DUPLICATES libs ) + +diff --git a/cmake-proxies/cmake-modules/FindwxWidgets.cmake b/cmake-proxies/cmake-modules/FindwxWidgets.cmake +index cb2f6f6..b5c88a6 100644 +--- a/cmake-proxies/cmake-modules/FindwxWidgets.cmake ++++ b/cmake-proxies/cmake-modules/FindwxWidgets.cmake +@@ -217,15 +217,7 @@ endif() + if(wxWidgets_FIND_STYLE STREQUAL "win32") + # Useful common wx libs needed by almost all components. + set(wxWidgets_COMMON_LIBRARIES png tiff jpeg zlib regex expat) +- +- # DEPRECATED: Use find_package(wxWidgets COMPONENTS mono) instead. +- if(NOT wxWidgets_FIND_COMPONENTS) +- if(wxWidgets_USE_MONOLITHIC) +- set(wxWidgets_FIND_COMPONENTS mono) +- else() +- set(wxWidgets_FIND_COMPONENTS core base) # this is default +- endif() +- endif() ++ set(wxWidgets_FIND_COMPONENTS mono) + + # Add the common (usually required libs) unless + # wxWidgets_EXCLUDE_COMMON_LIBRARIES has been set. +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 79e8f3c..e4c0f62 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1120,14 +1120,16 @@ if( CMAKE_SYSTEM_NAME MATCHES "Windows" ) + POST_BUILD + ) + +- # Copy the VC runtime libraries as well +- add_custom_command( +- TARGET +- ${TARGET} +- COMMAND +- ${CMAKE_COMMAND} -E copy ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${_DEST} +- POST_BUILD +- ) ++ if(MSVC) ++ # Copy the VC runtime libraries as well ++ add_custom_command( ++ TARGET ++ ${TARGET} ++ COMMAND ++ ${CMAKE_COMMAND} -E copy ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${_DEST} ++ POST_BUILD ++ ) ++ endif(MSVC) + elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" ) + # Bug 2400 workaround + # diff --git a/patches/audacity/05_build-fix-pt5.patch b/patches/audacity/05_build-fix-pt5.patch new file mode 100644 index 0000000..c1f2d62 --- /dev/null +++ b/patches/audacity/05_build-fix-pt5.patch @@ -0,0 +1,26 @@ +diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt +index 5c55ff6..b142b70 100644 +--- a/modules/CMakeLists.txt ++++ b/modules/CMakeLists.txt +@@ -8,7 +8,7 @@ endif() + add_subdirectory( mod-script-pipe ) + + +-if( NOT CMAKE_SYSTEM_NAME MATCHES "Darwin" ) ++if( NOT CMAKE_SYSTEM_NAME MATCHES "Darwin|Windows" ) + if( NOT "${CMAKE_GENERATOR}" MATCHES "Visual Studio*") + install( DIRECTORY "${_DEST}/modules" + DESTINATION "${_PKGLIB}" ) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index e4c0f62..8e31f03 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1324,7 +1324,7 @@ if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" ) + install( TARGETS ${TARGET} + DESTINATION "." + RESOURCE DESTINATION "${_APPDIR}/Resources" ) +- else() ++ elseif(NOT CMAKE_SYSTEM_NAME MATCHES "Windows") + install( TARGETS ${TARGET} RUNTIME ) + install( DIRECTORY "${_DEST}/${_LIBDIR}/" + DESTINATION "${_LIBDIR}" diff --git a/patches/audacity/ImageCache.png b/patches/audacity/ImageCache.png new file mode 100644 index 0000000000000000000000000000000000000000..b33cf8c459ccd88472c6d45158429724ad919a8c GIT binary patch literal 39983 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 Wof}fT5kGI)^7ZmR-}vi|fBARcUr!DI literal 0 HcmV?d00001 diff --git a/patches/audacity/ImageCache.url.txt b/patches/audacity/ImageCache.url.txt new file mode 100644 index 0000000..d14a8e6 --- /dev/null +++ b/patches/audacity/ImageCache.url.txt @@ -0,0 +1,22 @@ +20:36 * falktx is thinking of using "DarkCity" as name in the end +20:37 < falktx> obvious needs a working dark theme +20:38 * LAM604 uploaded an image: (176KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/YnpZTRzWKqUTgeMYvgrQVnEr/2021-04-09_23.16.40.318.png > +20:38 < LAM604> like this? +20:42 * LAM604 uploaded an image: (39KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/maJzHBKfsVTyENGXnwtwBywz/ImageCache.png > +20:42 < LAM604> here's the theme file +20:43 < falktx> LAM604: oh that looks quite cool. how do you do this? +20:44 < LAM604> I took the svg posted by someone in the Audacity forum a couple of years ago +20:44 < LAM604> and i modified with colors took from https://yeun.github.io/open-color/ +20:45 < falktx> LAM604: but is that a mockup or real screenshot? +20:45 < LAM604> I have a bash script that create skins or gtk from a terminal theme, it's just sed :P +20:45 < LAM604> this is a real screenshot +20:47 < LAM604> If you take taht ImageCache.png file and you put in ~/.audacity-data/Theme/ you can use it +20:47 < LAM604> * If you take that ImageCache.png file and you put in ~/.audacity-data/Theme/ you can use it +20:49 < falktx> LAM604: what license is this under? +20:50 < LAM604> Idk :P I modified the svg with my colors, maybe I have to check if the svg has a license? +20:50 < falktx> well yes +21:00 < LAM604> This is the original post, i cant' find any info on the license. https://forum.audacityteam.org/viewtopic.php?t=101347 +21:03 < falktx> LAM604: thanks. that is something. I can reference that post. do you give permission to reuse and redistribute your version? +21:04 < LAM604> Sure :D + +https://forum.audacityteam.org/viewtopic.php?t=101347