Bill Hoffman escreveu:
Can you give an example that shows the unwanted semicolons?

For sure. Here's the setup:

test.c:
int main() {}

CMakeLists.txt:
list(APPEND CMAKE_C_FLAGS -Wall)
add_executable(test test.c)

when we run make, we have:
gcc: no input files
/bin/sh: -Wall: not found
make[2]: ** [CMakeFiles/test.dir/test.o] Erro 127
make[1]: ** [CMakeFiles/test.dir/all] Erro 2
make: ** [all] Erro 2

If we do 'make VERBOSE=1' (thanks on this one...):

/usr/bin/cmake -H/home/rodolfo/src/tst -B/home/rodolfo/src/tst --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/rodolfo/src/tst/CMakeFiles 1
make -f CMakeFiles/Makefile2 all
make[1]: Entrando no diretório `/home/rodolfo/src/tst'
make -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/depend
make[2]: Entrando no diretório `/home/rodolfo/src/tst'
make[2]: Nada a ser feito para `CMakeFiles/test.dir/depend'.
make[2]: Saindo do diretório `/home/rodolfo/src/tst'
make -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/build
make[2]: Entrando no diretório `/home/rodolfo/src/tst'
/usr/bin/cmake -E cmake_progress_report /home/rodolfo/src/tst/CMakeFiles 1
[100%] Building C object CMakeFiles/test.dir/test.o
/usr/local/bin/gcc ;-Wall -o CMakeFiles/test.dir/test.o -c /home/rodolfo/src/tst/test.c
gcc: no input files
/bin/sh: -Wall: not found
make[2]: ** [CMakeFiles/test.dir/test.o] Erro 127
make[2]: Saindo do diretório `/home/rodolfo/src/tst'
make[1]: ** [CMakeFiles/test.dir/all] Erro 2
make[1]: Saindo do diretório `/home/rodolfo/src/tst'
make: ** [all] Erro 2

See... the compiler arguments gets a ';-Wall', which confuses the shell interpreter. A way to circumvent this would be deleting all leading space from CMAKE_C_FLAGS before calling add_executable, but I smell a bug somewhere.

Regards,
rod

_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to