cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JhaWen
Level 4

-d option for command line ISCmdBld.exe

I want to provide a preprocessor define to my script using the -d option of ISCmdBld.exe
I do like this:
ISCmdBld.exe -d RIGISTER=1 -p……
but it is said that:Can't define symbol using RIGISTER=1

I don't know Is this the correct way to provide a preprocessor define?
any hint will be appreciate ?thanks
Labels (1)
0 Kudos
(6) Replies
hidenori
Level 17

I am not able to reproduce it using a Basic MSI project and InstallScript project in IS 2008. I am wondering if the problem is reproduced when you create a new project.
0 Kudos
JhaWen
Level 4

I created one new basic MIS with InstallScript project
and try this command:
IsCmdBld.exe -p test.ism -d REGISTER=1

InstallShield (R)
Release Builder
Copyright 1997-2006 Macrovision Europe Ltd.
and/or Macrovision Corporation.
All Rights Reserved.

Build started at 29 2007 10:39

Can't define symbol using REGISTER=1
InstallShield Script Compiler
Version 14.0.0.162
Copyright 1997-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All
Rights Reserved.

Compiling...
Setup.Rul
Linking...
Setup.inx - 0 error(s), 0 warning(s)

still got the problem:"Can't define symbol using REGISTER=1"
0 Kudos
JhaWen
Level 4

Hi,I found that is actually works in the script
Its just one messager
thanks again
0 Kudos
soulMiner
Level 3

Here is what I have found:

I'm building a project from the commandline using ISCmdbld.exe.

The project that I'm building is an InstallScript project built with IS2008.

My Command line looks like this:
ISCmdbld.exe -p  -d CLIENT=2.0.0.1 -r "Release 2"


The output of that command says:

Building Release: Release 2
Can't define symbol using CLIENT=2.0.0.1
0 Kudos
soulMiner
Level 3

It seems that my problem was that when specifying a string as a value for a preprocessor definition, the value must be enclosed in single quotes.

This only seems to apply on the command line where
-d VARIABLE='value'
is concerned. This is also true when defining a parameter variable using the Release builder.

The problem is that the help file doesn't have enough examples on how to use the ISCmdBuild.exe with the -d switch.

The command line builder with the symbol complaint below doesn't seem to carry any adverse effect into my ability to build or generate my desired values using the command line.

It would also be helpful to the other folks in this thread that -d is not the same as -z, but list that explaination under the -d help description since it is higher in the document alphabetically.



soulMiner wrote:
Here is what I have found:

I'm building a project from the commandline using ISCmdbld.exe.

The project that I'm building is an InstallScript project built with IS2008.

My Command line looks like this:
ISCmdbld.exe -p  -d CLIENT=2.0.0.1 -r "Release 2"


The output of that command says:

Building Release: Release 2
Can't define symbol using CLIENT=2.0.0.1
0 Kudos
hidenori
Level 17

I confirmed that this is a bug. You should be able to define a preprocessor variable definition without specifying a value when it is used in a #ifdef statement. However, IsCmdBld.exe currently ignores it if you specify IsCmdBld /d MYVAL. I filed the work order #IOC-000066784 so that it will be fixed in a future release. For now, you can just ignore the "Can't define symbol" error.

As a side note, you need to specify a numeric value for a preprocessor variable definition that is used in a #if statement. I also filed the work order #IOC-000066785 so that it will be documented in a future release.

Thank you for reporting this.
0 Kudos