CMakeLists.txt 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. include_directories(${CMAKE_SOURCE_DIR}/Source)
  2. include_directories ( ${CMAKE_SOURCE_DIR}/Source/ThirdParty
  3. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/rapidjson/include
  4. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/kNet/include
  5. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/FreeType/include
  6. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/Box2D )
  7. # Define source files
  8. file (GLOB SOURCE_FILES *.cpp *.h )
  9. set (SOURCE_FILES ${SOURCE_FILES} ${CSHARP_BINDINGS_SOURCE} ${CSHARPATOMICPLAYER_BINDINGS_SOURCE} ${CSHARPATOMICNET_BINDINGS_SOURCE})
  10. if (MSVC)
  11. set (EXE_TYPE WIN32)
  12. set (SOURCE_FILES ${SOURCE_FILES} ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.rc)
  13. elseif(APPLE)
  14. #ICNS
  15. set(MACOSX_BUNDLE_ICON_FILE Atomic.icns)
  16. if (NOT IOS)
  17. set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.icns)
  18. endif()
  19. set_source_files_properties(${ATOMIC_EDITOR_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
  20. set (EXE_TYPE MACOSX_BUNDLE)
  21. endif()
  22. if (ANDROID)
  23. include_directories(${CMAKE_SOURCE_DIR}/Source/ThirdParty/SDL/include)
  24. add_library(AtomicPlayer SHARED ${SOURCE_FILES} ${CMAKE_SOURCE_DIR}/Source/ThirdParty/SDL/src/main/android/SDL_android_main.c)
  25. else()
  26. add_executable(AtomicPlayer ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
  27. endif()
  28. target_link_libraries(AtomicPlayer AtomicJS AtomicPlayerLib AtomicPlayerJS ${ATOMIC_LINK_LIBRARIES})
  29. if (MSVC)
  30. # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
  31. add_custom_command (TARGET AtomicPlayer POST_BUILD
  32. COMMAND ${CMAKE_COMMAND}
  33. ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"$<TARGET_FILE_DIR:AtomicPlayer>/D3DCompiler_47.dll\")
  34. target_link_libraries(AtomicPlayer NETCore NETScript)
  35. endif(MSVC)
  36. if (APPLE)
  37. if (NOT IOS)
  38. target_link_libraries(AtomicPlayer NETCore NETScript)
  39. set (TARGET_PROPERTIES MACOSX_BUNDLE_INFO_PLIST MacOSXBundleInfo.plist.template)
  40. else()
  41. set_target_properties(AtomicPlayer PROPERTIES
  42. MACOSX_BUNDLE_GUI_IDENTIFIER "com.atomicgameengine.atomicplayer"
  43. XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
  44. XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym"
  45. XCODE_ATTRIBUTE_INFOPLIST_PREPROCESS YES
  46. XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET 9.2
  47. XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2" # iPhone/iPad
  48. XCODE_ATTRIBUTE_COMBINE_HIDPI_IMAGES NO
  49. )
  50. set (TARGET_PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/iOSBundleInfo.plist.template)
  51. endif()
  52. endif(APPLE)
  53. if (LINUX)
  54. target_link_libraries(AtomicPlayer NETCore NETScript)
  55. endif(LINUX)
  56. if (TARGET_PROPERTIES)
  57. set_target_properties (AtomicPlayer PROPERTIES ${TARGET_PROPERTIES})
  58. endif ()