mirror of
https://github.com/SFML/SFML.git
synced 2024-12-01 07:41:05 +08:00
ab109cd3cd
CMake supports a number of strings for truthy and falsey values. ON/OFF and TRUE/FALSE are the most popular but 1/0 is also supported. This is mostly a style choice but I'm inclined to believe that ON/OFF is the most popular option and I'm generally in favor of style choices that better align with the community at large.
61 lines
2.2 KiB
CMake
61 lines
2.2 KiB
CMake
enable_language(OBJC OBJCXX)
|
|
|
|
# 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 "${CMAKE_CURRENT_SOURCE_DIR}/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::Graphics)
|
|
set_target_properties(cocoa PROPERTIES
|
|
MACOSX_BUNDLE ON
|
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/resources/Cocoa-Info.plist)
|
|
target_link_libraries(cocoa PRIVATE "-framework Cocoa" "-framework Foundation")
|