diff --git a/cmake/DPFFunctions.cmake b/cmake/DPFFunctions.cmake index 752900ba..f463bc30 100644 --- a/cmake/DPFFunctions.cmake +++ b/cmake/DPFFunctions.cmake @@ -1,3 +1,4 @@ + # Sets GET_LIBS_AND_DEFINES_LIBS and GET_LIBS_AND_DEFINES_DEFINES variables in parentscope. Link to this ! function(GET_LIBS_AND_DEFINES UI_BACKEND) if(NOT UI_BACKEND) @@ -18,6 +19,25 @@ function(GET_LIBS_AND_DEFINES UI_BACKEND) endfunction(GET_LIBS_AND_DEFINES UI_BACKEND) +function(ADD_JACK) + find_package(Jack) + if(JACK_FOUND) + set(oneValueArgs TARGET UI_BACKEND) + set(multiValueArgs SOURCES INCLUDE_DIRECTORIES DEFINES) + cmake_parse_arguments(PLUGIN_PARAM "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) + + GET_LIBS_AND_DEFINES(${PLUGIN_PARAM_UI_BACKEND} ) + + add_executable(${PLUGIN_PARAM_TARGET} ${PLUGIN_PARAM_SOURCES}) + SET_TARGET_PROPERTIES(${PLUGIN_PARAM_TARGET} PROPERTIES PREFIX "") + target_link_libraries(${PLUGIN_PARAM_TARGET} ${GET_LIBS_AND_DEFINES_LIBS} DPF ${JACK_LIBRARIES} ) + target_include_directories(${PLUGIN_PARAM_TARGET} PUBLIC ${PLUGIN_PARAM_INCLUDE_DIRECTORIES}) + target_compile_definitions(${PLUGIN_PARAM_TARGET} PUBLIC ${PLUGIN_PARAM_DEFINES} ${GET_LIBS_AND_DEFINES_DEFINES} DISTRHO_PLUGIN_TARGET_JACK) + elseif(JACK_FOUND) + message("Couldnt build Jack, because Jack not found.") + endif(JACK_FOUND) +endfunction(ADD_JACK) + # Parameter to use: # TARGET: Name for the generated VST # UI_BACKEND; weather it should be NONE,EXTERNAL,OPENGL or CAIRO diff --git a/cmake/FindJack.cmake b/cmake/FindJack.cmake new file mode 100644 index 00000000..9b28b1fb --- /dev/null +++ b/cmake/FindJack.cmake @@ -0,0 +1,36 @@ +# - Try to find JACK +# Once done, this will define +# +# JACK_FOUND - system has JACK +# JACK_INCLUDE_DIRS - the JACK include directories +# JACK_LIBRARIES - link these to use JACK + +# Use pkg-config to get hints about paths +find_package(PkgConfig QUIET) +if(PKG_CONFIG_FOUND) + pkg_check_modules(JACK_PKGCONF jack) +endif(PKG_CONFIG_FOUND) + +# Include dir +find_path(JACK_INCLUDE_DIR + NAMES jack/jack.h + PATH_SUFFIXES include includes + PATHS ${JACK_PKGCONF_INCLUDE_DIRS} +) + +# Library +find_library(JACK_LIBRARY + NAMES jack jack64 libjack libjack64 + PATH_SUFFIXES lib + PATHS ${JACK_PKGCONF_LIBRARY_DIRS} +) + +find_package(PackageHandleStandardArgs) +find_package_handle_standard_args(Jack DEFAULT_MSG JACK_LIBRARY JACK_INCLUDE_DIR) + +if(JACK_FOUND) + set(JACK_LIBRARIES ${JACK_LIBRARY}) + set(JACK_INCLUDE_DIRS ${JACK_INCLUDE_DIR}) +endif(JACK_FOUND) + +mark_as_advanced(JACK_LIBRARY JACK_LIBRARIES JACK_INCLUDE_DIR JACK_INCLUDE_DIRS) diff --git a/dgl/CMakeLists.txt b/dgl/CMakeLists.txt index 263c643e..ce358b42 100644 --- a/dgl/CMakeLists.txt +++ b/dgl/CMakeLists.txt @@ -4,7 +4,7 @@ project(dgl) find_package(OpenGL) find_package(Cairo) - +find_package(X11) #########GENERAL SOURCES########### set(DGL_COMMON_SRC src/Application.cpp @@ -44,7 +44,7 @@ if(OpenGL_FOUND) target_compile_definitions(dgl-opengl PUBLIC DGL_OPENGL HAVE_OPENGL ${DGL_COMPILE_DEFINITION}) target_include_directories(dgl-opengl PUBLIC ${CMAKE_CURRENT_LIST_DIR}/src/ ${CMAKE_CURRENT_LIST_DIR}/) set_target_properties(dgl-opengl PROPERTIES POSITION_INDEPENDENT_CODE true) - target_link_libraries(dgl-opengl PUBLIC ${OPENGL_LIBRARIES}) + target_link_libraries(dgl-opengl PUBLIC ${OPENGL_LIBRARIES} ${X11_LIBRARIES}) endif(OpenGL_FOUND) #######CAIRO DGL############ diff --git a/examples/Info/CMakeLists.txt b/examples/Info/CMakeLists.txt index e815788a..35c50eaf 100644 --- a/examples/Info/CMakeLists.txt +++ b/examples/Info/CMakeLists.txt @@ -11,14 +11,16 @@ ADD_VST2(TARGET InfoVst UI_BACKEND OPENGL SOURCES InfoExamplePlugin.cpp InfoExampleUI.cpp INCLUDE_DIRECTORIES "./") - +ADD_JACK(TARGET InfoJack UI_BACKEND OPENGL + SOURCES InfoExamplePlugin.cpp InfoExampleUI.cpp + INCLUDE_DIRECTORIES "./") #ADD_DSSI(TARGET CairoUI-DSSI UI_BACKEND CAIRO # SOURCES CairoExamplePlugin.cpp # UI_SOURCES DemoWidgetBanner.cpp DemoWidgetClickable.cpp CairoExampleUI.cpp # INCLUDE_DIRECTORIES "./") - +INSTALL(TARGETS InfoJack DESTINATION bin) INSTALL(TARGETS InfoVst DESTINATION lib/vst) INSTALL(TARGETS Info Info_ui DESTINATION lib/lv2/Info.lv2) #INSTALL(TARGETS CairoUI-DSSI CairoUI-DSSI_ui DESTINATION lib/dssi)