MantisBT - CMake
View Issue Details
0014268CMakeCMakepublic2013-07-03 12:152013-12-02 08:51
Stephen Kelly 
Brad King 
normalminoralways
closedfixed 
CMake-2-6 
CMake 2.8.12CMake 2.8.12 
0014268: Setting CMAKE_CXX_FLAGS can break check_cxx_compiler_flag
cmake_minimum_required(VERSION 2.8)
project(Foo)

# As done by Tests/IncludeDirectories. Comment out to fix:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \"-I${CMAKE_BINARY_DIR}/Flags\"")

include(CheckCXXCompilerFlag)
check_cxx_compiler_flag(-W HAS_DASH_W)
message("HAS_DASH_W: ${HAS_DASH_W}")
if (NOT HAS_DASH_W)
  message("OUTPUT: ${OUTPUT}")
endif()



stephen@hal:~/dev/src/playground/cmake/build{master}$ cmake ..
-- The C compiler identification is GNU 4.7.3
-- The CXX compiler identification is GNU 4.7.3
-- Check for working C compiler: /usr/lib/icecc/bin/cc
-- Check for working C compiler: /usr/lib/icecc/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/icecc/bin/c++
-- Check for working CXX compiler: /usr/lib/icecc/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Performing Test HAS_DASH_W
-- Performing Test HAS_DASH_W - Failed
HAS_DASH_W:
OUTPUT: Change Dir: /home/stephen/dev/src/playground/cmake/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec1180065894/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1180065894.dir/build.make CMakeFiles/cmTryCompileExec1180065894.dir/build
make[1]: Entering directory `/home/stephen/safe/dev/playground/cmake/build/CMakeFiles/CMakeTmp'
/home/stephen/dev/prefix/qtbase/kde/bin/cmake -E cmake_progress_report /home/stephen/dev/src/playground/cmake/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec1180065894.dir/src.cxx.o
/usr/lib/icecc/bin/c++ ;-I/home/stephen/dev/src/playground/cmake/build/Flags" -DHAS_DASH_W" -W -o CMakeFiles/cmTryCompileExec1180065894.dir/src.cxx.o -c /home/stephen/dev/src/playground/cmake/build/CMakeFiles/CMakeTmp/src.cxx
c++: fatal error: no input files
compilation terminated.
/bin/sh: 1: -I/home/stephen/dev/src/playground/cmake/build/Flags -DHAS_DASH_W: not found
make[1]: *** [CMakeFiles/cmTryCompileExec1180065894.dir/src.cxx.o] Error 127
make[1]: Leaving directory `/home/stephen/safe/dev/playground/cmake/build/CMakeFiles/CMakeTmp'
make: *** [cmTryCompileExec1180065894/fast] Error 2

-- Configuring done
-- Generating done
-- Build files have been written to: /home/stephen/dev/src/playground/cmake/build

I tested with CMake 2.6.4, which also has the bug.
No tags attached.
Issue History
2013-07-03 12:15Stephen KellyNew Issue
2013-07-03 16:13Brad KingNote Added: 0033472
2013-07-03 16:13Brad KingAssigned To => Brad King
2013-07-03 16:13Brad KingStatusnew => assigned
2013-07-03 16:13Brad KingTarget Version => CMake 2.8.12
2013-07-03 16:13Brad KingDescription Updatedbug_revision_view_page.php?rev_id=1209#r1209
2013-07-03 16:22Brad KingNote Added: 0033473
2013-07-03 16:22Brad KingStatusassigned => resolved
2013-07-03 16:22Brad KingResolutionopen => fixed
2013-07-03 16:22Brad KingFixed in Version => CMake 2.8.12
2013-12-02 08:51Robert MaynardNote Added: 0034632
2013-12-02 08:51Robert MaynardStatusresolved => closed

Notes
(0033472)
Brad King   
2013-07-03 16:13   
cmCoreTryCompile generates a CMakeLists.txt file that hard-codes the value of CMAKE_<LANG>_FLAGS but forgets to escape the value in the generated source. I have a fix I'm testing now.
(0033473)
Brad King   
2013-07-03 16:22   
Fixed and test added:

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=628be3c9 [^]
(0034632)
Robert Maynard   
2013-12-02 08:51   
Closing resolved issues that have not been updated in more than 4 months.