mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 06:48:12 +00:00

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.
58 lines
2.3 KiB
CMake
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()
|