mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-28 03:39:17 +00:00
These files are lifted from the ladybird-gtk4 repository and adapted to work with the Qt UI port. They are installed by default on Linux, but can be installed via a CMake option on other platforms. Co-Authored-By: Sergey Bugaev <bugaevc@serenityos.org> Co-Authored-By: Nicolas Ramz <nicolas.ramz@adevinta.com> Co-Authored-By: Beckett Normington <beckett@b0ba.dev> Co-Authored-By: Xexxa <93391300+Xexxa@users.noreply.github.com>
130 lines
3.9 KiB
CMake
130 lines
3.9 KiB
CMake
|
|
include(CMakePackageConfigHelpers)
|
|
include(GNUInstallDirs)
|
|
|
|
set(package Ladybird)
|
|
|
|
set(ladybird_applications ladybird ${ladybird_helper_processes})
|
|
|
|
set(app_install_targets ${ladybird_applications})
|
|
|
|
install(TARGETS ladybird
|
|
EXPORT ladybirdTargets
|
|
RUNTIME
|
|
COMPONENT ladybird_Runtime
|
|
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
BUNDLE
|
|
COMPONENT ladybird_Runtime
|
|
DESTINATION bundle
|
|
LIBRARY
|
|
COMPONENT ladybird_Runtime
|
|
NAMELINK_COMPONENT ladybird_Development
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
FILE_SET browser
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
FILE_SET ladybird
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
)
|
|
|
|
install(TARGETS ${ladybird_helper_processes}
|
|
EXPORT ladybirdTargets
|
|
RUNTIME
|
|
COMPONENT ladybird_Runtime
|
|
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}
|
|
)
|
|
|
|
include("${LADYBIRD_SOURCE_DIR}/Meta/Lagom/get_linked_lagom_libraries.cmake")
|
|
foreach (application IN LISTS ladybird_applications)
|
|
get_linked_lagom_libraries("${application}" "${application}_lagom_libraries")
|
|
list(APPEND all_required_lagom_libraries "${${application}_lagom_libraries}")
|
|
endforeach()
|
|
list(REMOVE_DUPLICATES all_required_lagom_libraries)
|
|
|
|
# Remove ladybird shlib if it exists
|
|
list(REMOVE_ITEM all_required_lagom_libraries ladybird)
|
|
|
|
if (APPLE)
|
|
# Fixup the app bundle and copy:
|
|
# - Libraries from lib/ to Ladybird.app/Contents/lib
|
|
# Remove the symlink we created at build time for the lib directory first
|
|
install(CODE "
|
|
file(REMOVE \${CMAKE_INSTALL_PREFIX}/bundle/Ladybird.app/Contents/lib)
|
|
set(lib_dir \${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
|
|
if (IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
|
|
set(lib_dir ${CMAKE_INSTALL_LIBDIR})
|
|
endif()
|
|
|
|
set(contents_dir \${CMAKE_INSTALL_PREFIX}/bundle/Ladybird.app/Contents)
|
|
file(COPY \${lib_dir} DESTINATION \${contents_dir})
|
|
"
|
|
COMPONENT ladybird_Runtime)
|
|
endif()
|
|
|
|
install(TARGETS ${all_required_lagom_libraries}
|
|
EXPORT ladybirdTargets
|
|
COMPONENT ladybird_Runtime
|
|
LIBRARY
|
|
COMPONENT ladybird_Runtime
|
|
NAMELINK_COMPONENT ladybird_Development
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
FILE_SET server
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
FILE_SET ladybird
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
)
|
|
|
|
write_basic_package_version_file(
|
|
"${package}ConfigVersion.cmake"
|
|
COMPATIBILITY SameMajorVersion
|
|
)
|
|
|
|
# Allow package maintainers to freely override the path for the configs
|
|
set(
|
|
ladybird_INSTALL_CMAKEDIR "${CMAKE_INSTALL_DATADIR}/${package}"
|
|
CACHE PATH "CMake package config location relative to the install prefix"
|
|
)
|
|
mark_as_advanced(ladybird_INSTALL_CMAKEDIR)
|
|
|
|
install(
|
|
FILES cmake/LadybirdInstallConfig.cmake
|
|
DESTINATION "${ladybird_INSTALL_CMAKEDIR}"
|
|
RENAME "${package}Config.cmake"
|
|
COMPONENT ladybird_Development
|
|
)
|
|
|
|
install(
|
|
FILES "${CMAKE_CURRENT_BINARY_DIR}/${package}ConfigVersion.cmake"
|
|
DESTINATION "${ladybird_INSTALL_CMAKEDIR}"
|
|
COMPONENT ladybird_Development
|
|
)
|
|
|
|
install(
|
|
EXPORT ladybirdTargets
|
|
NAMESPACE ladybird::
|
|
DESTINATION "${ladybird_INSTALL_CMAKEDIR}"
|
|
COMPONENT ladybird_Development
|
|
)
|
|
|
|
if (NOT APPLE)
|
|
# On macOS the resources are handled via the MACOSX_PACKAGE_LOCATION property on each resource file
|
|
install_ladybird_resources("${CMAKE_INSTALL_DATADIR}/Lagom" ladybird_Runtime)
|
|
endif()
|
|
|
|
if (ENABLE_INSTALL_FREEDESKTOP_FILES)
|
|
set(FREEDESKTOP_RESOURCE_DIR "${LADYBIRD_SOURCE_DIR}/Meta/CMake/freedesktop")
|
|
install(FILES
|
|
"${FREEDESKTOP_RESOURCE_DIR}/org.ladybird.Ladybird.svg"
|
|
DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps"
|
|
COMPONENT ladybird_Runtime
|
|
)
|
|
install(FILES
|
|
"${FREEDESKTOP_RESOURCE_DIR}/org.ladybird.Ladybird.desktop"
|
|
DESTINATION "${CMAKE_INSTALL_DATADIR}/applications"
|
|
COMPONENT ladybird_Runtime
|
|
)
|
|
install(FILES
|
|
"${FREEDESKTOP_RESOURCE_DIR}/org.ladybird.Ladybird.service"
|
|
DESTINATION "${CMAKE_INSTALL_DATADIR}/dbus-1/services"
|
|
COMPONENT ladybird_Runtime
|
|
)
|
|
endif()
|