You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Ben Pracht <bp...@nc.rr.com> on 2006/02/21 18:05:06 UTC
Trying to escape quote character in cpptasks type (repost)
I'm trying to pass in a macro define to the command line to define the
level of code being used. Something like
gcc -o objname.o source.c -DFIXLVL=\"FEB 17 2006\"
the code does something like:
static const char mszFixLvl[] = " " __FILE__ " at " FIXLVL " on "
__DATE__ " at " __TIME__ " ";
so the value of FIXLVL must have quotes at the time preprocessing begins
and cannot have been stripped off by ant, cpptasks, or any other thing
in between.
I'm using cpptasks 1.0b3, ant 1.6.5.
I've tried
<defineset><define name="FIXLVL" value=""FEB 17
2006""/></defineset>
and
<compilerarg value="-D"/><compilerarg value="FIXLVL="FEB 17
2006""/>
I've even tried defining the fix level in a property, and then using the
property name in the defineset value, but it was too smart for that.
How can I force this thing to listen to me?
Thanks,
Ben
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org
Re: Trying to escape quote character in cpptasks type (repost)
Posted by Ben Pracht <bp...@nc.rr.com>.
Tommy Nordgren wrote:
>
> On 21 feb 2006, at 18.05, Ben Pracht wrote:
>
>> I'm trying to pass in a macro define to the command line to define
>> the level of code being used. Something like
>>
>> gcc -o objname.o source.c -DFIXLVL=\"FEB 17 2006\"
>>
>> the code does something like:
>> static const char mszFixLvl[] = " " __FILE__ " at " FIXLVL " on "
>> __DATE__ " at " __TIME__ " ";
>>
>> so the value of FIXLVL must have quotes at the time preprocessing
>> begins and cannot have been stripped off by ant, cpptasks, or any
>> other thing in between.
>>
>> I'm using cpptasks 1.0b3, ant 1.6.5.
>>
>> I've tried
>> <defineset><define name="FIXLVL" value=""FEB 17 2006""/></
>> defineset>
>>
>> and
>>
>> <compilerarg value="-D"/><compilerarg value="FIXLVL="FEB 17
>> 2006""/>
>>
>> I've even tried defining the fix level in a property, and then using
>> the property name in the defineset value, but it was too smart for that.
>>
>> How can I force this thing to listen to me?
>>
>> Thanks,
>> Ben
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>> For additional commands, e-mail: user-help@ant.apache.org
>>
> Try value="'FIXLVL="FEB 17 2006"'"
>
> That is - put single quotes immediately inside the outer double quotes,
> to prevent the inner quotes from being stripped off by the shell.
>
> "Home is not where you are born, but where your heart finds peace" -
> Tommy Nordgren, "The dying old crone"
Thanks, but it told me it can't handle single quotes nested in double
quotes. FWIW, it's Windows using gcc under Cygwin. Here's the output:
Apache Ant version 1.6.5 compiled on June 2 2005
Setting ro project property: ant.file -> C:\Documents and
Settings\bpracht\eclipse\liblogwrtB\build.xml
Buildfile: C:\Documents and Settings\bpracht\eclipse\liblogwrtB\build.xml
+Datatype cc net.sf.antcontrib.cpptasks.CCTask
+Datatype compiler net.sf.antcontrib.cpptasks.CompilerDef
+Datatype defineset net.sf.antcontrib.cpptasks.types.DefineSet
Adding reference: ant.projectHelper
Adding reference: ant.parsing.context
Adding reference: ant.targets
parsing buildfile C:\Documents and
Settings\bpracht\eclipse\liblogwrtB\build.xml with URI =
file:///C:/Documents%20and%20Settings/bpracht/eclipse/liblogwrtB/build.xml
Setting ro project property: ant.project.name -> logwriter
Adding reference: logwriter
Setting ro project property: ant.file.logwriter -> C:\Documents and
Settings\bpracht\eclipse\liblogwrtB\build.xml
Project base dir set to: C:\Documents and
Settings\bpracht\eclipse\liblogwrtB
+Target:
+Target: defineMSVCCompiler
Adding reference: base-msvc-compiler
Adding reference: base-msvc-linker
+Target: createDirectories
+Target: logwrtB
+Target: all
Setting project property: use-debug -> true
Setting project property: outputdir -> bin
Setting project property: sourcedir -> src
Adding reference: eclipse.ant.targetVector
Build sequence for target(s) `logwrtB' is [createDirectories, logwrtB]
Complete build sequence is [createDirectories, logwrtB, all,
defineMSVCCompiler, ]
createDirectories:
logwrtB:
Setting project property: fixlevel -> \"test\"
[echo] fixlevel = z\"test\"z
Could not load a dependent class
(com/sun/media/jai/codec/FileSeekableStream) for type image
Could not load a dependent class (com/jcraft/jsch/UserInfo) for type sshexec
Could not load a dependent class (com/jcraft/jsch/UserInfo) for type scp
Could not load a dependent class (jdepend/xmlui/JDepend) for type jdepend
Could not load a dependent class (junit/framework/Test) for type junit
ConditionalFileSet: Setup scanner in dir C:\Documents and
Settings\bpracht\eclipse\liblogwrtB\src with patternSet{ includes:
[logwrt1.c] excludes: [] }
[cc] 1 total files to be compiled.
[cc] BP-Command @@[Ljava.lang.String;@4ecfdd@@
BUILD FAILED
C:\Documents and Settings\bpracht\eclipse\liblogwrtB\build.xml:57: Can't
handle single and double quotes in same argument
at
org.apache.tools.ant.types.Commandline.quoteArgument(Commandline.java:337)
at org.apache.tools.ant.types.Commandline.toString(Commandline.java:367)
at net.sf.antcontrib.cpptasks.CUtil.runCommand(CUtil.java:350)
at
net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler.runCommand(CommandLineCompiler.java:430)
at
net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler.compile(CommandLineCompiler.java:200)
at
net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration.compile(CommandLineCompilerConfiguration.java:132)
at net.sf.antcontrib.cpptasks.CCTask.execute(CCTask.java:616)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
at
org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
at
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
at
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
Total time: 2 seconds
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org
Re: Trying to escape quote character in cpptasks type (repost)
Posted by Ben Pracht <bp...@nc.rr.com>.
Tommy Nordgren wrote:
>
> On 21 feb 2006, at 18.05, Ben Pracht wrote:
>
>> I'm trying to pass in a macro define to the command line to define
>> the level of code being used. Something like
>>
>> gcc -o objname.o source.c -DFIXLVL=\"FEB 17 2006\"
>>
>> the code does something like:
>> static const char mszFixLvl[] = " " __FILE__ " at " FIXLVL " on "
>> __DATE__ " at " __TIME__ " ";
>>
>> so the value of FIXLVL must have quotes at the time preprocessing
>> begins and cannot have been stripped off by ant, cpptasks, or any
>> other thing in between.
>>
>> I'm using cpptasks 1.0b3, ant 1.6.5.
>>
>> I've tried
>> <defineset><define name="FIXLVL" value=""FEB 17 2006""/></
>> defineset>
>>
>> and
>>
>> <compilerarg value="-D"/><compilerarg value="FIXLVL="FEB 17
>> 2006""/>
>>
>> I've even tried defining the fix level in a property, and then using
>> the property name in the defineset value, but it was too smart for that.
>>
>> How can I force this thing to listen to me?
>>
>> Thanks,
>> Ben
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>> For additional commands, e-mail: user-help@ant.apache.org
>>
> Try value="'FIXLVL="FEB 17 2006"'"
>
> That is - put single quotes immediately inside the outer double quotes,
> to prevent the inner quotes from being stripped off by the shell.
>
> "Home is not where you are born, but where your heart finds peace" -
> Tommy Nordgren, "The dying old crone"
Thanks, but it told me it can't handle single quotes nested in double
quotes. FWIW, it's Windows using gcc under Cygwin. Here's the output:
Apache Ant version 1.6.5 compiled on June 2 2005
Setting ro project property: ant.file -> C:\Documents and
Settings\bpracht\eclipse\liblogwrtB\build.xml
Buildfile: C:\Documents and Settings\bpracht\eclipse\liblogwrtB\build.xml
+Datatype cc net.sf.antcontrib.cpptasks.CCTask
+Datatype compiler net.sf.antcontrib.cpptasks.CompilerDef
+Datatype defineset net.sf.antcontrib.cpptasks.types.DefineSet
Adding reference: ant.projectHelper
Adding reference: ant.parsing.context
Adding reference: ant.targets
parsing buildfile C:\Documents and
Settings\bpracht\eclipse\liblogwrtB\build.xml with URI =
file:///C:/Documents%20and%20Settings/bpracht/eclipse/liblogwrtB/build.xml
Setting ro project property: ant.project.name -> logwriter
Adding reference: logwriter
Setting ro project property: ant.file.logwriter -> C:\Documents and
Settings\bpracht\eclipse\liblogwrtB\build.xml
Project base dir set to: C:\Documents and
Settings\bpracht\eclipse\liblogwrtB
+Target:
+Target: defineMSVCCompiler
Adding reference: base-msvc-compiler
Adding reference: base-msvc-linker
+Target: createDirectories
+Target: logwrtB
+Target: all
Setting project property: use-debug -> true
Setting project property: outputdir -> bin
Setting project property: sourcedir -> src
Adding reference: eclipse.ant.targetVector
Build sequence for target(s) `logwrtB' is [createDirectories, logwrtB]
Complete build sequence is [createDirectories, logwrtB, all,
defineMSVCCompiler, ]
createDirectories:
logwrtB:
Setting project property: fixlevel -> \"test\"
[echo] fixlevel = z\"test\"z
Could not load a dependent class
(com/sun/media/jai/codec/FileSeekableStream) for type image
Could not load a dependent class (com/jcraft/jsch/UserInfo) for type sshexec
Could not load a dependent class (com/jcraft/jsch/UserInfo) for type scp
Could not load a dependent class (jdepend/xmlui/JDepend) for type jdepend
Could not load a dependent class (junit/framework/Test) for type junit
ConditionalFileSet: Setup scanner in dir C:\Documents and
Settings\bpracht\eclipse\liblogwrtB\src with patternSet{ includes:
[logwrt1.c] excludes: [] }
[cc] 1 total files to be compiled.
[cc] BP-Command @@[Ljava.lang.String;@4ecfdd@@
BUILD FAILED
C:\Documents and Settings\bpracht\eclipse\liblogwrtB\build.xml:57: Can't
handle single and double quotes in same argument
at
org.apache.tools.ant.types.Commandline.quoteArgument(Commandline.java:337)
at org.apache.tools.ant.types.Commandline.toString(Commandline.java:367)
at net.sf.antcontrib.cpptasks.CUtil.runCommand(CUtil.java:350)
at
net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler.runCommand(CommandLineCompiler.java:430)
at
net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler.compile(CommandLineCompiler.java:200)
at
net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration.compile(CommandLineCompilerConfiguration.java:132)
at net.sf.antcontrib.cpptasks.CCTask.execute(CCTask.java:616)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
at
org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
at
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
at
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
Total time: 2 seconds
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org
Re: Trying to escape quote character in cpptasks type (repost)
Posted by Tommy Nordgren <to...@chello.se>.
On 21 feb 2006, at 18.05, Ben Pracht wrote:
> I'm trying to pass in a macro define to the command line to define
> the level of code being used. Something like
>
> gcc -o objname.o source.c -DFIXLVL=\"FEB 17 2006\"
>
> the code does something like:
> static const char mszFixLvl[] = " " __FILE__ " at " FIXLVL " on "
> __DATE__ " at " __TIME__ " ";
>
> so the value of FIXLVL must have quotes at the time preprocessing
> begins and cannot have been stripped off by ant, cpptasks, or any
> other thing in between.
>
> I'm using cpptasks 1.0b3, ant 1.6.5.
>
> I've tried
> <defineset><define name="FIXLVL" value=""FEB 17 2006""/></
> defineset>
>
> and
>
> <compilerarg value="-D"/><compilerarg value="FIXLVL="FEB 17
> 2006""/>
>
> I've even tried defining the fix level in a property, and then
> using the property name in the defineset value, but it was too
> smart for that.
>
> How can I force this thing to listen to me?
>
> Thanks,
> Ben
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
Try value="'FIXLVL="FEB 17 2006"'"
That is - put single quotes immediately inside the outer double
quotes, to prevent the inner quotes from being stripped off by the
shell.
"Home is not where you are born, but where your heart finds peace" -
Tommy Nordgren, "The dying old crone"
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org