CMakeLists.txt 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. include_directories(${CMAKE_CURRENT_SOURCE_DIR}
  2. ${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. file (GLOB CSHARP_SOURCES *.cpp *.h)
  8. if (NOT MSVC)
  9. # for kNet
  10. add_definitions (-DUNIX)
  11. endif()
  12. # Create the JSBind files ahead of time, so they are picked up with glob
  13. set (CSFILES CSModuleAtomic2D.cpp;CSModuleAtomic3D.cpp;CSModuleAudio.cpp;CSModuleContainer.cpp;CSModuleCore.cpp;
  14. CSModuleEngine.cpp;CSModuleEnvironment.cpp;CSModuleGraphics.cpp;CSModuleInput.cpp;
  15. CSModuleIO.cpp;CSModuleJavascript.cpp;CSModuleMath.cpp;CSModuleNavigation.cpp;
  16. CSModuleNetwork.cpp;CSModulePhysics.cpp;CSModuleResource.cpp;CSPackageAtomic.cpp;
  17. CSModuleScene.cpp;CSModuleUI.cpp)
  18. set (CSATOMICPLAYERFILES CSModulePlayer.cpp)
  19. foreach(CSFILE ${CSFILES})
  20. set (CSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/Atomic/Native/${CSFILE}")
  21. if (NOT EXISTS ${CSFILEPATH})
  22. file(WRITE "${CSFILEPATH}" "// will be created by JSBind")
  23. endif()
  24. endforeach()
  25. foreach(CSFILE ${CSATOMICPLAYERFILES})
  26. set (CSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/AtomicPlayer/Native/${CSFILE}")
  27. if (NOT EXISTS ${CSFILEPATH})
  28. file(WRITE "${CSFILEPATH}" "// will be created by JSBind")
  29. endif()
  30. endforeach()
  31. file (GLOB CSHARP_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/Atomic/Native/*.cpp)
  32. file (GLOB CSHARPATOMICPLAYER_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/CSharp/Packages/AtomicPlayer/Native/*.cpp)
  33. set (SOURCE_FILES ${CSHARP_SOURCES} ${CSHARP_BINDINGS_SOURCE} ${CSHARPATOMICPLAYER_BINDINGS_SOURCE})
  34. add_library(AtomicNETRuntime SHARED ${SOURCE_FILES})
  35. target_link_libraries(AtomicNETRuntime AtomicJS AtomicPlayerLib AtomicPlayerJS ${ATOMIC_LINK_LIBRARIES})
  36. if (APPLE)
  37. target_link_libraries(AtomicNETRuntime "-framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework ForceFeedback -framework IOKit -framework OpenGL -framework CoreServices -framework Security")
  38. endif()
  39. if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
  40. add_dependencies(AtomicNETRuntime AtomicTool)
  41. endif()