CMake updates to be used as a subdirectory
This commit is contained in:
parent
f7e454dad8
commit
8872075102
2 changed files with 9 additions and 17 deletions
|
|
@ -1,10 +1,7 @@
|
|||
project (lv2plugin)
|
||||
|
||||
# CMAKE_PROJECT_NAME is the top level project name, not the current one
|
||||
set (LV2PLUGIN_PRJ_NAME "${CMAKE_PROJECT_NAME}_lv2")
|
||||
set (LV2PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2")
|
||||
|
||||
# Set the build directory as <build_dir>/lv2/<plugin_name>.lv2/
|
||||
set (PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}.lv2")
|
||||
set (PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
|
||||
|
||||
# LV2 plugin specific settings
|
||||
include (LV2Config)
|
||||
|
|
@ -20,10 +17,10 @@ endif()
|
|||
# Keep non build turtle files in IDE
|
||||
set (LV2PLUGIN_TTL_SRC_FILES
|
||||
manifest.ttl.in
|
||||
${CMAKE_PROJECT_NAME}.ttl.in
|
||||
${PROJECT_NAME}.ttl.in
|
||||
)
|
||||
add_library (${LV2PLUGIN_PRJ_NAME} SHARED ${CMAKE_PROJECT_NAME}.c ${LV2PLUGIN_TTL_SRC_FILES})
|
||||
target_link_libraries (${LV2PLUGIN_PRJ_NAME} ${CMAKE_PROJECT_NAME}::${CMAKE_PROJECT_NAME})
|
||||
add_library (${LV2PLUGIN_PRJ_NAME} SHARED ${PROJECT_NAME}.c ${LV2PLUGIN_TTL_SRC_FILES})
|
||||
target_link_libraries (${LV2PLUGIN_PRJ_NAME} ${PROJECT_NAME}::${PROJECT_NAME})
|
||||
|
||||
# Fetch required LV2 include files
|
||||
include(FetchContent)
|
||||
|
|
@ -38,23 +35,20 @@ if(NOT lv2_POPULATED)
|
|||
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE ${lv2_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
# Enable LTO if available
|
||||
if (ENABLE_LTO)
|
||||
set_property (TARGET ${LV2PLUGIN_PRJ_NAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||
endif()
|
||||
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME})
|
||||
|
||||
# Remove the "lib" prefix, rename the target name and build it in the .lv build dir
|
||||
# <build_dir>/lv2/<plugin_name>_lv2.<ext> to
|
||||
# <build_dir>/lv2/<plugin_name>.lv2/<plugin_name>.<ext>
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "")
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${CMAKE_PROJECT_NAME}")
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
|
||||
|
||||
# Generate *.ttl files from *.in sources,
|
||||
# create the destination directory if it doesn't exists and copy needed files
|
||||
file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||
configure_file (manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
|
||||
configure_file (${CMAKE_PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}.ttl)
|
||||
configure_file (${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
|
||||
|
||||
# Installation
|
||||
install (DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR})
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
project(sfizz)
|
||||
|
||||
set (SFIZZ_SOURCES
|
||||
sfizz/Synth.cpp
|
||||
sfizz/FilePool.cpp
|
||||
|
|
@ -48,7 +46,7 @@ if (SFIZZ_SHARED)
|
|||
add_library (sfizz_shared SHARED sfizz.h)
|
||||
set_target_properties (sfizz_shared PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER sfizz.h)
|
||||
target_link_libraries (sfizz_shared sfizz::sfizz)
|
||||
configure_file (${CMAKE_SOURCE_DIR}/scripts/sfizz.pc.in sfizz.pc @ONLY)
|
||||
configure_file (${PROJECT_SOURCE_DIR}/scripts/sfizz.pc.in sfizz.pc @ONLY)
|
||||
if (UNIX)
|
||||
include (GNUInstallDirs)
|
||||
install (TARGETS sfizz_shared
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue