torqueMacOSconfigs.cmake 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. if(APPLE)
  2. #detect Architecture
  3. enable_language(OBJC)
  4. enable_language(OBJCXX)
  5. enable_language(CXX)
  6. set(CMAKE_SYSTEM_NAME Darwin)
  7. set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
  8. # minimum for multi arch build is 11.
  9. set(CMAKE_OSX_DEPLOYMENT_TARGET "11" CACHE STRING "" FORCE)
  10. set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "" FORCE)
  11. set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET[arch=arm64] "11.0" CACHE STRING "arm 64 minimum deployment target" FORCE)
  12. if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e|x86_64))+")
  13. set(CMAKE_C_SIZEOF_DATA_PTR 8)
  14. set(CMAKE_CXX_SIZEOF_DATA_PTR 8)
  15. if(CMAKE_OSX_ARCHITECTURES MATCHES "((^|;|, )(arm64|arm64e))+")
  16. set(CMAKE_SYSTEM_PROCESSOR "aarch64")
  17. else()
  18. set(CMAKE_SYSTEM_PROCESSOR "x86_64")
  19. endif()
  20. else()
  21. set(CMAKE_C_SIZEOF_DATA_PTR 4)
  22. set(CMAKE_CXX_SIZEOF_DATA_PTR 4)
  23. set(CMAKE_SYSTEM_PROCESSOR "arm")
  24. endif()
  25. # Enable codesigning with secure timestamp when not in Debug configuration (required for Notarization)
  26. set(CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS[variant=Release] "--timestamp")
  27. # Enable codesigning with hardened runtime option when not in Debug configuration (required for Notarization)
  28. #set(CMAKE_XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME[variant=Release] YES)
  29. #set(CMAKE_XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME[variant=RelWithDebInfo] YES)
  30. # Disable injection of Xcode's base entitlements used for debugging when not in Debug configuration (required for
  31. # Notarization)
  32. set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_INJECT_BASE_ENTITLEMENTS[variant=Release] NO)
  33. set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO")
  34. # Only create a single Xcode project file
  35. set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY TRUE)
  36. # Add all libraries to project link phase (lets Xcode handle linking)
  37. #set(CMAKE_XCODE_LINK_BUILD_PHASE_MODE KNOWN_LOCATION)
  38. #set(CMAKE_XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@executable_path/../Frameworks")
  39. set(_release_configs RelWithDebInfo Release)
  40. if(CMAKE_BUILD_TYPE IN_LIST _release_configs)
  41. add_link_options(LINKER:-dead_strip)
  42. endif()
  43. set(CMAKE_THREAD_LIBS_INIT "-lpthread")
  44. set(CMAKE_HAVE_THREADS_LIBRARY 1)
  45. set(CMAKE_USE_WIN32_THREADS_INIT 0)
  46. set(CMAKE_USE_PTHREADS_INIT 1)
  47. set(THREADS_PREFER_PTHREAD_FLAG ON)
  48. # Enable @rpath support
  49. set(CMAKE_MACOSX_RPATH 1)
  50. set(CMAKE_INSTALL_NAME_DIR "@rpath")
  51. # Set RPATH for both build and install
  52. set(CMAKE_INSTALL_RPATH "@executable_path/../Frameworks")
  53. set(CMAKE_BUILD_RPATH "@executable_path/../Frameworks")
  54. set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
  55. endif(APPLE)