Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 from __future__ import print_function
00034 import sys
00035 import os
00036 import os.path
00037 import shutil
00038 import subprocess
00039 import win_ros
00040 import argparse
00041
00042 def parse_args():
00043 parser = argparse.ArgumentParser(description="\
00044 Creates a build directory and build configuration file:\n\n\
00045 1. Expects sources are in ./src \n\
00046 2. Expects a toplevel cmake file in ./src/CMakeList.txt\n",
00047 epilog="See http://www.ros.org/wiki/win_python_build_tools for details.",
00048 formatter_class=argparse.RawTextHelpFormatter )
00049 parser.add_argument('-c', '--clean', action='store_true',
00050 help='remove build directory and configuration file [false].')
00051 parser.add_argument('-u', '--underlays', action='store', default='',
00052 help='semi-colon list of catkin workspaces to utilise [/opt/ros/hydro]')
00053 parser.add_argument('--track', action='store', default="hydro",
00054 help='retrieve rosinstalls relevant to this track [groovy|hydro][hydro]')
00055 return parser.parse_args()
00056
00057 if __name__ == "__main__":
00058 print("")
00059 args = parse_args()
00060 ws_path = os.path.abspath(".")
00061 build_path = os.path.join(ws_path, 'build')
00062 devel_path = os.path.join(ws_path, 'devel')
00063 src_path = os.path.join(ws_path, 'src')
00064
00065
00066
00067 error_str = win_ros.is_invalid_workspace(src_path)
00068 if error_str:
00069 sys.exit(error_str)
00070
00071
00072
00073 if args.clean:
00074 if os.path.isdir(build_path):
00075 shutil.rmtree(build_path, ignore_errors=True)
00076 shutil.rmtree(devel_path, ignore_errors=True)
00077 print("--- build, devel directories removed.")
00078 if os.path.isfile(os.path.join(ws_path, 'config.cmake')):
00079 os.remove(os.path.join(ws_path, 'config.cmake'))
00080 print("--- file config.cmake removed.")
00081 sys.exit(0)
00082
00083
00084
00085
00086 if os.path.isfile(os.path.join(ws_path, 'config.cmake')):
00087 sys.exit("+++ build configuration (config.cmake) already exists, aborting.")
00088
00089
00090
00091 win_ros.write_cmake_files(ws_path, args.track, args.underlays)
00092 shutil.rmtree(build_path, ignore_errors=True)
00093 os.mkdir(build_path)
00094 print("--- build configuration initialised with defaults.")
00095 print("--- now edit config.cmake as you wish and build using 'winros_make'.")