diff options
Diffstat (limited to 'Tests/SubDir')
19 files changed, 215 insertions, 0 deletions
diff --git a/Tests/SubDir/AnotherSubdir/pair+int.int.c b/Tests/SubDir/AnotherSubdir/pair+int.int.c new file mode 100644 index 0000000..b7a6237 --- /dev/null +++ b/Tests/SubDir/AnotherSubdir/pair+int.int.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void pair_stuff() +{ + printf("Placeholder for a strange file in subdirectory\n"); +} diff --git a/Tests/SubDir/AnotherSubdir/pair_int.int.c b/Tests/SubDir/AnotherSubdir/pair_int.int.c new file mode 100644 index 0000000..b7a6237 --- /dev/null +++ b/Tests/SubDir/AnotherSubdir/pair_int.int.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void pair_stuff() +{ + printf("Placeholder for a strange file in subdirectory\n"); +} diff --git a/Tests/SubDir/AnotherSubdir/secondone.c b/Tests/SubDir/AnotherSubdir/secondone.c new file mode 100644 index 0000000..3e9e5af --- /dev/null +++ b/Tests/SubDir/AnotherSubdir/secondone.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void secondone() +{ + printf("Hello again\n"); +} diff --git a/Tests/SubDir/AnotherSubdir/testfromsubdir.c b/Tests/SubDir/AnotherSubdir/testfromsubdir.c new file mode 100644 index 0000000..34b6e7a --- /dev/null +++ b/Tests/SubDir/AnotherSubdir/testfromsubdir.c @@ -0,0 +1,14 @@ +#include <stdio.h> + +void secondone(); +void pair_stuff(); +void vcl_stuff(); + +int main() +{ + printf("Hello from subdirectory\n"); + secondone(); + pair_stuff(); + vcl_stuff(); + return 0; +} diff --git a/Tests/SubDir/CMakeLists.txt b/Tests/SubDir/CMakeLists.txt new file mode 100644 index 0000000..32aa93f --- /dev/null +++ b/Tests/SubDir/CMakeLists.txt @@ -0,0 +1,50 @@ +cmake_minimum_required (VERSION 2.6) +project(SUBDIR) + +subdirs(Executable EXCLUDE_FROM_ALL Examples) + +set(DEFINED_AFTER_SUBDIRS_COMMAND 42) + +write_file(${SUBDIR_BINARY_DIR}/ShouldBeHere "This file should exist.") +#WATCOM WMAKE does not support + in the name of a file! +if(WATCOM) + set(PLUS_NAME_FILES + AnotherSubdir/pair_int.int.c + vcl_algorithm_vcl_pair_double.foo.c) +else() + set(PLUS_NAME_FILES + AnotherSubdir/pair+int.int.c + vcl_algorithm+vcl_pair+double.foo.c) +endif() + +add_executable(TestFromSubdir + AnotherSubdir/testfromsubdir.c + AnotherSubdir/secondone + ${PLUS_NAME_FILES} + ) + +aux_source_directory(ThirdSubDir SOURCES) +if(WATCOM) + foreach(f ${SOURCES}) + if("${f}" STREQUAL "ThirdSubDir/pair+int.int1.c") + else() + set(SOURCES2 ${f} ${SOURCES2}) + endif() + endforeach() + set(SOURCES ${SOURCES2}) + set(SOURCES ${SOURCES} + vcl_algorithm_vcl_pair_double.foo.c) +else() + foreach(f ${SOURCES}) + if("${f}" STREQUAL "ThirdSubDir/pair_int.int1.c") + else() + set(SOURCES2 ${f} ${SOURCES2}) + message("${f}") + endif() + endforeach() + set(SOURCES ${SOURCES2}) + set(SOURCES ${SOURCES} + vcl_algorithm+vcl_pair+double.foo.c) +endif() +message("Sources: ${SOURCES}") +add_executable(TestWithAuxSourceDir ${SOURCES}) diff --git a/Tests/SubDir/Examples/CMakeLists.txt b/Tests/SubDir/Examples/CMakeLists.txt new file mode 100644 index 0000000..8cd7e24 --- /dev/null +++ b/Tests/SubDir/Examples/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required (VERSION 2.6) +project(Examples) +subdirs(example1 example2) diff --git a/Tests/SubDir/Examples/example1/CMakeLists.txt b/Tests/SubDir/Examples/example1/CMakeLists.txt new file mode 100644 index 0000000..8ec1c02 --- /dev/null +++ b/Tests/SubDir/Examples/example1/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required (VERSION 2.6) +project(example1) +add_executable(example1 example1.cxx) + +add_custom_command(TARGET example1 POST_BUILD + COMMAND "${CMAKE_COMMAND}" ARGS -E rm -f ${SUBDIR_BINARY_DIR}/ShouldBeHere + COMMENT "Remove marker file that should exist because this should not be run") diff --git a/Tests/SubDir/Examples/example1/example1.cxx b/Tests/SubDir/Examples/example1/example1.cxx new file mode 100644 index 0000000..3c48194 --- /dev/null +++ b/Tests/SubDir/Examples/example1/example1.cxx @@ -0,0 +1,7 @@ +#include <stdio.h> + +int main() +{ + printf("example1\n"); + return 0; +} diff --git a/Tests/SubDir/Examples/example2/CMakeLists.txt b/Tests/SubDir/Examples/example2/CMakeLists.txt new file mode 100644 index 0000000..388e33c --- /dev/null +++ b/Tests/SubDir/Examples/example2/CMakeLists.txt @@ -0,0 +1,2 @@ +project(example2) +add_executable(example2 example2.cxx) diff --git a/Tests/SubDir/Examples/example2/example2.cxx b/Tests/SubDir/Examples/example2/example2.cxx new file mode 100644 index 0000000..60ef3c9 --- /dev/null +++ b/Tests/SubDir/Examples/example2/example2.cxx @@ -0,0 +1,7 @@ +#include <stdio.h> + +int main() +{ + printf("example2\n"); + return 0; +} diff --git a/Tests/SubDir/Executable/CMakeLists.txt b/Tests/SubDir/Executable/CMakeLists.txt new file mode 100644 index 0000000..fbe338e --- /dev/null +++ b/Tests/SubDir/Executable/CMakeLists.txt @@ -0,0 +1,13 @@ +add_executable(test test.cxx) + +if (NOT DEFINED_AFTER_SUBDIRS_COMMAND) + message(FATAL_ERROR "DEFINED_AFTER_SUBDIRS_COMMAND should be defined.") +endif() + +string(FIND "${CMAKE_CURRENT_BINARY_DIR}" "SubDir/Executable" location) +string(LENGTH "${CMAKE_CURRENT_BINARY_DIR}" dirLength) +math(EXPR suffixLength "${dirLength} - ${location}") + +if (NOT suffixLength EQUAL 17) + message(FATAL_ERROR "CMAKE_CURRENT_BINARY_DIR does not end with \"SubDir/Executable\"") +endif() diff --git a/Tests/SubDir/Executable/test.cxx b/Tests/SubDir/Executable/test.cxx new file mode 100644 index 0000000..01d9280 --- /dev/null +++ b/Tests/SubDir/Executable/test.cxx @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> +#ifdef _WIN32 +# include <io.h> +#else +# include <unistd.h> +#endif + +// return true if the file exists +int FileExists(const char* filename) +{ +#ifdef _MSC_VER +# define access _access +#endif +#ifndef F_OK +# define F_OK 0 +#endif + if (access(filename, F_OK) != 0) { + return false; + } else { + return true; + } +} + +int main(int ac, char** av) +{ + if (ac <= 1) { + printf("Usage: %s <file>\n", av[0]); + return 1; + } + if (!FileExists(av[1])) { + printf("Missing file %s\n", av[1]); + return 1; + } + if (FileExists(av[2])) { + printf("File %s should be in subdirectory\n", av[2]); + return 1; + } + printf("%s is not there! Good.", av[2]); + printf("%s is there! Good.", av[1]); + return 0; +} diff --git a/Tests/SubDir/ThirdSubDir/pair+int.int1.c b/Tests/SubDir/ThirdSubDir/pair+int.int1.c new file mode 100644 index 0000000..b7a6237 --- /dev/null +++ b/Tests/SubDir/ThirdSubDir/pair+int.int1.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void pair_stuff() +{ + printf("Placeholder for a strange file in subdirectory\n"); +} diff --git a/Tests/SubDir/ThirdSubDir/pair_int.int1.c b/Tests/SubDir/ThirdSubDir/pair_int.int1.c new file mode 100644 index 0000000..b7a6237 --- /dev/null +++ b/Tests/SubDir/ThirdSubDir/pair_int.int1.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void pair_stuff() +{ + printf("Placeholder for a strange file in subdirectory\n"); +} diff --git a/Tests/SubDir/ThirdSubDir/pair_p_int.int1.c b/Tests/SubDir/ThirdSubDir/pair_p_int.int1.c new file mode 100644 index 0000000..95a66ee --- /dev/null +++ b/Tests/SubDir/ThirdSubDir/pair_p_int.int1.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void pair_p_stuff() +{ + printf("Placeholder for another strange file in subdirectory\n"); +} diff --git a/Tests/SubDir/ThirdSubDir/testfromauxsubdir.c b/Tests/SubDir/ThirdSubDir/testfromauxsubdir.c new file mode 100644 index 0000000..d162084 --- /dev/null +++ b/Tests/SubDir/ThirdSubDir/testfromauxsubdir.c @@ -0,0 +1,16 @@ +#include <stdio.h> + +void secondone(); +void pair_stuff(); +void pair_p_stuff(); +void vcl_stuff(); + +int main() +{ + printf("Hello from subdirectory\n"); + secondone(); + pair_stuff(); + pair_p_stuff(); + vcl_stuff(); + return 0; +} diff --git a/Tests/SubDir/ThirdSubDir/thirdone.c b/Tests/SubDir/ThirdSubDir/thirdone.c new file mode 100644 index 0000000..3e9e5af --- /dev/null +++ b/Tests/SubDir/ThirdSubDir/thirdone.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void secondone() +{ + printf("Hello again\n"); +} diff --git a/Tests/SubDir/vcl_algorithm+vcl_pair+double.foo.c b/Tests/SubDir/vcl_algorithm+vcl_pair+double.foo.c new file mode 100644 index 0000000..a0c60f7 --- /dev/null +++ b/Tests/SubDir/vcl_algorithm+vcl_pair+double.foo.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void vcl_stuff() +{ + printf("Placeholder for a file with strange name\n"); +} diff --git a/Tests/SubDir/vcl_algorithm_vcl_pair_double.foo.c b/Tests/SubDir/vcl_algorithm_vcl_pair_double.foo.c new file mode 100644 index 0000000..a0c60f7 --- /dev/null +++ b/Tests/SubDir/vcl_algorithm_vcl_pair_double.foo.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void vcl_stuff() +{ + printf("Placeholder for a file with strange name\n"); +} |