Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Library : Other (not classified elsewhere) » umk got changed....
umk got changed.... [message #34729] Fri, 09 December 2011 04:22 Go to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Hello,

I just went to build a new release and my scripts don't work any more. Can anyone tell me what is now wrong with the following batch line please?


cd \AWSopenWind

c:\upp\umk trunk OpenWind MSC10x64 -a1ev ">PRO,GUI,MT,OCOE,CLIENT_WORP" d:\Probuilds\WORP\openWind64.exe


I get the error "Invalid build method"

I didn't need to cd into the correct folder before but that is fine. Am wondering what else has changed which means that what used to be a valid build method no longer works?

Nick

EDIT: ok if I add the path to the build method I can get it to recognize that but then it forgets where things like CtrlLib is and it never is able to understand the output directory. This was all working so beautifully before!! Who decided to fix it?

EDIT: I see in the release notes that umk is now platform independent. Is it possible to get updated accurate examples or documentation for how to use umk under Windows please?

EDIT: on further reflection this is clearly a bug in umk in version 4193. umk should know where it is and where CtrlLib is relative to it if it is in the default location. I will roll back to 3211 until it is fixed. I can switch back to 4193 as soon as either umk is fixed or that I understand how to use the new version.

[Updated on: Fri, 09 December 2011 06:05]

Report message to a moderator

Re: umk got changed.... [message #34731 is a reply to message #34729] Fri, 09 December 2011 08:03 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1758
Registered: August 2008
Location: Czech Republic
Senior Contributor

Hi Nick,

The documentation to umk was updated, just after the changes. See http://www.ultimatepp.org/app$ide$umk$en-us.html

On windows, you have to either specify paths to all nests
umk.exe path/to/MyApps:path/to/uppsrc MyPackage ...

OR
create a .var file to the directory where umk.exe resides (you can just copy it from theide directory).

The same holds for .bm files. You have to either specify full path, or copy the file to the same directory as umk.exe. This is because on windows there is no reliable way to locate the files. (On POSIX systems it is simpler, as we can look to the standard ~/.upp/umk and ~/.upp/theide directories).

Also, there '+' is now used instead of '>' preceding to flags.

Is this sufficient explanation?

Best regards,
Honza
Re: umk got changed.... [message #34733 is a reply to message #34731] Fri, 09 December 2011 08:11 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Quote:


Is this sufficient explanation?



well it fails to explain why it was decided to make it 100 times more complicated for no apparent gain but I guess I'm unlikely to get an answer on that one so I'll focus on why does the output path (which I fully specified) not get interpreted? How is that ":" sign used? Why is the build method not part of the syntax and and why isn't any of this in the documentation?

For starters Smile

Nick


[Updated on: Fri, 09 December 2011 08:36]

Report message to a moderator

Re: umk got changed.... [message #34737 is a reply to message #34733] Fri, 09 December 2011 09:26 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1758
Registered: August 2008
Location: Czech Republic
Senior Contributor

nixnixnix wrote on Fri, 09 December 2011 08:11

well it fails to explain why it was decided to make it 100 times more complicated for no apparent gain but I guess I'm unlikely to get an answer on that one so I'll focus on why does the output path (which I fully specified) not get interpreted? How is that ":" sign used? Why is the build method not part of the syntax and and why isn't any of this in the documentation?

For starters Smile

Nick

Well, lets get more answers Smile I wouldn't say it is 100x more complicated, just a little bit. But it now offers much bigger flexibility. The previous umk was just a tiny wrapper around theide, so it had access to all of its configuration files. But it needed them - now you can use it as a standalone builder, without any configuration at all, even on systems where theide is not installed at all. Another reason for the change is that the new umk is CLI only application, so it can be used easily in scripts, especially on remote systems. Also, it is now platform independant, as you already noticed. Shortly, there was a lot of trouble with the previous solution, so Mirek decided to write a better one.

The documentation says all of what I posted before (with the exception of build method, which is missing, probably accidentaly, it is present in the examples at the bottom, sorry about that). Maybe in little less clear wording, but it is there, including an example. It is no problem to improve it as we go, all we need is a feedback from user, like yours Wink .

Now for the detailed usage... Lets assume a few things, you will have to change the paths accordingly to your real situation:

- Your theide.exe is located at C:\upp\theide\theide.exe
- Your umk.exe is located at C:\upp\umk\umk.exe
- in TheIDE you have trunk assembly set up, in which OpenWind package exists
- in TheIde you have build method called MSC10x64

Then a simplest possible build script then would be:
copy /v /y C:\upp\MSC10x64.bm C:\upp\umk\MSC10xx64.bm
copy /v /y C:\upp\trunk.var C:\upp\umk\trunk.var
C:\umk\umk.exe trunk OpenWind MSC10x64 -a1ev +PRO,GUI,MT,OCOE,CLIENT_WORP d:\Probuilds\WORP\openWind64.exe

Note that I haven't tested this, as I don't have windows Wink It should work when launched from any directory.

Alternatively, if trunk assembly consists of (for example) paths "C:\project\trunk" and "C:\upp\uppsrc" than from C:\ you could launch single liner
C:\upp\umk\umk.exe project\trunk:upp\uppsrc OpenWind C:\upp\theide\MSC10x64.bm -a1ev +PRO,GUI,MT,OCOE,CLIENT_WORP d:\Probuilds\WORP\openWind64.exe

I'm not sure what would happen if you used absolute paths (e.g. C:\upp\...) with the ':' notation, but I think it would fail (possible bug).

Ready for next round of questions, shoot Smile

Honza
Re: umk got changed.... [message #34766 is a reply to message #34737] Sun, 11 December 2011 22:21 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Thanks Honza,

That is way better info. I had to roll back to meet a deadline but will roll forward the week after next and be sure to let you know if I run across any problems Smile

Thanks again,

Nick
Re: umk got changed.... [message #34802 is a reply to message #34766] Tue, 13 December 2011 01:23 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Hey Honza,

In the default Windows install, umk.exe is in the same directory as theide.exe and the .bm files and the .var files so as I understand what you wrote, my batch file should work without any modification. Also, that ":" I think should be a ";" no?

However, lets try a little harder and I'll try for once to stop being a whingeing Brit Smile . How about if I try something like

D:\Probuilds>c:\upp\umk.exe d:\AWSopenWind\trunk;c:\upp\uppsrc OpenWind c:\upp\MSC10x64 -a1ev +PRO,GUI,MT,OCOE,CLIENT_WORP d:\Probuilds\WORP\openWind64.exe


that ought to work right? We're not assuming anything now. All paths are provided. I think you're in for a surprise....

Inline assembly: D:\Probuilds\d;D:\AWSopenWind\trunk;c;D:\upp\uppsrc
Output directory: c:\upp\_out
Main package: D:\AWSopenWind\trunk\OpenWind\OpenWind.upp
Build method: c:\upp\MSC10x64.bm
Cleaning OpenWind
Cleaning CtrlLib
Cleaning plugin/tif
Cleaning GridCtrl
Cleaning PdfDraw
Cleaning plugin/jpg
Cleaning plugin/png
Cleaning plugin/bmp
Cleaning plugin/geotiff
Cleaning OpenWindPro
Cleaning Web
Cleaning Geom
Cleaning plugin/gif
Cleaning plugin/geotiff/libgeotiff
Cleaning SysInfo
Cleaning OCOE
Cleaning Internal
Cleaning Core
Cleaning Functions4U
Cleaning plugin/bz2
Cleaning Draw
Cleaning ide/Browser
Cleaning AESStream
...done
----- CtrlLib ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MSC ) (1
/ 21)
cd D:\Probuilds\d\CtrlLib
----- plugin/tif ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MSC )
(2 / 21)
cd D:\Probuilds\d\plugin\tif
----- GridCtrl ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MSC ) (3
 / 21)
cd D:\Probuilds\d\GridCtrl
----- PdfDraw ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MSC ) (4
/ 21)
cd D:\Probuilds\d\PdfDraw
----- plugin/jpg ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MSC )
(5 / 21)
cd D:\Probuilds\d\plugin\jpg
----- plugin/png ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MSC )
(6 / 21)
cd D:\Probuilds\d\plugin\png
----- plugin/bmp ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MSC )
(7 / 21)
cd D:\Probuilds\d\plugin\bmp
----- plugin/geotiff ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MS
C ) (8 / 21)
cd D:\Probuilds\d\plugin\geotiff
----- OpenWindPro ( PRO GUI MT OCOE CLIENT_WORP MSC10X64 FORCE_SPEED WIN32 MSC )
 (9 / 21)
cd D:\AWSopenWind\trunk\OpenWindPro
compiled in (0:00.00)
compiled in (0:00.00)
compiled in (0:00.00)
compiled in (0:00.00)
compiled in (0:00.00)
compiled in (0:00.00)
compiled in (0:00.00)
compiled in (0:00.01)
compiled in (0:00.00)
Constructability.cpp
D:\AWSopenWind\trunk\OpenWind/OpenWind.h(42) : fatal error C1083: Cannot open in
clude file: 'CtrlLib/CtrlLib.h': No such file or directory
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-1.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\Constructability.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.C
lient_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\Constructability.obj"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-2.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\Pro.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.Client_Worp.Fo
rce_Speed.Gui.Mt.Ocoe.Pro\Pro.obj"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-3.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\Additions.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.Client_W
orp.Force_Speed.Gui.Mt.Ocoe.Pro\Additions.obj"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-4.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\CryptoGrix.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.Client_
Worp.Force_Speed.Gui.Mt.Ocoe.Pro\CryptoGrix.obj"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-5.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\ShadowFlicker.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.Clie
nt_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\ShadowFlicker.obj"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-6.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\solpos.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.Client_Worp
.Force_Speed.Gui.Mt.Ocoe.Pro\solpos.obj"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-7.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\WMS.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.Client_Worp.Fo
rce_Speed.Gui.Mt.Ocoe.Pro\WMS.obj"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-8.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\AgiRadar.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.Client_Wo
rp.Force_Speed.Gui.Mt.Ocoe.Pro\AgiRadar.obj"
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe" -nolog
o -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -I"D:\upp\uppsrc"
 -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Include" -I"C:\Progra
m Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\include" -DflagPRO
 -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64 -DflagFORCE_SPEE
D -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -DbmHOUR=16 -DbmMI
NUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/OpenWindPro/MSC10x
64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-9.pdb" -Tp "D:\AWSopenWin
d\trunk\OpenWindPro\EffectiveTi.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x64.Client
_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\EffectiveTi.obj"
Error executing "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd6
4\cl.exe" -nologo -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -
I"D:\upp\uppsrc" -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Inclu
de" -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\in
clude" -DflagPRO -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64
-DflagFORCE_SPEED -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -D
bmHOUR=16 -DbmMINUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/Op
enWindPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-1.pdb" -T
p "D:\AWSopenWind\trunk\OpenWindPro\Constructability.cpp" -Fo"c:/upp/_out/OpenWi
ndPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\Constructability.obj"
D:\AWSopenWind\trunk\OpenWind/OpenWind.h(42) : fatal error C1083: Cannot open in
clude file: 'CtrlLib/CtrlLib.h': No such file or directory
Pro.cpp
Error executing "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd6
4\cl.exe" -nologo -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -
I"D:\upp\uppsrc" -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Inclu
de" -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\in
clude" -DflagPRO -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64
-DflagFORCE_SPEED -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -D
bmHOUR=16 -DbmMINUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/Op
enWindPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-2.pdb" -T
p "D:\AWSopenWind\trunk\OpenWindPro\Pro.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x6
4.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\Pro.obj"
D:\AWSopenWind\trunk\OpenWind/OpenWind.h(42) : fatal error C1083: Cannot open in
clude file: 'CtrlLib/CtrlLib.h': No such file or directory
Additions.cpp
Error executing "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd6
4\cl.exe" -nologo -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -
I"D:\upp\uppsrc" -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Inclu
de" -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\in
clude" -DflagPRO -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64
-DflagFORCE_SPEED -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -D
bmHOUR=16 -DbmMINUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/Op
enWindPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-3.pdb" -T
p "D:\AWSopenWind\trunk\OpenWindPro\Additions.cpp" -Fo"c:/upp/_out/OpenWindPro/M
SC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\Additions.obj"
d:\awsopenwind\trunk\openwindpro\CryptoGrix.h(50) : fatal error C1083: Cannot op
en include file: 'CtrlLib/CtrlLib.h': No such file or directory
CryptoGrix.cpp
Error executing "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd6
4\cl.exe" -nologo -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -
I"D:\upp\uppsrc" -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Inclu
de" -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\in
clude" -DflagPRO -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64
-DflagFORCE_SPEED -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -D
bmHOUR=16 -DbmMINUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/Op
enWindPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-4.pdb" -T
p "D:\AWSopenWind\trunk\OpenWindPro\CryptoGrix.cpp" -Fo"c:/upp/_out/OpenWindPro/
MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\CryptoGrix.obj"
ShadowFlicker.cpp
D:\AWSopenWind\trunk\OpenWind/OpenWind.h(42) : fatal error C1083: Cannot open in
clude file: 'CtrlLib/CtrlLib.h': No such file or directory
Error executing "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd6
4\cl.exe" -nologo -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -
I"D:\upp\uppsrc" -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Inclu
de" -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\in
clude" -DflagPRO -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64
-DflagFORCE_SPEED -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -D
bmHOUR=16 -DbmMINUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/Op
enWindPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-5.pdb" -T
p "D:\AWSopenWind\trunk\OpenWindPro\ShadowFlicker.cpp" -Fo"c:/upp/_out/OpenWindP
ro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\ShadowFlicker.obj"
solpos.cpp
d:\awsopenwind\trunk\openwindpro\solpos.h(16) : fatal error C1083: Cannot open i
nclude file: 'CtrlLib/CtrlLib.h': No such file or directory
Error executing "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd6
4\cl.exe" -nologo -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -
I"D:\upp\uppsrc" -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Inclu
de" -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\in
clude" -DflagPRO -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64
-DflagFORCE_SPEED -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -D
bmHOUR=16 -DbmMINUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/Op
enWindPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-6.pdb" -T
p "D:\AWSopenWind\trunk\OpenWindPro\solpos.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC1
0x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\solpos.obj"
WMS.cpp
D:\AWSopenWind\trunk\OpenWind/OpenWind.h(42) : fatal error C1083: Cannot open in
clude file: 'CtrlLib/CtrlLib.h': No such file or directory
Error executing "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd6
4\cl.exe" -nologo -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -
I"D:\upp\uppsrc" -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Inclu
de" -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\in
clude" -DflagPRO -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64
-DflagFORCE_SPEED -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -D
bmHOUR=16 -DbmMINUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/Op
enWindPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-7.pdb" -T
p "D:\AWSopenWind\trunk\OpenWindPro\WMS.cpp" -Fo"c:/upp/_out/OpenWindPro/MSC10x6
4.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\WMS.obj"
AgiRadar.cpp
EffectiveTi.cpp
D:\AWSopenWind\trunk\OpenWind/OpenWind.h(42) : fatal error C1083: Cannot open in
clude file: 'CtrlLib/CtrlLib.h': No such file or directory
Error executing "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd6
4\cl.exe" -nologo -W3 -GR -c -I"D:\Probuilds\d" -I"D:\AWSopenWind\trunk" -I"c" -
I"D:\upp\uppsrc" -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\Inclu
de" -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" -I"C:\OpenSSLx64\in
clude" -DflagPRO -DflagGUI -DflagMT -DflagOCOE -DflagCLIENT_WORP -DflagMSC10X64
-DflagFORCE_SPEED -DflagWIN32 -DflagMSC -DbmYEAR=2011 -DbmMONTH=12 -DbmDAY=12 -D
bmHOUR=16 -DbmMINUTE=17 -DbmSECOND=32 -EHsc  -MT -O2 -GS- -Gy -Fd"c:/upp/_out/Op
enWindPro/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\OpenWindPro-9.pdb" -T
p "D:\AWSopenWind\trunk\OpenWindPro\EffectiveTi.cpp" -Fo"c:/upp/_out/OpenWindPro
/MSC10x64.Client_Worp.Force_Speed.Gui.Mt.Ocoe.Pro\EffectiveTi.obj"
OpenWindPro: 9 file(s) built in (0:00.00), 1 msecs / file, duration = 577 msecs,
 parallelization 100%

There were errors. (0:00.62)

D:\Probuilds>pause
Press any key to continue . . .


unfortunately, in making this more Linux friendly, it appears it is no longer Windows compatible. See how the ":" gets interpreted?

So, I am more and more confident of my original assertion that this is broken.

What say you?

Nick

p.s. also, did you see how the output directory is completely ignored? This is not good. If all the exes get written to the same place, what use is batch?

p.p.s you can get around the ":" problem by writing something like

c:\upp\umk.exe "\AWSopenWind\trunk":"\upp\uppsrc" OpenWind c:\upp\MSC10x64 -a1ev +PRO,GUI,MT,OCOE,CLIENT_WORP \Probuilds\WORP\openWind64.exe

which makes things clearer but gets the same result.

More info: I was impressed that umk managed to work out which disk was being used but I was giving it way too much credit. If I run the above line from inside C:\upp I get


C:\upp>c:\upp\umk.exe \AWSopenWind\trunk:\upp\uppsrc OpenWind c:\upp\MSC10x64 -a
1ev +PRO,GUI,MT,OCOE,CLIENT_WORP \Probuilds\WORP\openWind64.exe
Inline assembly: C:\AWSopenWind\trunk;C:\upp\uppsrc
Output directory: c:\upp\_out
Main package: C:\AWSopenWind\trunk\OpenWind\OpenWind.upp
Package does not exist

C:\upp>pause
Press any key to continue . . .


Will the old umk.exe work with the new theide.exe ? If no-one who can fix it has Windows and the old version worked perfectly under Windows, it makes sense to just use the old version right?

OK, the old umk.exe (from 3211) wont work with the latest UPP Sad

[Updated on: Tue, 13 December 2011 02:02]

Report message to a moderator

Re: umk got changed.... [message #34803 is a reply to message #34802] Tue, 13 December 2011 02:07 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Hi Honza,

If you could replace the ":" with ";" to make umk windows compatible the only problem then the fact that umk.exe does not recognise the output path.

Two reasonably small problems?

Nick

CONSOLE_APP_MAIN
{
	Ide ide;
	TheIde(&ide);
	ide.console.SetSlots(CPU_Cores());
	ide.console.console = true;
	bool clset = false;
	const Vector<String>& arg = CommandLine();
	if(arg.GetCount() >= 3) {
		for(int i = 3; i < arg.GetCount(); i++)
			if(arg[i][0] == '-') {
				String x = arg[i];
				for(int i = 1; i < x.GetCount(); i++) {
					if(x[i] == 'l')
						SilentMode = true;
					if(x[i] == 'v')
						ide.console.verbosebuild = true;
				}						
			}
		String v = GetUmkFile(arg[0] + ".var");
		if(!FileExists(v)) {
			Vector<String> h = Split(arg[0], ';'); // this change makes it windows compatible ? 
			for(int i = 0; i < h.GetCount(); i++)
				h[i] = GetFullPath(TrimBoth(h[i]));
			String x = Join(h, ";");
			SetVar("UPP", x, false);
			PutVerbose("Inline assembly: " + x);
			String outdir = ConfigFile("_out"); // this line makes the output path not work?
			RealizeDirectory(outdir);
			SetVar("OUTPUT", outdir, false);
		}
		else {
			if(!LoadVars(v)) {
				Puts("Invalid assembly\n");
				SetExitCode(2);
				return;
			}
			PutVerbose("Assembly file: " + v);
			PutVerbose("Assembly: " + GetVar("UPP"));
		}
		PutVerbose("Output directory: " + GetVar("OUTPUT"));
		v = SourcePath(arg[1], GetFileTitle(arg[1]) + ".upp");
		PutVerbose("Main package: " + v);
		if(!FileExists(v)) {
			Puts("Package does not exist\n");
			SetExitCode(2);
			return;
		}
		ide.main = arg[1];
		ide.wspc.Scan(ide.main);
		clset = true;
		bool stoponerror = false;
		const Workspace& wspc = ide.IdeWorkspace();
		if(!wspc.GetCount()) {
			Puts("Empty assembly\n");
			SetExitCode(4);
			return;
		}
		const Array<Package::Config>& f = wspc.GetPackage(0).config;
		if(f.GetCount())
			ide.mainconfigparam = f[0].param;
		String m = arg[2];
		String bp = GetBuildMethodPath(m);
		PutVerbose("Build method: " + bp);
		if(bp.GetCount() == 0) {
			SilentMode = false;
			Puts("Invalid build method\n");
			SetExitCode(3);
			return;
		}
		ide.method <<= m;
		ide.debug.def.blitz = ide.release.def.blitz = 0;
		ide.debug.def.debug = 2;
		ide.release.def.debug = 0;
		ide.debug.package.Clear();
		ide.release.package.Clear();
		ide.debug.linkmode = ide.release.linkmode = 0;
		ide.release.createmap = ide.debug.createmap = false;
		ide.targetmode = 0;
		bool clean = false;
		bool makefile = false;
		int  exporting = 0;
		String mkf;
		for(int i = 3; i < arg.GetCount(); i++)
			if(arg[i][0] == '+' || arg[i][0] == '>')
				ide.mainconfigparam = Filter(~arg[i] + 1, CommaSpace);
			else
			if(arg[i][0] == '-') {
				String x = arg[i];
				for(int i = 1; i < x.GetCount(); i++)
					switch(x[i]) {
					case 'a':
						clean = true;
						break;
					case 'r':
						ide.targetmode = 1;
						break;
					case '1':
						ide.targetmode = 2;
						break;
					case '2':
						ide.targetmode = 3;
						break;
					case 'm':
						ide.release.createmap = ide.debug.createmap = true;
						break;
					case 'b':
						ide.release.def.blitz = ide.debug.def.blitz = 1;
						break;
					case 's':
						ide.debug.linkmode = ide.release.linkmode = 1;
						break;
					case 'd':
						ide.debug.def.debug = 0;
						break;
					case 'S':
						ide.debug.linkmode = ide.release.linkmode = 2;
						break;
					case 'e':
						stoponerror = true;
						break;
					case 'M':
						makefile = true;
						break;
					case 'v':
						ide.console.verbosebuild = true;
						break;
					case 'l':
						break;
					case 'x':
						exporting = 1;
						break;
					case 'X':
						exporting = 2;
						break;
					case 'H':
						if(i + 1 < x.GetCount() && x[i + 1] >= '1' && x[i + 1] <= '9')
							ide.console.SetSlots(x[++i] - '0');
						else
							ide.console.SetSlots(1);
						break;
					default:
						SilentMode = false;
						Puts("Invalid build option(s)");
						SetExitCode(3);
						return;
					}
			}
			else {
				ide.debug.target_override = ide.release.target_override = true;
				ide.debug.target = ide.release.target = mkf = arg[i];
			}
		if(clean)
			ide.Clean();
		if(exporting) {
			mkf = GetFullPath(mkf);
			Cout() << mkf << '\n';
			RealizeDirectory(mkf);
			if(makefile)
				ide.ExportMakefile(mkf);
			else
				ide.ExportProject(mkf, exporting == 2);
		}
		else
		if(makefile) {
			ide.SaveMakeFile(IsNull(mkf) ? "Makefile" : mkf, false);
			SetExitCode(0);
		}
		else
		if(ide.Build())
			SetExitCode(0);
		else
			SetExitCode(1);
	}
	else
		Puts("Usage: umk assembly main_package build_method -options [+flags] [output]\n"
		     "Examples: umk examples Bombs GCC -ab +GUI,SHARED ~/bombs\n"
		     "          umk examples:uppsrc Bombs ~/GCC.bm -rv +GUI,SHARED ~/bin\n"
		     "See http://www.ultimatepp.org/app$ide$umk$en-us.html for details\n");	
}

[Updated on: Tue, 13 December 2011 02:17]

Report message to a moderator

icon6.gif  Re: umk got changed.... [message #34805 is a reply to message #34803] Tue, 13 December 2011 05:51 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Sorry to keep spamming the thread but I thought this deserved it's own post to correct an earlier mistake of mine.

The umk.exe from 3211 appears to work fine with UPP 4193 so it's all good.

I can wait for the next official UPP release - phew!

Nick
Re: umk got changed.... [message #34818 is a reply to message #34729] Tue, 13 December 2011 17:55 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1758
Registered: August 2008
Location: Czech Republic
Senior Contributor

Hi Nick,

I'm afraid we're slowly coming to the limits of my theoretical knowledge Smile I don't have windows computer, so all I say relies on what I remember from many years ago...

So first the ":" problem - changing it to ; on windows would help, it is the common way to separate paths e.g. in PATH variable IIRC, on linux the : is used for the same purpose. It wouldn't be a problem to make this platform dependent, but I'll propose completely different solution few lines lower Wink

The target override works fine for me. The line you pointed to should not make problem, as those two later in file have precedence (umake.cpp:193-194):
ide.debug.target_override = ide.release.target_override = true;
ide.debug.target = ide.release.target = mkf = arg[i];


We will both probably aggree, that the interface of umk is terrible and clumsy. I believe that the best possible solution here would be to rewrite it. In a bit Linux-y way Smile By that I mean non-positional arguments, paths and flags settable by multiple parametrs instead of one string with separators etc. What do you think? You are one of the very limited amount of people who actively uses umk, so your opinion has quite a big weight here Smile If Mirek agrees as well, I can rewrite the interface to match the common scheme from posix world. I belive it would make using umk much simpler...

Honza
Re: umk got changed.... [message #34949 is a reply to message #34818] Mon, 19 December 2011 20:26 Go to previous messageGo to next message
nixnixnix is currently offline  nixnixnix
Messages: 415
Registered: February 2007
Location: Kelowna, British Columbia
Senior Member
Hi Honza,

That sounds great so long as it is fully configurable from both Linux and Windows.

For me umk is essential as I build different exes for each of my users (madness I know) but for now I can use the old version. I suspect that this is only a temporary reprieve though. If you do decide to rewrite, let me know and I will happily test on XP/Vista/7.

Cheers,

Nick
Re: umk got changed.... [message #34950 is a reply to message #34949] Mon, 19 December 2011 20:37 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
Sorry for troubles, as it was essential for me to remove GUI dependency from umk, I have concentrated on linux, where I need it most.

I will fix the windows part ASAP, most likely within days.

http://www.ultimatepp.org/redmine/issues/226

Mirek

[Updated on: Mon, 19 December 2011 20:37]

Report message to a moderator

Re: umk got changed.... [message #35019 is a reply to message #34950] Wed, 28 December 2011 19:32 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
Sorry, it was longer than a couple of days, but it should work now. I have replaces ':' with ',' (in posix, you can use both).

WRT to output directory, you can specify target as the last parameter. This was my test commandline in windows:

u:/upp.src/examples,u:/upp.src/uppsrc Bombs u:/upp/MSC9 -abv +GUI u:/bombs.exe


Mirek
Re: umk got changed.... [message #37565 is a reply to message #35019] Thu, 18 October 2012 23:19 Go to previous messageGo to next message
kohait00 is currently offline  kohait00
Messages: 934
Registered: July 2009
Location: Germany
Experienced Contributor
hi all..

just tonight i started trying umk for myself. can't believe i've been away for so long Smile

i use a setup, where all my ide config lies in V:\upprun, then there is U:\uppsvn and V:\uppgit for known reasons.. to keep the code separated from the runtime stuff..

so i copied tie umk.exe in V:\upprun and started with

umk examples_git Bombs MSC9 -b +GUI,SHARED bombs.exe


it did some things, but stopped eventually stopped at the same Invalid build method message, because it could not find my MSC9.bm, lying in the same folder.

so i debugged a bit: why not simply ading the current umk.exe to the search path..that worked for me and i think would do for many..

@@ -6,11 +6,12 @@ String GetUmkFile(const char *fn)
 {
 	return GetFileOnPath(fn,
 	                     GetHomeDirFile(".upp/umk") + ';' +
 	                     GetHomeDirFile(".upp/theide") + ';' +
 	                     GetHomeDirFile(".upp/ide") + ';' +
-	                     GetHomeDirectory());
+	                     GetHomeDirectory() + ';' +
+	                     GetFileFolder(GetExeFilePath()));
 }
 
 String GetBuildMethodPath(String method)
 {
 	if(GetFileExt(method) != ".bm")


what do you say
Re: umk got changed.... [message #37568 is a reply to message #37565] Fri, 19 October 2012 09:44 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
Makes sense, patch applied.

It was not there yet because umk was mostly used in linux so far Wink

Mirek
Re: umk got changed.... [message #37569 is a reply to message #37568] Fri, 19 October 2012 10:40 Go to previous message
kohait00 is currently offline  kohait00
Messages: 934
Registered: July 2009
Location: Germany
Experienced Contributor
but it's good to see that except for that umk works just as fine on windows too..even on my more or less 'non standard' upp environment setup

BTW:

just plain realized yesterday night, how neat the upp build system is with the package/assembly approach..eclipse is versatile, but i couldn't figure out how to add extern libraries (or at least their dependency) to a static library project of Core. so my final rference/Core01 project, as user of Core static lib, had to link all the libraries Core dependency libraries. (kernel32, etc..).

here, umk is a very good choice, handling all those dependencies in such a 'logical' way.

cheers

[Updated on: Fri, 19 October 2012 10:45]

Report message to a moderator

Previous Topic: EditControl with AllCaps, OnlyNums, and ErrorMsg dialog
Next Topic: Missing Docs for some virtual Ctrl:: functions
Goto Forum:
  


Current Time: Wed Nov 20 15:35:07 CET 2019

Total time taken to generate the page: 0.01287 seconds