From ffdcf0fea86bb046e329554d117510346c987d32 Mon Sep 17 00:00:00 2001 From: ABeltramo Date: Sat, 23 Apr 2022 15:13:27 +0100 Subject: [PATCH] feat: basic OSX .app generation added default brew link libraries path --- CMakeLists.txt | 40 ++++++++++++++++++++++++++-------------- sunshine.icns | Bin 0 -> 23711 bytes 2 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 sunshine.icns diff --git a/CMakeLists.txt b/CMakeLists.txt index 859b544a..d81bda12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,7 +58,7 @@ if(WIN32) INPUT "${CMAKE_CURRENT_BINARY_DIR}/pre-compiled.zip" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/pre-compiled) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") - + if(NOT DEFINED SUNSHINE_PREPARED_BINARIES) set(SUNSHINE_PREPARED_BINARIES "${CMAKE_CURRENT_BINARY_DIR}/pre-compiled/windows") endif() @@ -127,8 +127,8 @@ if(WIN32) elseif(APPLE) add_compile_definitions(SUNSHINE_PLATFORM="macos") list(APPEND SUNSHINE_DEFINITIONS APPS_JSON="apps_mac.json") + link_directories(/opt/homebrew/lib/) # Default brew lib location link_directories(/opt/local/lib) - link_directories(/usr/local/lib) ADD_DEFINITIONS(-DBOOST_LOG_DYN_LINK) find_package(FFmpeg REQUIRED) @@ -296,14 +296,14 @@ else() third-party/glad/include/KHR/khrplatform.h third-party/glad/include/glad/gl.h third-party/glad/include/glad/egl.h) - + list(APPEND PLATFORM_LIBRARIES dl evdev pulse pulse-simple ) - + include_directories( /usr/include/libevdev-1.0 third-party/nv-codec-headers/include @@ -451,22 +451,36 @@ target_compile_options(sunshine PRIVATE $<$:${SUNSHINE_COM # CPACK #### -# Add all assets dependencies -install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/web" DESTINATION ".") -install(FILES "${SUNSHINE_ASSETS_DIR}/sunshine.conf" DESTINATION ".") +# Add all assets dependencies if(WIN32) # TODO: test install(TARGETS sunshine RUNTIME DESTINATION ".") + install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/web" DESTINATION ".") + install(FILES "${SUNSHINE_ASSETS_DIR}/sunshine.conf" DESTINATION ".") install(FILES "${SUNSHINE_ASSETS_DIR}/apps_windows.json" DESTINATION ".") install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/shaders/directx" DESTINATION "shaders") endif() if(APPLE) # TODO: test - install(TARGETS sunshine RUNTIME DESTINATION ".") - install(FILES "${SUNSHINE_ASSETS_DIR}/apps_mac.json" DESTINATION ".") - # TODO: info.plist ?? + set(prefix "${CMAKE_PROJECT_NAME}.app/Contents") + set(INSTALL_RUNTIME_DIR "${prefix}/MacOS") + + install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/web" DESTINATION "${INSTALL_RUNTIME_DIR}") + install(FILES "${SUNSHINE_ASSETS_DIR}/sunshine.conf" DESTINATION "${INSTALL_RUNTIME_DIR}") + + install(TARGETS sunshine + BUNDLE DESTINATION . COMPONENT Runtime + RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} COMPONENT Runtime) + + # TODO: bundle doesn't produce a valid .app use cpack -G DragNDrop + # set(CPACK_BUNDLE_NAME "Sunshine") + # set(CPACK_BUNDLE_PLIST "${SUNSHINE_ASSETS_DIR}/info.plist") + # set(CPACK_BUNDLE_ICON "${PROJECT_SOURCE_DIR}/sunshine.icns") endif() if(UNIX AND NOT APPLE) + install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/web" DESTINATION ".") + install(FILES "${SUNSHINE_ASSETS_DIR}/sunshine.conf" DESTINATION ".") + install(FILES "${SUNSHINE_ASSETS_DIR}/apps_linux.json" DESTINATION ".") install(FILES "${SUNSHINE_ASSETS_DIR}/85-sunshine-rules.rules" DESTINATION "/etc/udev/rules.d") install(TARGETS sunshine RUNTIME DESTINATION "/usr/bin") @@ -474,7 +488,7 @@ if(UNIX AND NOT APPLE) install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/shaders/opengl" DESTINATION "shaders") # Pre and post install - set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${SUNSHINE_ASSETS_DIR}/linux-deb/preinst;${SUNSHINE_ASSETS_DIR}/linux-deb/postinst;${SUNSHINE_ASSETS_DIR}/linux-deb/conffiles") set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${SUNSHINE_ASSETS_DIR}/linux-deb/preinst") set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${SUNSHINE_ASSETS_DIR}/linux-deb/postinst") @@ -499,10 +513,8 @@ set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}_${VERSION}_${CPACK_DEBIAN_PAC set(CPACK_STRIP_FILES YES) # Installation destination dir -if(NOT WIN32) - set(CPACK_SET_DESTDIR true) -endif() if(UNIX AND NOT APPLE) + set(CPACK_SET_DESTDIR true) set(CMAKE_INSTALL_PREFIX "/etc/sunshine") endif() diff --git a/sunshine.icns b/sunshine.icns new file mode 100644 index 0000000000000000000000000000000000000000..0420582b244aa1599ebe86a9016d3113ef42c7cc GIT binary patch literal 23711 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 literal 0 HcmV?d00001