diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-03-28 18:23:10 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-03-28 18:23:10 (GMT) |
commit | 09b4b2d62ccd962d18ea56f493b12ad338cdb209 (patch) | |
tree | 8a71546c42b897cab21e9528e70798985bfccb8f /Tests/BundleTest | |
parent | ed5f95cf230c5ccd4376ff6dcc8e57330611f256 (diff) | |
download | CMake-09b4b2d62ccd962d18ea56f493b12ad338cdb209.zip CMake-09b4b2d62ccd962d18ea56f493b12ad338cdb209.tar.gz CMake-09b4b2d62ccd962d18ea56f493b12ad338cdb209.tar.bz2 |
ENH: Check if files exist
Diffstat (limited to 'Tests/BundleTest')
-rw-r--r-- | Tests/BundleTest/BundleLib.cxx | 62 | ||||
-rw-r--r-- | Tests/BundleTest/BundleTest.cxx | 9 |
2 files changed, 67 insertions, 4 deletions
diff --git a/Tests/BundleTest/BundleLib.cxx b/Tests/BundleTest/BundleLib.cxx index 9fe07f8..bc757b1 100644 --- a/Tests/BundleTest/BundleLib.cxx +++ b/Tests/BundleTest/BundleLib.cxx @@ -1 +1,61 @@ -int foo() { return 0; } +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <unistd.h> + +int fileExists(char* filename) +{ +#ifndef R_OK +# define R_OK 04 +#endif + if ( access(filename, R_OK) != 0 ) + { + printf("Cannot find file: %s\n", filename); + return 0; + } + return 1; +} + +int findBundleFile(char* exec, const char* file) +{ + int res; + char* nexec = strdup(exec); + char* fpath = (char*)malloc(strlen(exec) + 100); + int cc; + int cnt = 0; + printf("Process executable name: %s\n", exec); + + // Remove the executable name and directory name + for ( cc = strlen(nexec)-1; cc > 0; cc -- ) + { + if ( nexec[cc] == '/' ) + { + nexec[cc] = 0; + if ( cnt == 1 ) + { + break; + } + cnt ++; + } + } + printf("Process executable path: %s\n", nexec); + sprintf(fpath, "%s/%s", nexec, file); + printf("Check for file: %s\n", fpath); + res = fileExists(fpath); + free(nexec); + free(fpath); + return res; +} + +int foo(char *exec) +{ + int res1 = findBundleFile(exec, "Resources/randomResourceFile.plist"); + int res2 = findBundleFile(exec, "MacOS/SomeRandomFile.txt"); + if ( !res1 || + !res2 ) + { + return 1; + } + + return 0; +} diff --git a/Tests/BundleTest/BundleTest.cxx b/Tests/BundleTest/BundleTest.cxx index c879be1..1e508ac 100644 --- a/Tests/BundleTest/BundleTest.cxx +++ b/Tests/BundleTest/BundleTest.cxx @@ -1,6 +1,9 @@ -extern int foo(); +#include <stdio.h> -int main() +extern int foo(char* exec); + +int main(int argc, char* argv[]) { - return foo(); + printf("Started with: %d arguments\n", argc); + return foo(argv[0]); } |