96 lines
2.5 KiB
CMake
Executable file
96 lines
2.5 KiB
CMake
Executable file
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"
|
|
)
|