1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-02 00:29:41 +02:00

13181 Commits

Author SHA1 Message Date
Dmitry Vedenko
733cf89cff Adds curl to the list of system libraries
Fixes macOS build with system libcurl
2021-05-26 12:46:45 +03:00
Dmitry Vedenko
45e4627ac9 Fixes PKG_CONFIG spelling 2021-05-26 12:46:45 +03:00
Dmitry Vedenko
851d8b2272 Add wxwidgets::base to a list of base modules 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
Paul Licameli
6b0eed3a82
Merge pull request #909 from Paul-Licameli/Bug2764
Bug2764 Open Project... (under Scriptables in Extra menus) can corrupt a project
2021-05-24 20:09:00 -04:00
Paul Licameli
5a61428d4d Don't stop recovering projects in case one of them fails...
... This matters now that ProjectManager::OpenProject really can return null.
2021-05-24 20:04:58 -04:00
Paul Licameli
4209c8150a Bug2764: Open Project... in Scriptables shouldn't corrupt project...
... Now new project windows are opened when .aup3 files are opened; but
behavior chages only in that case.

Wherever opening of other files invoked import code, we still do or do
not make a new project in exactly the same cases as before; such as, when
opening multiple files with File > Open, be sure each imported file still opens
in its own separate window.

This means the decision whether to open a new project must be lowered into
ProjectFileManager, where the type of the file is discovered, and we pass it a
function object so it avoids a dependency cycle with ProjectManager.

It also means the checking for errors and closing of new projects in case of
failure must be replicated at all places where ProjectFileManager::OpenProject
is called directly.

The class ProjectManager::ProjectChooser simplifies this.

Recently introduced calls to SafeToOpenProjectInto(), before
ProjectManager::OpenProject(), are now lowered into that class, delaying the
safety check so it might also be called where ProjectFileManager is used
directly.
2021-05-24 20:04:58 -04:00
Paul Licameli
a1650771b1 New argument for ProjectManager::OpenProject, not yet implemented...
... It is false in exactly the cases where there is now also a check first for
the safety of opening a project file.

Those are the cases where a new project was made for imports, but this was not
necessary for safety.  Yet old behavior will be preserved in such cases.
2021-05-24 20:04:58 -04:00
Paul Licameli
97cf411dd5 Function for repeated check whether it is safe to overwrite project 2021-05-24 20:04:58 -04:00
Paul Licameli
1bed51ac80 ProjectFileManager::OpenFile returns a pointer to project 2021-05-24 20:04:57 -04:00
Paul Licameli
c96d5f12bc Comments; range-for; fix unchecked dereferences of pointer-to-pointer 2021-05-24 20:04:57 -04:00
James Crook
77b60ebbbb
Require higher cmake version number. 2021-05-24 22:06:03 +01:00
Dmitry Vedenko
3a04034d84
Use Audacity patched versions of libmad and libid3tag (#928)
* Use Audacity versions of libmad and libid3tag

* Properly setup zlib in libid3tag

* Fixes the wxBase target for system wxWidgets
2021-05-24 23:11:05 +03:00
Dmitry Vedenko
cc349cce16
Update README.md 2021-05-24 22:58:08 +03:00
Dmitry Vedenko
cf2054fac4 Updated the Docker image according with the code review 2021-05-24 06:53:53 -07:00
Dmitry Vedenko
ad7faee418 Add wxBase, so the master will build fine 2021-05-24 06:53:53 -07:00
Dmitry Vedenko
8eb4654a9c Documentation is updated 2021-05-24 06:53:53 -07:00
Dmitry Vedenko
cd92807dc9 Fixes missing LF 2021-05-24 06:53:53 -07:00
Dmitry Vedenko
66a85bf97c Update the build documentation 2021-05-24 06:53:53 -07:00
Dmitry Vedenko
f66381b967 Removes previously vendored libraries from the source tree 2021-05-24 06:53:53 -07: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
Dmitry Vedenko
4fec5287ea GitHub workflow updated 2021-05-24 06:53:53 -07:00
Dmitry Vedenko
9c8185545d Adds an environment to check, how well Linux builds with system packages
A special mode `audacity_obey_system_dependencies` is added, so the build will fail if we could not build against a system package for some reason. 

The following packages are marked for the local build now:

* **wxWidgets**: Ubuntu lacks support for 3.1.3. We can't build against 3.0 branch.
* **portaudio**: there are issues, that prevent using a system version of portaudio.
* **sqlite3**: Ubuntu package is very dated; we care about the performance and stability.
* **nyquist**: Ubuntu has no package available.
* **vamp**: Ubuntu has no development package available.
* **portmixer**: Ubuntu has no package available.
* **sbsms**: Ubuntu package is very dated; we care about the performance and stability.

We use docker to create a clean build environment. Currently, `pkg-config` is used to locate the system libraries. There are few issues with `pkg-config` on Ubuntu:

* It does not work with `lame` and `portmidi`.
* The packaged files for `id3tag` and `mad` have wrong version.
We fix such cases by copying the 
into `/usr/local/lib`.
2021-05-24 06:53:53 -07:00
Paul Licameli
90903d237a Introducing CMake target wxBase, for restricted uses of wxWidgets 2021-05-21 22:11:03 -04:00
Paul Licameli
26217c22f1 Distinguish nodes in modules.dot.svg that depend directly on wxBase 2021-05-21 22:09:57 -04:00
Paul Licameli
1f71ef4300 New interface library target wxBase restricts view of wxWidgets...
... It will be used as a target link library of some lower level Audacity
libraries, to be separated from the executable.

These libraries will have link time dependency only on the wxBase subset of
non-monolithic wxWidgets builds.

More, they are restricted to use only a proper subset of wxBase functionality:
they are prevented, at compile time, not only from using any graphical user
interface, but also from using the main event loop or global application object
-- though these things are also in wxBase.

They may still use things like strings, files, threads, atomics, and other
utilities that may have modern C++ standard library equivalents.

It would be preferable to use those, but it is not a priority to make those
rewrites.
2021-05-21 21:51:58 -04:00
Paul Licameli
48cacdd961 More AUDACITY_DLL_API linkage specifications 2021-05-21 21:43:59 -04:00
Paul Licameli
945d3d1a8f Changes to keep locale/update_po_files.sh running correctly 2021-05-21 21:42:29 -04:00
Paul Licameli
91355a2f8c Scan for i18n strings in all modules/mod-*, libraries/lib-* folders 2021-05-21 21:42:10 -04:00
Paul Licameli
cafed8b7f3 Fix sed commands in update_po_files.sh for macOS ...
... BSD version of sed doesn't use all the same options.

So the script was misinterpreting .po file names as sed commands and not doing
what was intended, and set -o errexit caused early abort of the script.
2021-05-21 21:29:28 -04:00
Paul Licameli
010fe7bff2 Fix complaint from xgettext about empty string 2021-05-21 20:41:27 -04:00
James Crook
7605763fa0 Bug 2784 - Filter Curve EQ; Height increase.
Comment in closing of this bug requested an increase in height.
No reason not to, so height increased too.
2021-05-20 17:52:47 +01:00
James Crook
df91d14c9e Bug 2793 - AUP3 projects fail to compact if project's path contains a single-quote 2021-05-20 11:27:21 +01:00
Grzegorz Pruchniakowski
959d1b8dc2 Update pl.po from Transifex
Update pl.po from Transifex
Changes:
All 'at least' translated as 'przynajmniej'.
All 'selection' translated as 'zaznaczenie'.
And a few small fixes.
END of fixes 😁

Greetings,
Gootector
2021-05-20 08:11:17 +01:00
James Crook
2b10309fb3 Bug 2784 - Enh: Filter Curve EQ does not remember window size
Per comment 1 in that Bugzilla bug report, this
change makes the default/initial/minimum size larger.
2021-05-19 13:16:42 +01:00
Paul Licameli
8154dbed2e
Merge pull request #905 from Paul-Licameli/yet-more-module-preliminaries
Yet more module preliminaries
2021-05-19 06:30:52 -04:00
Paul Licameli
906bd94826 Linux build doesn't need environment variable to find the modules 2021-05-18 20:51:55 -04:00
Paul Licameli
5a362c308c Correct the placement of extension modules in the Windows build tree 2021-05-18 20:51:55 -04:00
Paul Licameli
7fd53e8778 Auto-enable list of regularly shipped modules (except script-pipe) 2021-05-18 20:51:55 -04:00
Paul Licameli
592518c157 modules/CMakeLists.txt iterates topologically sorted list of modules 2021-05-18 20:51:55 -04:00
Grzegorz Pruchniakowski
97c4a3835d Update pl.po from Transifex
Update pl.po from Transifex
2 fixes.

Greetings,
Gootector
2021-05-18 22:45:42 +01:00
Paul Licameli
bacf06944a Bug2792: Audacity fails to launch...
... bug was introduced at f1de843
2021-05-18 17:11:46 -04:00
Paul Licameli
b1f05e5747
Merge pull request #903 from Paul-Licameli/more-module-preliminaries
More module preliminaries
2021-05-18 09:24:05 -04:00
Paul Licameli
42bddca151 Fix transitive dependencies via interface libaries 2021-05-18 00:21:48 -04:00
Paul Licameli
7cf78c15dc non-Win, non-Debug builds: strip module file symbols to save space...
... This only strips the symbols that do not have external linkage
2021-05-18 00:16:44 -04:00
Paul Licameli
dfbf3d25c1 Support for our own libraries, distinct from modules 2021-05-18 00:12:44 -04:00
James Crook
ea04eef7e4 Fix Windows button style on Mac toolbar.
Removing audacity.h also removed #define USE_AQUA_THEME
2021-05-17 18:56:03 +01:00
Paul Licameli
77f8e63a5b
Merge pull request #895 from Paul-Licameli/settings-objects-and-example-uses
Settings objects and example uses
2021-05-17 08:46:54 -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