Skip to content

Commit 4fd602a

Browse files
committed
cmake: fftw fixes following libossia, update multiple 3rdparty libs, fix an LV2 leak
1 parent 37805cf commit 4fd602a

File tree

9 files changed

+52
-31
lines changed

9 files changed

+52
-31
lines changed

3rdparty/avendish

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ if(OSSIA_SDK)
4747
"${OSSIA_SDK}/sysroot/lib/cmake/zstd"
4848

4949
"${OSSIA_SDK}/SDL2/lib64"
50+
"${OSSIA_SDK}/SDL2/lib64/cmake/SDL2"
5051
"${OSSIA_SDK}/qt6-static-debug/lib64"
5152
"${OSSIA_SDK}/qt6-static/lib64"
5253
"${OSSIA_SDK}/llvm-libs/lib64"

src/app/CMakeLists.txt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -175,29 +175,29 @@ if(IOS)
175175
)
176176
endif()
177177

178-
find_path(FFTW3_INCLUDEDIR fftw3.h)
179-
if(FFTW3_INCLUDEDIR)
180-
find_library(FFTW3_LIBRARY fftw3)
181-
find_library(FFTW3_THREADS_LIBRARY fftw3_threads)
182-
if(FFTW3_THREADS_LIBRARY)
183-
set(FFTW3_HAS_THREADS 1)
184-
target_include_directories(${APPNAME} PRIVATE ${FFTW3_INCLUDEDIR})
185-
target_link_libraries(${APPNAME} PRIVATE ${FFTW3_THREADS_LIBRARY})
186-
elseif(FFTW3_LIBRARY)
178+
find_path(FFTW_INCLUDE_DIR fftw3.h)
179+
if(FFTW_INCLUDE_DIR)
180+
find_library(FFTW_LIBRARY fftw3)
181+
find_library(FFTW_THREADS_LIBRARY fftw3_threads)
182+
if(FFTW_THREADS_LIBRARY)
183+
set(FFTW_HAS_THREADS 1)
184+
target_include_directories(${APPNAME} PRIVATE ${FFTW_INCLUDE_DIR})
185+
target_link_libraries(${APPNAME} PRIVATE ${FFTW_THREADS_LIBRARY})
186+
elseif(FFTW_LIBRARY)
187187
if(MSVC)
188-
set(FFTW3_HAS_THREADS 1)
188+
set(FFTW_HAS_THREADS 1)
189189
else()
190-
check_symbol_exists(fftw_make_planner_thread_safe ${FFTW3_LIBRARY} FFTW3_HAS_THREADS)
190+
check_symbol_exists(fftw_make_planner_thread_safe ${FFTW_LIBRARY} FFTW_HAS_THREADS)
191191
endif()
192192

193-
if(FFTW3_HAS_THREADS)
194-
target_include_directories(${APPNAME} PRIVATE ${FFTW3_INCLUDEDIR})
195-
target_link_libraries(${APPNAME} PRIVATE ${FFTW3_LIBRARY})
193+
if(FFTW_HAS_THREADS)
194+
target_include_directories(${APPNAME} PRIVATE ${FFTW_INCLUDE_DIR})
195+
target_link_libraries(${APPNAME} PRIVATE ${FFTW_LIBRARY})
196196
endif()
197197
endif()
198198
endif()
199-
if(FFTW3_HAS_THREADS)
200-
target_compile_definitions(${APPNAME} PRIVATE FFTW3_HAS_THREADS=1)
199+
if(FFTW_HAS_THREADS)
200+
target_compile_definitions(${APPNAME} PRIVATE FFTW_HAS_THREADS=1)
201201
endif()
202202
setup_score_common_exe_features(${APPNAME})
203203

src/app/main.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -192,15 +192,18 @@ static void setup_x11(int argc, char** argv)
192192
#endif
193193
}
194194

195+
#if defined(__linux__)
196+
extern "C" {
197+
enum SuilArg
198+
{
199+
SUIL_ARG_NONE
200+
};
201+
using suil_init_t = void (*)(int* argc, char*** argv, SuilArg key, ...);
202+
}
203+
#endif
195204
static void setup_suil()
196205
{
197206
#if defined(__linux__)
198-
enum SuilArg
199-
{
200-
SUIL_ARG_NONE
201-
};
202-
using suil_init_t = void (*)(int* argc, char*** argv, SuilArg key, ...);
203-
204207
if(auto lib = dlopen("libsuil-0.so.0", RTLD_LAZY | RTLD_LOCAL))
205208
{
206209
// 1. Init suil
@@ -547,7 +550,7 @@ static void setup_app_flags()
547550
#endif
548551
}
549552

550-
#if FFTW3_HAS_THREADS
553+
#if FFTW_HAS_THREADS
551554
#include <fftw3.h>
552555
static void setup_fftw()
553556
{

src/plugins/score-plugin-lv2/LV2/Context.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,8 @@ LV2Data::LV2Data(HostContext& h, EffectContext& ctx)
316316
for(auto res :
317317
{effect.plugin.get_required_features(), effect.plugin.get_optional_features()})
318318
{
319-
std::cerr << effect.plugin.get_name().as_string() << " requires " << std::endl;
319+
std::cerr << get_lv2_plugin_name(effect.plugin).toStdString() << " requires "
320+
<< std::endl;
320321
auto it = res.begin();
321322
while(it)
322323
{

src/plugins/score-plugin-lv2/LV2/Context.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929

3030
#include <boost/bimap.hpp>
3131

32+
#include <QString>
33+
3234
#include <lilv/lilvmm.hpp>
3335

3436
#include <readerwriterqueue.h>
@@ -227,4 +229,6 @@ struct Message
227229
uint32_t protocol;
228230
ossia::small_vector<uint8_t, 32> body;
229231
};
232+
233+
QString get_lv2_plugin_name(const Lilv::Plugin& node);
230234
}

src/plugins/score-plugin-lv2/LV2/EffectModel.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,17 @@
3636
W_OBJECT_IMPL(LV2::Model)
3737
namespace LV2
3838
{
39+
QString get_lv2_plugin_name(const Lilv::Plugin& node)
40+
{
41+
QString ret;
42+
if(auto pname = lilv_plugin_get_name(node.me))
43+
{
44+
if(auto str = lilv_node_as_string(pname))
45+
ret = QString::fromUtf8(str);
46+
lilv_node_free(pname);
47+
}
48+
return ret;
49+
};
3950
std::optional<Lilv::Plugin> find_lv2_plugin(Lilv::World& world, QString path)
4051
{
4152
static ossia::hash_map<QString, const LilvPlugin*> plug_map;
@@ -60,13 +71,14 @@ std::optional<Lilv::Plugin> find_lv2_plugin(Lilv::World& world, QString path)
6071
while(!plugs.is_end(it))
6172
{
6273
auto plug = plugs.get(it);
74+
const auto plugin_name = get_lv2_plugin_name(plug);
6375
if((isFile && QString(plug.get_bundle_uri().as_string()) == path)
64-
|| (!isFile && QString(plug.get_name().as_string()) == path))
76+
|| (!isFile && plugin_name == path))
6577
{
6678
plug_map[old_str] = plug;
6779
return plug;
6880
}
69-
else if(!isFile && QString(plug.get_name().as_string()) == path)
81+
else if(!isFile && plugin_name == path)
7082
{
7183
plug_map[old_str] = plug;
7284
return plug;
@@ -105,7 +117,7 @@ struct LV2PluginChooserDialog : public QDialog
105117
{
106118
auto plug = plugs.get(it);
107119
const auto class_name = plug.get_class().get_label().as_string();
108-
const auto plug_name = plug.get_name().as_string();
120+
const auto plug_name = get_lv2_plugin_name(plug);
109121
auto sub_it = m_categories_map.find(class_name);
110122
if(sub_it == m_categories_map.end())
111123
{
@@ -174,7 +186,7 @@ static Process::Descriptor make_descriptor(Lilv::Plugin plug)
174186
Process::Descriptor desc;
175187
auto& app_plug = score::AppComponents().applicationPlugin<LV2::ApplicationPlugin>();
176188
auto& host = app_plug.lv2_host_context;
177-
desc.prettyName = plug.get_name().as_string();
189+
desc.prettyName = LV2::get_lv2_plugin_name(plug);
178190
desc.categoryText = plug.get_class().get_label().as_string();
179191
desc.description = plug.get_author_homepage().as_string();
180192
desc.author = plug.get_author_name().as_string();

src/plugins/score-plugin-lv2/LV2/Library.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class LibraryHandler final : public Library::LibraryInterface
3232
{
3333
auto plug = plugs.get(it);
3434
const auto class_name = plug.get_class().get_label().as_string();
35-
const auto plug_name = plug.get_name().as_string();
35+
const auto plug_name = get_lv2_plugin_name(plug);
3636
categories[class_name].push_back(plug_name);
3737
it = plugs.next(it);
3838
}

0 commit comments

Comments
 (0)