Commit Graph

189 Commits

Author SHA1 Message Date
Hailey Somerville
754a0bb204 remove vestigal OPENMP code, completely unused
Signed-off-by: Hailey Somerville <hailey@hails.org>
2025-06-29 16:13:43 +02:00
Avery King
e46bb053f1 CMake: Drop TENACITY_TRIPLET_OVERRIDE
Also rewrite the triplet selection in the build instructions to cover
this change too.

Signed-off-by: Avery King <gperson@disroot.org>
2025-06-10 22:46:25 +02:00
Avery King
446af05f35 CMake: Don't set overlay triplets directory
This directory hasn't existed since a long time now.

Signed-off-by: Avery King <gperson@disroot.org>
2025-06-10 22:46:25 +02:00
Avery King
83f5ee1435 CMake: Don't enable SSE or AVX on non-x86 archs
Signed-off-by: Avery King <gperson@disroot.org>
2025-04-09 20:50:41 -07:00
Avery King
8e52d67611 CMake: Add -DAVX for AVX support
Add an option for AVX to allow support for a broader range of hardware.
Both AVX2 and AVX512 take precedence over this option.

Signed-off-by: Avery King <gperson@disroot.org>
2025-04-09 20:21:59 -07:00
Avery King
d726dac183 CMake: Add -DAVX512 for AVX512 support
This new option enables AVX512 in builds, taking precedence over the
AVX2 option if both are enabled.

Signed-off-by: Avery King <gperson@disroot.org>
2025-04-09 20:08:21 -07:00
Avery King
7ec800afac CMake: Add -DAVX2 for AVX2 support
Currently, this option is disabled, but it is expected to be enabled by
default later on.

Signed-off-by: Avery King <gperson@disroot.org>
2025-04-09 19:36:58 -07:00
Avery King
18797f8a07 CMake: Use SSE4(.2) if supported by the compiler
The notable exception will be 32-bit Windows builds with MSVC, because
(for some reason) it's not documented. (It may work but I'm not testing
that right now).

Signed-off-by: Avery King <gperson@disroot.org>
2025-04-09 19:26:22 -07:00
Avery King
45b5b2b8ed CMake: Refactor SIMD options handling
- Don't check for obsolete MMX and SSE instructions
- Properly add the correct SSE flag to all targets' compile options.

Signed-off-by: Avery King <gperson@disroot.org>
2025-04-09 19:21:06 -07:00
Avery King
8e75705065 CMake: Drop TenacityInnoSetup CMake module
This drops the 'innosetup' target as we will be using CPack from now on.

Signed-off-by: Avery King <gperson@disroot.org>
2025-03-25 14:47:14 +00:00
Avery King
a86036c072 CMake: Fix install rules
Fix install rules for packaging on Windows with Ninja.

Signed-off-by: Avery King <gperson@disroot.org>
2025-03-25 14:47:14 +00:00
Avery King
c8b3a000e6 CMake: Get rid of 'shared/'
For some reason, libraries were previously built to this folder and then
copied over. I feel it's more beneficial if we get rid of this folder to
help clean up the build directory of unnecessary folders.

Signed-off-by: Avery King <gperson@disroot.org>
2025-03-18 01:44:33 +00:00
Avery King
4f8f081eb8 CMake: Get rid of cmake-proxies/cmake-modules
Move them to cmake-modules/tenacity to simplify our CMake modules
structure.

Signed-off-by: Avery King <gperson@disroot.org>
2025-03-18 01:44:33 +00:00
Avery King
c0b54090a9 CMake: Change runtime output directory
CMAKE_RUNTIME_OUTPUT_DIRECTORY is now in a subfolder named after the
current build configuration in the build folder (e.g.,
'/path/to/build/Debug/' if the current build config is Debug). This also
fixes Ninja on Windows.

Signed-off-by: Avery King <gperson@disroot.org>
2025-03-18 01:44:33 +00:00
Avery King
fb47391fa9 CMake: Correct import and export symbol definition
This fixes an issue of defining the wrong import/export symbol under
MSYS2 Clang on Windows.

Signed-off-by: Avery King <gperson@disroot.org>
2025-03-18 01:44:33 +00:00
Avery King
a42c3f57d6 CMake: Unify config header
config.h is now used on all platforms rather than three separate
configwin.h, configmac.h, and configunix.h

Signed-off-by: Avery King <gperson@disroot.org>
2025-03-18 01:44:33 +00:00
Avery King
453b01419d CMake: Correct indentation
Correct all indentation in CMakeLists.txt and src/CMakeLists.txt to use
4 spaces. This is our preferred style for new contributions.

This also fixes some indentation inconsistencies, making these files
easier to work with.

Signed-off-by: Avery King <gperson@disroot.org>
2025-03-18 01:44:33 +00:00
Avery King
2fe93ce849 Get more features to build
This commit gets the following features to build:

- MP2 export support
- MP3 support
- Opus support
- WavPack support
- VST 2 support

VST 3 support is disabled for now until I can figure out the VST 3 SDK
situation.

Various new CMake find modules were added, predominantly from Mixxx (as
expected) but also from libsndfile too.

LAME loading remnants were also removed. We always build Tenacity
against LAME. I could've also removed PortMixer code in this commit but
chose not to because I want to save it for a later commit.

Signed-off-by: Avery King <avery98@pm.me>
2025-01-04 14:54:58 -08:00
Avery King
dc4467d2bc Replace codebase with modified Audacity 3.7.1
Some of our basic changes remained, but a lot of work still needs to be
done. At least it builds though!

I have a few notes off the top of my head writing this:

- Our build system was kept and modified to work with the new codebase.
  Similarly, the codebase was modified to work with our build system.
- We don't support Audacity's full wxBase restrictions, so I just
  replaced it with wxWidgets::wxWidgets for now. (See above).
- There are still networking features, which are to be removed in the
  next commit.
- pffft was added as a library in lib-src, and I wrote a new
  CMakeLists.txt for it.
- I modified WrapAllegro.h to use our allegro.h shim instead.

Signed-off-by: Avery King <avery98@pm.me>
2025-01-04 14:54:13 -08:00
Avery King
f568cd456d CMake: Don't require unused wxWidgets components
Remove debugging and XML components

Signed-off-by: Avery King <avery98@pm.me>
2024-12-24 20:25:39 -08:00
Avery King
8752081f2f CMake: Refactor manual packaging
* Replace -DPACKAGE_MANUAL with -DMANUAL_PATH to allow packagers and
  other builders to specify any path they want for the manual.

* Fix general manual packaging.

Signed-off-by: Avery King <avery98@pm.me>
2024-12-17 03:59:53 +00:00
Avery King
2322e8a73d CMake: Fix usage with ccache
Add missing -DCCACHE option to fix builds with ccache.

Signed-off-by: Avery King <avery98@pm.me>
2024-11-28 20:45:41 +00:00
Avery King
76b930fa10 CMake: Replace CMAKE_APPLE_SILICON_PROCESSOR
Use CMAKE_HOST_SYSTEM_PROCESSOR instead, which can be set by
CMAKE_APPLE_SILICON_PROCESSOR anyways.

Signed-off-by: Avery King <avery98@pm.me>
2024-11-27 18:58:15 +00:00
Avery King
74b23c75dc CMake: Set minimum macOS version to 11 for Apple Silicon
Signed-off-by: Avery King <avery98@pm.me>
2024-11-27 18:58:15 +00:00
Avery King
3a85a428f3 CMake: Check for pa_win_wmme.h
- Define PA_USE_WMME if pa_win_wmme.h exists

Signed-off-by: Avery King <avery98@pm.me>
2024-11-23 06:52:42 +00:00
Avery King
84b719a75b CMake: Do not search for FFmpeg
-DFFMPEG no longer requires FFmpeg to be present on the host system to
enable FFmpeg support.

Signed-off-by: Avery King <avery98@pm.me>
2024-08-27 19:05:06 +00:00
Avery King
63e762b700 Remove TENACITY_MODLEVEL
TENACITY_MODLEVEL is the 4th version number in our version. However, we
don't intend to use anything beyond 3 digits in our version numbers, so
remove this version number and replace any use of it with 0.

Signed-off-by: Avery King <avery98@pm.me>
2024-05-06 13:01:24 +00:00
generic-pers0n
11f8e9b71b CMake: Remove wxAdvanced dependency
wxAdvanced is now an empty library in CMake and only exists for backwards compatibility. It should be safe to remove it without impact.

Signed-off-by: generic-pers0n <avery98@pm.me>
2024-04-29 17:26:15 +00:00
Avery King
005b8a6538 CMake: Remove most symbol checks
Only keep lrint, lrintf, and mlock because they are actually used.

Signed-off-by: Avery King <avery98@pm.me>
2024-04-09 04:35:54 +00:00
Avery King
8e36581dea CMake: Remove all type checks
Signed-off-by: Avery King <avery98@pm.me>
2024-04-09 04:35:54 +00:00
Avery King
47bf9d338e CMake: Remove more unused header checks
- Only keep pa_jack.h check for PA_USE_JACK.

Signed-off-by: Avery King <avery98@pm.me>
2024-04-09 04:35:54 +00:00
Avery King
f79add35e9 CMake: Remove nuget from the build system
Nuget was used to get Python and gettext if they weren't found at build
time on Windows. However, these dependencies should be installed
manually by builders wherever possible. If gettext is not found, our own
msgfmt.py script will be used instead.

Signed-off-by: Avery King <avery98@pm.me>
2024-04-03 13:36:51 +00:00
Avery King
76599cb792 Apply CMAKE_OSX_ARCHITECTURES.patch from MacPorts
CMAKE_OSX_ARCHITECTURES is meant for the user to set, not the project.
Therefore, do not set it.

Co-authored-by: Ryan Carsten Schmidt
Signed-off-by: Avery King <avery98@pm.me>
2024-03-12 05:43:23 -07:00
Avery King
1363852aa7 CMake: Remove Conan comments
Also remove CMAKE_BINARY_DIR from CMAKE_MODULE_PATH since we don't use conan anymore. Fixes #393.

Reference-to: https://codeberg.org/tenacityteam/tenacity/issues/393

Signed-off-by: Avery King <avery98@pm.me>
2024-03-11 22:10:18 +00:00
Avery King
d45b811770 Remove unnecessary checks
Builds may be slightly faster now that CMake no longer has to check for unused
headers.

There's probably more that should've been removed since we don't use their
result in any way, but I've kept them for now since there are mentions of these
headers throughout the code.

Signed-off-by: Avery King <avery98@pm.me>
2024-03-11 21:31:24 +00:00
Pysis
7772de25b0 Add version guard
for the recent policy setting addition.
2024-03-11 05:24:00 +00:00
Pysis
b92544d6eb Simply enables the cmake policy CMP0127
Alternative was to increase cmake required version to 3.22.  It could be successful, but that is a larger change that I wanted to avoid with no understanding.

Even with this method, the specific error message disappeared, and still found the FLAC* libraries.  So why did it trigger before for this specific statement?  Because of the plus signs?

Just making the minimal changes.
2024-03-11 05:24:00 +00:00
Avery King
826881e105 Add -DNYQUIST for Nyquist support
Allow disabling Nyquist in builds.

Signed-off-by: Avery King <avery98@pm.me>
2024-03-06 02:18:30 +00:00
Avery King
5d0a67a9fe CMake: Enable SBSMS if vcpkg is used
Enable SBSMS by default when using vcpkg since know SBSMS will always be available.

Signed-off-by: Avery King <avery98@pm.me>
2024-03-06 02:17:58 +00:00
Avery King
1536409f02 Require wxWidgets 3.1.5+
Signed-off-by: Avery King <avery98@pm.me>
2024-02-05 18:26:03 +00:00
Avery King
ee80806e74 Fix jsoncpp dependency
- Add a new FindJsonCpp CMake module that helps us find JsonCpp for us.
- Correct CMake target names.
- Fix incorect header paths in lib-theme.

Signed-off-by: Avery King <avery98@pm.me>
2023-11-25 14:40:36 -08:00
Avery King
818a794229 Add lib-theme
- Add a new library responsible for opening theme packages. This library
  is still very much a work in progress as of now.

- Add jsoncpp and libzip as dependencies.

- Add a new option to load theme packages in Preferences > Theme. On
  success, this shows a dialog box explaining everythinhg succeeded.

Signed-off-by: Avery King <avery98@pm.me>
2023-11-23 09:19:25 -08:00
Steve Lhomme
482d19c7f7 Require gcc 6+
Usage of C++17 static_assert is only avaimable since gcc 6 [1].

[1] https://gcc.gnu.org/projects/cxx-status.html#cxx17

Signed-off-by: Steve Lhomme <slhomme@matroska.org>
2023-07-16 09:01:20 +02:00
Avery King
0abad5c4b5 CMake: Don't add '-dynamic' to VCPKG_TARGET_TRIPLET
Signed-off-by: Avery King <avery98@pm.me>
2023-07-14 08:22:44 -07:00
Avery King
9d2de715f5 CMake: Properly set arch for arm64 on macOS
Signed-off-by: Avery King <avery98@pm.me>
2023-07-13 22:01:56 -07:00
Avery King
8bc52309e0 CMake: Properly set macOS triplets
If CMAKE_APPLE_SILICON_PROCESSOR is set to 'arm64', use the
arm64-osx-dynamic triplet. Otherwise, use the x64-osx-dynamic triplet.

Signed-off-by: Avery King <avery98@pm.me>
2023-07-13 21:21:24 -07:00
Avery King
de37a865c4 CMake: Fix macOS triplets
Signed-off-by: Avery King <avery98@pm.me>
2023-07-13 21:08:04 -07:00
Avery King
fb9e5271df vcpkg: Update macOS triplets
- Switch from x64-osx-10.12min to x64-osx-dynamic on Intel macOS
- Specify arm64-osx-dynamic triplet for macOS ARM

Signed-off-by: Avery King <avery98@pm.me>
2023-07-13 21:00:57 -07:00
AnErrupTion
c2a386d7b9 Bump version to 1.4-alpha 2023-07-09 14:55:31 +02:00
Avery King
3a7fda25b7 CMake: Set build level to release
Signed-off-by: Avery King <avery98@pm.me>
2023-07-08 15:15:40 -07:00