<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<font face="Helvetica, Arial, sans-serif">Thanks for your suggestion
Filipe.<br>
<br>
In my original email I didn't make it very clear that I have <b>multiple
</b>targets and I only want to add a symbol definition for a <b>specific</b>
target. From my understanding (and testing) the command ADD_DEFINITIONS
adds a definition for <b>all</b> targets in the project.<br>
<br>
I've decided to use CONFIGURE_FILE and explicitly declare #define
${MY_SYMBOL} which will be filled in at configuration time (rather than
build time).<br>
<br>
Thanks everyone.<br>
<br>
Dan<br>
<br>
</font><br>
Filipe Sousa wrote:
<blockquote cite="mid200604041014.24073.filipe@ipb.pt" type="cite">
  <pre wrap="">On Tuesday 04 April 2006 06:10, Dan Mueller wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Hi cmake users:

I am trying to use cmake to define a symbol so that I can use the #if
syntax in C++.

I have read the documentation for the SET_TARGET_PROPERTIES command and
it seems to me that there is a property called DEFINE_SYMBOL which sets
"... /a symbol that is defined when compiling C or C++ sources/"
(<a class="moz-txt-link-freetext" href="http://www.cmake.org/HTML/Documentation.html">http://www.cmake.org/HTML/Documentation.html</a>). However, when I use this
property it does *not *define the symbol. I am using CMake v2.2.3 with
Microsoft Visual Studio 7 .NET 2003 on a Win32 machine.

FYI I can get the LINK_FLAGS property to work, but not the DEFINE_SYMBOL...

Have I misunderstood something? Am I setting the property correctly? Any
help would be appreciated. My cmake file and source is below:

Start CMakeLists.txt ====================================================
# Add Project
PROJECT(TestMain)

# Setup output paths
SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin CACHE PATH "Single
output directory for building all libraries." FORCE)
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin CACHE PATH "Single
output directory for building all executables." FORCE)

# Add Executable
ADD_EXECUTABLE(TestMain TestMain.cxx)
*SET_TARGET_PROPERTIES(TestMain PROPERTIES DEFINE_SYMBOL "MY_SYMBOL")*
    </pre>
  </blockquote>
  <pre wrap=""><!---->
ADD_DEFINITIONS(-DMY_SYMBOL)

  </pre>
  <blockquote type="cite">
    <pre wrap="">TARGET_LINK_LIBRARIES(TestMain TestMain)
End CMakeLists.txt ====================================================

Start TestMain.cxx ====================================================
#include &lt;iostream&gt;

int main(int argc, char * argv[])
{
    #if (MY_SYMBOL)
        std::cout &lt;&lt; "MY_SYMBOL was defined." &lt;&lt; std::endl;
    #else
        std::cout &lt;&lt; "MY_SYMBOL was NOT defined." &lt;&lt; std::endl;
    #endif
}
End TestMain.cxx ====================================================

NOTE: TestMain.exe prints "MY_SYMBOL was NOT defined."

Regards,

Dan [<a class="moz-txt-link-abbreviated" href="mailto:d.mueller@qut.edu.au">d.mueller@qut.edu.au</a>]
    </pre>
  </blockquote>
  <pre wrap=""><!---->
fsousa@neptuno ~ $ cmake --help-command ADD_DEFINITIONS
cmake version 2.3-20060330
  ADD_DEFINITIONS
       Adds -D define flags to the command line of C and C++ compilers.

         ADD_DEFINITIONS(-DFOO -DBAR ...)

       Adds flags to command line of C and C++ compilers.  This command can
       be used to add any flag to a compile line, but the -D flag is accepted
       most C/C++ compilers.  Other flags may not be as portable.


  </pre>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
CMake mailing list
<a class="moz-txt-link-abbreviated" href="mailto:CMake@cmake.org">CMake@cmake.org</a>
<a class="moz-txt-link-freetext" href="http://www.cmake.org/mailman/listinfo/cmake">http://www.cmake.org/mailman/listinfo/cmake</a></pre>
</blockquote>
<br>
<div class="moz-signature">-- <br>
<font color="Gray">
Dan Mueller<br>
PhD Candidate (02562065)<br>
School of Engineering Systems (ES)<br>
Faculty of Built Environment and Engineering (BEE)<br>
Queensland University of Technology (QUT)<br>
CRICOS No: 00213J<br>
<br>
Email: <a class="moz-txt-link-abbreviated" href="mailto:d.mueller@qut.edu.au">d.mueller@qut.edu.au</a><br>
Phone: +617 3864 9124<br>
Mobile: +61 0401 451 850<br>
Room: Gardens Point S903.11<br>
</font>
</div>
</body>
</html>