CMakeLists.txt 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. include_directories (${CMAKE_SOURCE_DIR}/Source/ThirdParty/rapidjson/include
  2. ${CMAKE_SOURCE_DIR}/Source/ThirdParty
  3. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/nativefiledialog)
  4. file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
  5. # Create the JSBind files ahead of time, so they are picked up with glob
  6. set (JSFILES JSPackageEditor.cpp;JSModuleEditor.cpp)
  7. foreach(JSFILE ${JSFILES})
  8. set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Editor/${JSFILE}")
  9. if (NOT EXISTS ${JSFILEPATH})
  10. file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
  11. endif()
  12. endforeach()
  13. file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Editor/*.cpp)
  14. set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE})
  15. if (APPLE)
  16. file (GLOB_RECURSE OBJC_FILES *.mm *.h)
  17. set (SOURCE_FILES ${SOURCE_FILES} ${OBJC_FILES})
  18. set (EXE_TYPE MACOSX_BUNDLE)
  19. #ICNS
  20. set(MACOSX_BUNDLE_ICON_FILE Atomic.icns)
  21. set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/CMake/Modules/Atomic.icns)
  22. set_source_files_properties(${ATOMIC_EDITOR_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
  23. elseif(LINUX)
  24. else()
  25. include_directories (${CMAKE_SOURCE_DIR}/Source/ThirdParty/libcurl/include)
  26. add_definitions(-DCURL_STATICLIB)
  27. # We want the console for now
  28. #set (EXE_TYPE WIN32)
  29. add_definitions(-DATOMIC_WIN32_CONSOLE)
  30. set (SOURCE_FILES ${SOURCE_FILES} ${CMAKE_SOURCE_DIR}/CMake/Modules/Atomic.rc)
  31. endif(APPLE)
  32. add_executable(AtomicEditor ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
  33. target_link_libraries(AtomicEditor ToolCore AtomicJS AtomicPlayerJS ToolCoreJS Poco nativefiledialog ${ATOMIC_LINK_LIBRARIES})
  34. if (APPLE)
  35. set (TARGET_PROPERTIES MACOSX_BUNDLE_INFO_PLIST MacOSXBundleInfo.plist.template)
  36. target_link_libraries(AtomicEditor curl)
  37. elseif(LINUX)
  38. target_link_libraries(AtomicEditor curl nativefiledialog ${GTK3_LIBRARIES})
  39. else()
  40. target_link_libraries(AtomicEditor libcurl Iphlpapi Wldap32)
  41. # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
  42. add_custom_command (TARGET AtomicEditor POST_BUILD
  43. COMMAND ${CMAKE_COMMAND}
  44. ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"$<TARGET_FILE_DIR:AtomicEditor>/D3DCompiler_47.dll\")
  45. endif()
  46. if (TARGET_PROPERTIES)
  47. set_target_properties (AtomicEditor PROPERTIES ${TARGET_PROPERTIES})
  48. endif ()
  49. add_dependencies(AtomicEditor AtomicTool)
  50. GroupSources("Application")
  51. GroupSources("EditorMode")
  52. GroupSources("Editors")
  53. GroupSources("Javascript")
  54. GroupSources("PlayerMode")
  55. GroupSources("Utils")