mirror of
https://github.com/SFML/SFML.git
synced 2024-11-25 12:51:05 +08:00
65fef85b30
CMake doesn't require absolute paths so we can safely remove SRCROOT and let implicit relative pathing achieve the same result with less work on our part.
59 lines
2.2 KiB
CMake
59 lines
2.2 KiB
CMake
# Usage: compile_xib(INPUT path/to/file.xib OUTPUT path/to/file.nib)
|
|
function(compile_xib)
|
|
cmake_parse_arguments(THIS "" "INPUT;OUTPUT" "" ${ARGN})
|
|
if (NOT THIS_INPUT)
|
|
message(FATAL_ERROR "Missing required argument INPUT in call to compile_xib()")
|
|
endif()
|
|
|
|
if (NOT THIS_OUTPUT)
|
|
message(FATAL_ERROR "Missing required argument OUTPUT in call to compile_xib()")
|
|
endif()
|
|
|
|
if (NOT DEFINED IBTOOL)
|
|
find_program(IBTOOL ibtool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin")
|
|
endif()
|
|
if(NOT IBTOOL)
|
|
message(FATAL_ERROR "ibtool is required to compile .xib files but wasn't found.")
|
|
endif()
|
|
|
|
# Default args taken from Xcode 9 when it generates a nib from a xib
|
|
set(DEFAULT_ARGS --errors --warnings --notices --module cocoa --auto-activate-custom-fonts --target-device mac --output-format human-readable-text)
|
|
|
|
add_custom_command(OUTPUT "${THIS_OUTPUT}"
|
|
COMMAND "${IBTOOL}" ${DEFAULT_ARGS} "${THIS_INPUT}" --compile "${THIS_OUTPUT}"
|
|
DEPENDS "${THIS_INPUT}"
|
|
COMMENT "Generating ${THIS_OUTPUT}"
|
|
VERBATIM)
|
|
endfunction()
|
|
|
|
# all source files
|
|
set(SRC CocoaAppDelegate.h
|
|
CocoaAppDelegate.mm
|
|
NSString+stdstring.h
|
|
NSString+stdstring.mm
|
|
main.m)
|
|
|
|
compile_xib(INPUT "MainMenu.xib" OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/MainMenu.nib")
|
|
|
|
# all resource files
|
|
set(RESOURCES resources/icon.icns
|
|
resources/tuffy.ttf
|
|
resources/logo.png
|
|
resources/blue.png
|
|
resources/green.png
|
|
resources/red.png
|
|
resources/Credits.rtf
|
|
${CMAKE_CURRENT_BINARY_DIR}/MainMenu.nib)
|
|
set_source_files_properties(${RESOURCES} PROPERTIES
|
|
MACOSX_PACKAGE_LOCATION Resources)
|
|
|
|
# define the cocoa target and customize it
|
|
sfml_add_example(cocoa
|
|
SOURCES ${SRC}
|
|
BUNDLE_RESOURCES ${RESOURCES}
|
|
DEPENDS SFML::System SFML::Window SFML::Graphics)
|
|
set_target_properties(cocoa PROPERTIES
|
|
MACOSX_BUNDLE TRUE
|
|
MACOSX_BUNDLE_INFO_PLIST resources/Cocoa-Info.plist)
|
|
target_link_libraries(cocoa PRIVATE "-framework Cocoa" "-framework Foundation" SFML::Graphics)
|