118 for (
int i = 1; i < argc; i++ ) {
120 const char *string_argv = &argv[i][string_start];
122 const char *equal_pos = strchr( string_argv,
'=' );
124 (int) ( equal_pos == 0 ? strlen( string_argv ) : equal_pos - string_argv );
126 int length = (int) strlen( string_ref );
128 if ( length == argv_length && !
STRNCASECMP( string_argv, string_ref, length ) ) {
146 for (
int i = 1; i < argc; i++ ) {
148 const char *string_argv = &argv[i][string_start];
149 int length = (int) strlen( string_ref );
151 if ( !
STRNCASECMP( string_argv, string_ref, length ) ) {
152 if ( length + 1 <= (
int) strlen( string_argv ) ) {
153 int auto_inc = ( string_argv[length] ==
'=' ) ? 1 : 0;
154 *value = (T) atoi( &string_argv[length + auto_inc] );
172 for (
int i = 1; i < argc; i++ ) {
174 const char *string_argv = &argv[i][string_start];
175 int length = (int) strlen( string_ref );
177 if ( !
STRNCASECMP( string_argv, string_ref, length ) ) {
178 if ( length + 1 <= (
int) strlen( string_argv ) ) {
179 int auto_inc = ( string_argv[length] ==
'=' ) ? 1 : 0;
180 value = atoi( &string_argv[length + auto_inc] );
204 for (
int i = 1; i < argc; i++ ) {
206 const char *string_argv = &argv[i][string_start];
207 int length = (int) strlen( string_ref );
209 if ( !
STRNCASECMP( string_argv, string_ref, length ) ) {
210 if ( length + 1 <= (
int) strlen( string_argv ) ) {
211 int auto_inc = ( string_argv[length] ==
'=' ) ? 1 : 0;
212 value = (float) atof( &string_argv[length + auto_inc] );
274 const char *searchPath[] = {
280 "./src/<executable_name>/data/",
289 "./7_CUDALibraries/",
293 "./0_Simple/<executable_name>/data/",
294 "./1_Utilities/<executable_name>/data/",
295 "./2_Graphics/<executable_name>/data/",
296 "./3_Imaging/<executable_name>/data/",
297 "./4_Finance/<executable_name>/data/",
298 "./5_Simulations/<executable_name>/data/",
300 "./6_Advanced/<executable_name>/data/",
301 "./7_CUDALibraries/<executable_name>/",
302 "./7_CUDALibraries/<executable_name>/data/",
312 "../0_Simple/<executable_name>/data/",
314 "../1_Utilities/<executable_name>/data/",
316 "../2_Graphics/<executable_name>/data/",
318 "../3_Imaging/<executable_name>/data/",
320 "../4_Finance/<executable_name>/data/",
322 "../5_Simulations/<executable_name>/data/",
324 "../6_Advanced/<executable_name>/data/",
326 "../7_CUDALibraries/<executable_name>/data/",
329 "../8_Android/<executable_name>/data/",
331 "../samples/<executable_name>/data/",
334 "../../common/data/",
338 "../../sandbox/<executable_name>/data/",
340 "../../0_Simple/<executable_name>/data/",
342 "../../1_Utilities/<executable_name>/data/",
344 "../../2_Graphics/<executable_name>/data/",
346 "../../3_Imaging/<executable_name>/data/",
348 "../../4_Finance/<executable_name>/data/",
350 "../../5_Simulations/<executable_name>/data/",
352 "../../6_Advanced/<executable_name>/data/",
354 "../../7_CUDALibraries/<executable_name>/data/",
357 "../../8_Android/<executable_name>/data/",
359 "../../samples/<executable_name>/data/",
362 "../../../src/<executable_name>/",
363 "../../../src/<executable_name>/data/",
365 "../../../src/<executable_name>/src/",
366 "../../../src/<executable_name>/inc/",
367 "../../../sandbox/<executable_name>/",
368 "../../../sandbox/<executable_name>/data/",
370 "../../../sandbox/<executable_name>/src/",
372 "../../../sandbox/<executable_name>/inc/",
374 "../../../0_Simple/<executable_name>/data/",
376 "../../../1_Utilities/<executable_name>/data/",
378 "../../../2_Graphics/<executable_name>/data/",
380 "../../../3_Imaging/<executable_name>/data/",
382 "../../../4_Finance/<executable_name>/data/",
384 "../../../5_Simulations/<executable_name>/data/",
387 "../../../6_Advanced/<executable_name>/data/",
389 "../../../7_CUDALibraries/<executable_name>/data/",
392 "../../../8_Android/<executable_name>/data/",
394 "../../../0_Simple/<executable_name>/",
396 "../../../1_Utilities/<executable_name>/",
398 "../../../2_Graphics/<executable_name>/",
400 "../../../3_Imaging/<executable_name>/",
402 "../../../4_Finance/<executable_name>/",
404 "../../../5_Simulations/<executable_name>/",
406 "../../../6_Advanced/<executable_name>/",
408 "../../../7_CUDALibraries/<executable_name>/",
411 "../../../8_Android/<executable_name>/",
413 "../../../samples/<executable_name>/data/",
416 "../../../common/data/",
419 "../../../../src/<executable_name>/",
420 "../../../../src/<executable_name>/data/",
422 "../../../../src/<executable_name>/src/",
424 "../../../../src/<executable_name>/inc/",
426 "../../../../sandbox/<executable_name>/",
428 "../../../../sandbox/<executable_name>/data/",
430 "../../../../sandbox/<executable_name>/src/",
432 "../../../../sandbox/<executable_name>/inc/",
434 "../../../../0_Simple/<executable_name>/data/",
436 "../../../../1_Utilities/<executable_name>/data/",
439 "../../../../2_Graphics/<executable_name>/data/",
441 "../../../../3_Imaging/<executable_name>/data/",
443 "../../../../4_Finance/<executable_name>/data/",
445 "../../../../5_Simulations/<executable_name>/data/",
448 "../../../../6_Advanced/<executable_name>/data/",
450 "../../../../7_CUDALibraries/<executable_name>/data/",
453 "../../../../8_Android/<executable_name>/data/",
455 "../../../../0_Simple/<executable_name>/",
457 "../../../../1_Utilities/<executable_name>/",
459 "../../../../2_Graphics/<executable_name>/",
461 "../../../../3_Imaging/<executable_name>/",
463 "../../../../4_Finance/<executable_name>/",
465 "../../../../5_Simulations/<executable_name>/",
468 "../../../../6_Advanced/<executable_name>/",
470 "../../../../7_CUDALibraries/<executable_name>/",
473 "../../../../8_Android/<executable_name>/",
475 "../../../../samples/<executable_name>/data/",
477 "../../../../common/",
478 "../../../../common/data/",
481 "../../../../../src/<executable_name>/",
482 "../../../../../src/<executable_name>/data/",
484 "../../../../../src/<executable_name>/src/",
486 "../../../../../src/<executable_name>/inc/",
488 "../../../../../sandbox/<executable_name>/",
490 "../../../../../sandbox/<executable_name>/data/",
493 "../../../../../sandbox/<executable_name>/src/",
495 "../../../../../sandbox/<executable_name>/inc/",
497 "../../../../../0_Simple/<executable_name>/data/",
499 "../../../../../1_Utilities/<executable_name>/data/",
502 "../../../../../2_Graphics/<executable_name>/data/",
505 "../../../../../3_Imaging/<executable_name>/data/",
508 "../../../../../4_Finance/<executable_name>/data/",
511 "../../../../../5_Simulations/<executable_name>/data/",
514 "../../../../../6_Advanced/<executable_name>/data/",
517 "../../../../../7_CUDALibraries/<executable_name>/data/",
520 "../../../../../8_Android/<executable_name>/data/",
523 "../../../../../samples/<executable_name>/data/",
525 "../../../../../common/",
526 "../../../../../common/data/",
530 std::string executable_name;
532 if ( executable_path != 0 ) {
533 executable_name = std::string( executable_path );
535#if defined( WIN32 ) || defined( _WIN32 ) || defined( WIN64 ) || defined( _WIN64 )
537 size_t delimiter_pos = executable_name.find_last_of(
'\\' );
538 executable_name.erase( 0, delimiter_pos + 1 );
540 if ( executable_name.rfind(
".exe" ) != std::string::npos ) {
542 executable_name.resize( executable_name.size() - 4 );
547 size_t delimiter_pos = executable_name.find_last_of(
'/' );
548 executable_name.erase( 0, delimiter_pos + 1 );
553 for (
unsigned int i = 0; i <
sizeof( searchPath ) /
sizeof(
char * ); ++i ) {
554 std::string path( searchPath[i] );
555 size_t executable_name_pos = path.find(
"<executable_name>" );
559 if ( executable_name_pos != std::string::npos ) {
560 if ( executable_path != 0 ) {
561 path.replace( executable_name_pos, strlen(
"<executable_name>" ), executable_name );
569 printf(
"sdkFindFilePath <%s> in %s\n", filename, path.c_str() );
573 path.append( filename );
575 FOPEN( fp, path.c_str(),
"rb" );
581 char *file_path = (
char *) malloc( path.length() + 1 );
582 STRCPY( file_path, path.length() + 1, path.c_str() );