environment.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # Copyright (C) 2009-2016, Panagiotis Christopoulos Charitos and contributors.
  2. # All rights reserved.
  3. # Code licensed under the BSD License.
  4. # http://www.anki3d.org/LICENSE
  5. # keep methods in alphabetical order
  6. # system imports
  7. import os
  8. import sys
  9. bl_info = {"author": "A. A. Kalugin Jr."}
  10. ################################ CONSTANTS ###############################
  11. ENVIRO = ""
  12. ################################ CONSTANTS ###############################
  13. def get_common_environment_path():
  14. """
  15. Returns a string of the common path of a given environment variable
  16. """
  17. path_list = os.getenv(ENVIRO).split(":")
  18. return os.path.commonprefix(path_list)
  19. def get_environment():
  20. """
  21. Returns three dictionaries of various environment paths.
  22. Build, export and tools in the anki path environment.
  23. """
  24. environment_root = os.path.abspath(get_common_environment_path())
  25. # environment_root = (os.path.abspath(environment_root)) #clean the path
  26. # ANKI Environment
  27. anki_build_path = "{0}/build".format(environment_root)
  28. anki_shaders_path = "{0}/shaders".format(environment_root)
  29. anki_engine_data_path = "{0}/engine_data".format(environment_root)
  30. # Export Environment
  31. export_data_path = "{0}/data".format(environment_root)
  32. export_src_data = "{0}/src_data".format(export_data_path)
  33. export_map_path = "{0}/map".format(export_data_path)
  34. export_temp_dea = "{0}/tmp_scene.dae".format(export_src_data)
  35. export_texture_path = "{0}/texture".format(export_data_path)
  36. # Tools Environment
  37. tool_etcpack_path = "{0}/thirdparty/bin".format(environment_root)
  38. tools_path = "{0}/tools".format(anki_build_path)
  39. tools_scene_path = "{0}/tools/scene".format(environment_root)
  40. tools_texture_path = "{0}/tools/texture".format(environment_root)
  41. # Make the Export Paths
  42. for _path in [export_src_data, export_map_path, export_texture_path]:
  43. if not os.path.exists(_path):
  44. print ("Making directory:", _path)
  45. os.makedirs(_path)
  46. # anki checked out path dictionary
  47. env_dct = {
  48. 'anki_root_path':environment_root+'/',
  49. 'anki_build_path':anki_build_path,
  50. 'anki_engine_data_path':anki_engine_data_path,
  51. 'anki_shaders_path':anki_shaders_path,
  52. }
  53. # export path dictionary
  54. export_dct = {
  55. 'export_src_data':export_src_data,
  56. 'export_map_path':export_map_path,
  57. 'export_texture_path':export_texture_path,
  58. 'export_temp_dea':export_temp_dea,
  59. }
  60. # tools path dictionary
  61. tools_dct = {
  62. 'tool_etcpack_path':tool_etcpack_path,
  63. 'tools_path':tools_path,
  64. 'tools_scene_path':tools_scene_path,
  65. 'tools_texture_path':tools_texture_path,
  66. }
  67. return env_dct, export_dct, tools_dct
  68. def set_environment(anki_env_dct, tools_dct):
  69. """
  70. Sets the environment variable.
  71. """
  72. # Set the environment variable for anki
  73. environment_path = os.pathsep.join(anki_env_dct.values())
  74. os.environ[ENVIRO]=environment_path
  75. # Append the tools path to the $PATH
  76. tools_path = os.pathsep.join(tools_dct.values())
  77. # Create a clean PATH environment varaible
  78. os.environ["PATH"] += os.pathsep + tools_path
  79. path_l = os.getenv("PATH").split(os.pathsep)
  80. new_path = os.pathsep.join(set(path_l))
  81. os.environ["PATH"] = new_path