Signed-off-by: falkTX <falktx@falktx.com>pull/115/merge
@@ -38,6 +38,7 @@ juce60_extra_cpp_args = [ | |||||
'-std=gnu++14', | '-std=gnu++14', | ||||
'-Wno-non-virtual-dtor', | '-Wno-non-virtual-dtor', | ||||
] | ] | ||||
juce60_extra_include_dirs = [] | |||||
if os_windows | if os_windows | ||||
juce60_extra_cpp_args += [ | juce60_extra_cpp_args += [ | ||||
@@ -45,6 +46,9 @@ if os_windows | |||||
'-D__wchar_t=wchar_t', | '-D__wchar_t=wchar_t', | ||||
'-Wno-unknown-pragmas', | '-Wno-unknown-pragmas', | ||||
] | ] | ||||
juce60_extra_include_dirs += [ | |||||
include_directories('../mingw-std-threads'), | |||||
] | |||||
if host_machine.cpu() == 'x86' | if host_machine.cpu() == 'x86' | ||||
juce60_extra_cpp_args += [ | juce60_extra_cpp_args += [ | ||||
'-mpreferred-stack-boundary=2', | '-mpreferred-stack-boundary=2', | ||||
@@ -59,6 +63,7 @@ lib_juce60 = static_library('juce60', | |||||
include_directories('source'), | include_directories('source'), | ||||
include_directories('source/modules'), | include_directories('source/modules'), | ||||
include_directories('../juced/source/dependancies/ladspa_sdk/src'), | include_directories('../juced/source/dependancies/ladspa_sdk/src'), | ||||
juce60_extra_include_dirs | |||||
], | ], | ||||
cpp_args: build_flags_cpp + juce60_extra_cpp_args, | cpp_args: build_flags_cpp + juce60_extra_cpp_args, | ||||
dependencies: dependencies, | dependencies: dependencies, | ||||
@@ -72,6 +77,7 @@ lib_juce60_device = static_library('juce60-devices', | |||||
include_directories('.'), | include_directories('.'), | ||||
include_directories('source'), | include_directories('source'), | ||||
include_directories('source/modules'), | include_directories('source/modules'), | ||||
juce60_extra_include_dirs | |||||
], | ], | ||||
cpp_args: build_flags_cpp + juce60_extra_cpp_args + ['-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1'], | cpp_args: build_flags_cpp + juce60_extra_cpp_args + ['-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1'], | ||||
dependencies: dependencies_devices, | dependencies: dependencies_devices, | ||||
@@ -20,10 +20,6 @@ | |||||
============================================================================== | ============================================================================== | ||||
*/ | */ | ||||
#if JUCE_MINGW && !defined(_GLIBCXX_HAS_GTHREADS) | |||||
#include "mingw-std-threads/mingw.condition_variable.h" | |||||
#endif | |||||
namespace juce | namespace juce | ||||
{ | { | ||||
@@ -38,6 +38,7 @@ juce61_extra_cpp_args = [ | |||||
'-std=gnu++14', | '-std=gnu++14', | ||||
'-Wno-non-virtual-dtor', | '-Wno-non-virtual-dtor', | ||||
] | ] | ||||
juce61_extra_include_dirs = [] | |||||
if os_windows | if os_windows | ||||
juce61_extra_cpp_args += [ | juce61_extra_cpp_args += [ | ||||
@@ -45,6 +46,9 @@ if os_windows | |||||
'-D__wchar_t=wchar_t', | '-D__wchar_t=wchar_t', | ||||
'-Wno-unknown-pragmas', | '-Wno-unknown-pragmas', | ||||
] | ] | ||||
juce61_extra_include_dirs += [ | |||||
include_directories('../mingw-std-threads'), | |||||
] | |||||
if host_machine.cpu() == 'x86' | if host_machine.cpu() == 'x86' | ||||
juce61_extra_cpp_args += [ | juce61_extra_cpp_args += [ | ||||
'-mpreferred-stack-boundary=2', | '-mpreferred-stack-boundary=2', | ||||
@@ -59,6 +63,7 @@ lib_juce6 = static_library('juce61', | |||||
include_directories('source'), | include_directories('source'), | ||||
include_directories('source/modules'), | include_directories('source/modules'), | ||||
include_directories('../juced/source/dependancies/ladspa_sdk/src'), | include_directories('../juced/source/dependancies/ladspa_sdk/src'), | ||||
juce61_extra_include_dirs | |||||
], | ], | ||||
cpp_args: build_flags_cpp + juce61_extra_cpp_args, | cpp_args: build_flags_cpp + juce61_extra_cpp_args, | ||||
dependencies: dependencies, | dependencies: dependencies, | ||||
@@ -72,6 +77,7 @@ lib_juce61_device = static_library('juce61-devices', | |||||
include_directories('.'), | include_directories('.'), | ||||
include_directories('source'), | include_directories('source'), | ||||
include_directories('source/modules'), | include_directories('source/modules'), | ||||
juce61_extra_include_dirs | |||||
], | ], | ||||
cpp_args: build_flags_cpp + juce61_extra_cpp_args + ['-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1'], | cpp_args: build_flags_cpp + juce61_extra_cpp_args + ['-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1'], | ||||
dependencies: dependencies_devices, | dependencies: dependencies_devices, | ||||
@@ -38,8 +38,12 @@ juce7_extra_cpp_args = [ | |||||
'-std=gnu++14', | '-std=gnu++14', | ||||
'-Wno-non-virtual-dtor', | '-Wno-non-virtual-dtor', | ||||
] | ] | ||||
juce7_extra_include_dirs = [] | |||||
if os_windows | if os_windows | ||||
juce7_extra_include_dirs += [ | |||||
include_directories('../mingw-std-threads'), | |||||
] | |||||
if host_machine.cpu() == 'x86' | if host_machine.cpu() == 'x86' | ||||
juce7_extra_cpp_args += [ | juce7_extra_cpp_args += [ | ||||
'-mpreferred-stack-boundary=2', | '-mpreferred-stack-boundary=2', | ||||
@@ -54,6 +58,7 @@ lib_juce7 = static_library('juce7', | |||||
include_directories('source'), | include_directories('source'), | ||||
include_directories('source/modules'), | include_directories('source/modules'), | ||||
include_directories('../juced/source/dependancies/ladspa_sdk/src'), | include_directories('../juced/source/dependancies/ladspa_sdk/src'), | ||||
juce7_extra_include_dirs | |||||
], | ], | ||||
cpp_args: build_flags_cpp + juce7_extra_cpp_args, | cpp_args: build_flags_cpp + juce7_extra_cpp_args, | ||||
dependencies: dependencies, | dependencies: dependencies, | ||||
@@ -67,6 +72,7 @@ lib_juce7_device = static_library('juce7-devices', | |||||
include_directories('.'), | include_directories('.'), | ||||
include_directories('source'), | include_directories('source'), | ||||
include_directories('source/modules'), | include_directories('source/modules'), | ||||
juce7_extra_include_dirs | |||||
], | ], | ||||
cpp_args: build_flags_cpp + juce7_extra_cpp_args + ['-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1'], | cpp_args: build_flags_cpp + juce7_extra_cpp_args + ['-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1'], | ||||
dependencies: dependencies_devices, | dependencies: dependencies_devices, | ||||
@@ -68,9 +68,9 @@ | |||||
#include <commdlg.h> | #include <commdlg.h> | ||||
#include <commctrl.h> | #include <commctrl.h> | ||||
#include <sapi.h> | #include <sapi.h> | ||||
#include <Dxgi.h> | |||||
#if JUCE_MSVC | #if JUCE_MSVC | ||||
#include <Dxgi.h> | |||||
#include <UIAutomation.h> | #include <UIAutomation.h> | ||||
#endif | #endif | ||||
@@ -16,8 +16,9 @@ if not (build_juce5_only or build_juce60_only or build_juce7_only) | |||||
subdir('juce6.1') | subdir('juce6.1') | ||||
endif | endif | ||||
if not (build_juce5_only or build_juce60_only or build_juce61_only) | |||||
subdir('juce7') | |||||
endif | |||||
# no plugins imported that use juce7 yet | |||||
# if not (build_juce5_only or build_juce60_only or build_juce61_only) | |||||
# subdir('juce7') | |||||
# endif | |||||
############################################################################### | ############################################################################### |
@@ -0,0 +1,6 @@ | |||||
// Copyright 2023 Filipe Coelho <falktx@falktx.com> | |||||
// SPDX-License-Identifier: 0BSD OR ISC | |||||
#pragma once | |||||
#include_next <condition_variable> | |||||
#include "mingw.condition_variable.h" |
@@ -0,0 +1,6 @@ | |||||
// Copyright 2023 Filipe Coelho <falktx@falktx.com> | |||||
// SPDX-License-Identifier: 0BSD OR ISC | |||||
#pragma once | |||||
#include_next <future> | |||||
#include "mingw.future.h" |
@@ -0,0 +1,6 @@ | |||||
// Copyright 2023 Filipe Coelho <falktx@falktx.com> | |||||
// SPDX-License-Identifier: 0BSD OR ISC | |||||
#pragma once | |||||
#include_next <invoke> | |||||
#include "mingw.invoke.h" |
@@ -0,0 +1,6 @@ | |||||
// Copyright 2023 Filipe Coelho <falktx@falktx.com> | |||||
// SPDX-License-Identifier: 0BSD OR ISC | |||||
#pragma once | |||||
#include_next <mutex> | |||||
#include "mingw.mutex.h" |
@@ -0,0 +1,6 @@ | |||||
// Copyright 2023 Filipe Coelho <falktx@falktx.com> | |||||
// SPDX-License-Identifier: 0BSD OR ISC | |||||
#pragma once | |||||
#include_next <shared_mutex> | |||||
#include "mingw.shared_mutex.h" |
@@ -0,0 +1,6 @@ | |||||
// Copyright 2023 Filipe Coelho <falktx@falktx.com> | |||||
// SPDX-License-Identifier: 0BSD OR ISC | |||||
#pragma once | |||||
#include_next <thread> | |||||
#include "mingw.thread.h" |
@@ -5,6 +5,23 @@ project('DISTRHO-Ports', | |||||
license : 'GPLv3' | license : 'GPLv3' | ||||
) | ) | ||||
############################################################################### | |||||
# set target OS | |||||
os_darwin = false | |||||
os_linux = false | |||||
os_windows = false | |||||
if host_machine.system() == 'darwin' | |||||
os_darwin = true | |||||
elif host_machine.system() == 'windows' | |||||
os_windows = true | |||||
elif host_machine.system() == 'linux' | |||||
os_linux = true | |||||
else | |||||
error('unsupported system') | |||||
endif | |||||
############################################################################### | ############################################################################### | ||||
# get options | # get options | ||||
@@ -27,7 +44,7 @@ build_juce61_only = get_option('build-juce61-only') | |||||
build_juce7_only = get_option('build-juce7-only') | build_juce7_only = get_option('build-juce7-only') | ||||
build_universal = get_option('build-universal') | build_universal = get_option('build-universal') | ||||
optimizations = get_option('optimizations') and buildtype != 'debug' | optimizations = get_option('optimizations') and buildtype != 'debug' | ||||
lto_optimizations = get_option('lto-optimizations') and buildtype != 'debug' | |||||
lto_optimizations = get_option('lto-optimizations') and buildtype != 'debug' and not os_windows | |||||
sse_optimizations = get_option('sse-optimizations') and buildtype != 'debug' | sse_optimizations = get_option('sse-optimizations') and buildtype != 'debug' | ||||
############################################################################### | ############################################################################### | ||||
@@ -37,23 +54,6 @@ lv2dir = prefix / libdir / 'lv2' | |||||
vst2dir = prefix / libdir / 'vst' | vst2dir = prefix / libdir / 'vst' | ||||
vst3dir = prefix / libdir / 'vst3' | vst3dir = prefix / libdir / 'vst3' | ||||
############################################################################### | |||||
# set target OS | |||||
os_darwin = false | |||||
os_linux = false | |||||
os_windows = false | |||||
if host_machine.system() == 'darwin' | |||||
os_darwin = true | |||||
elif host_machine.system() == 'windows' | |||||
os_windows = true | |||||
elif host_machine.system() == 'linux' | |||||
os_linux = true | |||||
else | |||||
error('unsupported system') | |||||
endif | |||||
############################################################################### | ############################################################################### | ||||
# set OS-specific details | # set OS-specific details | ||||
@@ -326,9 +326,10 @@ if not (build_juce5_only or build_juce60_only or build_juce7_only) | |||||
subdir('ports-juce6.1') | subdir('ports-juce6.1') | ||||
endif | endif | ||||
if not (build_juce5_only or build_juce60_only or build_juce61_only) | |||||
subdir('ports-juce7') | |||||
endif | |||||
# no plugins imported that use juce7 yet | |||||
# if not (build_juce5_only or build_juce60_only or build_juce61_only) | |||||
# subdir('ports-juce7') | |||||
# endif | |||||
############################################################################### | ############################################################################### | ||||
# extra files to install | # extra files to install | ||||
@@ -16,6 +16,7 @@ plugin_include_dirs = [ | |||||
include_directories('../libs/juce6.0/source/modules'), | include_directories('../libs/juce6.0/source/modules'), | ||||
include_directories('../libs/juce6.0/source/modules/juce_audio_processors/format_types/VST3_SDK'), | include_directories('../libs/juce6.0/source/modules/juce_audio_processors/format_types/VST3_SDK'), | ||||
include_directories('../libs/juce-plugin'), | include_directories('../libs/juce-plugin'), | ||||
juce60_extra_include_dirs | |||||
] | ] | ||||
############################################################################### | ############################################################################### | ||||
@@ -18,11 +18,7 @@ | |||||
#include "futils.h" | #include "futils.h" | ||||
#include "synth_constants.h" | #include "synth_constants.h" | ||||
#ifdef __MINGW32__ | |||||
#include "mingw-std-threads/mingw.thread.h" | |||||
#else | |||||
#include <thread> | #include <thread> | ||||
#endif | |||||
namespace vital { | namespace vital { | ||||
@@ -17,6 +17,7 @@ plugin_include_dirs = [ | |||||
include_directories('../libs/juce6.1/source/modules'), | include_directories('../libs/juce6.1/source/modules'), | ||||
include_directories('../libs/juce6.1/source/modules/juce_audio_processors/format_types/VST3_SDK'), | include_directories('../libs/juce6.1/source/modules/juce_audio_processors/format_types/VST3_SDK'), | ||||
include_directories('../libs/juce-plugin'), | include_directories('../libs/juce-plugin'), | ||||
juce61_extra_include_dirs | |||||
] | ] | ||||
############################################################################### | ############################################################################### | ||||
@@ -15,6 +15,7 @@ plugin_include_dirs = [ | |||||
include_directories('../libs/juce7/source/modules/juce_audio_processors/format_types/LV2_SDK'), | include_directories('../libs/juce7/source/modules/juce_audio_processors/format_types/LV2_SDK'), | ||||
include_directories('../libs/juce7/source/modules/juce_audio_processors/format_types/VST3_SDK'), | include_directories('../libs/juce7/source/modules/juce_audio_processors/format_types/VST3_SDK'), | ||||
include_directories('../libs/juce-plugin'), | include_directories('../libs/juce-plugin'), | ||||
juce7_extra_include_dirs | |||||
] | ] | ||||
############################################################################### | ############################################################################### | ||||