From c36fbf8f04ed5e4b46cde636f4128fb8a0c19ff3 Mon Sep 17 00:00:00 2001 From: kervala Date: Thu, 11 Feb 2016 21:05:03 +0100 Subject: [PATCH] Fixed: Copy Steam runtime to bundle and sign it under OS X --- code/CMakeModules/FindSteam.cmake | 22 ++++++++++++++++++---- code/ryzom/client/src/CMakeLists.txt | 9 +++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/code/CMakeModules/FindSteam.cmake b/code/CMakeModules/FindSteam.cmake index dd62e2bc0..44013e6ed 100644 --- a/code/CMakeModules/FindSteam.cmake +++ b/code/CMakeModules/FindSteam.cmake @@ -20,38 +20,52 @@ FIND_PATH(STEAM_INCLUDE_DIR IF(WIN32) IF(TARGET_X64) SET(STEAM_LIBNAME steam_api64) + SET(STEAM_RUNTIMENAME steam_api64.dll) SET(STEAM_PATHNAME redistributable_bin/win64) ELSE() SET(STEAM_LIBNAME steam_api) + SET(STEAM_RUNTIMENAME steam_api.dll) SET(STEAM_PATHNAME redistributable_bin) ENDIF() ELSEIF(APPLE) # universal binary SET(STEAM_LIBNAME steam_api) + SET(STEAM_RUNTIMENAME libsteam_api.dylib) SET(STEAM_PATHNAME redistributable_bin/osx32) ELSE() + SET(STEAM_LIBNAME steam_api) + SET(STEAM_RUNTIMENAME libsteam_api.so) IF(TARGET_X64) - SET(STEAM_LIBNAME steam_api) SET(STEAM_PATHNAME redistributable_bin/linux64) ELSE() - SET(STEAM_LIBNAME steam_api) SET(STEAM_PATHNAME redistributable_bin/linux32) ENDIF() ENDIF() FIND_LIBRARY(STEAM_LIBRARY NAMES ${STEAM_LIBNAME} - PATHS + HINTS $ENV{STEAM_DIR}/${STEAM_PATHNAME} ) +FIND_FILE(STEAM_RUNTIME + NAMES ${STEAM_RUNTIMENAME} + HINTS + $ENV{STEAM_DIR}/${STEAM_PATHNAME} + PATHS + ${EXTERNAL_BINARY_PATH} + ${CMAKE_LIBRARY_PATH} + /usr/local/lib + /usr/lib +) + # Don't need to check STEAM_LIBRARY because we're dynamically loading Steam DLL IF(STEAM_INCLUDE_DIR) SET(STEAM_FOUND ON) SET(STEAM_LIBRARIES ${STEAM_LIBRARY}) SET(STEAM_INCLUDE_DIRS ${STEAM_INCLUDE_DIR}) IF(NOT Steam_FIND_QUIETLY) - MESSAGE(STATUS "Found Steam: ${STEAM_INCLUDE_DIR}") + MESSAGE(STATUS "Found Steam: ${STEAM_INCLUDE_DIR} and ${STEAM_RUNTIME}") ENDIF() ELSE() IF(NOT Steam_FIND_QUIETLY) diff --git a/code/ryzom/client/src/CMakeLists.txt b/code/ryzom/client/src/CMakeLists.txt index 845bcb7c5..035445faf 100644 --- a/code/ryzom/client/src/CMakeLists.txt +++ b/code/ryzom/client/src/CMakeLists.txt @@ -116,6 +116,15 @@ IF(WITH_RYZOM_CLIENT) ENDIF() ENDIF() + + IF(WITH_RYZOM_STEAM AND STEAM_RUNTIME) + ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND cp -p ${STEAM_RUNTIME} ${RYZOM_CONTENTS_DIR}/MacOS) + + IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE) + ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign --no-strict -fs "${APPLE_CERTIFICATE}" "${RYZOM_CONTENTS_DIR}/MacOS/${STEAM_RUNTIMENAME}" COMMENT "Signing Steam client runtime...") + ENDIF() + ENDIF() + IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE) ADD_CUSTOM_COMMAND(TARGET ryzom_client POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign -fs "${APPLE_CERTIFICATE}" "${RYZOM_OUTPUT_DIR}" COMMENT "Signing Ryzom bundle...") ENDIF()