transitioned to cmake for desktop build
This commit is contained in:
parent
a4922bd275
commit
7e71997593
432
CMakeLists.txt
Normal file
432
CMakeLists.txt
Normal file
@ -0,0 +1,432 @@
|
||||
# To get started on a new plugin, copy this entire folder (containing this file and C++ sources) to
|
||||
# a convenient location, and then start making modifications.
|
||||
|
||||
# The first line of any CMake project should be a call to `cmake_minimum_required`, which checks
|
||||
# that the installed CMake will be able to understand the following CMakeLists, and ensures that
|
||||
# CMake's behaviour is compatible with the named version. This is a standard CMake command, so more
|
||||
# information can be found in the CMake docs.
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
|
||||
|
||||
if (WIN32)
|
||||
#set (CMAKE_GENERATOR_TOOLSET ClangCL)
|
||||
#static linking in Windows
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
endif()
|
||||
|
||||
# If we are compiling for Mac OS we want to target OS versions down to 10.9
|
||||
option(UniversalBinary "Build universal binary for mac" ON)
|
||||
|
||||
if (APPLE)
|
||||
set (CMAKE_OSX_DEPLOYMENT_TARGET "10.10" CACHE INTERNAL "")
|
||||
if (UniversalBinary)
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE INTERNAL "")
|
||||
#set(CMAKE_OSX_ARCHITECTURES arm64 x86_64)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# The top-level CMakeLists.txt file for a project must contain a literal, direct call to the
|
||||
# `project()` command. `project()` sets up some helpful variables that describe source/binary
|
||||
# directories, and the current project version. This is a standard CMake command.
|
||||
|
||||
project(PaulXStretch VERSION 1.5.0)
|
||||
|
||||
set(BUILDVERSION 107)
|
||||
|
||||
|
||||
# If you've installed JUCE somehow (via a package manager, or directly using the CMake install
|
||||
# target), you'll need to tell this project that it depends on the installed copy of JUCE. If you've
|
||||
# included JUCE directly in your source tree (perhaps as a submodule), you'll need to tell CMake to
|
||||
# include that subdirectory as part of the build.
|
||||
|
||||
# find_package(JUCE CONFIG REQUIRED) # If you've installed JUCE to your system
|
||||
# or
|
||||
|
||||
|
||||
# By default we don't want Xcode schemes to be made for modules, etc
|
||||
set(CMAKE_XCODE_GENERATE_SCHEME OFF)
|
||||
|
||||
# No ZERO_CHECK target (it helps bust cache for cmake)
|
||||
set(CMAKE_SUPPRESS_REGENERATION true)
|
||||
|
||||
# prevent install all
|
||||
#set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
|
||||
|
||||
# Adds all the module sources so they appear correctly in the IDE
|
||||
# Must be set before JUCE is added as a sub-dir (or any targets are made)
|
||||
# https://github.com/juce-framework/JUCE/commit/6b1b4cf7f6b1008db44411f2c8887d71a3348889
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS YES)
|
||||
|
||||
# This is a failed attempt to bury ALL_BUILD in Targets/
|
||||
# This should be called before any target is made
|
||||
# Bug in Xcode? https://gitlab.kitware.com/cmake/cmake/-/issues/21383
|
||||
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "Targets")
|
||||
|
||||
# Create a /Modules directory in the IDE with the JUCE Module code
|
||||
option(JUCE_ENABLE_MODULE_SOURCE_GROUPS "Show all module sources in IDE projects" ON)
|
||||
|
||||
|
||||
# include JUCE
|
||||
|
||||
add_subdirectory(deps/juce EXCLUDE_FROM_ALL )
|
||||
|
||||
|
||||
# juce_add_modules(deps/ff_meters)
|
||||
|
||||
|
||||
|
||||
set (FormatsToBuild VST3 Standalone)
|
||||
|
||||
# On Mac, an AU version will be built too
|
||||
if (APPLE)
|
||||
list (APPEND FormatsToBuild AU)
|
||||
endif()
|
||||
|
||||
# If you are building a VST2 or AAX plugin, CMake needs to be told where to find these SDKs on your
|
||||
# system. This setup should be done before calling `juce_add_plugin`.
|
||||
|
||||
#juce_set_vst2_sdk_path("../VST2_SDK")
|
||||
#juce_set_aax_sdk_path("../AAX_SDK_2p3p2")
|
||||
|
||||
|
||||
if (AAX_SDK_PATH)
|
||||
juce_set_aax_sdk_path (${AAX_SDK_PATH})
|
||||
|
||||
if (APPLE OR (NOT ("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")))
|
||||
list (APPEND FormatsToBuild AAX)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#if (VST2_SDK_PATH)
|
||||
# juce_set_vst2_sdk_path (${VST2_SDK_PATH})
|
||||
# list (APPEND FormatsToBuild VST)
|
||||
#endif()
|
||||
|
||||
|
||||
set (MacPList "<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${BUILDVERSION}</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>com.sonosaurus.paulxstretch</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>paulxstretch</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>")
|
||||
|
||||
|
||||
# `juce_add_plugin` adds a static library target with the name passed as the first argument
|
||||
# (AudioPluginExample here). This target is a normal CMake target, but has a lot of extra properties set
|
||||
# up by default. As well as this shared code static library, this function adds targets for each of
|
||||
# the formats specified by the FORMATS arguments. This function accepts many optional arguments.
|
||||
# Check the readme at `docs/CMake API.md` in the JUCE repo for the full list.
|
||||
|
||||
function(sono_add_custom_plugin_target target_name product_name formats is_instrument plugincode)
|
||||
|
||||
if (is_instrument)
|
||||
set (vst3cats Instrument Network)
|
||||
set (vst2cat "kPlugCategSynth")
|
||||
else()
|
||||
set (vst3cats Fx Network)
|
||||
set (vst2cat "kPlugCategEffect")
|
||||
endif()
|
||||
|
||||
juce_add_plugin("${target_name}"
|
||||
IS_SYNTH "${is_instrument}"
|
||||
NEEDS_MIDI_INPUT TRUE
|
||||
NEEDS_MIDI_OUTPUT TRUE
|
||||
EDITOR_WANTS_KEYBOARD_FOCUS TRUE
|
||||
COMPANY_NAME "Sonosaurus"
|
||||
BUNDLE_ID "com.sonosaurus.paulxstretch"
|
||||
MICROPHONE_PERMISSION_ENABLED TRUE
|
||||
|
||||
ICON_BIG "images/paulxstretch_icon_1024_rounded.png"
|
||||
ICON_SMALL "images/paulxstretch_icon_256_rounded.png"
|
||||
NEEDS_WEB_BROWSER FALSE
|
||||
VST2_CATEGORY "${vst2cat}"
|
||||
VST3_CATEGORIES "${vst3cats}"
|
||||
AAX_CATEGORY "AAX_EPlugInCategory_Effect"
|
||||
|
||||
|
||||
# mac settings
|
||||
HARDENED_RUNTIME_ENABLED TRUE
|
||||
HARDENED_RUNTIME_OPTIONS "com.apple.security.device.audio-input"
|
||||
PLIST_TO_MERGE "${MacPList}"
|
||||
AU_MAIN_TYPE "kAudioUnitType_MusicEffect"
|
||||
|
||||
|
||||
# other settings...
|
||||
PLUGIN_MANUFACTURER_CODE Sono
|
||||
PLUGIN_CODE ${plugincode}
|
||||
FORMATS ${formats}
|
||||
DESCRIPTION "PaulXStretch - Extreme Timestretching"
|
||||
PRODUCT_NAME "${product_name}")
|
||||
|
||||
juce_generate_juce_header("${target_name}")
|
||||
|
||||
|
||||
set (HEADER_INCLUDES
|
||||
# Source/PS_Source
|
||||
# Source/WDL
|
||||
)
|
||||
|
||||
set (LIB_PATHS "")
|
||||
|
||||
#set (PLAT_COMPILE_DEFS
|
||||
# $<$<CONFIG:Debug>:LOGLEVEL=2>
|
||||
# USE_CODEC_OPUS=1
|
||||
# AOO_TIMEFILTER_CHECK=0
|
||||
# AOO_STATIC)
|
||||
|
||||
set(PlatSourceFiles
|
||||
Source/CrossPlatformUtils.h
|
||||
)
|
||||
|
||||
|
||||
# platform specific stuff
|
||||
if (APPLE)
|
||||
list (APPEND HEADER_INCLUDES deps/mac/include)
|
||||
list (APPEND LIB_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/deps/mac/lib)
|
||||
list (APPEND PlatSourceFiles Source/CrossPlatformUtilsMac.mm)
|
||||
elseif (WIN32)
|
||||
list (APPEND HEADER_INCLUDES deps/windows ../asiosdk/common)
|
||||
list (APPEND PlatSourceFiles Source/CrossPlatformUtilsWindows.cpp)
|
||||
|
||||
message (STATUS "Win generator platform is: ${CMAKE_VS_PLATFORM_NAME}" )
|
||||
if ("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
list (APPEND LIB_PATHS
|
||||
$<$<CONFIG:Debug>:${CMAKE_CURRENT_SOURCE_DIR}/deps/windows/Debug32>
|
||||
$<$<CONFIG:Release>:${CMAKE_CURRENT_SOURCE_DIR}/deps/windows/Release32>
|
||||
)
|
||||
else()
|
||||
list (APPEND LIB_PATHS
|
||||
$<$<CONFIG:Debug>:${CMAKE_CURRENT_SOURCE_DIR}/deps/windows/Debug>
|
||||
$<$<CONFIG:Release>:${CMAKE_CURRENT_SOURCE_DIR}/deps/windows/Release>
|
||||
)
|
||||
endif()
|
||||
|
||||
list (APPEND PLAT_COMPILE_DEFS
|
||||
_USE_MATH_DEFINES
|
||||
WINVER=0x0601
|
||||
_WIN32_WINNT=0x0601)
|
||||
else()
|
||||
# Linux
|
||||
list (APPEND PlatSourceFiles Source/CrossPlatformUtilsLinux.cpp)
|
||||
list ( APPEND PLAT_COMPILE_DEFS
|
||||
JUCE_USE_MP3AUDIOFORMAT=1 )
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
set(SourceFiles
|
||||
${PlatSourceFiles}
|
||||
Source/CustomLookAndFeel.cpp
|
||||
Source/CustomLookAndFeel.h
|
||||
Source/CustomStandaloneFilterApp.cpp
|
||||
Source/CustomStandaloneFilterWindow.h
|
||||
Source/PluginEditor.cpp
|
||||
Source/PluginEditor.h
|
||||
Source/PluginProcessor.cpp
|
||||
Source/PluginProcessor.h
|
||||
Source/RenderSettingsComponent.cpp
|
||||
Source/RenderSettingsComponent.h
|
||||
Source/envelope_component.cpp
|
||||
Source/envelope_component.h
|
||||
Source/jcdp_envelope.h
|
||||
Source/ps3_BufferingAudioSource.cpp
|
||||
Source/ps3_BufferingAudioSource.h
|
||||
#Source/PS_Source/fftw3.h
|
||||
Source/PS_Source/PaulStretchControl.cpp
|
||||
Source/PS_Source/Stretch.h
|
||||
Source/PS_Source/version.h
|
||||
Source/PS_Source/Player.cpp
|
||||
Source/PS_Source/BinauralBeats.h
|
||||
Source/PS_Source/StretchSource.h
|
||||
Source/PS_Source/ProcessedStretch.cpp
|
||||
Source/PS_Source/Input
|
||||
Source/PS_Source/Input/AInputS.h
|
||||
Source/PS_Source/Input/InputS.h
|
||||
Source/PS_Source/BinauralBeats.cpp
|
||||
Source/PS_Source/ProcessedStretch.h
|
||||
Source/PS_Source/StretchSource.cpp
|
||||
Source/PS_Source/Player.h
|
||||
Source/PS_Source/globals.h
|
||||
Source/PS_Source/globals.cpp
|
||||
Source/PS_Source/Stretch.cpp
|
||||
Source/PS_Source/FreeEdit.h
|
||||
Source/PS_Source/FreeEdit.cpp
|
||||
Source/PS_Source/PaulStretchControl.h
|
||||
Source/PS_Source/Input/AInputS.h
|
||||
Source/PS_Source/Input/InputS.h
|
||||
Source/WDL/resample.h
|
||||
Source/WDL/resample.cpp
|
||||
Source/WDL/wdltypes.h
|
||||
Source/WDL/denormal.h
|
||||
Source/WDL/heapbuf.h
|
||||
)
|
||||
|
||||
target_sources("${target_name}" PRIVATE
|
||||
${SourceFiles}
|
||||
)
|
||||
|
||||
# No, we don't want our source buried in extra nested folders
|
||||
set_target_properties("${target_name}" PROPERTIES FOLDER "")
|
||||
|
||||
# The source tree should uhhh, still look like the source tree, yo
|
||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/Source PREFIX "" FILES ${SourceFiles})
|
||||
|
||||
# Move the INTERFACE auto-created JUCE library stuff into its own folder
|
||||
source_group("JUCE Library Code" REGULAR_EXPRESSION "juce_")
|
||||
|
||||
|
||||
#target_include_directories("${target_name}"
|
||||
# INTERFACE
|
||||
# $<TARGET_PROPERTY:"${target_name}",INCLUDE_DIRECTORIES>)
|
||||
|
||||
|
||||
|
||||
target_include_directories("${target_name}"
|
||||
PUBLIC
|
||||
${HEADER_INCLUDES}
|
||||
)
|
||||
|
||||
|
||||
# Require at least C++17 to build `my_target`
|
||||
target_compile_features("${target_name}" PRIVATE cxx_std_17)
|
||||
|
||||
|
||||
# This cleans up the folder organization, especially on Xcode.
|
||||
# It tucks the Plugin varieties into a "Targets" folder and generate an Xcode Scheme manually
|
||||
# Xcode scheme generation is turned off globally to limit noise from other targets
|
||||
# The non-hacky way of doing this is via the global PREDEFINED_TARGETS_FOLDER propety
|
||||
# However that doesn't seem to be working in Xcode
|
||||
# Not all plugin types (au, vst) available on each build type (win, macos, linux)
|
||||
foreach(target ${formats} "All")
|
||||
if(TARGET ${target_name}_${target})
|
||||
set_target_properties(${target_name}_${target} PROPERTIES
|
||||
# Tuck the actual plugin targets into a folder where they won't bother us
|
||||
FOLDER "Targets"
|
||||
|
||||
# MacOS only: Sets the default executable that Xcode will open on build
|
||||
# For this exact path to to work, manually build the AudioPluginHost.xcodeproj in the JUCE subdir
|
||||
# XCODE_SCHEME_EXECUTABLE "${CMAKE_CURRENT_SOURCE_DIR}/deps/juce/extras/AudioPluginHost/Builds/MacOSX/build/Debug/AudioPluginHost.app"
|
||||
|
||||
# Let us build the target in Xcode
|
||||
XCODE_GENERATE_SCHEME ON)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
|
||||
target_compile_definitions("${target_name}"
|
||||
PUBLIC
|
||||
JUCE_WEB_BROWSER=0
|
||||
JUCE_USE_CURL=0
|
||||
JUCE_VST3_CAN_REPLACE_VST2=0
|
||||
JUCE_DISPLAY_SPLASH_SCREEN=0
|
||||
JUCE_USE_CUSTOM_PLUGIN_STANDALONE_APP=1
|
||||
JUCE_USE_WINDOWS_MEDIA_FORMAT=1
|
||||
JUCE_LOAD_CURL_SYMBOLS_LAZILY=1
|
||||
JUCE_ASIO=1
|
||||
JUCE_WASAPI=1
|
||||
JUCE_DIRECTSOUND=0
|
||||
JUCE_JACK=1
|
||||
JUCE_ALSA=1
|
||||
JUCE_USE_ANDROID_OBOE=1
|
||||
JUCE_USE_OBOE_STABILIZED_CALLBACK=1
|
||||
JUCE_LOAD_CURL_SYMBOLS_LAZILY=1
|
||||
FF_AUDIO_ALLOW_ALLOCATIONS_IN_MEASURE_BLOCK=0
|
||||
PAULXSTRETCH_BUILD_VERSION="${VERSION}"
|
||||
${PLAT_COMPILE_DEFS} )
|
||||
|
||||
juce_add_binary_data("${target_name}_PSData" SOURCES
|
||||
images/freeze.svg
|
||||
images/loop_icon.svg
|
||||
images/passthru.svg
|
||||
images/passthru_enabled.svg
|
||||
images/pause_icon.svg
|
||||
images/play_icon.svg
|
||||
images/power.svg
|
||||
images/power_sel.svg
|
||||
images/record.svg
|
||||
images/record_active.svg
|
||||
images/skipback_icon.svg
|
||||
)
|
||||
|
||||
set_target_properties(${target_name}_PSData PROPERTIES FOLDER "Targets")
|
||||
|
||||
if (UNIX AND NOT APPLE)
|
||||
target_compile_options("${target_name}_PSData"
|
||||
PRIVATE
|
||||
-fPIC
|
||||
)
|
||||
|
||||
find_library(FFTWF_LIB fftw3f)
|
||||
if (NOT FFTWF_LIB)
|
||||
message(FATAL_ERROR "fftw3f library not found, please install libfftw3f develop package")
|
||||
endif()
|
||||
|
||||
if (JUCE_LINUX_TARGET_ARCHITECTURE MATCHES "arm" )
|
||||
message(STATUS "ARM platform, adding -march=native")
|
||||
target_compile_options(${target_name} PUBLIC
|
||||
-march=native
|
||||
)
|
||||
endif()
|
||||
|
||||
if (TARGET ${target_name}_Standalone)
|
||||
# make linux executable all lower case
|
||||
string(TOLOWER ${target_name} tmptargname)
|
||||
|
||||
set_target_properties("${target_name}_Standalone"
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${tmptargname}
|
||||
)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
target_link_directories("${target_name}" INTERFACE
|
||||
${LIB_PATHS}
|
||||
)
|
||||
|
||||
target_link_libraries("${target_name}"
|
||||
PRIVATE
|
||||
juce::juce_audio_utils
|
||||
juce::juce_dsp
|
||||
juce::juce_audio_plugin_client
|
||||
juce::juce_cryptography
|
||||
|
||||
${target_name}_PSData
|
||||
|
||||
fftw3f
|
||||
PUBLIC
|
||||
juce::juce_recommended_config_flags
|
||||
juce::juce_recommended_lto_flags
|
||||
# juce::juce_recommended_warning_flags
|
||||
)
|
||||
|
||||
endfunction()
|
||||
|
||||
# most of the targets
|
||||
sono_add_custom_plugin_target(PaulXStretch PaulXStretch "${FormatsToBuild}" FALSE "Pxst")
|
||||
|
||||
# Mobile targets
|
||||
#sono_add_custom_plugin_target(PaulXStretch "AUv3 Standalone" FALSE "NBus")
|
||||
|
||||
# add VSTi target
|
||||
# sono_add_custom_plugin_target(PaulXStretchInst "PaulXStretchInstrument" "VST3" TRUE "IBus")
|
||||
|
26
buildcmake.sh
Executable file
26
buildcmake.sh
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
OPTS=""
|
||||
CONFIG="Release"
|
||||
|
||||
if [ "$1" = "debug" ]; then
|
||||
CONFIG="Debug"
|
||||
fi
|
||||
|
||||
JOBS=2
|
||||
if nproc &> /dev/null ; then
|
||||
JOBS=$(nproc)
|
||||
elif sysctl -n hw.logicalcpu &> /dev/null; then
|
||||
JOBS=$(sysctl -n hw.logicalcpu)
|
||||
elif [ -n "$NUMBER_OF_PROCESSORS" ] ; then
|
||||
JOBS=$NUMBER_OF_PROCESSORS
|
||||
fi
|
||||
|
||||
OPTS="-j ${JOBS}"
|
||||
|
||||
cmake --build build --config $CONFIG $OPTS
|
||||
|
||||
if [ -d build32 ] ; then
|
||||
cmake --build build32 --config $CONFIG $OPTS
|
||||
fi
|
||||
|
514
deps/mac/include/fftw3.h
vendored
Normal file
514
deps/mac/include/fftw3.h
vendored
Normal file
@ -0,0 +1,514 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2007-14 Matteo Frigo
|
||||
* Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology
|
||||
*
|
||||
* The following statement of license applies *only* to this header file,
|
||||
* and *not* to the other files distributed with FFTW or derived therefrom:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/***************************** NOTE TO USERS *********************************
|
||||
*
|
||||
* THIS IS A HEADER FILE, NOT A MANUAL
|
||||
*
|
||||
* If you want to know how to use FFTW, please read the manual,
|
||||
* online at http://www.fftw.org/doc/ and also included with FFTW.
|
||||
* For a quick start, see the manual's tutorial section.
|
||||
*
|
||||
* (Reading header files to learn how to use a library is a habit
|
||||
* stemming from code lacking a proper manual. Arguably, it's a
|
||||
* *bad* habit in most cases, because header files can contain
|
||||
* interfaces that are not part of the public, stable API.)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef FFTW3_H
|
||||
#define FFTW3_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* If <complex.h> is included, use the C99 complex type. Otherwise
|
||||
define a type bit-compatible with C99 complex */
|
||||
#if !defined(FFTW_NO_Complex) && defined(_Complex_I) && defined(complex) && defined(I)
|
||||
# define FFTW_DEFINE_COMPLEX(R, C) typedef R _Complex C
|
||||
#else
|
||||
# define FFTW_DEFINE_COMPLEX(R, C) typedef R C[2]
|
||||
#endif
|
||||
|
||||
#define FFTW_CONCAT(prefix, name) prefix ## name
|
||||
#define FFTW_MANGLE_DOUBLE(name) FFTW_CONCAT(fftw_, name)
|
||||
#define FFTW_MANGLE_FLOAT(name) FFTW_CONCAT(fftwf_, name)
|
||||
#define FFTW_MANGLE_LONG_DOUBLE(name) FFTW_CONCAT(fftwl_, name)
|
||||
#define FFTW_MANGLE_QUAD(name) FFTW_CONCAT(fftwq_, name)
|
||||
|
||||
/* IMPORTANT: for Windows compilers, you should add a line
|
||||
#define FFTW_DLL
|
||||
here and in kernel/ifftw.h if you are compiling/using FFTW as a
|
||||
DLL, in order to do the proper importing/exporting, or
|
||||
alternatively compile with -DFFTW_DLL or the equivalent
|
||||
command-line flag. This is not necessary under MinGW/Cygwin, where
|
||||
libtool does the imports/exports automatically. */
|
||||
#if defined(FFTW_DLL) && (defined(_WIN32) || defined(__WIN32__))
|
||||
/* annoying Windows syntax for shared-library declarations */
|
||||
# if defined(COMPILING_FFTW) /* defined in api.h when compiling FFTW */
|
||||
# define FFTW_EXTERN extern __declspec(dllexport)
|
||||
# else /* user is calling FFTW; import symbol */
|
||||
# define FFTW_EXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
#else
|
||||
# define FFTW_EXTERN extern
|
||||
#endif
|
||||
|
||||
/* specify calling convention (Windows only) */
|
||||
#if defined(_WIN32) || defined(__WIN32__)
|
||||
# define FFTW_CDECL __cdecl
|
||||
#else
|
||||
# define FFTW_CDECL
|
||||
#endif
|
||||
|
||||
enum fftw_r2r_kind_do_not_use_me {
|
||||
FFTW_R2HC=0, FFTW_HC2R=1, FFTW_DHT=2,
|
||||
FFTW_REDFT00=3, FFTW_REDFT01=4, FFTW_REDFT10=5, FFTW_REDFT11=6,
|
||||
FFTW_RODFT00=7, FFTW_RODFT01=8, FFTW_RODFT10=9, FFTW_RODFT11=10
|
||||
};
|
||||
|
||||
struct fftw_iodim_do_not_use_me {
|
||||
int n; /* dimension size */
|
||||
int is; /* input stride */
|
||||
int os; /* output stride */
|
||||
};
|
||||
|
||||
#include <stddef.h> /* for ptrdiff_t */
|
||||
struct fftw_iodim64_do_not_use_me {
|
||||
ptrdiff_t n; /* dimension size */
|
||||
ptrdiff_t is; /* input stride */
|
||||
ptrdiff_t os; /* output stride */
|
||||
};
|
||||
|
||||
typedef void (FFTW_CDECL *fftw_write_char_func_do_not_use_me)(char c, void *);
|
||||
typedef int (FFTW_CDECL *fftw_read_char_func_do_not_use_me)(void *);
|
||||
|
||||
/*
|
||||
huge second-order macro that defines prototypes for all API
|
||||
functions. We expand this macro for each supported precision
|
||||
|
||||
X: name-mangling macro
|
||||
R: real data type
|
||||
C: complex data type
|
||||
*/
|
||||
|
||||
#define FFTW_DEFINE_API(X, R, C) \
|
||||
\
|
||||
FFTW_DEFINE_COMPLEX(R, C); \
|
||||
\
|
||||
typedef struct X(plan_s) *X(plan); \
|
||||
\
|
||||
typedef struct fftw_iodim_do_not_use_me X(iodim); \
|
||||
typedef struct fftw_iodim64_do_not_use_me X(iodim64); \
|
||||
\
|
||||
typedef enum fftw_r2r_kind_do_not_use_me X(r2r_kind); \
|
||||
\
|
||||
typedef fftw_write_char_func_do_not_use_me X(write_char_func); \
|
||||
typedef fftw_read_char_func_do_not_use_me X(read_char_func); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(execute)(const X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft)(int rank, const int *n, \
|
||||
C *in, C *out, int sign, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_1d)(int n, C *in, C *out, int sign, \
|
||||
unsigned flags); \
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_2d)(int n0, int n1, \
|
||||
C *in, C *out, int sign, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_3d)(int n0, int n1, int n2, \
|
||||
C *in, C *out, int sign, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_many_dft)(int rank, const int *n, \
|
||||
int howmany, \
|
||||
C *in, const int *inembed, \
|
||||
int istride, int idist, \
|
||||
C *out, const int *onembed, \
|
||||
int ostride, int odist, \
|
||||
int sign, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru_dft)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
C *in, C *out, \
|
||||
int sign, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru_split_dft)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *ri, R *ii, R *ro, R *io, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru64_dft)(int rank, \
|
||||
const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
C *in, C *out, \
|
||||
int sign, unsigned flags); \
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru64_split_dft)(int rank, \
|
||||
const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *ri, R *ii, R *ro, R *io, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(execute_dft)(const X(plan) p, C *in, C *out); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(execute_split_dft)(const X(plan) p, R *ri, R *ii, \
|
||||
R *ro, R *io); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_many_dft_r2c)(int rank, const int *n, \
|
||||
int howmany, \
|
||||
R *in, const int *inembed, \
|
||||
int istride, int idist, \
|
||||
C *out, const int *onembed, \
|
||||
int ostride, int odist, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_r2c)(int rank, const int *n, \
|
||||
R *in, C *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_r2c_1d)(int n,R *in,C *out,unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_r2c_2d)(int n0, int n1, \
|
||||
R *in, C *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_r2c_3d)(int n0, int n1, \
|
||||
int n2, \
|
||||
R *in, C *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_many_dft_c2r)(int rank, const int *n, \
|
||||
int howmany, \
|
||||
C *in, const int *inembed, \
|
||||
int istride, int idist, \
|
||||
R *out, const int *onembed, \
|
||||
int ostride, int odist, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_c2r)(int rank, const int *n, \
|
||||
C *in, R *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_c2r_1d)(int n,C *in,R *out,unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_c2r_2d)(int n0, int n1, \
|
||||
C *in, R *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_dft_c2r_3d)(int n0, int n1, \
|
||||
int n2, \
|
||||
C *in, R *out, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru_dft_r2c)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *in, C *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru_dft_c2r)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
C *in, R *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru_split_dft_r2c)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *in, R *ro, R *io, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru_split_dft_c2r)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *ri, R *ii, R *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru64_dft_r2c)(int rank, \
|
||||
const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *in, C *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru64_dft_c2r)(int rank, \
|
||||
const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
C *in, R *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru64_split_dft_r2c)(int rank, const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *in, R *ro, R *io, \
|
||||
unsigned flags); \
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru64_split_dft_c2r)(int rank, const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *ri, R *ii, R *out, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(execute_dft_r2c)(const X(plan) p, R *in, C *out); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(execute_dft_c2r)(const X(plan) p, C *in, R *out); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(execute_split_dft_r2c)(const X(plan) p, \
|
||||
R *in, R *ro, R *io); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(execute_split_dft_c2r)(const X(plan) p, \
|
||||
R *ri, R *ii, R *out); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_many_r2r)(int rank, const int *n, \
|
||||
int howmany, \
|
||||
R *in, const int *inembed, \
|
||||
int istride, int idist, \
|
||||
R *out, const int *onembed, \
|
||||
int ostride, int odist, \
|
||||
const X(r2r_kind) *kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_r2r)(int rank, const int *n, R *in, R *out, \
|
||||
const X(r2r_kind) *kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_r2r_1d)(int n, R *in, R *out, \
|
||||
X(r2r_kind) kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_r2r_2d)(int n0, int n1, R *in, R *out, \
|
||||
X(r2r_kind) kind0, X(r2r_kind) kind1, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_r2r_3d)(int n0, int n1, int n2, \
|
||||
R *in, R *out, X(r2r_kind) kind0, \
|
||||
X(r2r_kind) kind1, X(r2r_kind) kind2, \
|
||||
unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru_r2r)(int rank, const X(iodim) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim) *howmany_dims, \
|
||||
R *in, R *out, \
|
||||
const X(r2r_kind) *kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN X(plan) \
|
||||
FFTW_CDECL X(plan_guru64_r2r)(int rank, const X(iodim64) *dims, \
|
||||
int howmany_rank, \
|
||||
const X(iodim64) *howmany_dims, \
|
||||
R *in, R *out, \
|
||||
const X(r2r_kind) *kind, unsigned flags); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(execute_r2r)(const X(plan) p, R *in, R *out); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(destroy_plan)(X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(forget_wisdom)(void); \
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(cleanup)(void); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(set_timelimit)(double t); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(plan_with_nthreads)(int nthreads); \
|
||||
\
|
||||
FFTW_EXTERN int \
|
||||
FFTW_CDECL X(init_threads)(void); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(cleanup_threads)(void); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(make_planner_thread_safe)(void); \
|
||||
\
|
||||
FFTW_EXTERN int \
|
||||
FFTW_CDECL X(export_wisdom_to_filename)(const char *filename); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(export_wisdom_to_file)(FILE *output_file); \
|
||||
\
|
||||
FFTW_EXTERN char * \
|
||||
FFTW_CDECL X(export_wisdom_to_string)(void); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(export_wisdom)(X(write_char_func) write_char, \
|
||||
void *data); \
|
||||
FFTW_EXTERN int \
|
||||
FFTW_CDECL X(import_system_wisdom)(void); \
|
||||
\
|
||||
FFTW_EXTERN int \
|
||||
FFTW_CDECL X(import_wisdom_from_filename)(const char *filename); \
|
||||
\
|
||||
FFTW_EXTERN int \
|
||||
FFTW_CDECL X(import_wisdom_from_file)(FILE *input_file); \
|
||||
\
|
||||
FFTW_EXTERN int \
|
||||
FFTW_CDECL X(import_wisdom_from_string)(const char *input_string); \
|
||||
\
|
||||
FFTW_EXTERN int \
|
||||
FFTW_CDECL X(import_wisdom)(X(read_char_func) read_char, void *data); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(fprint_plan)(const X(plan) p, FILE *output_file); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(print_plan)(const X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN char * \
|
||||
FFTW_CDECL X(sprint_plan)(const X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN void * \
|
||||
FFTW_CDECL X(malloc)(size_t n); \
|
||||
\
|
||||
FFTW_EXTERN R * \
|
||||
FFTW_CDECL X(alloc_real)(size_t n); \
|
||||
FFTW_EXTERN C * \
|
||||
FFTW_CDECL X(alloc_complex)(size_t n); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(free)(void *p); \
|
||||
\
|
||||
FFTW_EXTERN void \
|
||||
FFTW_CDECL X(flops)(const X(plan) p, \
|
||||
double *add, double *mul, double *fmas); \
|
||||
FFTW_EXTERN double \
|
||||
FFTW_CDECL X(estimate_cost)(const X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN double \
|
||||
FFTW_CDECL X(cost)(const X(plan) p); \
|
||||
\
|
||||
FFTW_EXTERN int \
|
||||
FFTW_CDECL X(alignment_of)(R *p); \
|
||||
\
|
||||
FFTW_EXTERN const char X(version)[]; \
|
||||
FFTW_EXTERN const char X(cc)[]; \
|
||||
FFTW_EXTERN const char X(codelet_optim)[];
|
||||
|
||||
|
||||
/* end of FFTW_DEFINE_API macro */
|
||||
|
||||
FFTW_DEFINE_API(FFTW_MANGLE_DOUBLE, double, fftw_complex)
|
||||
FFTW_DEFINE_API(FFTW_MANGLE_FLOAT, float, fftwf_complex)
|
||||
FFTW_DEFINE_API(FFTW_MANGLE_LONG_DOUBLE, long double, fftwl_complex)
|
||||
|
||||
/* __float128 (quad precision) is a gcc extension on i386, x86_64, and ia64
|
||||
for gcc >= 4.6 (compiled in FFTW with --enable-quad-precision) */
|
||||
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) \
|
||||
&& !(defined(__ICC) || defined(__INTEL_COMPILER) || defined(__CUDACC__) || defined(__PGI)) \
|
||||
&& (defined(__i386__) || defined(__x86_64__) || defined(__ia64__))
|
||||
# if !defined(FFTW_NO_Complex) && defined(_Complex_I) && defined(complex) && defined(I)
|
||||
/* note: __float128 is a typedef, which is not supported with the _Complex
|
||||
keyword in gcc, so instead we use this ugly __attribute__ version.
|
||||
However, we can't simply pass the __attribute__ version to
|
||||
FFTW_DEFINE_API because the __attribute__ confuses gcc in pointer
|
||||
types. Hence redefining FFTW_DEFINE_COMPLEX. Ugh. */
|
||||
# undef FFTW_DEFINE_COMPLEX
|
||||
# define FFTW_DEFINE_COMPLEX(R, C) typedef _Complex float __attribute__((mode(TC))) C
|
||||
# endif
|
||||
FFTW_DEFINE_API(FFTW_MANGLE_QUAD, __float128, fftwq_complex)
|
||||
#endif
|
||||
|
||||
#define FFTW_FORWARD (-1)
|
||||
#define FFTW_BACKWARD (+1)
|
||||
|
||||
#define FFTW_NO_TIMELIMIT (-1.0)
|
||||
|
||||
/* documented flags */
|
||||
#define FFTW_MEASURE (0U)
|
||||
#define FFTW_DESTROY_INPUT (1U << 0)
|
||||
#define FFTW_UNALIGNED (1U << 1)
|
||||
#define FFTW_CONSERVE_MEMORY (1U << 2)
|
||||
#define FFTW_EXHAUSTIVE (1U << 3) /* NO_EXHAUSTIVE is default */
|
||||
#define FFTW_PRESERVE_INPUT (1U << 4) /* cancels FFTW_DESTROY_INPUT */
|
||||
#define FFTW_PATIENT (1U << 5) /* IMPATIENT is default */
|
||||
#define FFTW_ESTIMATE (1U << 6)
|
||||
#define FFTW_WISDOM_ONLY (1U << 21)
|
||||
|
||||
/* undocumented beyond-guru flags */
|
||||
#define FFTW_ESTIMATE_PATIENT (1U << 7)
|
||||
#define FFTW_BELIEVE_PCOST (1U << 8)
|
||||
#define FFTW_NO_DFT_R2HC (1U << 9)
|
||||
#define FFTW_NO_NONTHREADED (1U << 10)
|
||||
#define FFTW_NO_BUFFERING (1U << 11)
|
||||
#define FFTW_NO_INDIRECT_OP (1U << 12)
|
||||
#define FFTW_ALLOW_LARGE_GENERIC (1U << 13) /* NO_LARGE_GENERIC is default */
|
||||
#define FFTW_NO_RANK_SPLITS (1U << 14)
|
||||
#define FFTW_NO_VRANK_SPLITS (1U << 15)
|
||||
#define FFTW_NO_VRECURSE (1U << 16)
|
||||
#define FFTW_NO_SIMD (1U << 17)
|
||||
#define FFTW_NO_SLOW (1U << 18)
|
||||
#define FFTW_NO_FIXED_RADIX_LARGE_N (1U << 19)
|
||||
#define FFTW_ALLOW_PRUNING (1U << 20)
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* FFTW3_H */
|
BIN
deps/mac/lib/libfftw3f.a
vendored
Normal file
BIN
deps/mac/lib/libfftw3f.a
vendored
Normal file
Binary file not shown.
@ -1,11 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd ../Builds/MacOSX
|
||||
cd ..
|
||||
rm -rf build
|
||||
|
||||
if ! xcodebuild -configuration Release -scheme "PaulXStretch - All" ; then
|
||||
./setupcmake.sh
|
||||
|
||||
./buildcmake.sh
|
||||
|
||||
echo Error BUILDING
|
||||
exit 2
|
||||
fi
|
||||
|
||||
|
||||
|
@ -13,16 +13,14 @@ codesign ${POPTS} --entitlements ${MAINNAME}.entitlements ${MAINNAME}/${MAINNAM
|
||||
codesign ${POPTS} --entitlements ${MAINNAME}.entitlements ${MAINNAME}/${MAINNAME}.vst3
|
||||
|
||||
|
||||
if false ; then
|
||||
|
||||
# AAX is special
|
||||
if [ -n "${AAXSIGNCMD}" ]; then
|
||||
# AAX is special
|
||||
if [ -n "${AAXSIGNCMD}" ]; then
|
||||
echo "Signing AAX plugin"
|
||||
${AAXSIGNCMD} --in ${MAINNAME}/${MAINNAME}.aaxplugin --out ${MAINNAME}/${MAINNAME}.aaxplugin
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ "x$1" = "xonly" ] ; then
|
||||
echo Code-signing only
|
||||
exit 0
|
||||
@ -54,12 +52,3 @@ if ! ./notarize-app.sh --resume=tmp/sbvst3.uuid ${MAINNAME}/${MAINNAME}.vst3 ; t
|
||||
fi
|
||||
|
||||
|
||||
#if ! ./notarize-app.sh SonoBus/SonoBus.aaxplugin ; then
|
||||
# echo Notarization AAX failed
|
||||
# exit 2
|
||||
#fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -10,24 +10,25 @@ VERSION=$1
|
||||
|
||||
MAINNAME="PaulXStretch"
|
||||
|
||||
BUILDDIR=../Builds/MacOSX/build/Release
|
||||
#BUILDDIR=../build/SonoBus_artefacts/Release
|
||||
#INSTBUILDDIR=../build/SonoBusInst_artefacts/Release
|
||||
#BUILDDIR=../Builds/MacOSX/build/Release
|
||||
BUILDDIR=../build/${MAINNAME}_artefacts/Release
|
||||
#INSTBUILDDIR=../build/${MAINNAME}Inst_artefacts/Release
|
||||
|
||||
rm -rf ${MAINNAME}
|
||||
|
||||
mkdir -p ${MAINNAME}
|
||||
|
||||
|
||||
#cp ../doc/README_MAC.txt SonoBus/
|
||||
#cp ../doc/README_MAC.txt ${MAINNAME}/
|
||||
|
||||
#cp -pLRv ${BUILDDIR}/Standalone/${MAINNAME}.app ${MAINNAME}/
|
||||
#cp -pLRv ${BUILDDIR}/AU/${MAINNAME}.component ${MAINNAME}/
|
||||
#cp -pLRv ${BUILDDIR}/VST3/${MAINNAME}.vst3 ${MAINNAME}/
|
||||
cp -pLRv ${BUILDDIR}/Standalone/${MAINNAME}.app ${MAINNAME}/
|
||||
cp -pLRv ${BUILDDIR}/AU/${MAINNAME}.component ${MAINNAME}/
|
||||
cp -pLRv ${BUILDDIR}/VST3/${MAINNAME}.vst3 ${MAINNAME}/
|
||||
cp -pRHv ${BUILDDIR}/AAX/${MAINNAME}.aaxplugin ${MAINNAME}/
|
||||
|
||||
cp -pLRv ${BUILDDIR}/${MAINNAME}.app ${MAINNAME}/
|
||||
cp -pLRv ${BUILDDIR}/${MAINNAME}.component ${MAINNAME}/
|
||||
cp -pLRv ${BUILDDIR}/${MAINNAME}.vst3 ${MAINNAME}/
|
||||
#cp -pLRv ${BUILDDIR}/${MAINNAME}.app ${MAINNAME}/
|
||||
#cp -pLRv ${BUILDDIR}/${MAINNAME}.component ${MAINNAME}/
|
||||
#cp -pLRv ${BUILDDIR}/${MAINNAME}.vst3 ${MAINNAME}/
|
||||
|
||||
|
||||
|
||||
|
@ -499,12 +499,12 @@
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<false/>
|
||||
<key>VERSION</key>
|
||||
<string>1.0.0</string>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>E4E37793-C22E-485C-B28E-D0CA2A33A72D</string>
|
||||
<string>a1080b3d-0af8-4722-add2-0a381e330bec</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>MUST-CLOSE-APPLICATION-ITEMS</key>
|
||||
@ -1036,12 +1036,550 @@
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<false/>
|
||||
<key>VERSION</key>
|
||||
<string>1.0.0</string>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>900E8D18-94AC-4140-AAF6-B4DD2CE114BD</string>
|
||||
<string>8836773b-66f6-4678-ba3b-83f87de99d33</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>MUST-CLOSE-APPLICATION-ITEMS</key>
|
||||
<array/>
|
||||
<key>MUST-CLOSE-APPLICATIONS</key>
|
||||
<false/>
|
||||
<key>PACKAGE_FILES</key>
|
||||
<dict>
|
||||
<key>DEFAULT_INSTALL_LOCATION</key>
|
||||
<string>/</string>
|
||||
<key>HIERARCHY</key>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Applications</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>509</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BUNDLE_CAN_DOWNGRADE</key>
|
||||
<false/>
|
||||
<key>BUNDLE_POSTINSTALL_PATH</key>
|
||||
<dict>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>BUNDLE_PREINSTALL_PATH</key>
|
||||
<dict>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>../PaulXStretch/PaulXStretch.aaxplugin</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>3</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Plug-Ins</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>509</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Audio</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>509</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Avid</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>509</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>2</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Application Support</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Automator</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Documentation</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Extensions</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Filesystems</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Frameworks</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Input Methods</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Internet Plug-Ins</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>LaunchAgents</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>LaunchDaemons</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>PreferencePanes</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Preferences</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Printers</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>PrivilegedHelperTools</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>1005</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>QuickLook</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>QuickTime</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Screen Savers</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Scripts</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Services</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Widgets</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Library</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>Shared</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>1023</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>80</integer>
|
||||
<key>PATH</key>
|
||||
<string>Users</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GID</key>
|
||||
<integer>0</integer>
|
||||
<key>PATH</key>
|
||||
<string>/</string>
|
||||
<key>PATH_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PERMISSIONS</key>
|
||||
<integer>493</integer>
|
||||
<key>TYPE</key>
|
||||
<integer>1</integer>
|
||||
<key>UID</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>PAYLOAD_TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>PRESERVE_EXTENDED_ATTRIBUTES</key>
|
||||
<false/>
|
||||
<key>SHOW_INVISIBLE</key>
|
||||
<false/>
|
||||
<key>SPLIT_FORKS</key>
|
||||
<true/>
|
||||
<key>TREAT_MISSING_FILES_AS_WARNING</key>
|
||||
<false/>
|
||||
<key>VERSION</key>
|
||||
<integer>5</integer>
|
||||
</dict>
|
||||
<key>PACKAGE_SETTINGS</key>
|
||||
<dict>
|
||||
<key>AUTHENTICATION</key>
|
||||
<integer>1</integer>
|
||||
<key>CONCLUSION_ACTION</key>
|
||||
<integer>0</integer>
|
||||
<key>FOLLOW_SYMBOLIC_LINKS</key>
|
||||
<false/>
|
||||
<key>IDENTIFIER</key>
|
||||
<string>com.sonosaurus.paulxstretch.pkg.aax</string>
|
||||
<key>LOCATION</key>
|
||||
<integer>0</integer>
|
||||
<key>NAME</key>
|
||||
<string>AAX Plugin</string>
|
||||
<key>OVERWRITE_PERMISSIONS</key>
|
||||
<false/>
|
||||
<key>PAYLOAD_SIZE</key>
|
||||
<integer>-1</integer>
|
||||
<key>REFERENCE_PATH</key>
|
||||
<string></string>
|
||||
<key>RELOCATABLE</key>
|
||||
<false/>
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<false/>
|
||||
<key>VERSION</key>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>84eda216-acaf-46b6-b5f7-654e1d753eff</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>MUST-CLOSE-APPLICATION-ITEMS</key>
|
||||
@ -1573,12 +2111,12 @@
|
||||
<key>USE_HFS+_COMPRESSION</key>
|
||||
<false/>
|
||||
<key>VERSION</key>
|
||||
<string>1.0.0</string>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>437BF225-E33D-4FC1-8573-A6D19877367C</string>
|
||||
<string>4e2d6b27-ad75-4fb4-b465-f7951c7b1048</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>PROJECT</key>
|
||||
@ -1624,13 +2162,13 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>PACKAGE_UUID</key>
|
||||
<string>E4E37793-C22E-485C-B28E-D0CA2A33A72D</string>
|
||||
<string>a1080b3d-0af8-4722-add2-0a381e330bec</string>
|
||||
<key>TITLE</key>
|
||||
<array/>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>D63A2FB3-6971-4E95-BFF9-84751C6FECCC</string>
|
||||
<string>b6e8c856-781f-4593-9bbe-e2af5a6ff54d</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
@ -1645,13 +2183,13 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>PACKAGE_UUID</key>
|
||||
<string>900E8D18-94AC-4140-AAF6-B4DD2CE114BD</string>
|
||||
<string>8836773b-66f6-4678-ba3b-83f87de99d33</string>
|
||||
<key>TITLE</key>
|
||||
<array/>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>F26B10B7-7821-4E17-8C75-9950A933737C</string>
|
||||
<string>3a934fcb-1c38-4e0c-8fa0-351140f1d236</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
@ -1666,13 +2204,34 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>PACKAGE_UUID</key>
|
||||
<string>437BF225-E33D-4FC1-8573-A6D19877367C</string>
|
||||
<string>4e2d6b27-ad75-4fb4-b465-f7951c7b1048</string>
|
||||
<key>TITLE</key>
|
||||
<array/>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>F010F943-527F-46D2-B29B-87A1E9B0D863</string>
|
||||
<string>895ee614-6bed-4459-baa1-23d7e2209aa8</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CHILDREN</key>
|
||||
<array/>
|
||||
<key>DESCRIPTION</key>
|
||||
<array/>
|
||||
<key>OPTIONS</key>
|
||||
<dict>
|
||||
<key>HIDDEN</key>
|
||||
<false/>
|
||||
<key>STATE</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>PACKAGE_UUID</key>
|
||||
<string>84eda216-acaf-46b6-b5f7-654e1d753eff</string>
|
||||
<key>TITLE</key>
|
||||
<array/>
|
||||
<key>TYPE</key>
|
||||
<integer>0</integer>
|
||||
<key>UUID</key>
|
||||
<string>c25a3faf-335f-4a45-a66c-f8410ccf1892</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>REMOVED</key>
|
||||
|
@ -31,7 +31,7 @@ Name: "app"; Description: "Standalone 64-bit application (.exe)"; Types: full cu
|
||||
;Name: "vst2_64"; Description: "64-bit VST2 Plugin (.dll)"; Types: full custom; Check: Is64BitInstallMode;
|
||||
Name: "vst3_64"; Description: "64-bit VST3 Plugin (.vst3)"; Types: full custom; Check: Is64BitInstallMode;
|
||||
;;Name: "aax_32"; Description: "32-bit AAX Plugin (.aaxplugin)"; Types: full custom;
|
||||
;Name: "aax_64"; Description: "64-bit AAX Plugin (.aaxplugin)"; Types: full custom; Check: Is64BitInstallMode;
|
||||
Name: "aax_64"; Description: "64-bit AAX Plugin (.aaxplugin)"; Types: full custom; Check: Is64BitInstallMode;
|
||||
;Name: "vst2_32"; Description: "32-bit VST2 Plugin (.dll)"; Types: full custom;
|
||||
;Name: "vst3_32"; Description: "32-bit VST3 Plugin (.vst3)"; Types: full custom;
|
||||
|
||||
@ -41,9 +41,9 @@ Name: "vst3_64"; Description: "64-bit VST3 Plugin (.vst3)"; Types: full custom;
|
||||
|
||||
[Files]
|
||||
Source: "PaulXStretch\PaulXStretch.exe"; DestDir: "{app}" ; Check: Is64BitInstallMode; Components:app; Flags: ignoreversion signonce;
|
||||
;Source: "SonoBus\Plugins\SonoBus.dll"; DestDir: {code:GetVST2Dir|0}; Check: Is64BitInstallMode; Components:vst2_64; Flags: ignoreversion signonce;
|
||||
;Source: "SonoBus\Plugins\PaulXStretch.dll"; DestDir: {code:GetVST2Dir|0}; Check: Is64BitInstallMode; Components:vst2_64; Flags: ignoreversion signonce;
|
||||
Source: "PaulXStretch\Plugins\PaulXStretch.vst3"; DestDir: "{commoncf64}\VST3\"; Check: Is64BitInstallMode; Components:vst3_64; Flags: ignoreversion signonce ;
|
||||
;Source: "SonoBus\Plugins\SonoBus.aaxplugin"; DestDir: "{commoncf64}\Avid\Audio\Plug-Ins\"; Check: Is64BitInstallMode; Components:aax_64; Flags: ignoreversion recursesubdirs createallsubdirs ;
|
||||
Source: "SonoBus\Plugins\PaulXStretch.aaxplugin"; DestDir: "{commoncf64}\Avid\Audio\Plug-Ins\"; Check: Is64BitInstallMode; Components:aax_64; Flags: ignoreversion recursesubdirs createallsubdirs ;
|
||||
|
||||
;Source: "SonoBus\SonoBus32.exe"; DestDir: "{app}" ; DestName:"SonoBus.exe"; Check: not Is64BitInstallMode; Components:app32; Flags: ignoreversion signonce;
|
||||
;Source: "SonoBus\Plugins32\SonoBus.dll"; DestDir: {code:GetVST2Dir|1}; Components:vst2_32; Flags: ignoreversion signonce;
|
||||
|
25
setupcmake.sh
Executable file
25
setupcmake.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
DEFS=""
|
||||
CONFIG="Release"
|
||||
|
||||
if [ -n "${AAX_SDK_PATH}" ] ; then
|
||||
echo "Will build AAX plugin"
|
||||
DEPS="$DEPS -DAAX_SDK_PATH=${AAX_SDK_PATH}"
|
||||
fi
|
||||
|
||||
#if [ -n "${VST2_SDK_PATH}" ] ; then
|
||||
# echo "Will build VST2 plugin"
|
||||
# DEPS="$DEPS -DVST2_SDK_PATH=${VST2_SDK_PATH}"
|
||||
#fi
|
||||
|
||||
|
||||
if [ "$1" = "debug" ] ; then
|
||||
CONFIG="Debug"
|
||||
fi
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=$CONFIG $DEPS -B build
|
||||
|
||||
|
||||
|
||||
|
21
setupcmakewin.sh
Executable file
21
setupcmakewin.sh
Executable file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
DEFS=""
|
||||
|
||||
if [ -n "${AAX_SDK_PATH}" ] ; then
|
||||
echo "Will build AAX plugin"
|
||||
DEPS="$DEPS -DAAX_SDK_PATH=${AAX_SDK_PATH}"
|
||||
fi
|
||||
|
||||
#if [ -n "${VST2_SDK_PATH}" ] ; then
|
||||
# echo "Will build VST2 plugin"
|
||||
# DEPS="$DEPS -DVST2_SDK_PATH=${VST2_SDK_PATH}"
|
||||
#fi
|
||||
|
||||
|
||||
#cmake -G "Visual Studio 15 2017" -A "x64" $DEPS -B build
|
||||
cmake -G "Visual Studio 16 2019" -A "x64" $DEPS -B build
|
||||
|
||||
|
||||
|
||||
|
22
setupcmakewin32.sh
Executable file
22
setupcmakewin32.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
DEFS=""
|
||||
|
||||
if [ -n "${AAX_SDK_PATH}" ] ; then
|
||||
echo "Will build AAX plugin"
|
||||
DEPS="$DEPS -DAAX_SDK_PATH=${AAX_SDK_PATH}"
|
||||
fi
|
||||
|
||||
#if [ -n "${VST2_SDK_PATH}" ] ; then
|
||||
# echo "Will build VST2 plugin"
|
||||
# DEPS="$DEPS -DVST2_SDK_PATH=${VST2_SDK_PATH}"
|
||||
#fi
|
||||
|
||||
|
||||
cmake -G "Visual Studio 15 2017" $DEPS -B build32
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
17
setupcmakexcode.sh
Executable file
17
setupcmakexcode.sh
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
DEFS=""
|
||||
|
||||
if [ -n "${AAX_SDK_PATH}" ] ; then
|
||||
DEPS="$DEPS -DAAX_SDK_PATH=${AAX_SDK_PATH}"
|
||||
fi
|
||||
|
||||
#if [ -n "${VST2_SDK_PATH}" ] ; then
|
||||
# DEPS="$DEPS -DVST2_SDK_PATH=${VST2_SDK_PATH}"
|
||||
#fi
|
||||
|
||||
# xcode
|
||||
cmake -GXcode ${DEPS} -B buildXcode
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user