Q: What makes you think there is a problem in Tests/CMakeLists.txt? A: Certainly the "problem" could exist in any of the myriad of files that get processed as a result of the Tests/CMakeLists.txt file, but I base my hypothesis on the following MESSAGE statements which I added to the main CMakeLists.txt file:
MESSAGE( STATUS "CMAKELISTS.TXT Marker 17 add_subdirectory(Tests)" ) add_subdirectory(Tests) MESSAGE( STATUS "CMAKELISTS.TXT Marker 18") And when I execute the configure script (or manually execute the equivalent CMake execution at the tail end of the bootstrap) I see the following: -- Marker 16g add_subdirectory(Utilities) -- CMAKELISTS.TXT Marker 17 add_subdirectory(Tests) -- if(DEFINED ENV{HOME} AND NOT CTEST_NO_TEST_HOME) ==> TRUE <<CUT> And NEVER see the "CMAKELISTS.TXT Marker 18") appear in the output... so it "enters" the statement: add_subdirectory(Tests) on a "one-way ticket" (meaning it appears to never return to the parsing/calling CMakeLists.txt file) > Does anyone know where (specifically) I should investigate to > determine where the Makefile itself should get generated? > What files are generated in the build tree? For the moment skipping this question in lieu of pursuing your suggestion of the results of using the bootstrapped CMake to configure a simple project further (below) The toplevel makefile is created here: void cmGlobalUnixMakefileGenerator3::WriteMainCMakefile() But there are lots of other files that get created. One thing you could try is to use the bootstrapped cmake to configure a more simple project. Something like: project(foo) add_library(foo foo.c) foo.c can be an empty file. Does the bootstrapped cmake work on that project? Initially I feared that I would have to answer "No", but after some further excavation I did make some significant progress (which probably also reveals some things that still, not surprisingly, need more tweaking). ITAN1* cmake "-DCMAKE_BOOTSTRAP=1" CMake Error: Error in cmake code at /JAY/CMAKE/CMakeLists.txt:1: Parse error. Expected a newline, got identifier with text "add_library". -- Configuring incomplete, errors occurred! ITAN1* d Directory JAY:[cmake] CMakeCache.txt;1 CMakeFiles.DIR;1 cmakelists.txt;5 foo.c;1 After beating my head on the desk for a while... I finally decided to beat the cmakelists.txt file instead (force the file structure on the file - thank you OpenVMS for defaulting to CRLF) and after that I managed to get the following result: ITAN1* ty *.* JAY:[cmake]cmakelists.txt;10 project(foo) add_library(foo foo.c) JAY:[cmake]foo.c;3 #include<stdio.h> main() { printf("Hello World"); } ITAN1* I did try my level-headed best to get this to work from the OpenVMS DCL prompt directly, but (at the moment) without success. That said... from the GNV Bash prompt I did (with some additional switch definitions) get it to generate the Makefile: So taking my simple "hello world" project files and copying them to a clean directory: ITAN1* create/dir jay:[cmake_simple_test] ITAN1* copy foo.c,cmakelists.txt jay:[cmake_simple_test]/log %COPY-S-COPIED, JAY:[cmake]foo.c;3 copied to JAY:[cmake_simple_test]foo.c;3 (1 block) %COPY-S-COPIED, JAY:[cmake]cmakelists.txt;10 copied to JAY:[cmake_simple_test]cmakelists.txt;10 (1 block) %COPY-S-NEWFILES, 2 files created ITAN1* set default jay:[cmake_simple_test] JAY:[CMAKE_SIMPLE_TEST] ITAN1* dir Directory JAY:[cmake_simple_test] cmakelists.txt;10 foo.c;3 Total of 2 files. And switching to the GNV Bash shell it ran (in MY opinion) very cleanly, though I did ultimately determine that I had to manually define the CMAKE_C_COMPILER variable in the command line): ITAN1* bash bash-4.3$ /PRJ_ROOT/CMAKE-3_3_2/BOOTSTRAP_CMK/CMAKE -DCMAKE_BOOTSTRAP=1 -DCMAKE_C_COMPILER=/bin/cc -- The C compiler identification is unknown -- The CXX compiler identification is unknown -- Check for working C compiler: /bin/cc -- Check for working C compiler: /bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /bin/CC -- Check for working CXX compiler: /bin/CC -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Configuring done -- Generating done -- Build files have been written to: /JAY/CMAKE_SIMPLE_TEST bash-4.3$ ls CMakeCache.txt CMakeFiles Makefile cmake_install.cmake cmakelists.txt foo.c Dropping back to the DCL prompt you can see it has created quie a few files: ITAN1* dir [...] Directory JAY:[cmake_simple_test] CMakeCache.txt;1 CMakeFiles.DIR;1 cmakelists.txt;10 cmake_install.cmake;1 foo.c;3 Makefile.;1 Total of 6 files. Directory JAY:[cmake_simple_test.CMakeFiles] 3^.3^.2.DIR;1 cmake.check_cache;2 cmake.check_cache;1 CMakeDirectoryInformation.cmake;1 CMakeError.log;1 CMakeOutput.log;1 CMakeTmp.DIR;1 foo_dir.DIR;1 Makefile.cmake;1 Makefile2.;1 progress.marks;1 TargetDirectories.txt;1 Total of 12 files. Directory JAY:[cmake_simple_test.CMakeFiles.3^.3^.2] CMakeCCompiler.cmake;1 CMakeCXXCompiler.cmake;1 CMakeDetermineCompilerABI_C.bin;1 CMakeDetermineCompilerABI_CXX.bin;1 CMakeSystem.cmake;1 CompilerIdC.DIR;1 CompilerIdCXX.DIR;1 Total of 7 files. Directory JAY:[cmake_simple_test.CMakeFiles.3^.3^.2.CompilerIdC] cc_temp9dedd1.;1 cc_temp9df5d2.;1 CMakeCCompilerId.c;1 Total of 3 files. Directory JAY:[cmake_simple_test.CMakeFiles.3^.3^.2.CompilerIdCXX] cc_temp9df5d5.;1 cc_temp9dfdd7.;1 CMakeCXXCompilerId.cpp;1 Total of 3 files. Directory JAY:[cmake_simple_test.CMakeFiles.foo_dir] build.make;1 cmake_clean.cmake;1 cmake_clean_target.cmake;1 depend.make;1 DependInfo.cmake;1 flags.make;1 progress.make;1 Total of 7 files. Grand total of 6 directories, 38 files. Switching, yet again, back to the GNV Bash shell, the makefile does process without HORRIBLE errors, but the make does only create the file libfoo.a: ITAN1* bash bash-4.3$ make Scanning dependencies of target foo [-50%] Building C object CMakeFiles/foo_dir/foo.c.o [ 0%] Linking C static library libfoo.a [ 0%] Built target foo bash-4.3$ ls CMakeCache.txt CMakeFiles Makefile cmake_install.cmake cmakelists.txt foo.c libfoo.a I wanted to send this reply back now, but will do some further investigation into the "real" build... Among the things I will try: Interrupting/preventing the automatic execution of the bootstrapped CMake in the end of the bootstrap script and then try to execute it from the shell prompt using the same basic switches I used for the "simple" project above. JayC -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake