Skip to content

Commit

Permalink
suil: fix build on system with no suil at all
Browse files Browse the repository at this point in the history
  • Loading branch information
jcelerier committed Jan 18, 2025
1 parent 522cd68 commit edaa3b7
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 71 deletions.
65 changes: 31 additions & 34 deletions 3rdparty/suil.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
if(OSSIA_USE_SYSTEM_LIBRARIES)
return()
return()
endif()

if(NOT LV2_PATH)
Expand All @@ -13,42 +13,39 @@ endif()

set(Suil_INCLUDE_DIR "${3RDPARTY_FOLDER}/suil/include")

add_library(Suil SHARED
"${3RDPARTY_FOLDER}/suil/src/host.c"
"${3RDPARTY_FOLDER}/suil/src/instance.c"
)
add_library(Suil SHARED "${3RDPARTY_FOLDER}/suil/src/host.c"
"${3RDPARTY_FOLDER}/suil/src/instance.c")
add_library(Suil::Suil ALIAS Suil)
set_target_properties(Suil PROPERTIES
LIBRARY_OUTPUT_NAME "suil-0"
VERSION 0
SOVERSION 0
)

target_compile_definitions(Suil PRIVATE "SUIL_MODULE_DIR=\"${CMAKE_BINARY_DIR}/lib/suil-0\"")

target_include_directories(Suil
PUBLIC
"${Suil_INCLUDE_DIR}"
PRIVATE
"${3RDPARTY_FOLDER}/suil/src"
"${LV2_PATH}"
)

add_library(suil_x11_in_qt6 MODULE
"${3RDPARTY_FOLDER}/suil/src/x11.c"
"${3RDPARTY_FOLDER}/suil/src/x11_in_qt.cpp"
)
set_target_properties(suil_x11_in_qt6 PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/suil-0"
)
set_target_properties(
Suil
PROPERTIES LIBRARY_OUTPUT_NAME "suil-0"
VERSION 0
SOVERSION 0)

target_compile_definitions(
Suil PRIVATE "SUIL_MODULE_DIR=\"${CMAKE_BINARY_DIR}/lib/suil-0\"")

target_include_directories(
Suil
PUBLIC "${Suil_INCLUDE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/include"
PRIVATE "${3RDPARTY_FOLDER}/suil/src" "${LV2_PATH}")

add_library(suil_x11_in_qt6 MODULE "${3RDPARTY_FOLDER}/suil/src/x11.c"
"${3RDPARTY_FOLDER}/suil/src/x11_in_qt.cpp")
set_target_properties(
suil_x11_in_qt6 PROPERTIES LIBRARY_OUTPUT_DIRECTORY
"${CMAKE_BINARY_DIR}/lib/suil-0")

file(
GENERATE
OUTPUT "include/suil-0/suil/suil.h"
INPUT "${3RDPARTY_FOLDER}/suil/include/suil/suil.h")

target_include_directories(suil_x11_in_qt6
PRIVATE "${3RDPARTY_FOLDER}/suil/src"
)
PRIVATE "${3RDPARTY_FOLDER}/suil/src")

target_link_libraries(suil_x11_in_qt6
PRIVATE Suil Qt6::Core Qt6::Gui Qt6::Widgets X11::X11
)
target_link_libraries(suil_x11_in_qt6 PRIVATE Suil Qt6::Core Qt6::Gui
Qt6::Widgets X11::X11)

set(Suil_LIBRARY Suil)
set(Suil_FOUND 1 )
set(Suil_FOUND 1)
64 changes: 27 additions & 37 deletions src/plugins/score-plugin-lv2/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ if(SCORE_FAST_DEV_BUILD)
endif()

find_path(LV2_PATH lv2/lv2plug.in/ns/ext/atom/atom.h
HINTS
"${OSSIA_SDK}/lv2/include"
)
HINTS "${OSSIA_SDK}/lv2/include")

find_package(Lilv)
if(NOT TARGET Lilv)
Expand All @@ -23,51 +21,43 @@ endif()

find_package(Suil)

if(NOT TARGET Lilv OR NOT TARGET Suil OR NOT LV2_PATH)
if(NOT TARGET Lilv
OR NOT TARGET Suil
OR NOT LV2_PATH)
return()
endif()


set(HDRS
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/ApplicationPlugin.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/EffectModel.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/lv2_atom_helpers.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Context.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Suil.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Node.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Window.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Library.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/score_plugin_lv2.hpp"
)
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/ApplicationPlugin.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/EffectModel.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/lv2_atom_helpers.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Context.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Suil.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Node.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Window.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Library.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/score_plugin_lv2.hpp")

set(SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/ApplicationPlugin.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/EffectModel.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Context.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Window.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/score_plugin_lv2.cpp"
)

"${CMAKE_CURRENT_SOURCE_DIR}/LV2/ApplicationPlugin.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/EffectModel.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Context.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/LV2/Window.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/score_plugin_lv2.cpp")

add_library(${PROJECT_NAME}
${SRCS} ${HDRS}
)
add_library(${PROJECT_NAME} ${SRCS} ${HDRS})

score_generate_command_list_file(${PROJECT_NAME} "${HDRS}")
target_link_libraries(${PROJECT_NAME} PUBLIC
${QT_PREFIX}::Core ${QT_PREFIX}::Widgets ${CMAKE_DL_LIBS}
score_plugin_media
)
target_link_libraries(
${PROJECT_NAME} PUBLIC ${QT_PREFIX}::Core ${QT_PREFIX}::Widgets
${CMAKE_DL_LIBS} score_plugin_media)

target_link_libraries(${PROJECT_NAME} PRIVATE Lilv)
target_include_directories(${PROJECT_NAME}
PRIVATE
3rdparty/readerwriterqueue
)
if(TARGET Suil)
target_link_libraries(${PROJECT_NAME} PRIVATE Suil)
endif()
target_include_directories(${PROJECT_NAME} PRIVATE 3rdparty/readerwriterqueue)

target_include_directories(${PROJECT_NAME}
SYSTEM PRIVATE
${LV2_PATH}
)
target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE ${LV2_PATH})

setup_score_plugin(${PROJECT_NAME})

0 comments on commit edaa3b7

Please sign in to comment.