gentoo-ebuilds/media-plugins/calf/files/calf-0.90.6-gnuinstalldirs.patch
Andreas Sturmlechner 7cdbe0cf6a
media-plugins/calf: IUSE gtk -> gui, fix desktop file and buildsys
GNUInstallDirs patch makes downstream docdir patch obsolete, is prerequisite
for follow-up patches and as an aside, fixes library install dir.

Closes: https://bugs.gentoo.org/954142
Closes: https://bugs.gentoo.org/955628
Closes: https://bugs.gentoo.org/957044
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2025-06-02 17:14:07 +02:00

148 lines
8.4 KiB
Diff

From 063812ffd37edb99e14f7a3d224fbf999a506252 Mon Sep 17 00:00:00 2001
From: Johannes Lorenz <j.git@lorenz-ho.me>
Date: Fri, 2 May 2025 13:59:50 +0200
Subject: [PATCH] Use GNUInstallDirs for flexible `bin`, `lib` and `doc`
---
CMakeLists.txt | 16 ++++++++--------
src/CMakeLists.txt | 33 +++++++++++++++++----------------
2 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index df2fde638..cfed21b69 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -210,21 +210,21 @@ add_subdirectory(icons)
include(GNUInstallDirs)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/
- DESTINATION share/doc/${PROJECT_NAME} FILES_MATCHING PATTERN "*.html")
+ DESTINATION ${CMAKE_INSTALL_DOCDIR} FILES_MATCHING PATTERN "*.html")
install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/images/
- DESTINATION share/doc/${PROJECT_NAME}/images FILES_MATCHING PATTERN "*.png")
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}/images FILES_MATCHING PATTERN "*.png")
install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/images/
- DESTINATION share/doc/${PROJECT_NAME}/images FILES_MATCHING PATTERN "*.jpg")
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}/images FILES_MATCHING PATTERN "*.jpg")
install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/images/prettyPhoto/dark_rounded/
- DESTINATION share/doc/${PROJECT_NAME}/images/prettyPhoto/dark_rounded)
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}/images/prettyPhoto/dark_rounded)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/images/icons/
- DESTINATION share/doc/${PROJECT_NAME}/images/icons)
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}/images/icons)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/scripts
- DESTINATION share/doc/${PROJECT_NAME} FILES_MATCHING PATTERN "*.css")
+ DESTINATION ${CMAKE_INSTALL_DOCDIR} FILES_MATCHING PATTERN "*.css")
install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/manuals/scripts/
- DESTINATION share/doc/${PROJECT_NAME}/scripts FILES_MATCHING PATTERN "*.js")
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}/scripts FILES_MATCHING PATTERN "*.js")
install(DIRECTORY ${CMAKE_SOURCE_DIR}/sf2/
- DESTINATION share/${PROJECT_NAME}/sf2 FILES_MATCHING PATTERN "*.sf2")
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/sf2 FILES_MATCHING PATTERN "*.sf2")
install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}jackhost.1
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1e1cd30d9..da22ec1ab 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -3,6 +3,7 @@
#
include(CheckLinkerFlag)
+include(GNUInstallDirs)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -57,7 +58,7 @@ endif()
if(USE_LV2 AND USE_GUI)
- set(LV2DIR "${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2")
+ set(LV2DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2")
add_library(${PROJECT_NAME}lv2gui SHARED gui.cpp gui_config.cpp gui_controls.cpp ctl_curve.cpp ctl_keyboard.cpp ctl_knob.cpp ctl_led.cpp ctl_tube.cpp ctl_vumeter.cpp ctl_frame.cpp ctl_fader.cpp ctl_buttons.cpp ctl_notebook.cpp ctl_meterscale.cpp ctl_combobox.cpp ctl_tuner.cpp ctl_phasegraph.cpp ctl_pattern.cpp metadata.cpp giface.cpp plugin_gui_window.cpp preset.cpp preset_gui.cpp lv2gui.cpp osctl.cpp utils.cpp ctl_linegraph.cpp drawingutils.cpp)
target_include_directories(${PROJECT_NAME}lv2gui PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
check_linker_flag(CXX -Wl,-z,nodelete LINKER_SUPPORTS_NODELETE)
@@ -81,7 +82,7 @@ if(USE_GUI AND USE_JACK)
target_link_libraries(${PROJECT_NAME}jackhost PRIVATE Threads::Threads ${PROJECT_NAME}gui ${PROJECT_NAME} ${JACK_LIBRARIES} ${GTK_LIBRARIES} fluidsynth)
set_target_properties(${PROJECT_NAME}jackhost PROPERTIES
- INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}"
+ INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
BUILD_WITH_INSTALL_RPATH TRUE
)
endif()
@@ -109,59 +110,59 @@ if(USE_GUI)
install(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}-gui.xml
DESTINATION share/${PROJECT_NAME}/)
if(USE_JACK)
- install(TARGETS ${PROJECT_NAME}jackhost DESTINATION bin)
+ install(TARGETS ${PROJECT_NAME}jackhost DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
endif()
# Install libs
-install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib/${PROJECT_NAME})
+install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME})
if(USE_GUI)
- install(TARGETS ${PROJECT_NAME}lv2gui DESTINATION lib/${PROJECT_NAME})
+ install(TARGETS ${PROJECT_NAME}lv2gui DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME})
endif()
if(USE_LV2)
# Create Lv2 install dir
- install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E make_directory \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2\")"
+ install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E make_directory \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2\")"
RESULT_VARIABLE calfResult)
if(NOT ${calfResult} EQUAL 0)
- message(FATAL_ERROR "Could not create ${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/")
+ message(FATAL_ERROR "Could not create ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/")
endif()
# Create symlinks from Lv2 install dir to libs
install(CODE "execute_process( \
COMMAND \"${CMAKE_COMMAND}\" -E create_symlink \
- \"${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}/lib${PROJECT_NAME}.so\" \
- \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}.so\" \
+ \"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/lib${PROJECT_NAME}.so\" \
+ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}.so\" \
)"
RESULT_VARIABLE calfResult
)
if(NOT ${calfResult} EQUAL 0)
- message(FATAL_ERROR "Could not create ${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}.so")
+ message(FATAL_ERROR "Could not create ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}.so")
endif()
if(USE_GUI)
install(CODE "execute_process( \
COMMAND \"${CMAKE_COMMAND}\" -E create_symlink \
- \"${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}/lib${PROJECT_NAME}lv2gui.so\" \
- \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}lv2gui.so\" \
+ \"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/lib${PROJECT_NAME}lv2gui.so\" \
+ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}lv2gui.so\" \
)"
RESULT_VARIABLE calfResult
)
if(NOT ${calfResult} EQUAL 0)
- message(FATAL_ERROR "Could not create ${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}lv2gui.so")
+ message(FATAL_ERROR "Could not create ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/${PROJECT_NAME}lv2gui.so")
endif()
endif()
# Remove previous .ttl files
- file(GLOB ttl_files "${CMAKE_INSTALL_PREFIX}/lib/lv2/*.ttl")
+ file(GLOB ttl_files "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/*.ttl")
foreach(ttl_file ${ttl_files})
file(REMOVE "${ttl_file}")
endforeach()
# Install new .ttl files
- install(CODE "execute_process(COMMAND \"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}makerdf\" -m ttl -p \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2\" -d \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/\")")
+ install(CODE "execute_process(COMMAND \"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}makerdf\" -m ttl -p \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2\" -d \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/\")")
# Check files with "sordi"
if(USE_SORDI)
- file(GLOB ttl_files "${CMAKE_INSTALL_PREFIX}/lib/lv2/${PROJECT_NAME}.lv2/*.ttl")
+ file(GLOB ttl_files "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lv2/${PROJECT_NAME}.lv2/*.ttl")
foreach(ttl_file ${ttl_files})
install(
CODE "execute_process(COMMAND \"${SORDI}\" -o turtle \"${ttl_file}\")"