/runtimes/cpp/platforms/sdl/workfile.rb

https://github.com/asarrafi/MoSync · Ruby · 67 lines · 57 code · 9 blank · 1 comment · 13 complexity · 75d891d429dcfa8c8c2d51d3bcd8efab MD5 · raw file

  1. #!/usr/bin/ruby
  2. require File.expand_path('../../../../rules/native_mosync.rb')
  3. work = NativeMoSyncLib.new
  4. work.instance_eval do
  5. @SOURCES = [".", "./thread", "./Skinning", "../../base", "../../base/thread", "../../../../intlibs/hashmap"]
  6. @IGNORED_FILES = ["Image.cpp", "audio.cpp"]
  7. common_includes = [".", "../../base", "../../../../intlibs/sqlite"]
  8. common_libraries = ["SDL", "SDLmain", "SDL_ttf"]
  9. @SPECIFIC_CFLAGS = {"SDL_prim.c" => " -Wno-float-equal -Wno-unreachable-code",
  10. "Syscall.cpp" => " -Wno-float-equal"}
  11. @EXTRA_CPPFLAGS = " -DMOSYNC_DLL_EXPORT"
  12. if(HOST == :win32) then
  13. @EXTRA_INCLUDES = common_includes
  14. @LIBRARIES = common_libraries
  15. elsif(HOST == :linux)
  16. @IGNORED_FILES << "strptime.c"
  17. @IGNORED_FILES << "OpenGLES.cpp"
  18. if (!SDL_SOUND)
  19. @EXTRA_CPPFLAGS += " -D__NO_SDL_SOUND__"
  20. @IGNORED_FILES += ["SDLSoundAudioSource.cpp"]
  21. end
  22. if(FULLSCREEN == "true")
  23. @EXTRA_CPPFLAGS += " -D__USE_FULLSCREEN__ -D__USE_SYSTEM_RESOLUTION__"
  24. end
  25. if(NATIVE_RUNTIME == "true")
  26. @IGNORED_FILES += ["PIMImpl.cpp", "pim.cpp"]
  27. end
  28. @EXTRA_INCLUDES = common_includes
  29. @EXTRA_CPPFLAGS += ' ' + open('|pkg-config --cflags gtk+-2.0').read.strip
  30. @LIBRARIES = common_libraries
  31. elsif(HOST == :darwin)
  32. @IGNORED_FILES << "strptime.c"
  33. @IGNORED_FILES << "OpenGLES.cpp"
  34. @EXTRA_INCLUDES = common_includes + ["/sw/include", "/opt/local/include"]
  35. @LIBRARIES = common_libraries +["objc"]
  36. @SPECIFIC_CFLAGS = {"SDL_prim.c" => " -Wno-float-equal -Wno-unreachable-code -D_ANSI_SOURCE",
  37. "Syscall.cpp" => " -Wno-float-equal"}
  38. else
  39. error "Unsupported platform"
  40. end
  41. if(!@GCC_IS_V4)
  42. @SPECIFIC_CFLAGS["hashmap.cpp"] = " -Wno-unreachable-code"
  43. @SPECIFIC_CFLAGS["AudioChannel.cpp"] = " -Wno-unreachable-code"
  44. if(CONFIG == "") #buggy compiler
  45. @SPECIFIC_CFLAGS["ConfigParser.cpp"] = " -Wno-uninitialized"
  46. @SPECIFIC_CFLAGS["Syscall.cpp"] = " -Wno-uninitialized -Wno-float-equal"
  47. end
  48. end
  49. @NAME = "mosync_sdl"
  50. end
  51. if(!File.exist?("config_platform.h"))
  52. CopyFileTask.new(work, "config_platform.h",
  53. FileTask.new(work, "config_platform.h.example")).invoke
  54. end
  55. CopyFileTask.new(work, "#{mosyncdir}/bin/default_contacts.xml",
  56. FileTask.new(work, "contacts.xml"),
  57. [DirTask.new(work, "#{mosyncdir}/etc")]).invoke if(!(NATIVE_RUNTIME == "true"))
  58. work.invoke