FindAWSGameLiftServerSDK.cmake.Linux 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #
  2. # All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
  3. # its licensors.
  4. #
  5. # For complete copyright and license terms please see the LICENSE at the root of this
  6. # distribution (the "License"). All use of this software is governed by the License,
  7. # or, if provided, by the license below or the license accompanying this file. Do not
  8. # remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
  9. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. #
  11. set(TARGET_WITH_NAMESPACE "3rdParty::AWSGameLiftServerSDK")
  12. if (TARGET ${TARGET_WITH_NAMESPACE})
  13. return()
  14. endif()
  15. set(LIB_NAME "AWSGameLiftServerSDK")
  16. set(${LIB_NAME}_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/${LIB_NAME}/include)
  17. if (LY_MONOLITHIC_GAME)
  18. set(AWSGAMELIFTSERVERSDK_LIB_PATH ${CMAKE_CURRENT_LIST_DIR}/${LIB_NAME}/lib)
  19. set(AWSGAMELIFTSERVERSDK_LIBS
  20. ${AWSGAMELIFTSERVERSDK_LIB_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}aws-cpp-sdk-gamelift-server${CMAKE_STATIC_LIBRARY_SUFFIX}
  21. )
  22. else()
  23. set(AWSGAMELIFTSERVERSDK_LIB_PATH ${CMAKE_CURRENT_LIST_DIR}/${LIB_NAME}/bin/)
  24. set(AWSGAMELIFTSERVERSDK_LIBS
  25. ${AWSGAMELIFTSERVERSDK_LIB_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}aws-cpp-sdk-gamelift-server${CMAKE_SHARED_LIBRARY_SUFFIX}
  26. )
  27. endif()
  28. set(AWSGAMELIFTSERVERSDK_COMPILE_DEFINITIONS
  29. AWS_CUSTOM_MEMORY_MANAGEMENT
  30. BUILD_GAMELIFT_SERVER
  31. PLATFORM_SUPPORTS_AWS_NATIVE_SDK
  32. GAMELIFT_USE_STD
  33. )
  34. # Declare target
  35. add_library(${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
  36. # Add include folder
  37. ly_target_include_system_directories(TARGET ${TARGET_WITH_NAMESPACE} INTERFACE ${${LIB_NAME}_INCLUDE_DIR})
  38. if (LY_MONOLITHIC_GAME)
  39. target_link_libraries(${TARGET_WITH_NAMESPACE} INTERFACE ${AWSGAMELIFTSERVERSDK_LIBS})
  40. else()
  41. # Modules using aws-cpp-sdk-gamelift-server functionality will needs pThreads to link.
  42. set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
  43. set(THREADS_PREFER_PTHREAD_FLAG TRUE)
  44. find_package(Threads REQUIRED)
  45. target_link_libraries(${TARGET_WITH_NAMESPACE} INTERFACE Threads::Threads ${AWSGAMELIFTSERVERSDK_LIBS})
  46. ly_add_dependencies(${TARGET_WITH_NAMESPACE} ${AWSGAMELIFTSERVERSDK_LIBS})
  47. endif()
  48. # Set compile definitions
  49. target_compile_definitions(${TARGET_WITH_NAMESPACE} INTERFACE ${AWSGAMELIFTSERVERSDK_COMPILE_DEFINITIONS})
  50. set(${LIB_NAME}_FOUND True)