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 <
[email protected]> 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****
>
> *[email protected]* <[email protected]>***
> *
>
> 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
>
--

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

Reply via email to