On Thu, Sep 16, 2010 at 7:40 PM, Ryan Pavlik <rpav...@iastate.edu> wrote: > Your "project" command should always be the first or second (after > cmake_minimum_required) command in your root CMakeLists.txt file, unless you > have a very good reason. > > Then, on the topic of definitions, this is all you need: > add_definitions("-DLIBRARY_NAME=\"${YOUR_CMAKE_VAR_WITH_LIB_NAME}\"") > before you add your target (add_library, etc) - CMake will automatically > pull the var=value part out, and do quoting appropriate for your compiler. > see > also: http://cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:COMPILE_DEFINITIONS (for > details and/or another way to achieve the same result, but in a more
okay that's wonderful thanks; AND doesn't require -D like add_definitions... > fine-grained, per-target way that probably is appealing given your goal) > I was hoping that there was an easy solution - hope this helps! > Ryan > On Thu, Sep 16, 2010 at 8:42 PM, J Decker <d3c...@gmail.com> wrote: >> >> On Thu, Sep 16, 2010 at 6:30 PM, Ryan Pavlik <rpav...@iastate.edu> wrote: >> > Why are you trying to do this before the project command? >> >> >> To result in a shorthand that I don't HAVE to copy and paste; because >> definition of compiler requirements for passing definitions that are >> string literals is lacking? >> >> >> You can set the >> > target name to be something different from the project name, and you can >> > even set the output name of the executable/library to be different than >> > what >> > would be automatically set by default from the target name. >> >> >> Sure... but I don't; so it would be a reasonable shorthand within this >> source domain. >> >> >> (I've done >> > this, to embed the platform into the code and/or output name) >> > My guess: you've done a lot of work with makefiles and the C >> > preprocessor. >> > It looks like you're overthinking it - CMake is a reasonably high-level >> > scripting language, not a macro language or preprocessor. >> >> >> Maybe :) That's really the question though - how is this not what I want? >> >> >> > Could you share a high-level intended behavior with the list so we might >> > be >> > able to give you a more satisfying answer? >> >> >> In the end, during compilation I want to define a 'variable' that IS >> the name of the library itself. That name is usually only passed to >> the linker. different compilers have different syntax for defining >> string literals like >> >> #define TARGET_NAME "MyLibrary.Dll" >> >> I don't want to define the name in two places, I want it to be >> definitively the project name, because why would it be any other name >> in a new development? >> >> gcc[ld] -DTARGET_NAME="\"libsack.so\"" -o libsack.so <sources> >> >> wcc[wlink] -DTARGET_NAME="libsack.so" -o sack.dll <sources> >> >> /* I'm not sure about this one... it might be like gcc, but it may be >> version dependant also */ >> mc[link] -DTARGET_NAME="libsack.so" -o sack.dll <sources> >> >> Since there is no definition in CMAKE for the quote to use to define a >> string literal to a definition... >> >> I think is the syntax to define a macro on the command line that has >> spaces, not strings... really probably openwatcom is broken. >> >> "-DOtherMacro 1+2=3" >> _______________________________________________ >> 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 > > > > -- > Ryan Pavlik > HCI Graduate Student > Virtual Reality Applications Center > Iowa State University > > rpav...@iastate.edu > http://academic.cleardefinition.com > Internal VRAC/HCI Site: http://tinyurl.com/rpavlik > _______________________________________________ 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