Commit Graph

69 Commits

Author SHA1 Message Date
Dmitry Vedenko 8a75211548
Bump the Audacity alpha version to 3.0.4 2021-06-24 12:41:10 +03:00
Paul Licameli 77dab158c3 Make Audacity build in C++17 ...
... Fixing many conditional operators with explicit construction of wxString
instead of simple string literals;

And fixing allocation of more strictly aligned structures on Mac, without need
for 10.14 as the minimum SDK, by means of some class-specific operators new
and delete.
2021-06-18 21:44:55 +03:00
gera c7a24df915 Add recommends from review. 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
Dmitry Vedenko 6da25e1646 Add targets for packaging DMG and InnoSetup
Fixes configure.sh

Fixes Windows code signing

Fixes an issue with conan cache on windows

Fixes build manual script

Fixes build manual

Remove unused props

Use long options

Yet another manual fix

Fixes iss
2021-06-16 05:07:31 -07:00
Vitaly Sverchinsky e8b186a9b4 Crashreporting 2021-06-15 22:44:07 +03: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
Dmitry Vedenko cb1f8b6c34 Adds lib-sentry-report 2021-06-08 08:08:26 -07:00
Dmitry Vedenko 4dc4e86863 Make lib-network-manager an opt-in library 2021-05-26 07:41:47 -07:00
Dmitry Vedenko 8289f9dbe2 Change the default lib preference to local 2021-05-26 12:46:45 +03: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
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 d51f505cd9 Define Audacity version constants in CMake not Audacity.h 2021-05-10 00:05:23 -05:00
Paul Licameli 794f4e5877 Inclusion of the correct config header on command line using CMake 2021-05-10 00:05:23 -05:00
Paul Licameli 79b259851f Version check on gcc compiler moved to 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 20e818cb9e CMake visits src before modules, because modules depend on src 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 90a69a0173 Bug 2535 - Audacity fails to build on 32-bit Linux 2020-09-06 03:13:16 -05:00
Leland Lucius c1407cdca9 Force use of our wxWidgets and fix RPATH handling 2020-07-05 13:39:57 -05:00
Leland Lucius 446da212f1 Make sure the modules are built 2020-05-27 16:57:11 -05:00
Leland Lucius 5f5a477dbf Changed build to require python3 instead of python2 2020-05-27 16:01:04 -05:00
Leland Lucius f33905cd30 Only set SSE/SSE2 flags for 32-bit builds on Windows
They aren't needed for 64-bit since all x86 64-bit processors have
these instructions.
2020-05-26 23:12:19 -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
James Crook 24dba3de6b Update CMake for FreeBSD
(Patch from JackL)
2020-05-19 10:43:36 +01:00
Leland Lucius 2b24220315 Fix locale name creation for Linux 2020-04-24 23:43:24 -05:00
Leland Lucius 8898394f90 Fix Xcode version identification 2020-04-24 23:38:35 -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 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 3d1abf3ddb Preset GIT info in case GIT isn't installed 2020-03-03 17:15:02 -06:00
Raphael Graf 6bb10d4c8f
[CMAKE] Fix build outside of git repository (#440) 2020-03-03 17:11:22 -06:00
Raphael Graf 11748750fb
Fix manpage install path (CMake) (#439) 2020-03-02 23:33:24 -06:00
Leland Lucius 2a4421bf92 Remove sc4 plugin from CMake build 2020-03-01 12:12:37 -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 fe09b0c4ac Add a couple of missing header checks 2020-02-28 18:08:36 -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
Leland Lucius 96572761c4 Fix linkage to sc4 plug-in 2020-02-27 09:58:24 -06:00
Leland Lucius f62500c3ab Disable sc4 plugin tempoarily
Having some linkage problems on Windows...
2020-02-27 01:58:47 -06:00
Leland Lucius 5d62cdbd1e Add sc4 plug-in to CMake build for Windows and Mac 2020-02-27 00:52:34 -06:00
Leland Lucius c1ce3c74c4 Adding libatomic check for LLVM 2020-02-25 10:02:54 -06:00
Leland Lucius 3545097fe9 Fix CMake/wxWidgets link issue
This corrects linking of the wxWidgets libraries when there's multiple
copies and the desired one is later in the search path.  This can affect
any non-Windows system that doesn't have it's wxWidgets in "standard"
libraries (like our wxWidgets builds on the Mac).

The wrong wxWidgets libraries can be picked up by the linker if other
"-L" arguments appear before the wxWidgets specific on.  This can happen
if you have something like Homebrew installed and CMake finds one of the
libraries (like libogg) installed.  It will put a "-L/usr/local/lib" in
the linker arguments before the "-L/usr/local/x86_64" wxWidgets flag,
and if there happens to be wxWidgets libs in /usr/local/lib, the linker
will pull the wxWidgets libs from /usr/local/lib...not what was wanted.
2020-02-24 13:45:16 -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 14aad758fa Print various sundries about the build
To (hopefully) assist in debugging build problems.
2020-02-20 23:41:09 -06:00
Leland Lucius 1d6dbe5b60 Completely disable signing on Mac
And ad build of mod-null and don't build it or mod-nyq-bench
unless explicitly requested.
2020-02-18 20:18:29 -06:00
Leland Lucius cda8f2fcd6 Detect in-source builds better 2020-02-14 23:14:39 -06:00