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

Reply via email to