mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 14:52:43 +00:00 
			
		
		
		
	 187056ca5e
			
		
	
	
		187056ca5e
		
	
	
	
	
		
			
			Companion to05c8d5ba57which moved the files to Base/res/ladybird, andd81c531322which installed them in the GN build on macOS.
		
			
				
	
	
		
			136 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| 
 | |
| include(CMakePackageConfigHelpers)
 | |
| include(GNUInstallDirs)
 | |
| 
 | |
| set(package ladybird)
 | |
| 
 | |
| set(ladybird_applications ladybird SQLServer WebContent WebDriver WebSocketServer RequestServer ImageDecoder WebWorker headless-browser)
 | |
| 
 | |
| set(app_install_targets ${ladybird_applications})
 | |
| 
 | |
| install(TARGETS ${app_install_targets}
 | |
|   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}
 | |
| )
 | |
| 
 | |
| include("${SERENITY_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)
 | |
| 
 | |
| # Install service impl libraries if they exist
 | |
| macro(install_service_lib service)
 | |
|     if (TARGET ${service})
 | |
|       get_target_property(target_type ${service} TYPE)
 | |
|       if ("${target_type}" STREQUAL STATIC_LIBRARY)
 | |
|           list(APPEND all_required_lagom_libraries ${service})
 | |
|       endif()
 | |
|     endif()
 | |
| endmacro()
 | |
| foreach(service IN LISTS webcontent requestserver websocket webworker)
 | |
|     install_service_lib(${service})
 | |
| endforeach()
 | |
| 
 | |
| 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 "${PROJECT_BINARY_DIR}/${package}ConfigVersion.cmake"
 | |
|     DESTINATION "${ladybird_INSTALL_CMAKEDIR}"
 | |
|     COMPONENT ladybird_Development
 | |
| )
 | |
| 
 | |
| install(
 | |
|     EXPORT ladybirdTargets
 | |
|     NAMESPACE ladybird::
 | |
|     DESTINATION "${ladybird_INSTALL_CMAKEDIR}"
 | |
|     COMPONENT ladybird_Development
 | |
| )
 | |
| 
 | |
| install(DIRECTORY
 | |
|     "${SERENITY_SOURCE_DIR}/Base/res/fonts"
 | |
|     "${SERENITY_SOURCE_DIR}/Base/res/icons"
 | |
|     "${SERENITY_SOURCE_DIR}/Base/res/ladybird"
 | |
|     "${SERENITY_SOURCE_DIR}/Base/res/themes"
 | |
|     "${SERENITY_SOURCE_DIR}/Base/res/color-palettes"
 | |
|     "${SERENITY_SOURCE_DIR}/Base/res/cursor-themes"
 | |
|   DESTINATION "${CMAKE_INSTALL_DATADIR}/res"
 | |
|   USE_SOURCE_PERMISSIONS MESSAGE_NEVER
 | |
|   COMPONENT ladybird_Runtime
 | |
| )
 | |
| 
 | |
| install(FILES
 | |
|     "${SERENITY_SOURCE_DIR}/Base/home/anon/.config/BrowserAutoplayAllowlist.txt"
 | |
|     "${SERENITY_SOURCE_DIR}/Base/home/anon/.config/BrowserContentFilters.txt"
 | |
|     "${Lagom_BINARY_DIR}/cacert.pem"
 | |
|   DESTINATION "${CMAKE_INSTALL_DATADIR}/res/ladybird"
 | |
|   COMPONENT ladybird_Runtime
 | |
| )
 | |
| 
 | |
| if (APPLE)
 | |
|   # Fixup the app bundle and copy:
 | |
|   #   - Libraries from lib/ to Ladybird.app/Contents/lib
 | |
|   #   - Resources from share/res/ to Ladybird.app/Contents/Resources/res
 | |
|   install(CODE "
 | |
|     set(res_dir \${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/res)
 | |
|     if (IS_ABSOLUTE ${CMAKE_INSTALL_DATADIR})
 | |
|       set(res_dir ${CMAKE_INSTALL_DATADIR}/res)
 | |
|     endif()
 | |
|     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 \${res_dir} DESTINATION \${contents_dir}/Resources)
 | |
|     file(COPY \${lib_dir} DESTINATION \${contents_dir})
 | |
|   "
 | |
|   COMPONENT ladybird_Runtime)
 | |
| endif()
 |