View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0014268CMakeCMakepublic2013-07-03 12:152013-12-02 08:51
ReporterStephen Kelly 
Assigned ToBrad King 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product VersionCMake-2-6 
Target VersionCMake 2.8.12Fixed in VersionCMake 2.8.12 
Summary0014268: Setting CMAKE_CXX_FLAGS can break check_cxx_compiler_flag
Descriptioncmake_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.
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0033472)
Brad King (manager)
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 (manager)
2013-07-03 16:22

Fixed and test added:

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=628be3c9 [^]
(0034632)
Robert Maynard (manager)
2013-12-02 08:51

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2013-07-03 12:15 Stephen Kelly New Issue
2013-07-03 16:13 Brad King Note Added: 0033472
2013-07-03 16:13 Brad King Assigned To => Brad King
2013-07-03 16:13 Brad King Status new => assigned
2013-07-03 16:13 Brad King Target Version => CMake 2.8.12
2013-07-03 16:13 Brad King Description Updated
2013-07-03 16:22 Brad King Note Added: 0033473
2013-07-03 16:22 Brad King Status assigned => resolved
2013-07-03 16:22 Brad King Resolution open => fixed
2013-07-03 16:22 Brad King Fixed in Version => CMake 2.8.12
2013-12-02 08:51 Robert Maynard Note Added: 0034632
2013-12-02 08:51 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team