[CMake] $<TARGET_FILE:tgt> in the add_custom_command()
Kozlovskiy, Alexey
Alexey_Kozlovskiy at mentor.com
Wed Feb 15 09:00:08 EST 2012
Hi,
Thanks for your explanation. I will choose a different project name to avoid this issue.
Thanks again!
Regards,
Alexey
-----Original Message-----
From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf Of Michael Wild
Sent: Tuesday, February 14, 2012 7:49 PM
To: cmake at cmake.org
Subject: Re: [CMake] $<TARGET_FILE:tgt> in the add_custom_command()
On 02/14/2012 04:36 PM, aaron.meadows at thomsonreuters.com wrote:
> *Looks like '+' is not a valid character for the target name. *
>
> * *
>
> *Specifically, cmGeneratorExpression.cxx does not have it as part of
> the regular expression to match target names: (line 23 on) *
>
> * *
>
> * *
>
> this->TargetInfo.compile("^\\$<TARGET"
>
> "(|_SONAME|_LINKER)" // File with what purpose?
>
> "_FILE(|_NAME|_DIR):" // Filename component.
>
> "([A-Za-z0-9_.-]+)" // Target name.
>
> ">$");
>
> * *
>
> *(In case you're unfamiliar with regular expressions, that + is just
> to denote 1 or more of the things between the [ and ] . ) *
>
> * *
>
> *I tried adding + to that list, but I'm not sure how (if it's
> possible) to escape it (and it resulted in a regular expression
> compile error (runtime)). I'd suggest using something else instead of
> a + in your target name. *
>
> * *
>
> *Aaron Meadows*
>
> * *
>
> *From:*cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] *On
> Behalf Of *Kozlovskiy, Alexey
> *Sent:* Tuesday, February 14, 2012 5:38 AM
> *To:* cmake at cmake.org
> *Subject:* [CMake] $<TARGET_FILE:tgt> in the add_custom_command()
>
>
>
> Hi,
>
>
>
> If the project name has a symbols "-" or "+" the $<TARGET_FILE:tgt> in
> the add_custom_command() return Error: "Error evaluating generator
> expression"
>
>
>
> For example:
>
> SET ( PROJECT_NAME "00010-Liquid+Gas_as_capture " )
>
> set ( SRCS_MAIN_CPT main.c )
>
> add_executable ( ${ PROJECT_NAME } ${SRCS_MAIN_CPT} )
>
>
>
> add_custom_command ( TARGET ${ PROJECT_NAME } POST_BUILD
>
> COMMAND "$<TARGET_FILE:${
> PROJECT_NAME }>"
>
> ARGS "$<TARGET_FILE_DIR:${
> PROJECT_NAME }>/110.cnf"
>
> COMMENT "Running cpt.exe..."
>
>
>
> )
>
>
>
> When I run the CMake I received the following error:
>
>
>
> "CMake Error at problems.rt.Cmake:114 (add_custom_command):
>
> Error evaluating generator expression:
>
> $<TARGET_FILE:00010-Liquid+Gas_as_capture>
>
> Expression syntax not recognized."
>
>
>
> Is this a bug or some syntax limitation?
>
>
>
> Regards,
>
> Alexey
As a work-around use a different target name which is "clean" and then use the OUTPUT_NAME target property to get the desired file name.
Michael
--
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
More information about the CMake
mailing list