This question is a follow-up to a previous question I asked about build "system" for PB2019. I have been banging my head on the walls for 3 days trying to understand how on Earth orcascript is supposed to work and how I could make it do what I want.
Basically, I want to be able to build incrementally an application as fast as possible when a source file changes, so if I understood things correctly the process should be something like:
- refresh .pbl from (changed) source files
- rebuild changed .pbl files into .pbd file
- rebuild executable from changed .pbd files
This seems simple enough and I ended writing the following script (only a fragmetn of libraries are shown, there are actually 30 libraries used):
start session
set debug true
scc set connect property localprojpath ".\"
scc set connect property logfile "createpbls.log"
scc set connect property logappend true
scc set connect property deletetempfiles "false"
scc connect offline
scc set target "progsaf.pbt" "OutOfDate importonly"
scc exclude liblist ".\sysfunctions.pbd"
scc refresh target incremental
build library "administrateur_c.pbl" "" pbd
build library "auxiliaure_c.pbl" "" pbd
build library "ax_c.pbl" "" pbd
...moar libs
build executable "progsaf_c.exe" "" "" "nyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
end session
Except this does not work, and what's worse it does not tell me what failed. The last lines of the createpbls.log file are:
Successfully created library: c:\users\arnaud\saf\securite_c.pbl
Successfully created library: c:\users\arnaud\saf\traduction_c.pbl
Successfully created library: c:\users\arnaud\saf\webserviceax.pbl
Successfully created library: c:\users\arnaud\saf\wizard_c.pbl
Successfully created library: c:\users\arnaud\saf\wizard_pch_c.pbl
Successfully created library: c:\users\arnaud\saf\swap_api.pbl
PBORCA_SccExcludeLibraryList:
c:\users\arnaud\saf\sysfunctions.pbd excluded.
PBORCA_SccRefreshTarget. Incremental Rebuild
What am I doing wrong? It seems to me it should be possible to do what I am trying to do using orcascript as hinted by the documentation here: https://docs.appeon.com/appeon_online_help/pb2019/pbug/apbs03.html
Am I missing something obvious?
4/25/2020 07:22 Source Management Initialization...
Local Project Path: c:\agent\_work\2\s
Scc Connect Offline Successful.
PBORCA_SccSetTarget: c:\agent\_work\2\s\progsaf.pbt
Target settings: REFRESH ALL | IMPORT ONLY
App Name: progsaf App Lib: c:\agent\_work\2\s\progsaf_c.pbl
Library List:
c:\agent\_work\2\s\sysfunctions\sysfunctions.pbd
c:\agent\_work\2\s\progsaf_c.pbl
... more libs
c:\agent\_work\2\s\swap_api.pbl
c:\agent\_work\2\s\tests_c.pbl
Successfully created library: c:\agent\_work\2\s\progsaf_c.pbl
... more libs
Successfully created library: c:\agent\_work\2\s\swap_api.pbl
Successfully created library: c:\agent\_work\2\s\tests_c.pbl
Bootstrapping Application...
PBORCA_SccExcludeLibraryList:
c:\agent\_work\2\s\sysfunctions\sysfunctions.pbd excluded.
PBORCA_SccRefreshTarget. Incremental Rebuild
Unable to process map file: c:\agent\_work\2\s\progsaf_c.pbg
c:\agent\_work\2\s\progsaf_c.pbl cannot be refreshed.
... more libs
Unable to process map file: c:\agent\_work\2\s\swap_api.pbg
c:\agent\_work\2\s\swap_api.pbl cannot be refreshed.
Unable to process map file: c:\agent\_work\2\s\tests_c.pbg
c:\agent\_work\2\s\tests_c.pbl cannot be refreshed.
PBORCA_SccClose
And here is the content of the orcascript itself (different from the one above as I reverted some changes):
start session
set debug true
scc set connect property logfile "createpbls.log"
scc connect offline
scc set target "progsaf.pbt" refresh_all importonly
scc exclude liblist ".\sysfunctions\sysfunctions.pbd"
scc refresh target incremental
scc close
end session
What I don't understand at this stage is the "error" message about the "Unable to process map file: XX".
Also, after invoking the orcascript we delete .pbg files and .s* files and then invoke the autocompiler:
"C:\Program Files (x86)\Appeon\AutoCompiler 19.0\pbc190.exe"" /d " + ("progsaf.pbt") + " /o " + ("progsaf_c.exe") + " /w y /f /m n /x 32 /bg y /p ""SAF "" /cp "" /de "" /v ""19"" /fv ""1.0.19.10"" /ge 0
And this seems to recreate the pbls and the pbds again.
I don't understand what's the interaction between orcascript and pbc190? Do we really need to do both? Is there a place somewhere that explains precisely how to build a PB executable from source control from command-line? The documentation on orcascript and pbc190 is somewhat lacking...
were you able to do this successfully? I am having a lot of issues compiling using pbc