audacia/cmake-proxies/lv2/CMakeLists.txt

256 lines
7.5 KiB
CMake

add_library( ${TARGET} STATIC )
def_vars()
list( APPEND SOURCES
PRIVATE
# lilv
${TARGET_ROOT}/lilv/src/collections.c
${TARGET_ROOT}/lilv/src/instance.c
${TARGET_ROOT}/lilv/src/lib.c
${TARGET_ROOT}/lilv/src/node.c
${TARGET_ROOT}/lilv/src/plugin.c
${TARGET_ROOT}/lilv/src/pluginclass.c
${TARGET_ROOT}/lilv/src/port.c
${TARGET_ROOT}/lilv/src/query.c
${TARGET_ROOT}/lilv/src/scalepoint.c
${TARGET_ROOT}/lilv/src/state.c
${TARGET_ROOT}/lilv/src/ui.c
${TARGET_ROOT}/lilv/src/util.c
${TARGET_ROOT}/lilv/src/world.c
${TARGET_ROOT}/lilv/src/zix/tree.c
# serd
${TARGET_ROOT}/serd/src/byte_source.c
${TARGET_ROOT}/serd/src/env.c
${TARGET_ROOT}/serd/src/n3.c
${TARGET_ROOT}/serd/src/node.c
${TARGET_ROOT}/serd/src/reader.c
${TARGET_ROOT}/serd/src/string.c
${TARGET_ROOT}/serd/src/uri.c
${TARGET_ROOT}/serd/src/writer.c
# sord
${TARGET_ROOT}/sord/src/sord.c
${TARGET_ROOT}/sord/src/syntax.c
${TARGET_ROOT}/sord/src/zix/btree.c
${TARGET_ROOT}/sord/src/zix/digest.c
${TARGET_ROOT}/sord/src/zix/hash.c
# sratom
${TARGET_ROOT}/sratom/src/sratom.c
# suil
${TARGET_ROOT}/suil/src/host.c
${TARGET_ROOT}/suil/src/instance.c
)
list( APPEND INCLUDES
PRIVATE
${_PRVDIR}
${TARGET_ROOT}/lilv/src
${TARGET_ROOT}/lilv/src/zix
${TARGET_ROOT}/serd/src
${TARGET_ROOT}/sord/src
${TARGET_ROOT}/sord/src/zix
${TARGET_ROOT}/sratom/src
${TARGET_ROOT}/suil/src
PUBLIC
${_PUBDIR}
${TARGET_ROOT}/lv2
${TARGET_ROOT}/lilv
${TARGET_ROOT}/serd
${TARGET_ROOT}/sord
${TARGET_ROOT}/sratom
${TARGET_ROOT}/suil
)
list( APPEND DEFINES
PRIVATE
SUIL_INTERNAL
)
list( APPEND HEADERS
# lv2
${TARGET_ROOT}/lv2/lv2/atom/atom.h
${TARGET_ROOT}/lv2/lv2/atom/forge.h
${TARGET_ROOT}/lv2/lv2/atom/util.h
${TARGET_ROOT}/lv2/lv2/buf-size/buf-size.h
${TARGET_ROOT}/lv2/lv2/core/attributes.h
${TARGET_ROOT}/lv2/lv2/core/lv2.h
${TARGET_ROOT}/lv2/lv2/core/lv2_util.h
${TARGET_ROOT}/lv2/lv2/data-access/data-access.h
${TARGET_ROOT}/lv2/lv2/dynmanifest/dynmanifest.h
${TARGET_ROOT}/lv2/lv2/event/event-helpers.h
${TARGET_ROOT}/lv2/lv2/event/event.h
${TARGET_ROOT}/lv2/lv2/instance-access/instance-access.h
${TARGET_ROOT}/lv2/lv2/log/log.h
${TARGET_ROOT}/lv2/lv2/log/logger.h
${TARGET_ROOT}/lv2/lv2/midi/midi.h
${TARGET_ROOT}/lv2/lv2/morph/morph.h
${TARGET_ROOT}/lv2/lv2/options/options.h
${TARGET_ROOT}/lv2/lv2/parameters/parameters.h
${TARGET_ROOT}/lv2/lv2/patch/patch.h
${TARGET_ROOT}/lv2/lv2/port-groups/port-groups.h
${TARGET_ROOT}/lv2/lv2/port-props/port-props.h
${TARGET_ROOT}/lv2/lv2/presets/presets.h
${TARGET_ROOT}/lv2/lv2/resize-port/resize-port.h
${TARGET_ROOT}/lv2/lv2/state/state.h
${TARGET_ROOT}/lv2/lv2/time/time.h
${TARGET_ROOT}/lv2/lv2/ui/ui.h
${TARGET_ROOT}/lv2/lv2/units/units.h
${TARGET_ROOT}/lv2/lv2/uri-map/uri-map.h
${TARGET_ROOT}/lv2/lv2/urid/urid.h
${TARGET_ROOT}/lv2/lv2/worker/worker.h
)
set( src "${TARGET_ROOT}/lv2" )
set( dst "${_PUBDIR}" )
set( ns "${dst}/lv2/lv2plug.in/ns" )
set( stamp "${_INTDIR}/.stamp.lv2" )
# Simulate the older directory structure (trailing "/" is important)
file( MAKE_DIRECTORY "${ns}" )
file( COPY "${src}/lv2/core/lv2.h" DESTINATION "${dst}" )
file( COPY "${src}/lv2/" DESTINATION "${ns}/ext" )
file( COPY "${src}/lv2/" DESTINATION "${ns}/extensions" )
file( COPY "${src}/lv2/core/" DESTINATION "${ns}/lv2core" )
set( LILV_VERSION "0.24.4" )
set( SERD_VERSION "0.30.2" )
set( SORD_VERSION "0.16.4" )
set( SRATOM_VERSION "0.6.4" )
set( SUIL_VERSION "0.10.6" )
set( HAVE_LV2 1 )
set( HAVE_SERD 1 )
set( HAVE_SORD 1 )
set( HAVE_SRATOM 1 )
macro( bld name packages define sources )
set( libs )
set( missing )
set( lib "${SUIL_MODULE_PREFIX}${name}" )
foreach( pkg ${packages} )
if( NOT "${${pkg}_FOUND}" )
set( missing ON )
break()
endif()
list( APPEND libs
PRIVATE
"PkgConfig::${pkg}"
)
endforeach()
if( NOT missing )
list( APPEND DEFINES
PRIVATE
${define}
)
add_library( ${lib} MODULE "${sources}" )
add_dependencies( ${TARGET} ${lib} )
set_target_properties( ${lib}
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${_DEST}/${_PKGLIB}"
PREFIX ""
)
organize_source( "${TARGET_ROOT}" "" "${sources}" )
target_compile_definitions( ${lib} PRIVATE SUIL_SHARED ${DEFINES} )
target_include_directories( ${lib} PRIVATE ${INCLUDES} )
target_link_libraries( ${lib} PRIVATE ${libs} )
endif()
endmacro()
if( WIN32 )
set( LILV_PATH_SEP ";" )
set( LILV_DIR_SEP "\\\\" )
set( LILV_DEFAULT_LV2_PATH "%APPDATA%\\\\LV2;%COMMONPROGRAMFILES%\\\\LV2" )
set( SUIL_MODULE_DIR "" )
set( SUIL_DIR_SEP "" )
set( SUIL_GTK2_LIB_NAME "libgtk-x11-2.0.so.0" )
set( SUIL_GTK3_LIB_NAME "libgtk-x11-3.0.so.0" )
set( SUIL_MODULE_PREFIX "" )
set( SUIL_MODULE_EXT ".dll" )
elseif( APPLE )
set( LILV_PATH_SEP ":" )
set( LILV_DIR_SEP "/" )
set( LILV_DEFAULT_LV2_PATH "~/Library/Audio/Plug-Ins/LV2:~/.lv2:/usr/local/lib/lv2:/usr/lib/lv2:/Library/Audio/Plug-Ins/LV2" )
set( SUIL_MODULE_DIR "" )
set( SUIL_DIR_SEP "" )
set( SUIL_GTK2_LIB_NAME "libgtk-x11-2.0.so.0" )
set( SUIL_GTK3_LIB_NAME "libgtk-x11-3.0.so.0" )
set( SUIL_MODULE_PREFIX "lib" )
set( SUIL_MODULE_EXT ".dylib" )
elseif( UNIX )
set( LILV_PATH_SEP ":" )
set( LILV_DIR_SEP "/" )
set( LILV_DEFAULT_LV2_PATH "~/.lv2:/usr/lib/lv2:/usr/local/lib/lv2" )
set( SUIL_MODULE_DIR "" )
set( SUIL_DIR_SEP "" )
set( SUIL_GTK2_LIB_NAME "libgtk-x11-2.0.so.0" )
set( SUIL_GTK3_LIB_NAME "libgtk-x11-3.0.so.0" )
set( SUIL_MODULE_PREFIX "lib" )
set( SUIL_MODULE_EXT ".so" )
pkg_check_modules( X11 IMPORTED_TARGET "x11" )
pkg_check_modules( GTK2 IMPORTED_TARGET "gtk+-2.0" )
pkg_check_modules( GTK3 IMPORTED_TARGET "gtk+-3.0" )
pkg_check_modules( GTK2X11 IMPORTED_TARGET "gtk+-x11-2.0" )
pkg_check_modules( GTK3X11 IMPORTED_TARGET "gtk+-x11-3.0" )
pkg_check_modules( QT4 IMPORTED_TARGET "QtGui >= 4.4.0" )
pkg_check_modules( QT5 IMPORTED_TARGET "Qt5Widgets >= 5.1.0" )
bld( "suil_x11"
"X11"
"SUIL_WITH_X11"
"${TARGET_ROOT}/suil/src/x11.c" )
bld( "suil_x11_in_gtk2"
"X11;GTK2X11"
"SUIL_WITH_X11_IN_GTK2"
"${TARGET_ROOT}/suil/src/x11_in_gtk2.c" )
bld( "suil_x11_in_gtk3"
"X11;GTK3X11"
"SUIL_WITH_X11_IN_GTK3"
"${TARGET_ROOT}/suil/src/x11_in_gtk3.c" )
bld( "suil_qt4_in_gtk2"
"QT4;GTK2"
"SUIL_WITH_QT4_IN_GTK2"
"${TARGET_ROOT}/suil/src/qt4_in_gtk2.cpp" )
bld( "suil_qt5_in_gtk2"
"QT5;GTK2"
"SUIL_WITH_QT5_IN_GTK2"
"${TARGET_ROOT}/suil/src/qt5_in_gtk.cpp" )
bld( "suil_qt5_in_gtk3"
"QT5;GTK3"
"SUIL_WITH_QT5_IN_GTK3"
"${TARGET_ROOT}/suil/src/qt5_in_gtk.cpp" )
endif()
configure_file( lilv_config.h.in "${_PRVDIR}/lilv_config.h" )
configure_file( serd_config.h.in "${_PRVDIR}/serd_config.h" )
configure_file( sord_config.h.in "${_PRVDIR}/sord_config.h" )
configure_file( sratom_config.h.in "${_PRVDIR}/sratom_config.h" )
configure_file( suil_config.h.in "${_PRVDIR}/suil_config.h" )
organize_source( "${TARGET_ROOT}" "" "${SOURCES} ${HEADERS}" )
target_sources( ${TARGET} PRIVATE ${SOURCES} ${HEADERS} )
target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} )
target_include_directories( ${TARGET} PRIVATE ${INCLUDES} )