[CMake] Passing Macro Arguments to "configure_file"

David Cole david.cole at kitware.com
Wed Feb 4 10:04:43 EST 2009


There is no variable named "variable" inside your macro. There is sort of
like a "pre-processor token" that gets substituted in every place
${variable} is referenced as the macro is expanded for use. (Not exactly
alike, but very similar to the C pre-processor macro concept... (#define))

If you want a variable named the same as your macro parameter for use in
configure_file or other things that require actual variables, simply do this
inside your macro:
set(variable ${variable})


HTH,
David


On Wed, Feb 4, 2009 at 9:04 AM, Michael Jackson <mike.jackson at bluequartz.net
> wrote:

> Not sure what I am doing wrong but here is my problem.
>  I have a macro that takes a few arguments. Within the macro I am calling
> "configure_file" and in the file that gets configured I am using the values
> of the arguments. Unfortunately after the file is configured during cmake
> time the values are blank. Here is a concise test case.
>
>
> #---- CMakeLists.txt file Begin
> cmake_minimum_required(VERSION 2.6)
> macro(vartest variable)
>  message(STATUS "----------------------------------")
>  message(STATUS "variable: ${variable}")
>  SET (Test_Variable "${variable}/Test_Output.cmake")
>  CONFIGURE_FILE("Test.txt.in" "Test.txt" @ONLY IMMEDIATE)
> endmacro(vartest variable)
> set (target "myTarget")
> vartest(${target})
> #---- CMakeLists.txt file End
>
> # ---- Test.txt.in Begin
> variable = @variable@
> Test_Variable = @Test_Variable@
> # ---- Test. txt.in End
>
> The output I get from Cmake is:
> 509:[mjackson at Shepard-2:Build]$ cmake ../
> -- ----------------------------------
> -- variable: myTarget
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /Users/mjackson/Desktop/Test/Build
>
>
> and the txt file looks like this:
> variable =
> Test_Variable = myTarget/Test_Output.cmake
>
> Is this a bug or something I am doing wrong or am I just not understanding
> something basic about macros. (Probably the "dumb" part.. )
>
> Thanks for any help
> _________________________________________________________
> Mike Jackson                  mike.jackson at bluequartz.net
> BlueQuartz Software                    www.bluequartz.net
> Principal Software Engineer                  Dayton, Ohio
>
>
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090204/652dcf36/attachment.htm>


More information about the CMake mailing list