Просмотр исходного кода

Add support for cmake compilation for OS-X

Does not create full packages yet.
Michel Lesoinne 10 лет назад
Родитель
Сommit
8f323fd651
2 измененных файлов с 76 добавлено и 23 удалено
  1. 9 0
      gameplay/CMakeLists.txt
  2. 67 23
      samples/CMakeLists.txt

+ 9 - 0
gameplay/CMakeLists.txt

@@ -1,3 +1,10 @@
+IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+    set(GAMEPLAY_PLATFORM_SRC
+            src/PlatformMacOSX.mm
+            )
+else(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+    set(GAMEPLAY_PLATFORM_SRC )
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 
 set(GAMEPLAY_SRC
     src/AbsoluteLayout.cpp
@@ -80,6 +87,7 @@ set(GAMEPLAY_SRC
     src/Gamepad.h
     src/gameplay-main-android.cpp
     src/gameplay-main-linux.cpp
+    src/gameplay-main-macosx.mm
     src/gameplay-main-windows.cpp
     src/Gesture.h
     src/HeightField.cpp
@@ -165,6 +173,7 @@ set(GAMEPLAY_SRC
     src/PlatformAndroid.cpp
     src/PlatformLinux.cpp
     src/PlatformWindows.cpp
+    ${GAMEPLAY_PLATFORM_SRC}
     src/Properties.cpp
     src/Properties.h
     src/Quaternion.cpp

+ 67 - 23
samples/CMakeLists.txt

@@ -1,33 +1,77 @@
 include(BuildHelpers.CMakeLists.txt)
 
-include_directories( 
-    ${CMAKE_SOURCE_DIR}/gameplay/src
-    ${CMAKE_SOURCE_DIR}/external-deps/include
+include_directories(
+        ${CMAKE_SOURCE_DIR}/gameplay/src
+        ${CMAKE_SOURCE_DIR}/external-deps/include
 )
 
-add_definitions(-D__linux__)
+if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+    find_package(OpenGL REQUIRED)
+    FIND_LIBRARY(AGL_LIBRARY AGL)
+    FIND_LIBRARY(APP_SERVICES_LIBRARY ApplicationServices )
+    FIND_LIBRARY(ATBOX_LIBRARY AudioToolbox)
+    FIND_LIBRARY(CARBON_LIBRARY Carbon)
+    FIND_LIBRARY(CAUDIO_LIBRARY CoreAudio)
+    FIND_LIBRARY(COREVIDEO_LIBRARY CoreVideo)
+    FIND_LIBRARY(CFOUNDATION_LIBRARY CoreFoundation)
+    FIND_LIBRARY(CSERVICES_LIBRARY CoreServices)
+    FIND_LIBRARY(OPENGL_LIBRARY OpenGL)
+    FIND_LIBRARY(QUICKTIME_LIBRARY QuickTime )
+    FIND_LIBRARY(IOKIT_LIBRARY IOKit )
+    FIND_LIBRARY(AVF_LIBRARY AVFoundation)
+    FIND_LIBRARY(OAL_LIBRARY OpenAL)
+    FIND_LIBRARY(GKIT_LIBRARY GameKit)
+    SET(FRAMEWORK_LIBRS
+            ${AGL_LIBRARY}
+            ${APP_SERVICES_LIBRARY}
+            ${ATBOX_LIBRARY}
+            ${CARBON_LIBRARY}
+            ${CAUDIO_LIBRARY}
+            ${COREVIDEO_LIBRARY}
+            ${CFOUNDATION_LIBRARY}
+            ${CSERVICES_LIBRARY}
+            ${OAL_LIBRARY}
+            ${OPENGL_LIBRARIES}
+            ${GKIT_LIBRARY}
+            ${IOKIT_LIBRARY}
+            "-framework Foundation"
+            "-framework Cocoa")
+    SET(EXEC_TYPE MACOSX_BUNDLE)
+    link_directories(${CMAKE_SOURCE_DIR}/external-deps/lib/macosx/x86_64)
+    set(GAMEPLAY_LIBRARIES
+            stdc++
+            gameplay
+            gameplay-deps
+            m
+            dl
+            pthread
+            ${FRAMEWORK_LIBRS}
+            )
+ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+    add_definitions(-D__linux__)
 
-IF(ARCH_DIR STREQUAL "x64")
-    link_directories(${CMAKE_SOURCE_DIR}/external-deps/lib/linux/x86_64)
-ELSE()
-    link_directories(${CMAKE_SOURCE_DIR}/external-deps/lib/linux/x86)
-ENDIF(ARCH_DIR STREQUAL "x64")
+    IF(ARCH_DIR STREQUAL "x64")
+        link_directories(${CMAKE_SOURCE_DIR}/external-deps/lib/linux/x86_64)
+    ELSE()
+        link_directories(${CMAKE_SOURCE_DIR}/external-deps/lib/linux/x86)
+    ENDIF(ARCH_DIR STREQUAL "x64")
 
 
-set(GAMEPLAY_LIBRARIES
-    stdc++
-    gameplay
-    gameplay-deps
-    m
-    GL
-    rt
-    dl
-    X11
-    pthread
-    gtk-x11-2.0
-    glib-2.0
-    gobject-2.0
-) 
+    set(GAMEPLAY_LIBRARIES
+            stdc++
+            gameplay
+            gameplay-deps
+            m
+            GL
+            rt
+            dl
+            X11
+            pthread
+            gtk-x11-2.0
+            glib-2.0
+            gobject-2.0
+            )
+ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 
 add_definitions(-std=c++11)