build.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import platform
  2. import os
  3. import shutil
  4. import sys
  5. import subprocess
  6. def main(argv):
  7. system_type = platform.system()
  8. machine_type = platform.machine()
  9. is_debug = False
  10. traph_build_script = os.path.abspath(sys.argv[0])
  11. traph_root, build_file = os.path.split(traph_build_script)
  12. if not os.path.exists(os.path.join(traph_root, "build")):
  13. os.mkdir("build")
  14. os.chdir(traph_root + "/build")
  15. if system_type == 'Windows':
  16. if machine_type == 'x86_64':
  17. # -DCMAKE_BUILD_TYPE=Debug
  18. if is_debug:
  19. subprocess.run("cmake -DCMAKE_BUILD_TYPE=Debug -G \"Visual Studio 15 2017 Win64\" ../")
  20. subprocess.run("cmake --build . --config Debug")
  21. else:
  22. subprocess.run("cmake -DCMAKE_BUILD_TYPE=Release -G \"Visual Studio 15 2017 Win64\" ../")
  23. subprocess.run("cmake --build . --config Release")
  24. elif machine_type == 'x86':
  25. if is_debug:
  26. subprocess.run("cmake -DCMAKE_BUILD_TYPE=Debug -G \"Visual Studio 15 2017\" ../")
  27. subprocess.run("cmake --build . --config Debug")
  28. else:
  29. subprocess.run("cmake -DCMAKE_BUILD_TYPE=Release -G \"Visual Studio 15 2017\" ../")
  30. subprocess.run("cmake --build . --config Release")
  31. else:
  32. print('unsupport machine')
  33. elif system_type == 'Linux':
  34. # -DCMAKE_BUILD_TYPE=Debug
  35. if is_debug:
  36. subprocess.run("cmake -DCMAKE_BUILD_TYPE=Debug -G \"Unix Makefiles\" ../")
  37. subprocess.run("cmake --build . --config Debug")
  38. else:
  39. subprocess.run("cmake -DCMAKE_BUILD_TYPE=Release -G \"Unix Makefiles\" ../")
  40. subprocess.run("cmake --build . --config Release")
  41. else:
  42. print('unsupport system')
  43. os.chdir("../")
  44. if system_type == 'Windows':
  45. if is_debug:
  46. shutil.copy('build/traph/source/interface/traph_tensor.py', 'python/pytraph/core')
  47. shutil.copy('build/traph/source/interface/Debug/_traph_tensor.pyd', 'python/pytraph/core')
  48. else:
  49. shutil.copy('build/traph/source/interface/traph_tensor.py', 'python/pytraph/core')
  50. shutil.copy('build/traph/source/interface/Release/_traph_tensor.pyd', 'python/pytraph/core')
  51. elif system_type == 'Linux':
  52. if is_debug:
  53. shutil.copy('build/traph/source/interface/traph_tensor.py', 'python/pytraph/core')
  54. shutil.copy('build/traph/source/interface/Debug/_traph_tensor.pyd', 'python/pytraph/core')
  55. else:
  56. shutil.copy('build/traph/source/interface/traph_tensor.py', 'python/pytraph/core')
  57. shutil.copy('build/traph/source/interface/Release/_traph_tensor.pyd', 'python/pytraph/core')
  58. else:
  59. print('unsupport system')
  60. if __name__ == '__main__':
  61. main(sys.argv)