I had more luck with using... SET (CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> /fo<OBJECT> <SOURCE> ${your user flags here}") # and maybe... SET(CMAKE_RC_COMPILER "rc") # then... ENABLE_LANGUAGE(RC)
but then I couldn't pass the .res file to the linker with appropriate option (well I guess maybe I can) On Sun, Mar 7, 2010 at 3:02 PM, Tony Bridges <nabrid...@gmail.com> wrote: > Hello all, > > I'm hopeful that someone can point me in the correct direction to solve a > problem I'm having setting up arguments into the resource compiler. > > I am attempting to add a custom rule to a CMakeLists.txt file to allow me to > set a specific flag for one file in the SOURCES list. I'm assuming the > correct approach here is to create a custom command and specify the > particular flag I want on the command line, but I can't make it work. > > project (cm_BBS) > ... > set (SOURCES ... BBS.rc) > ... > add_custom_command( OUTPUT ${PROJECT_BINARY_DIR}/cm_BBS.res > DEPENDS BBS.rc > COMMAND ${CMAKE_RC_COMPILER} ${CMAKE_CXX_FLAGS} > -D__USER__=\"$(username)\" > ) > > > to replace the behavior of the generated rule from the SOURCES line. > cmake completely ignores this and uses the default rule. > > When I attempt removing the RC file from the SOURCES list, then no rule is > generated. > And I'm unclear on how to add a dependency that is not a top level > dependency to the project using add_dependencies. add_executable takes > SOURCES; do these automatically bind to their generated outputs ? If so, > that might be the key. > > The only solution other that comes to mind is to move this source file into > a separate directory and mod the CXX_FLAGS in isolation, but that's really a > hack and would mess up my perforce merges. > > Can someone tell me the right way to approach this ? > > As a side note, there's an interesting observation here. When I check the > generated output for the resource compiler, the output file is cm_BBS.res, > even though the input file is BBS.rc, so the resource compiler generation > seems to be picking up the project name rather than the actual source file > name. ( I tried it both ways in the custom rule; neither worked.) > > ALl this is necessary because, I cannot affect the CMAKE_RC_FLAGS > independently from the CMAKE_CXX_FLAGS. What works for the compiler (wrt > quotes) breaks the RC. Setting CMAKE_RC_FLAGS, which is all I really need > to do, has no impact at all on the build; it is ignored. issue #10119. > Also, note that the generated CmakeCache.txt file labels the CMAKE_RC_FLAGS > as a Fortran field, so the generated comment is misplaced. > > If anyone can offer me the benefit of their experience here, I'd greatly > appreciate it. > > My configuration : generating for VS 2005 from cmake 2.8, generated from the > 2.8.0 source distro, with the MIDL quoting patch applied. > > cheers > /t > > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake