# HG changeset patch # User Joshua Surace # Date 1661805261 -36000 # Tue Aug 30 06:34:21 2022 +1000 # Node ID c1308746e69d530181fb6c4f34ef5d118cf8586f # Parent 4178904d769879e6c2919fb647ee6dd2736399e9 Added Mac OS CMake Stuff. diff -r 4178904d7698 -r c1308746e69d src/CMakeLists.txt --- a/src/CMakeLists.txt Sat Dec 11 16:35:55 2021 -0500 +++ b/src/CMakeLists.txt Tue Aug 30 06:34:21 2022 +1000 @@ -745,7 +745,8 @@ set( PLAT_MAC_SOURCES sdl/SDLMain.m sdl/iwadpicker_cocoa.mm - sdl/i_system_cocoa.mm ) + sdl/i_system_cocoa.mm + sdl/zandronum.icns ) if( WIN32 ) set( SYSTEM_SOURCES_DIR win32 ) set( SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} ) @@ -768,7 +769,10 @@ set( SYSTEM_SOURCES ${PLAT_SDL_SOURCES} ) if( APPLE ) set( SYSTEM_SOURCES ${SYSTEM_SOURCES} ${PLAT_MAC_SOURCES} ) - set( OTHER_SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} ) + set( OTHER_SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} ) + set_source_files_properties( sdl/zandronum.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources ) + set_source_files_properties( "${SDL_LIBRARY}" PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks ) + set_source_files_properties( "${FMOD_LIBRARY}" PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks ) else( APPLE ) set( OTHER_SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} ${PLAT_MAC_SOURCES} ) endif( APPLE ) @@ -1047,7 +1051,7 @@ # if it doesn't exist yet. set_source_files_properties( ${CMAKE_CURRENT_SOURCE_DIR}/network/servercommands.cpp PROPERTIES GENERATED TRUE ) -add_executable( zdoom WIN32 +add_executable( zdoom WIN32 MACOSX_BUNDLE ${HEADER_FILES} ${NOT_COMPILED_SOURCE_FILES} __autostart.cpp @@ -1575,6 +1579,38 @@ endif ( USE_G15 ) endif ( WIN32 ) +if( APPLE ) + set_target_properties(zdoom PROPERTIES + LINK_FLAGS "-framework CoreFoundation -framework Cocoa -framework IOKit -framework OpenGL" + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/sdl/zandronum-info.plist" ) + + + find_program( OTOOL otool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin" ) + find_program( INSTALL_NAME_TOOL install_name_tool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin" ) + + if( NOT NO_FMOD ) + execute_process( COMMAND "${OTOOL}" -L "${FMOD_LIBRARY}" + COMMAND grep "libfmodex.dylib (compat" + COMMAND head -n1 + COMMAND awk "{print $1}" + OUTPUT_VARIABLE FMOD_LINK + OUTPUT_STRIP_TRAILING_WHITESPACE ) + add_custom_command( TARGET zdoom POST_BUILD + COMMAND "${INSTALL_NAME_TOOL}" -change "${FMOD_LINK}" @executable_path/../Frameworks/libfmodex.dylib "$" + COMMENT "Relinking FMOD Ex" ) + endif( NOT NO_FMOD ) + + execute_process( COMMAND "${OTOOL}" -L "${SDL_LIBRARY}" + COMMAND grep "@rpath/libSDL" + COMMAND head -n1 + COMMAND awk "{print $1}" + OUTPUT_VARIABLE SDL_LINK + OUTPUT_STRIP_TRAILING_WHITESPACE ) + add_custom_command( TARGET zdoom POST_BUILD + COMMAND "${INSTALL_NAME_TOOL}" -change "${SDL_LINK}" "@executable_path/../Frameworks/libSDL-1.2.0.dylib" "$" + COMMENT "Relinking SDL" ) +endif( APPLE ) + source_group("Assembly Files\\ia32" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/asm_ia32/.+") source_group("Assembly Files\\x86_64" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/asm_x86_64/.+") source_group("Audio Files" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/sound/.+") diff -r 4178904d7698 -r c1308746e69d src/sdl/zandronum-info.plist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/sdl/zandronum-info.plist Tue Aug 30 06:34:21 2022 +1000 @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleIconFile + zandronum.icns + CFBundleIdentifier + org.zandronum.zandronum + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Zandronum + CFBundlePackageType + APPL + CFBundleShortVersionString + 3.1 + CFBundleSignature + ???? + LSApplicationCategoryType + public.app-category.action-games + LSMinimumSystemVersion + 10.10 + CFBundleDocumentTypes + + + CFBundleTypeName + Doom Resource File + CFBundleTypeRole + Viewer + CFBundleTypeExtensions + + wad + pk3 + zip + pk7 + 7z + + + + NSPrincipalClass + NSApplication + NSSupportsAutomaticGraphicsSwitching + YES + + diff -r 4178904d7698 -r c1308746e69d src/sdl/zandronum.icns Binary file src/sdl/zandronum.icns has changed