Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
updated and added rename analyzer script, tested on Windows - works.
added build analyzer script, but it will need to be updated to work since we moved the libraries. that needs to be fixed on Linux / osx. updated git ignore to remove another visual studio byproduct.
- Loading branch information
1 parent
2770b31
commit 47c4ac2
Showing
3 changed files
with
204 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,4 +2,5 @@ Debug/ | |
Release/ | ||
*.VC.db | ||
*.VC.opendb | ||
*.suo | ||
*.suo | ||
*.sln.ecd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
import os, glob, platform | ||
|
||
#find out if we're running on mac or linux and set the dynamic library extension | ||
dylib_ext = "" | ||
if platform.system().lower() == "darwin": | ||
dylib_ext = ".dylib" | ||
else: | ||
dylib_ext = ".so" | ||
|
||
print("Running on " + platform.system()) | ||
|
||
#make sure the release folder exists, and clean out any .o/.so file if there are any | ||
if not os.path.exists( "release" ): | ||
os.makedirs( "release" ) | ||
|
||
os.chdir( "release" ) | ||
o_files = glob.glob( "*.o" ) | ||
o_files.extend( glob.glob( "*" + dylib_ext ) ) | ||
for o_file in o_files: | ||
os.remove( o_file ) | ||
os.chdir( ".." ) | ||
|
||
|
||
#make sure the debug folder exists, and clean out any .o/.so files if there are any | ||
if not os.path.exists( "debug" ): | ||
os.makedirs( "debug" ) | ||
|
||
os.chdir( "debug" ) | ||
o_files = glob.glob( "*.o" ); | ||
o_files.extend( glob.glob( "*" + dylib_ext ) ) | ||
for o_file in o_files: | ||
os.remove( o_file ) | ||
os.chdir( ".." ) | ||
|
||
#find all the cpp files in /source. We'll compile all of them | ||
os.chdir( "source" ) | ||
cpp_files = glob.glob( "*.cpp" ); | ||
os.chdir( ".." ) | ||
|
||
#specify the search paths/dependencies/options for gcc | ||
include_paths = [ "../include" ] | ||
link_paths = [ "../lib" ] | ||
link_dependencies = [ "-lAnalyzer" ] #refers to libAnalyzer.dylib or libAnalyzer.so | ||
|
||
debug_compile_flags = "-O0 -w -c -fpic -g" | ||
release_compile_flags = "-O3 -w -c -fpic" | ||
|
||
#loop through all the cpp files, build up the gcc command line, and attempt to compile each cpp file | ||
for cpp_file in cpp_files: | ||
|
||
#g++ | ||
command = "g++ " | ||
|
||
#include paths | ||
for path in include_paths: | ||
command += "-I\"" + path + "\" " | ||
|
||
release_command = command | ||
release_command += release_compile_flags | ||
release_command += " -o\"release/" + cpp_file.replace( ".cpp", ".o" ) + "\" " #the output file | ||
release_command += "\"" + "source/" + cpp_file + "\"" #the cpp file to compile | ||
|
||
debug_command = command | ||
debug_command += debug_compile_flags | ||
debug_command += " -o\"debug/" + cpp_file.replace( ".cpp", ".o" ) + "\" " #the output file | ||
debug_command += "\"" + "source/" + cpp_file + "\"" #the cpp file to compile | ||
|
||
#run the commands from the command line | ||
print(release_command) | ||
os.system( release_command ) | ||
print(debug_command) | ||
os.system( debug_command ) | ||
|
||
#lastly, link | ||
#g++ | ||
command = "g++ " | ||
|
||
#add the library search paths | ||
for link_path in link_paths: | ||
command += "-L\"" + link_path + "\" " | ||
|
||
#add libraries to link against | ||
for link_dependency in link_dependencies: | ||
command += link_dependency + " " | ||
|
||
#make a dynamic (shared) library (.so/.dylib) | ||
|
||
if dylib_ext == ".dylib": | ||
command += "-dynamiclib " | ||
else: | ||
command += "-shared " | ||
|
||
#figgure out what the name of this analyzer is | ||
analyzer_name = "" | ||
for cpp_file in cpp_files: | ||
if cpp_file.endswith( "Analyzer.cpp" ): | ||
analyzer_name = cpp_file.replace( "Analyzer.cpp", "" ) | ||
break | ||
|
||
#the files to create (.so/.dylib files) | ||
if dylib_ext == ".dylib": | ||
release_command = command + "-o release/lib" + analyzer_name + "Analyzer.dylib " | ||
debug_command = command + "-o debug/lib" + analyzer_name + "Analyzer.dylib " | ||
else: | ||
release_command = command + "-o\"release/lib" + analyzer_name + "Analyzer.so\" " | ||
debug_command = command + "-o\"debug/lib" + analyzer_name + "Analyzer.so\" " | ||
|
||
#add all the object files to link | ||
for cpp_file in cpp_files: | ||
release_command += "release/" + cpp_file.replace( ".cpp", ".o" ) + " " | ||
debug_command += "debug/" + cpp_file.replace( ".cpp", ".o" ) + " " | ||
|
||
#run the commands from the command line | ||
print(release_command) | ||
os.system( release_command ) | ||
print(debug_command) | ||
os.system( debug_command ) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
import os | ||
import glob | ||
import sys | ||
|
||
# Fix Python 2.x. | ||
try: | ||
input = raw_input | ||
except NameError: pass | ||
|
||
print("") | ||
print("") | ||
print("What would you like to call your new analyzer?") | ||
print("") | ||
print(">>The files under '/source' will be modified to use it.") | ||
print(">>Examples include Serial, MySerial, JoesSerial, Gamecube, Wiimote, 2Wire, etc.") | ||
print(">>Do not inclide the trailing word 'Analyzer' this will be added automaticly.") | ||
print("") | ||
print("(press CTRL-C to cancel)") | ||
print("") | ||
|
||
new_analyzer_name = input( "Your new analyzer name: " ) | ||
|
||
print("") | ||
print("") | ||
print("What is the analyzer's title? (as shown in the add new anlayzer drop down)") | ||
print("") | ||
print(">>Examples include Async Serial, I2C, Joe's Serial, Gamecube, Wiimote, 2Wire, etc.") | ||
print("") | ||
print("(press CTRL-C to cancel)") | ||
print("") | ||
|
||
new_analyzer_title = input( "Your new analyzer's title: " ) | ||
|
||
original_name = "SimpleSerial" | ||
|
||
|
||
vs_project_path = "Visual Studio" | ||
os.chdir( vs_project_path ) | ||
|
||
project_files = glob.glob("*.sln") + glob.glob("*.vcxproj") #returns only the file names, no paths. | ||
|
||
for file in project_files: | ||
contents = open( file, 'r' ).read() | ||
contents = contents.replace( original_name + "Analyzer", new_analyzer_name + "Analyzer" ) | ||
contents = contents.replace( original_name.upper() + "ANALYZER", new_analyzer_name.upper() + "ANALYZER" ) | ||
contents = contents.replace( original_name + "SimulationDataGenerator", new_analyzer_name + "SimulationDataGenerator" ) | ||
open( file, 'w' ).write( contents ) | ||
|
||
os.rename( glob.glob("*.sln")[0], new_analyzer_name + "Analyzer.sln" ) | ||
os.rename( glob.glob("*.vcxproj")[0], new_analyzer_name + "Analyzer.vcxproj" ) | ||
|
||
source_path = "source" | ||
os.chdir( ".." ) | ||
os.chdir( source_path ) | ||
|
||
files = dict() | ||
|
||
cpp_files = glob.glob( "*.cpp" ); | ||
h_files = glob.glob( "*.h" ); | ||
|
||
for file in cpp_files: | ||
files[file] = ".cpp" | ||
|
||
for file in h_files: | ||
files[ file ] = ".h" | ||
|
||
new_files = [] | ||
|
||
for file, extension in files.items(): | ||
name_root = file.replace( original_name, "" ) | ||
new_name = new_analyzer_name + name_root | ||
#print "renaming file " + file + " to " + new_name | ||
os.rename( file, new_name ) | ||
new_files.append( new_name ) | ||
|
||
for file in new_files: | ||
contents = open( file, 'r' ).read() | ||
contents = contents.replace( original_name + "Analyzer", new_analyzer_name + "Analyzer" ) | ||
contents = contents.replace( original_name.upper() + "_ANALYZER_", new_analyzer_name.upper() + "_ANALYZER_" ) | ||
contents = contents.replace( original_name.upper() + "_SIMULATION_DATA_GENERATOR", new_analyzer_name.upper() + "_SIMULATION_DATA_GENERATOR" ) | ||
contents = contents.replace( original_name + "SimulationDataGenerator", new_analyzer_name + "SimulationDataGenerator" ) | ||
contents = contents.replace( "Simple Serial", new_analyzer_title ) | ||
open( file, 'w' ).write( contents ) |