View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0012871CMakeCMakepublic2012-01-10 09:532012-07-09 06:52
ReporterSam Morris 
Assigned ToBrad King 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionduplicate 
PlatformOSOS Version
Product VersionCMake 2.8.7 
Target VersionFixed in Version 
Summary0012871: add_definitions adds flags to RC_DEFINES
DescriptionThe attached project tries to create an executable from a C++ file and a Windows resource script:

CMakeLists.txt contains:

    project(restest)
    add_definitions(-msse)
    add_executable(a a.cpp a_res.rc)

The build fails because -msse ends up in RC_DEFINES, which is passed to windres to compile the resource script.
Steps To Reproduce$ make VERBOSE=1
/usr/bin/cmake -H/home/sam/src/cmake/rc -B/home/sam/src/cmake/rc/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/sam/src/cmake/rc/build/CMakeFiles /home/sam/src/cmake/rc/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory `/home/sam/src/cmake/rc/build'
make -f CMakeFiles/a.dir/build.make CMakeFiles/a.dir/depend
make[2]: Entering directory `/home/sam/src/cmake/rc/build'
cd /home/sam/src/cmake/rc/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/sam/src/cmake/rc /home/sam/src/cmake/rc /home/sam/src/cmake/rc/build /home/sam/src/cmake/rc/build /home/sam/src/cmake/rc/build/CMakeFiles/a.dir/DependInfo.cmake --color=
make[2]: Leaving directory `/home/sam/src/cmake/rc/build'
make -f CMakeFiles/a.dir/build.make CMakeFiles/a.dir/build
make[2]: Entering directory `/home/sam/src/cmake/rc/build'
/usr/bin/cmake -E cmake_progress_report /home/sam/src/cmake/rc/build/CMakeFiles 2
[ 50%] Building RC object CMakeFiles/a.dir/a_res.res
/usr/bin/i686-w64-mingw32-windres -O coff -msse /home/sam/src/cmake/rc/a_res.rc CMakeFiles/a.dir/a_res.res
/usr/bin/i686-w64-mingw32-windres: invalid option -- 'm'
Usage: /usr/bin/i686-w64-mingw32-windres [option(s)] [input-file] [output-file]
 The options are:
  -i --input=<file> Name input file
  -o --output=<file> Name output file
  -J --input-format=<format> Specify input format
  -O --output-format=<format> Specify output format
  -F --target=<target> Specify COFF target
     --preprocessor=<program> Program to use to preprocess rc file
     --preprocessor-arg=<arg> Additional preprocessor argument
  -I --include-dir=<dir> Include directory when preprocessing rc file
  -D --define <sym>[=<val>] Define SYM when preprocessing rc file
  -U --undefine <sym> Undefine SYM when preprocessing rc file
  -v --verbose Verbose - tells you what it's doing
  -c --codepage=<codepage> Specify default codepage
  -l --language=<val> Set language when reading rc file
     --use-temp-file Use a temporary file instead of popen to read
                               the preprocessor output
     --no-use-temp-file Use popen (default)
  -r Ignored for compatibility with rc
  @<file> Read options from <file>
  -h --help Print this help message
  -V --version Print version information
FORMAT is one of rc, res, or coff, and is deduced from the file name
extension if not specified. A single file name is an input file.
No input-file is stdin, default rc. No output-file is stdout, default rc.
/usr/bin/i686-w64-mingw32-windres: supported targets: pe-i386 pei-i386 elf32-i386 elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex
make[2]: *** [CMakeFiles/a.dir/a_res.res] Error 1
make[2]: Leaving directory `/home/sam/src/cmake/rc/build'
make[1]: *** [CMakeFiles/a.dir/all] Error 2
make[1]: Leaving directory `/home/sam/src/cmake/rc/build'
make: *** [all] Error 2
TagsNo tags attached.
Attached Filesgz file icon rc.tar.gz [^] (139,331 bytes) 2012-01-10 09:53

 Relationships
duplicate of 0012444closedBill Hoffman Starting with CMake 2.8.4 it passes invalid msse flag when compiling with MinGW 

  Notes
(0028234)
Michael Wild (reporter)
2012-01-10 10:10

add_definitions() should only be used to add preprocessor defines (-D or /D flag), not compiler flags. For this, use the variables CMAKE_<lang>_FLAGS and CMAKE_<lang>_FLAGS_<config> or the COMPILE_FLAGS and COMPILE_FLAGS_<config> properties.

IMHO if you encounter problems it would be preferable if you first contacted the mailing list to confirm the bug before filing a report. This would help keeping the user errors out of the bug tracker...
(0028235)
Sam Morris (reporter)
2012-01-10 10:14

Thanks for that. I will pass that advice on to the maintainers of the project I'm trying to build. FYI, this is probably a duplicate of http://public.kitware.com/Bug/view.php?id=12444. [^]
(0029949)
David Cole (manager)
2012-07-09 06:52

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

 Issue History
Date Modified Username Field Change
2012-01-10 09:53 Sam Morris New Issue
2012-01-10 09:53 Sam Morris File Added: rc.tar.gz
2012-01-10 10:10 Michael Wild Note Added: 0028234
2012-01-10 10:14 Sam Morris Note Added: 0028235
2012-01-10 13:54 Brad King Relationship added duplicate of 0012444
2012-01-10 13:54 Brad King Status new => resolved
2012-01-10 13:54 Brad King Resolution open => duplicate
2012-01-10 13:54 Brad King Assigned To => Brad King
2012-07-09 06:52 David Cole Note Added: 0029949
2012-07-09 06:52 David Cole Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team