Commit Graph

122 Commits

Author SHA1 Message Date
Paul Licameli 50b384adae Separate files for PluginRegistrationDialog...
... so that PluginManager can avoid using GUI
2021-06-30 21:15:19 -04:00
Paul Licameli 710ec976ff Move class PluginRegistrationDialog to a header file 2021-06-30 21:15:19 -04:00
gera d9ab95a4b2 Add application preferences with update checkbox. 2021-06-18 09:46:40 -04:00
gera 0ab6aefe11 Merge with master and resolve CI configure script conflict. 2021-06-18 09:46:40 -04:00
Peter Jonas de2213ea2c Generate AppImage on GitHub Actions
Fixes #695. Supersedes #172. See https://appimage.org/.
2021-06-16 11:00:16 -04:00
Vitaly Sverchinsky e8b186a9b4 Crashreporting 2021-06-15 22:44:07 +03:00
dofuuz e135bcf16f Some more cleanup for new spectrogram color scheme
- Add some assertion
- Define spectrogram color scheme name using the two-argument constructor. (i18n)
2021-06-15 12:41:44 -04:00
Peter Jonas 4b5c95d7fe Move GitHub Actions CI scripts into separate files
Break the workflow into smaller stages (Configure, Build, Install,
Package, etc.) so that you can see exactly which stage failed in the
GitHub Actions run log.

Create a separate Bash CI script for each job stage (configure.sh,
build.sh, install.sh, package.sh, etc.) to reduce the size of the main
YAML workflow file and enable Bash syntax highlighting.

Close #917
2021-06-10 10:09:49 -07:00
Paul Licameli e2fda7df32 Better node names for 3p libraries in picture of dependencies 2021-06-09 15:06:21 -04:00
Dmitry Vedenko bbb9ca14a2 Adds ErrorReportDialog and ShowExceptionDialog 2021-06-08 08:08:26 -07:00
Paul Licameli 64d7ca7403 New utility library 2021-06-02 07:08:19 -04:00
Paul Licameli 45c6190c51 New library lib-strings for Identifier and internationalization 2021-05-27 09:51:32 -04:00
Paul Licameli 70c4898648 Move class wxArrayStringEx to its own files 2021-05-27 09:51:32 -04:00
Paul Licameli bb14a6016f Move TranslatableString to new files 2021-05-27 09:51:32 -04:00
Paul Licameli 5a516a7999 Move Identifier, TaggedIdentifier, some type aliases to Identifier.h 2021-05-27 09:51:32 -04:00
Dmitry Vedenko 4e6a1a81a9 Updates the way shared libraries are hadled
1. We put all shared libraries into one place. Both conan and locally built
2. We invoke CopyLibs to copy the libraries to a proper location and to correctly set the RPATH
Fixes CopyLibs script on Windows


Fixes CopyLibs.cmake for Linux

Fixes CopyLibs on macOS


Fixes CopyLibs on macOS
2021-05-26 12:46:45 +03:00
Paul Licameli 9f59879765 Add a header file to hold strings between string and feature freeze 2021-05-25 10:13:18 -04:00
Dmitry Vedenko 8aca9d02de Add the first Conan-based dependecies
add_conan_lib cmake function is defined, that allows to add a dependency using Conan with two possible system fallbacks:

1. pkg_check_modules is invoked, if `PGK_CONFIG ...` is present
2. find_package is invoked if `FIND_PACKAGE_OPTIONS` is present and `pkg_check_modules` has failed

If `ALWAYS_ALLOW_CONAN_FALLBACK` is present - `obey_system_dependencies` will be ignored for the package

Currently, the following dependencies are retrieved using Conan:

* zlib
* expat
* wxwidgets
* libmp3lame
* libid3tag
* libmad

The last three libraries are included in this commit, as they depend on zlib.
Properly pass **arch** and **os.version** to Conan
2021-05-24 06:53:53 -07:00
Dmitry Vedenko 576b7e66d2 Update min-macos to 10.9
Since XCode 10, Apple does not recommend building for macOS <10.9

Reason - 10.7 and 10.8 require libstdc++

We enforce libc++ 

```# Shouldn't cmake do this???
   string( APPEND CMAKE_CXX_FLAGS " -stdlib=libc++" )```

While this generally works, it makes the proper dependency management tricky.
 
Compiler message for the library support:

```
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
    ld: library not found for -lstdc++
```
2021-05-24 06:53:53 -07:00
Paul Licameli dfbf3d25c1 Support for our own libraries, distinct from modules 2021-05-18 00:12:44 -04:00
Paul Licameli f1de843246 Use Settings for default sample rate and format...
... The first is an example of a Setting with a computed default value.

Also making a new file to hold them, separate from the GUI that changes them
in QualityPrefs; fewer things depend on QualityPrefs
2021-05-17 08:46:08 -04:00
Paul Licameli b92f2579b7 ModuleManager does not depend on ModulePrefs, which contains GUI code 2021-05-16 07:03:12 -04:00
Paul Licameli fd94b66483 Don't duplicate defs of DLL_IMPORT, DLL_API, ModuleDispatchTypes 2021-05-16 07:03:11 -04:00
Paul Licameli 7302fc584f Move RecordingSchedule, PlaybackSchedule to new files 2021-05-14 16:26:29 -04:00
Paul Licameli 5b77d19324 Missing $ -- thank you vladkosi 2021-05-12 16:30:15 -04:00
Paul Licameli b52192c4c4 Fix builds with precompiled headers, which broke at 794f4e5 2021-05-12 13:02:29 -05:00
Paul Licameli c5ebc396eb Audacity.h has shrunk to nothing, now remove it! 2021-05-10 00:05:23 -05:00
Paul Licameli f2b53c82eb Move definition of AUDACITY_DLL_API into src/CMakeLists.txt 2021-05-10 00:05:23 -05:00
Paul Licameli 5844b2090a Generate a picture of module dependencies at configure time 2021-05-06 09:15:22 -05:00
Paul Licameli fe8659f435 Separate CMake function for pervasive C++ flags, reuse it in modules 2021-05-06 09:15:22 -05:00
Paul Licameli ca7d96f20a Transitive link dependencies via Audacity simplify module CMakeLists 2021-05-06 09:15:22 -05:00
Paul Licameli 6f58cb8294 Hoist the generation of the config header into top CMakeLists...
... Because it depends on having visited various lib-src directories, which I
want to delay until visiting various of the modules, and I also want to visit
src before the modules, because that's bottom-up dependency ordering.

So the step should not be done in src.
2021-05-06 09:15:22 -05:00
Paul Licameli e653b4aaf8 Eliminate Experimental.h, configure compile options instead...
... This makes it impossible to forget to include the EXPERIMENTAL definitions
(such as when cutting and pasting code) and so get unintended quiet changes of
behavior.

The EXPERIMENTAL flags are now specified instead in new file Experimental.cmake
2021-04-27 12:40:07 -04:00
Leland Lucius 6450495426 Bug 2211 - Mac: keyboard navigation problem in Libraries preferences dialog 2021-04-05 03:37:36 -05:00
Leland Lucius 521c2e0b58 Missed a file 2021-02-04 03:17:32 -06:00
Leland Lucius a5609e44d0 Use version 2.1.0 of libsbsms
This is actually the exact code we already use, but Clayton has
set up a github repo for the release to make it available to
distros.
2021-02-01 10:12:06 -06:00
Paul Licameli 2c5c0f9dfd Class AudacityPrefs renamed, moved, reused in PluginManager...
... And construction of the main instance is hoisted into AudacityApp
2021-01-31 11:11:03 -05:00
Leland Lucius 21296b0cf1 New wrapper for wxFileConfig to fix several bugs
Bug 2135 - Audacity crashes if launched with a locked pluginregistry.cfg file
Bug 2651 - If pluginregistry.cfg gets locked while Audacity is active the Plug-in Manager is blocked - with no help
Bug 2650 - Virgin launch fails with no pluginregistry.cfg file created
Bug 1264 - Writing to locked audacity.cfg not reported to user
Bug 2649 - Launching Audacity with a locked audacity.cfg file gives not one but three error messages - and no help
Bug 2652 - User is not warned if they launch Audacity with a locked pluginsettings.cfg file
2021-01-31 04:24:35 -06:00
Paul Licameli 43574553fc Break dependency cycle introduced at 50f3321...
... This only cuts and pastes some functions from FileNames to another new file
and namespace, and changes namespace qualifiers where they are called.

The cycle resulted because of the need to include widgets/ErrorDialog.h
2021-01-16 13:28:37 -05:00
Paul Licameli ab15efebf5 Add Audacity.mm to the Mac build 2020-12-09 15:18:03 -05:00
Paul Licameli 0203205cf6 Remove ProjectsPrefs.* ...
... the class became unused, never constructed, at commit
cbf1bb558e
2020-11-20 13:28:05 -05:00
Paul Licameli 4b3a4a1f4b Warning about returning reference to temporary is now a build breaker 2020-11-18 14:07:16 -05:00
Paul Licameli c478e12b48 Fix dangling else ambiguity, and make that warning a build-breaker...
... In this case, the ambiguity resolution was correct for the intent, but
we shouldn't rely on that.
2020-09-22 13:14:29 -04:00
Paul Licameli 2b542bf734 Move TrackShifter subclasses each to its own new source file...
... These do not require header files; they are tiny proto-plugins that work
by registration of AttachedVirtualFunction overrides at startup.

Dependency may go from them to TrackView subclasses but not back; so in
principle a reduced Audacity without time-shift could be linked that still uses
the TrackView subclasses.

But other work to make the hit test for the Time Shift tool registrable would
have to precede that.
2020-09-21 17:31:48 +01:00
Paul Licameli 4742f4ce1c clang build won't quietly allow missing return statement 2020-09-05 14:23:35 -04:00
Leland Lucius 85b4a5376f AUP3: Make suggested directory preferences changes
In addition, I've extracted the wxTextCtrl wrapper from the
TimerRecordDialog intto widgets/wxTextCtrlWrapper.h and made
it the default for ShuttleGui::AddTextBox(). This way readonly
text controls are always included in the tab order.
2020-07-29 00:08:48 -05:00
Leland Lucius a1e83c141a AUP3: AutoRecoveryDialog experiment
Looking for feedback...
2020-07-23 01:19:29 -05:00
Paul Licameli a3fcd611b5
Dependency cleanup (#627)
* DBConnection doesn't use ProjectFileIO or need friendship...

... Instead, it is given its own weak_ptr to the project

* Demote the bypass flag into DBConnection...

... So SqliteSampleBlock needs ProjectFileIO only to get the DBConnection

* Accessor functions for the connection objects for SqliteSampleBlock

* Another level of indirection to get to the DBConnection object...

... The document holds the unique_ptr to DBConnection in an attached object;
later we want the SqliteSampleBlockFactory to locate the same pointer without
using ProjectFileIO

* SqliteSampleBlock and its factory don't use class ProjectFileIO...

... Instead they share a pointer to the pointer to the current DBConnection.

This means they no longer know how to invoke the lazy opening of that
connection.

So just require that this be done before any operations on blocks happen.  If
it hasn't, throw and let the application recover.

* ProjectFileIO no longer needs weak_ptr to Project for safety...

... so eliminate much ugliness from 127696879d

* Move DBConnection to new files...

... And SqliteSampleBlock does not depend on ProjectFileIO.

* SampleBlock.h doesn't need ClientData.h

* Function ProjectFileIO::Conn() isn't needed
2020-07-23 01:04:46 -05:00
Leland Lucius 251da3bb3b AUP3: First go at the AUP importer
Near as I can tell, it's pretty much done. Feeding all manner of
.aup projects will definitely need to be done. It would be best
to feed it REAL projects, not the contrived ones I've been playing
with.
2020-07-12 03:53:25 -05:00
Leland Lucius b12fafbea0 AUP3: Fix stupied build failure 2020-07-10 01:32:56 -05:00