CMakeLists.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 JAVASCRIPT_SOURCE Javascript/*.cpp Javascript/*.h)
  8. GroupSources("Javascript")
  9. if (NOT MSVC)
  10. # for kNet
  11. add_definitions (-DUNIX)
  12. endif()
  13. # Create the JSBind files ahead of time, so they are picked up with glob
  14. set (JSFILES JSModuleAtomic2D.cpp;JSModuleAtomic3D.cpp;JSModuleAudio.cpp;JSModuleContainer.cpp;JSModuleCore.cpp;
  15. JSModuleEngine.cpp;JSModuleEnvironment.cpp;JSModuleGraphics.cpp;JSModuleInput.cpp;
  16. JSModuleIO.cpp;JSModuleJavascript.cpp;JSModuleMath.cpp;JSModuleNavigation.cpp;
  17. JSModuleNetwork.cpp;JSModulePhysics.cpp;JSModuleResource.cpp;JSPackageAtomic.cpp;
  18. JSModuleScene.cpp;JSModuleUI.cpp)
  19. foreach(JSFILE ${JSFILES})
  20. set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Atomic/${JSFILE}")
  21. if (NOT EXISTS ${JSFILEPATH})
  22. file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
  23. endif()
  24. endforeach()
  25. file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Atomic/*.cpp)
  26. set (SOURCE_FILES ${JAVASCRIPT_SOURCE} ${JAVASCRIPT_BINDINGS_SOURCE} )
  27. add_library(AtomicJS ${SOURCE_FILES})
  28. if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
  29. add_dependencies(AtomicJS AtomicTool)
  30. endif()
  31. add_custom_command (TARGET AtomicJS POST_BUILD
  32. COMMAND ${CMAKE_COMMAND}
  33. ARGS -E copy_if_different \"${CMAKE_SOURCE_DIR}/Script/JSPlugin/AtomicPlugin.h\" \"${CMAKE_SOURCE_DIR}/Bin/NativePluginSDK/AtomicPlugin.h\")