From e6d762b94b1a1cfa78b5cf5427b3bb5715309c8c Mon Sep 17 00:00:00 2001 From: Dominic Clark Date: Fri, 23 Oct 2020 08:34:02 +0100 Subject: Add lilv port (#14080) Co-authored-by: NancyLi1013 --- ports/lilv/CMakeLists.txt | 96 +++++++++++++++++++++++++++++++++++++++++++++++ ports/lilv/portfile.cmake | 28 ++++++++++++++ ports/lilv/vcpkg.json | 14 +++++++ 3 files changed, 138 insertions(+) create mode 100644 ports/lilv/CMakeLists.txt create mode 100644 ports/lilv/portfile.cmake create mode 100644 ports/lilv/vcpkg.json diff --git a/ports/lilv/CMakeLists.txt b/ports/lilv/CMakeLists.txt new file mode 100644 index 000000000..7dd5cbeba --- /dev/null +++ b/ports/lilv/CMakeLists.txt @@ -0,0 +1,96 @@ +cmake_minimum_required(VERSION 3.17) +project(lilv C) + +find_package(lv2 CONFIG REQUIRED) +find_package(serd CONFIG REQUIRED) +find_package(sord CONFIG REQUIRED) +find_package(sratom CONFIG REQUIRED) + +add_library(lilv + src/collections.c + src/filesystem.c + src/instance.c + src/lib.c + src/node.c + src/plugin.c + src/pluginclass.c + src/port.c + src/query.c + src/scalepoint.c + src/state.c + src/ui.c + src/util.c + src/world.c + src/zix/tree.c +) + +if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "MinGW") + set(LILV_PATH_SEP [[;]]) + set(LILV_DIR_SEP [[\\]]) + set(LV2_PATH [[%APPDATA%\\LV2;%COMMONPROGRAMFILES%\\LV2]]) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + set(LILV_PATH_SEP ":") + set(LILV_DIR_SEP "/") + set(LV2_PATH "~/Library/Audio/Plug-Ins/LV2:~/.lv2:/usr/local/lib/lv2:/usr/lib/lv2:/Library/Audio/Plug-Ins/LV2") +else() + set(LILV_PATH_SEP ":") + set(LILV_DIR_SEP "/") + set(LV2_PATH "~/.lv2:/usr/lib/lv2:/usr/local/lib/lv2") +endif() + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/lilv_config.h.in" [[ +#define LILV_PATH_SEP "@LILV_PATH_SEP@" +#define LILV_DIR_SEP "@LILV_DIR_SEP@" +#define LILV_DEFAULT_LV2_PATH "@LV2_PATH@" +]]) +configure_file("${CMAKE_CURRENT_BINARY_DIR}/lilv_config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/lilv_config.h") + +target_include_directories(lilv + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/src" "${CMAKE_CURRENT_BINARY_DIR}" +) + +target_link_libraries(lilv + PUBLIC lv2::lv2 + PRIVATE serd::serd sord::sord sratom::sratom +) + +set_target_properties(lilv PROPERTIES + C_STANDARD 99 + C_STANDARD_REQUIRED ON +) + +target_compile_definitions(lilv PRIVATE LILV_INTERNAL _CRT_SECURE_NO_WARNINGS) + +if(BUILD_SHARED_LIBS) + target_compile_definitions(lilv PUBLIC LILV_SHARED) +endif() + +install( + TARGETS lilv + EXPORT lilv-targets + INCLUDES DESTINATION include +) + +if(NOT DISABLE_INSTALL_HEADERS) + install(DIRECTORY lilv DESTINATION include) +endif() + +install( + EXPORT lilv-targets + NAMESPACE lilv:: + DESTINATION "${CMAKE_INSTALL_PREFIX}/share/lilv" +) + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/lilv-config.cmake" [[ +include(CMakeFindDependencyMacro) +find_dependency(lv2 CONFIG) +find_dependency(serd CONFIG) +find_dependency(sord CONFIG) +find_dependency(sratom CONFIG) +include("${CMAKE_CURRENT_LIST_DIR}/lilv-targets.cmake") +]]) + +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/lilv-config.cmake" + DESTINATION "${CMAKE_INSTALL_PREFIX}/share/lilv" +) diff --git a/ports/lilv/portfile.cmake b/ports/lilv/portfile.cmake new file mode 100644 index 000000000..858c6c3bf --- /dev/null +++ b/ports/lilv/portfile.cmake @@ -0,0 +1,28 @@ +vcpkg_fail_port_install(ON_TARGET "UWP") + +vcpkg_from_gitlab( + GITLAB_URL https://gitlab.com + OUT_SOURCE_PATH SOURCE_PATH + REPO lv2/lilv + REF v0.24.10 + SHA512 be47b72f2671f3bbab219944519b990156547e26aa432c2618273683c86dc23ae3b071d1de586f45dfda3ea8dbbc095429ad318fda60efcf715ae917a7caa34b + HEAD_REF master +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") + +vcpkg_configure_cmake( + SOURCE_PATH "${SOURCE_PATH}" + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=1 +) + +vcpkg_install_cmake() + +vcpkg_copy_pdbs() +vcpkg_fixup_cmake_targets() +file( + INSTALL "${SOURCE_PATH}/COPYING" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" + RENAME copyright +) diff --git a/ports/lilv/vcpkg.json b/ports/lilv/vcpkg.json new file mode 100644 index 000000000..bcebc1eca --- /dev/null +++ b/ports/lilv/vcpkg.json @@ -0,0 +1,14 @@ +{ + "name": "lilv", + "version-string": "0.24.10", + "description": "Lilv is a C library for simple use of LV2 plugins in applications.", + "homepage": "https://drobilla.net/software/lilv", + "license": "ISC", + "supports": "!uwp", + "dependencies": [ + "lv2", + "serd", + "sord", + "sratom" + ] +} -- cgit v1.2.3