Add another scripts search path for Windows builds
Add single "scripts" folder to search path for Windows OpenOCD builds that don't use cygwin bin/openocd.exe scripts/interface/dummy.cfg scripts/target/at91eb40a.cfg Do some refactoring of current code (thx to Andreas). Change-Id: Idbb08d1368b06f25da44f4f9ab1511db992b1724 Signed-off-by: Freddie Chopin <freddie.chopin@gmail.com> Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/785 Tested-by: jenkins__archive__
parent
73d87c6210
commit
07158a7f8a
|
@ -55,43 +55,52 @@ int configuration_output_handler(struct command_context *context, const char *li
|
|||
static void add_default_dirs(void)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
char strExePath[MAX_PATH];
|
||||
char *path;
|
||||
GetModuleFileName(NULL, strExePath, MAX_PATH);
|
||||
|
||||
/* Strip executable file name, leaving path */
|
||||
*strrchr(strExePath, '\\') = '\0';
|
||||
|
||||
/* Convert path separators to UNIX style, should work on Windows also. */
|
||||
for (char *p = strExePath; *p; p++) {
|
||||
if (*p == '\\')
|
||||
*p = '/';
|
||||
}
|
||||
|
||||
/* Add the parent of the directory where openocd.exe resides to the
|
||||
* config script search path.
|
||||
* Directory layout:
|
||||
* bin\openocd.exe
|
||||
* lib\openocd
|
||||
*
|
||||
* bin/openocd.exe
|
||||
* interface/dummy.cfg
|
||||
* target/at91eb40a.cfg
|
||||
*/
|
||||
{
|
||||
char strExePath[MAX_PATH];
|
||||
GetModuleFileName(NULL, strExePath, MAX_PATH);
|
||||
/* Either this code will *always* work or it will SEGFAULT giving
|
||||
* excellent information on the culprit.
|
||||
*/
|
||||
*strrchr(strExePath, '\\') = 0;
|
||||
strcat(strExePath, "\\..");
|
||||
add_script_search_dir(strExePath);
|
||||
path = alloc_printf("%s%s", strExePath, "/..");
|
||||
if (path) {
|
||||
add_script_search_dir(path);
|
||||
free(path);
|
||||
}
|
||||
/*
|
||||
* Add support for the default (as of 20091118) layout when
|
||||
* using autotools and cygwin/MinGW to build native binary.
|
||||
* Path separator is converted to UNIX style so that MinGW is
|
||||
* pleased.
|
||||
/* Add support for the directory layout resulting from a 'make install'.
|
||||
*
|
||||
* bin/openocd.exe
|
||||
* share/openocd/scripts/interface/dummy.cfg
|
||||
* share/openocd/scripts/target/at91eb40a.cfg
|
||||
*/
|
||||
{
|
||||
char strExePath[MAX_PATH];
|
||||
char *p;
|
||||
GetModuleFileName(NULL, strExePath, MAX_PATH);
|
||||
*strrchr(strExePath, '\\') = 0;
|
||||
strcat(strExePath, "/../share/"PACKAGE "/scripts");
|
||||
for (p = strExePath; *p; p++) {
|
||||
if (*p == '\\')
|
||||
*p = '/';
|
||||
path = alloc_printf("%s%s", strExePath, "/../share/" PACKAGE "/scripts");
|
||||
if (path) {
|
||||
add_script_search_dir(path);
|
||||
free(path);
|
||||
}
|
||||
add_script_search_dir(strExePath);
|
||||
/* Add single "scripts" folder to search path for Windows OpenOCD builds that don't use cygwin
|
||||
*
|
||||
* bin/openocd.exe
|
||||
* scripts/interface/dummy.cfg
|
||||
* scripts/target/at91eb40a.cfg
|
||||
*/
|
||||
path = alloc_printf("%s%s", strExePath, "/../scripts");
|
||||
if (path) {
|
||||
add_script_search_dir(path);
|
||||
free(path);
|
||||
}
|
||||
#else
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue