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', help='remove build directory and configuration file [false].')
00050 parser.add_argument('-u', '--underlays', action='store', default='', help='semi-colon list of catkin workspaces to utilise [/opt/ros/groovy]')
00051
00052
00053 return parser.parse_args()
00054
00055 if __name__ == "__main__":
00056 print("")
00057 args = parse_args()
00058 ws_path = os.path.abspath(".")
00059 build_path = os.path.join(ws_path, 'build')
00060 devel_path = os.path.join(ws_path, 'devel')
00061 src_path = os.path.join(ws_path, 'src')
00062
00063
00064
00065 error_str = win_ros.is_invalid_workspace(src_path)
00066 if error_str:
00067 sys.exit(error_str)
00068
00069
00070
00071 if args.clean:
00072 if os.path.isdir(build_path):
00073 shutil.rmtree(build_path, ignore_errors=True)
00074 shutil.rmtree(devel_path, ignore_errors=True)
00075 print("--- build, devel directories removed.")
00076 if os.path.isfile(os.path.join(ws_path, 'config.cmake')):
00077 os.remove(os.path.join(ws_path, 'config.cmake'))
00078 print("--- file config.cmake removed.")
00079 sys.exit(0)
00080
00081
00082
00083
00084 if os.path.isfile(os.path.join(ws_path, 'config.cmake')):
00085 sys.exit("+++ build configuration (config.cmake) already exists, aborting.")
00086
00087
00088
00089 win_ros.write_cmake_files(ws_path, args.underlays)
00090 shutil.rmtree(build_path, ignore_errors=True)
00091 os.mkdir(build_path)
00092 print("--- build configuration initialised with defaults.")
00093 print("--- now edit config.cmake as you wish and build using 'winros_make'.")