Commit Graph

59 Commits

Author SHA1 Message Date
Paul Licameli fa4d35296e AllThemeResources.h has a .cpp & doesnt include Theme.h...
... (it used to, via MacroMagic)

This splits a cycle of 8 into 6 + 1 + 1
2020-05-28 05:50:24 -04:00
Paul Licameli ae9aca8177 Implement member functions of classes in corresponding .cpp files...
... in four cases; not in some other .cpp file.

This is another move that causes the generated graph to reflect dependencies
correctly.

This fixes other large, hidden cycles that involved PrefsDialog.cpp: there was
link dependency on that when PrefsPanel.h was used for the base class.  No
longer.

Also cycles involving TrackPanel.cpp, which contained the default
implementations for TrackPanelCell and related abstract base classes.
2020-05-28 05:50:22 -04:00
Paul Licameli 4a271ba549 Move namespace Registry into new source files 2020-05-28 05:45:11 -04:00
Leland Lucius b9959de4ba Add cmake option to disable precompiled headers 2020-05-26 20:01:49 -05:00
Leland Lucius 37a19d6db4 Enable precompiled headers on OSX
Learned today how to disable precompiled header usage
for specific files, so we can now enable PCH usage on
OSX.
2020-05-26 14:39:36 -05:00
Leland Lucius e7decd8013 Cleanup a few more library builds 2020-05-26 13:36:07 -05:00
Paul Licameli 7fbfc2b292 Finish the job of 30dbdf4, deleting abandoned source files...
... And correcting #include paths, and removing mentions in read-me files, and
correcting CMakeLists.txt
2020-05-25 17:21:05 -04:00
Paul Licameli e4238a93a0 src/CMakeLists.txt includes gtk ...
... not relying on prior inclusion of lib-src/FileDialog
2020-05-25 17:21:05 -04:00
Leland Lucius c42d188e7b Removed old build system
This was fun!!! Holler if I had too much fun. :-)
2020-05-24 13:18:47 -05:00
Paul Licameli a3d690e473 Remove lib-src/lib-widget-extra...
... It only implemented class NonGuiThread, which was not third-party, and
became unused at commit a6d0b3f
2020-05-22 09:22:49 -04:00
Leland Lucius 4b1d5c376d Bug 2400 - Mac: Zoomed in, playback meters slow to respond. 2020-05-10 02:36:28 -05:00
Leland Lucius 06c36f7fe6 Synchronize CMake install target with original 2020-04-24 23:59:11 -05:00
Leland Lucius 2b24220315 Fix locale name creation for Linux 2020-04-24 23:43:24 -05:00
Leland Lucius 4b8f923fd1 Fix GIT revision when build directory is outside source tree 2020-04-24 23:39:12 -05:00
Leland Lucius bc3a878ba1 Update CMake project for Mac
Hopefully, this will make Audacity the default configuration
in the XCode GUI.  It works for me, but need others to test
it.
2020-04-19 01:23:37 -05:00
Leland Lucius e3f33b3367 Add '-Wno-underaligned-exception-object" to CMake build 2020-03-30 11:38:02 -05:00
Carlo Bramini 84d0cd0220
[CMAKE] Add "/MANIFEST:NO" only to MSVC (#460)
The option "/MANIFEST:NO" is recognized only by Microsoft C++ compiler, so its addition must be limited to this compiler rather than generic target for Windows.
2020-03-21 10:28:05 -05:00
Leland Lucius f1ec53d786 Get rid of unwanted dependency in last commit 2020-03-11 23:43:17 -05:00
Leland Lucius 66aae0900b Ease CMake and legacy build coexistence
Cliff noticed that the CMake git ident was not being updated when
pulling new changes.  This was because it was getting captured at
configuration time and, even if you pull more changes, the CMake
configuration may not be redone automatically if the build files
weren't also changed.

So, this adds a new target to get the information at build time
instead.
2020-03-11 22:31:19 -05:00
Raphael Graf 9d4082d7f1
[CMAKE] Set RUNTIME_OUTPUT_DIRECTORY on Linux/BSD (#450) 2020-03-11 18:07:30 -05:00
Leland Lucius abec10d88b Add cmake_build.txt and fix a small CMake issue
The cmake_build.txt is for Mac only right now, so we'll probably
want to try and figure out how to make it generic enough for all
platforms.
2020-03-07 18:16:27 -06:00
Leland Lucius 2a4421bf92 Remove sc4 plugin from CMake build 2020-03-01 12:12:37 -06:00
Leland Lucius 8b184e1172 Rework audacity.desktop file creation
In 805026728a, Raphael fixed
a problem with the generator expressions showing up in the
desktop file.

But, I redid it without generator expressions altogther
to get rid of null/empty mimetype entries.  These probably
do not matter, but it's no big deal to prevent them.
2020-02-29 12:41:11 -06:00
Raphael Graf 805026728a
Fix audacity.desktop file generation (CMake) (#436) 2020-02-29 09:54:42 -06:00
Leland Lucius caab2a56c9 Remove gettext download for Mac in CMake build
And added a python version that will be used on all platforms
when a suitable msgfmt isn't installed.  (As long as python
is installed.)

Extracted all the Audacity specific functions from main cmake
list and moved them to their own module.

Rearrange the main cmake module a bit and misc. cleanup.
2020-02-29 01:49:55 -06:00
Leland Lucius 618cc966b0 Fix bug #2333
It wasn't using the "AQUA" theme.
2020-02-28 15:07:09 -06:00
Leland Lucius 1a2b407e89 Add "minsrc" target to build tarball
This adds a new target that will build the "minsrc" tarball.

It can be created on any platform now, either from the command
line or from within the Window's and Mac's project files.

The output tarball will be in the build directory.

And it's very easy to update the list of files/directories to
exclude...see scripts/CMakeLists.txt
2020-02-28 01:40:16 -06:00
Raphael Graf c886851edc
Improve CMake BSD compatibility (#433) 2020-02-25 12:42:12 -06:00
Leland Lucius 9e5434b843 Remove duplicate/misnamed CMake option 2020-02-24 15:45:00 -06:00
Leland Lucius e5c5c08de6 Fixes for Linux and Mac builds
Adding "apt-get update" to hopefully fix the Linux build. I thought
Github would "fix" the image, but it doesn't hurt to have the update
in there anyway.

And fix the Mac Info.plist version.
2020-02-24 08:55:20 -06:00
Leland Lucius f3ce60ae7a Fix the Github CMake build
Restore the wxDEBUG_LEVEL defines for the module builds.  It is
currently required (see explanation in CMakeLists.txt)

Add explanantion of why wxWidgets_USE_REL_AND_DBG=NO is needed
for the Github Windows build.

Further restrict the disabling dynamic loading for Windows and Mac
of the Lame and FFmpeg libs.  Some corrections need to be made in
ExportMP3.cpp (and probably some for FFmpeg as well).

And don't build mod-nyq-bench or mod-null by default until they
can be fixed.  (They fail to build.)
2020-02-23 16:35:58 -06:00
Leland Lucius d80741e0fb Temp fix until ExportMP3.cpp is fixed 2020-02-23 05:17:34 -06:00
Leland Lucius a8ee0b8c7c More cmake updates and cleanup
Visual Studio NuGet package handling was redone to correct a
chicken and egg situation. (See the nuget_package() function
in audacity/CMakeLists.txt.

Due to the change in NuGet handling, was finally able to make
the Audacity target dependent on several other targets.  This
ensures the destination directory is populated correctly.

Library handling for system packages reworked to ensure the
correct libraries are used and to "workaround" an issue where
the libraries weren't being included in the link command...no
idea why.  New way is better anyway.

Don't allow a system library for SBSMS since it seems we have
a unique (Audacity-only???) version.

Don't define wxDEBUG_LEVEL.  It's not needed and causes duplicate
symbol warnings.

A couple of small changes to config files to remove libmad and
libsndfile warnings.

Do not include serdi.c and sordi.c in the LV2 build.

Fix handling of static Lame and linked FFmpeg libs.

Use cmake file() instead of gcc/awk to extract version information
from Audacity.h for the Mac Info.plist.

Use "cmake -E tar" to zip artifacts in github action.
2020-02-23 03:57:31 -06:00
Leland Lucius 26827bc5e5 Fix missing AU, VST, and Ladspa effects
This also prevents a link error if you specifically link against the
10.9 SDK or older.
2020-02-21 10:16:17 -06:00
Leland Lucius 692174ce2e Forgot several resources in the Mac CMake build
Thanks Peter.
2020-02-19 14:59:33 -06:00
Leland Lucius 53840f7a3e Various fixes to CMake build
Mostly a result of not defining __WXMSW__, but the portmixer cmakelist
wasn't looking for the right portaudio variables.
2020-02-19 10:53:50 -06:00
Leland Lucius e07b5df6f3 Reworked cmake command options
And fixed a recursion problem when copying DLLs to dest folder

The command options are now:

   // Enable Audio Unit plug-in support
   audacity_enable_audiounits:BOOL=ON

   // Library preference [system (if available), local]
   audacity_lib_preference:STRING=system

   // Use FileDialog library [local]
   audacity_use_FileDialog:STRING=local

   // Use expat library [local]
   audacity_use_expat:STRING=local

   // Use ffmpeg library [loaded, off]
   audacity_use_ffmpeg:STRING=off

   // Use flac library [system (if available), local, off]
   audacity_use_flac:STRING=local

   // Use id3tag library [system (if available), local, off]
   audacity_use_id3tag:STRING=local

   // Use LADSPA plug-in support [on, off]
   audacity_use_ladspa:BOOL=ON

   // Use lame library [system (if available), local]
   audacity_use_lame:STRING=local

   // Use libextra library [local]
   audacity_use_libextra:STRING=local

   // Use lv2 library [system (if available), local, off]
   audacity_use_lv2:STRING=local

   // Use mad library [system (if available), local, off]
   audacity_use_mad:STRING=local

   // Use midi library [system (if available), local, off]
   audacity_use_midi:STRING=local

   // Use nyquist library [local, off]
   audacity_use_nyquist:STRING=local

   // Use ogg library [system (if available), local, off]
   audacity_use_ogg:STRING=local

   // Use the portaudio CoreAudio interface if available
   audacity_use_pa_coreaudio:BOOL=YES

   // Use the JACK audio interface if available [loaded, linked, off]
   audacity_use_pa_jack:STRING=off

   // Use the OSS audio interface if available
   audacity_use_pa_oss:BOOL=NO

   // Use portaudio library [local]
   audacity_use_portaudio:STRING=local

   // Use portmixer library [local, off]
   audacity_use_portmixer:STRING=local

   // Use portsmf library [system (if available), local, off]
   audacity_use_portsmf:STRING=local

   // Use sbsms library [system (if available), local, off]
   audacity_use_sbsms:STRING=local

   // Use sndfile library [system (if available), local]
   audacity_use_sndfile:STRING=local

   // Use soundtouch library [system (if available), local, off]
   audacity_use_soundtouch:STRING=local

   // Use soxr library [system (if available), local]
   audacity_use_soxr:STRING=local

   // Use twolame library [system (if available), local, off]
   audacity_use_twolame:STRING=local

   // Use vamp library [system (if available), local, off]
   audacity_use_vamp:STRING=local

   // Use vorbis library [system (if available), local, off]
   audacity_use_vorbis:STRING=local

   // Use VST2 plug-in support [on, off]
   audacity_use_vst:BOOL=ON

   // Use wxwidgets library [system (if available), local]
   audacity_use_wxwidgets:STRING=system
2020-02-14 15:56:33 -06:00
Leland Lucius db70394964 Changes to detect 64-bit builds correctly 2020-02-12 13:08:41 -06:00
Leland Lucius e79274a403 Various cmake changes
Mostly from suggestions, but there's a couple of other minor
fixes and additions:

   Cmake not decides with SDK to use on Windows

   All Audacity cmake options are not prefixed with "audacity_", but this
   is configurable in audacity/CMakeLists.txt

   Several other options have been marked advanced so they don't clutter
   the CMake GUI

   On Windows, multiple processors will now be used reducing build time
   considerably

   Quieted a couple of package messages that the user doesn't need to see

   No longer tried to create aliases on Windows

   No longer used precompiled headers if ccache is available

   On Windows, only copies the needed wxWidgets and VC runtime libraries
   to the bin directory
2020-02-12 01:05:51 -06:00
Leland Lucius 70bbfb69d5 Last major update to the cmake build
I'm sure there will be further minor updates, but this
should be the last major update and it should be ready
for testing.

Audacity specific cmake options (cmake -Doption=<yes|no>) include:

   // Disable dynamic loading of ffmpeg libraries
   disable_dynamic_ffmpeg:BOOL=OFF

   // Disable dynamic loading of JACK libraries
   disable_dynamic_jack:BOOL=ON

   // Enable ffmpeg library
   enable_ffmpeg:BOOL=ON

   // Enable flac library
   enable_flac:BOOL=ON

   // Enable id3tag library
   enable_id3tag:BOOL=ON

   // Enable LADSPA plug-in support
   enable_ladspa:BOOL=ON

   // Enable lv2 library
   enable_lv2:BOOL=ON

   // Enable mad library
   enable_mad:BOOL=ON

   // Enable midi library
   enable_midi:BOOL=ON

   // Enable nyquist library
   enable_nyquist:BOOL=ON

   // Enable ogg library
   enable_ogg:BOOL=ON

   // Enable portmixer library
   enable_portmixer:BOOL=ON

   // Enable portsmf library
   enable_portsmf:BOOL=ON

   // Enable sbsms library
   enable_sbsms:BOOL=ON

   // Enable soundtouch library
   enable_soundtouch:BOOL=ON

   // Enable twolame library
   enable_twolame:BOOL=ON

   // Enable vamp library
   enable_vamp:BOOL=ON

   // Enable vorbis library
   enable_vorbis:BOOL=ON

   // Enable VST2 plug-in support
   enable_vst:BOOL=ON

   // Use system libraries if available
   prefer_system_libs:BOOL=ON

   // Enable the portaudio ALSA interface if available
   use_pa_alsa:BOOL=ON

   // Enable the portaudio CoreAudio interface if available
   use_pa_coreaudio:BOOL=ON

   // Enable the portaudio DirectSound interface if available
   use_pa_ds:BOOL=ON

   // Use the JACK audio interface if available
   use_pa_jack:BOOL=ON

   // Use the OSS audio interface if available
   use_pa_oss:BOOL=ON

   // Enable the portaudio WASAPI interface if available
   use_pa_wasapi:BOOL=ON

   // Enable the portaudio WMME interface if available
   use_pa_wmme:BOOL=ON

   // Use ffmpeg system library if available
   use_system_ffmpeg:BOOL=ON

   // Use flac system library if available
   use_system_flac:BOOL=ON

   // Use id3tag system library if available
   use_system_id3tag:BOOL=ON

   // Use lame system library if available
   use_system_lame:BOOL=ON

   // Use lv2 system library if available
   use_system_lv2:BOOL=ON

   // Use mad system library if available
   use_system_mad:BOOL=ON

   // Use midi system library if available
   use_system_midi:BOOL=ON

   // Use ogg system library if available
   use_system_ogg:BOOL=ON

   // Use portsmf system library if available
   use_system_portsmf:BOOL=ON

   // Use sbsms system library if available
   use_system_sbsms:BOOL=ON

   // Use sndfile system library if available
   use_system_sndfile:BOOL=ON

   // Use soundtouch system library if available
   use_system_soundtouch:BOOL=ON

   // Use soxr system library if available
   use_system_soxr:BOOL=ON

   // Use twolame system library if available
   use_system_twolame:BOOL=ON

   // Use vamp system library if available
   use_system_vamp:BOOL=ON

   // Use vorbis system library if available
   use_system_vorbis:BOOL=ON

   // Use wxwidgets system library if available
   use_system_wxwidgets:BOOL=ON
2020-02-11 01:15:26 -06:00
Leland Lucius 2ec12c150b Fix multi-config builds
Hopefully, this corrects the handling of the different
configs like Debug, Release, etc, when dealing with
multi-config generators.
2020-02-06 20:10:29 -06:00
Leland Lucius f0e3ee2cde More cmake updates
Added install target (this is mainly for Linux)
Added mod-nyq-bench

More to come...
2020-02-06 01:17:20 -06:00
Leland Lucius 2df9d3528b Add mod-nyq-bench target
And define a few more convenience variables.
2020-02-05 18:45:05 -06:00
Leland Lucius 2e113ba0a5 More cmake updates
Uses system libraries by default with a fallback to local
Adds the Wrapper build on OSX
Adds mod_script_pipe
Adds ffmpeg
Some additional cleanup
2020-02-05 11:10:22 -06:00
Leland Lucius e2a7204403 Provides to use the system wxWidgets install
The default is to use the system one if found.  If the
WXWIN environment variable is set and points to a valid
wxWidgets tree, that will be used.  Otherwise, it will
search the platform specific locations.

You can use a local library instead with:

   cmake -Duse_system_wxwigets=no ...

In this case it will look for the WXWIN environment variable
and use that or it will download the Audacity specific wxWidgets
source.  In both cases, wxWidgets will be built as part of the
Audacity project.
2020-02-03 19:05:32 -06:00
Leland Lucius 7706e0c865 Remove TranslatableStringArray.h from CMakeList 2020-02-03 01:13:12 -06:00
Leland Lucius 6217351a12 Updates the cmake build system
It's still has some work, but it successfully builds on
all 3 main platforms.  Some of the outstanding items
include:

   Install target testing (mostly important for Linux)
   CMakeList clean up and comments
   Debug and Release build verification
   Audit of compile/link options
   Need a Mac signed and notarized build
   (and probably more)
2020-02-03 00:39:43 -06:00
Loss e787694f07 Implementation of Timer Toolbar
PRL:  Rebased onto recent master, fixed compilation and indentation, added new
files to the XCode project, added an EXPERIMENTAL flag
2019-12-31 17:42:54 -05:00
Max Maisel a94cda94ae Create empty EBUR128 class.
This class will contain all EBU-R128 related analysis code.
Add all new files to all build systems as well.
2019-11-22 19:42:33 +01:00
Max Maisel 6da48db127 Start work on new Loudness effect
This is based on my old loudness effect prototype which was included
in the Normalize effect.

Create all source files and add them to all build systems.
Currently, the effect only consists of a GUI mockup.
Create Octave+mod-script-pipe based dummy unit-test as well.
2019-11-22 19:42:32 +01:00