1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 06:48:12 +00:00
serenity/Meta/Lagom/Contrib/MacPDF/CMakeLists.txt
Timothy Flynn 5945cdc054 Ladybird+Meta: Extract AK into its own library on Lagom
We currently bundle AK with LibCore on Lagom. This means that to use AK,
all libraries must also depend on LibCore. This will create circular
dependencies when we create LibURL, as LibURL will depend on LibUnicode,
which will depend on LibCore, which will depend on LibURL.
2024-01-22 08:48:34 -05:00

58 lines
2.3 KiB
CMake

# This has the effect of making LC_RPATH absolute.
# Since the binary is in Build/lagom/bin/MacPDF.app/Contents/MacOS/MacPDF,
# the default "@executable_path/../lib" doesn't work to get from the binary
# to Build/lagom/lib.
# FIXME: Pass "-Wl,-rpath,@executable_path/../../../../lib" instead for a relative path?
# Long-term, probably want to copy the dylibs into the bundle instead.
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
add_compile_options(-DAK_DONT_REPLACE_STD)
set(RESOURCES
MainMenu.xib
)
add_executable(MacPDF MACOSX_BUNDLE
main.mm
AppDelegate.mm
MacPDFDocument.mm
MacPDFOutlineViewDataSource.mm
MacPDFView.mm
MacPDFWindowController.mm
)
target_compile_options(MacPDF PRIVATE
-fobjc-arc
)
target_link_libraries(MacPDF PRIVATE AK LibCore LibGfx LibPDF)
target_link_libraries(MacPDF PRIVATE
"-framework Cocoa"
"-framework UniformTypeIdentifiers"
)
set_target_properties(MacPDF PROPERTIES
MACOSX_BUNDLE TRUE
# FIXME: Apparently the Info.plist is only copied when the binary relinks,
# not if only the Info.plist contents changes and you rebuild?
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist"
)
# Normally you'd set `RESOURCE "${RESOURCES}"` on the MacPDF target properties
# and add `"${RESOURCES}" to the sources in add_executable()
# and CMake would add build steps to compile the xib files to nib files and
# add them to the bundle.
# But with CMake's ninja generator that seems to not work, so do it manually.
# See also https://github.com/dolphin-emu/dolphin/blob/2e39c79984490e/Source/Core/MacUpdater/CMakeLists.txt#L49-L56
find_program(IBTOOL ibtool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin")
foreach(xib ${RESOURCES})
string(REGEX REPLACE "[.]xib$" ".nib" nib "${xib}")
# FIXME: This is gross! It makes the link at least as slow as compiling all xib files.
# Better to have a separate command for the compiles and to only do the copying in the postbuild.
add_custom_command(TARGET MacPDF POST_BUILD
COMMAND ${IBTOOL} --errors --warnings --notices --output-format human-readable-text
--compile "$<TARGET_BUNDLE_DIR:MacPDF>/Contents/Resources/${nib}"
"${CMAKE_CURRENT_SOURCE_DIR}/${xib}"
COMMENT "Compiling ${CMAKE_CURRENT_SOURCE_DIR}/${xib}.xib")
endforeach()