aboutsummaryrefslogtreecommitdiff
path: root/PxShared/src/compiler/cmake/IOS/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'PxShared/src/compiler/cmake/IOS/CMakeLists.txt')
-rw-r--r--PxShared/src/compiler/cmake/IOS/CMakeLists.txt73
1 files changed, 73 insertions, 0 deletions
diff --git a/PxShared/src/compiler/cmake/IOS/CMakeLists.txt b/PxShared/src/compiler/cmake/IOS/CMakeLists.txt
new file mode 100644
index 0000000..d281e32
--- /dev/null
+++ b/PxShared/src/compiler/cmake/IOS/CMakeLists.txt
@@ -0,0 +1,73 @@
+cmake_minimum_required(VERSION 3.3)
+include(../common/CMakeLists.txt)
+
+
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to IOS
+ SET(TARGET_BUILD_PLATFORM "IOS")
+ENDIF()
+
+SET(PLATFORM_LIST IOS)
+
+IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST)
+ MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM})
+ENDIF()
+
+SET(CMAKE_CXX_FLAGS "-std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -Wno-documentation-deprecated-sync -Wno-documentation-unknown-command -Wno-float-equal -Wno-padded -Wno-weak-vtables -Wno-cast-align -Wno-conversion -Wno-missing-noreturn -Wno-missing-variable-declarations -Wno-shift-sign-overflow -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -Wno-missing-prototypes -Wno-unreachable-code -Wno-unused-macros -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-weak-template-vtables -Wno-deprecated -Wno-non-virtual-dtor -Wno-invalid-noreturn -Wno-return-type-c-linkage -Wno-reserved-id-macro -Wno-c++98-compat-pedantic -Wno-unused-local-typedef -Wno-old-style-cast -Wno-newline-eof -Wno-unused-private-field -Wno-undefined-reinterpret-cast -Wno-invalid-offsetof -gdwarf-2")
+
+SET(CMAKE_SHARED_LINKER_FLAGS "")
+
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_CXX_FLAGS_CHECKED "-O3 -g")
+SET(CMAKE_CXX_FLAGS_PROFILE "-O3 -g")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g")
+
+SET(CMAKE_OSX_DEPLOYMENT_TARGET "")
+
+SET(CMAKE_OSX_ARCHITECTURES "armv7 armv7s arm64")
+
+SET(IOS_PLATFORM_LOCATION "iPhoneOS.platform")
+
+# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT
+EXEC_PROGRAM(/usr/bin/xcode-select ARGS -print-path OUTPUT_VARIABLE CMAKE_XCODE_DEVELOPER_DIR)
+SET(XCODE_ROOT "${CMAKE_XCODE_DEVELOPER_DIR}/Platforms/${IOS_PLATFORM_LOCATION}/Developer")
+IF(NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
+ IF(EXISTS ${XCODE_ROOT})
+ SET(CMAKE_IOS_DEVELOPER_ROOT ${XCODE_ROOT})
+ ENDIF(EXISTS ${XCODE_ROOT})
+ENDIF(NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
+SET(CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform")
+
+# Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT
+IF(NOT DEFINED CMAKE_IOS_SDK_ROOT)
+ FILE(GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*")
+ IF(_CMAKE_IOS_SDKS)
+ LIST(SORT _CMAKE_IOS_SDKS)
+ LIST(REVERSE _CMAKE_IOS_SDKS)
+ LIST(GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT)
+ ELSE(_CMAKE_IOS_SDKS)
+ MESSAGE(FATAL_ERROR "No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.")
+ ENDIF(_CMAKE_IOS_SDKS)
+ MESSAGE(STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}")
+ENDIF(NOT DEFINED CMAKE_IOS_SDK_ROOT)
+SET(CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the selected iOS SDK")
+
+# Set the sysroot default to the most recent SDK
+SET(CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support")
+
+SET(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "iphoneos")
+SET(CMAKE_XCODE_ATTRIBUTE_SDKROOT ${CMAKE_IOS_SDK_ROOT})
+SET(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "7.0")
+
+SET(PXSHARED_IOS_COMPILE_DEFS _LIB;DISABLE_CUDA_PHYSX;DISABLE_COMPUTE_PHYSX)
+SET(PXSHARED_IOS_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1)
+SET(PXSHARED_IOS_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1)
+SET(PXSHARED_IOS_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1)
+SET(PXSHARED_IOS_RELEASE_COMPILE_DEFS NDEBUG)
+
+# NOTE: PxCudaContextManager excluded on this platform
+
+# Include project cmake files here
+INCLUDE(PxFoundation.cmake)
+INCLUDE(PsFastXml.cmake)
+INCLUDE(PxPvdSDK.cmake)
+INCLUDE(PxTask.cmake)