[CMake] Using a variable as a method name

David Cole david.cole at kitware.com
Fri Jun 1 11:22:09 EDT 2012


Not directly, but as a workaround, you could write that into a file, and
then include the file.

i.e.:

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/tmp.cmake" "BAR_${FOO}(arg1 arg2)")
include(${CMAKE_CURRENT_BINARY_DIR}/tmp.cmake)

You may need to do some quoting and/or escaping to get things working
depending on how complex arg1 and arg2 are in reality.

This sort of "eval" functionality has been requested (and denied ;-) before:

  http://public.kitware.com/Bug/view.php?id=4034
  http://public.kitware.com/Bug/view.php?id=11845


HTH,
David


On Fri, Jun 1, 2012 at 11:02 AM, LaViolette, Alan <
ALAVIOLETTE at overwatch.textron.com> wrote:

>  Hello****
>
> ** **
>
> I would like to call a method based on a variable name such as****
>
> ** **
>
> set( FOO “123”)****
>
> BAR_${FOO}(arg1 arg2)****
>
> ** **
>
> would do the same as****
>
> ** **
>
> BAR_123(arg1 arg2)****
>
> ** **
>
> Does any way exist to do this in CMake, such as a call() or eval() command?
> ****
>
> ** **
>
> ** **
>
> *--***
>
> *Alan LaViolette*****
>
> *Software Engineering Consultant*****
>
> OVERWATCH****
>
> *An Operating Unit of Textron Systems*****
>
> 21660 Ridgetop Circle, Suite 110**
>
> Sterling, VA 20166**
>
> Office: (703) 437-7651 x 2419**
>
> Fax: (703) 437-0039****
>
> *alaviolette at overwatch.textron.com* <alaviolette at overwatch.textron.com>***
> *
>
> www.overwatch.com****
>
> * *
>
> "WARNING: Documents that can be viewed, printed or retrieved from this
> E-Mail may contain technical data whose export is restricted by the Arms
> Export Control Act (Title 22, U.S.C., Sec 2751, et seq,) or the Export
> Administration Act of 1979, as amended, Title 50, U.S.C., App. 2401 et seq.
> and which may not be exported, released or disclosed to non-U.S. persons
> (i.e. persons who are not U.S. citizens or lawful permanent residents
> [“green card” holders]) inside or outside the United States, without first
> obtaining an export license.  Violations of these export laws are subject
> to severe civil, criminal and administrative penalties."****
>
> ** **
>
> --
>
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120601/43fff798/attachment.htm>


More information about the CMake mailing list