Deliver a Clarion Developed Application Source Code to End User in Application Folder Structure

Hi,

We need to deliver a clarion developed application to end user. In our current application folder we are having the CLW, INC & all the source code files available. How do we convert that into a application folder structure?

Find the .shp file, everything you need for a deploy should be in there.
Put it in a single folder anywhere and run the executable. If you are writing in the .ini in the same folder don’t use Program Files sub-folder(s).

1 Like

Eric,

This is why I really enjoy this site. Learn something new all the time here.

After all these years I have never actually looked to see what that file contained.

Cool.

To go a little bit deeper:
ABC templates will generate required files in the shipping file, some 3rd party templates do too, but a .ini file will never be in there nor anything you add in source. For example a .env file with the app-name or one that might be read in source with LOCALE()

In the OBJ folder you will find CwProg.FileList.XML file that lists all the Opened or Written files by the Build process. It will help you spot files coming from folder other than your project folder.

There may be some other files used at runtime. Best to look at your running EXE with a Process Viewer to see all the loaded files. Suggest Process Explorer from Sys Internals.

You can use as a list of files to provide. Mark wrote this tool to copy those that may be of help.

School Example: School \ Obj \ Debug \ SCHOOL.cwproj.FileList.xml

<File_List name="SCHOOL.cwproj" version="1">
  <Opened_Files>
    <file name="D:\CLARION10\IMAGES\ABDNROW.ICO" />
    <file name="D:\CLARION10\IMAGES\ABUPROW.ICO" />
    <file name="D:\CLARION10\IMAGES\DELETE.ICO" />
    <file name="D:\CLARION10\IMAGES\DITTO.ICO" />
    <file name="D:\CLARION10\IMAGES\EDIT.ICO" />
    <file name="D:\CLARION10\IMAGES\EXP_PRI.ICO" />
    <file name="D:\CLARION10\IMAGES\FIND.ICO" />
    <file name="D:\CLARION10\IMAGES\HELP.ICO" />
    <file name="D:\CLARION10\IMAGES\INSERT.ICO" />
    <file name="D:\CLARION10\IMAGES\MARK.ICO" />
    <file name="D:\CLARION10\IMAGES\MINICAL.ICO" />
    <file name="D:\CLARION10\IMAGES\MINICANCEL.ICO" />
    <file name="D:\CLARION10\IMAGES\MINIOK.ICO" />
    <file name="D:\CLARION10\IMAGES\VCRDOWN.ICO" />
    <file name="D:\CLARION10\IMAGES\VCRFIRST.ICO" />
    <file name="D:\CLARION10\IMAGES\VCRLAST.ICO" />
    <file name="D:\CLARION10\IMAGES\VCRNEXT.ICO" />
    <file name="D:\CLARION10\IMAGES\VCRPRIOR.ICO" />
    <file name="D:\CLARION10\IMAGES\VCRUP.ICO" />
    <file name="D:\CLARION10\IMAGES\WACANCEL.ICO" />
    <file name="D:\CLARION10\IMAGES\WAOK.ICO" />
    <file name="D:\CLARION10\LIB\CLAASC.LIB" />
    <file name="D:\CLARION10\LIB\CLADOS.LIB" />
    <file name="D:\CLARION10\LIB\CLARUN.LIB" />
    <file name="D:\CLARION10\LIB\CLATPS.LIB" />
    <file name="D:\CLARION10\LIB\IEXE32.OBJ" />
    <file name="D:\CLARION10\LIB\WIN32.LIB" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABBREAK.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABBREAK.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABBROWSE.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABBROWSE.EQU" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABBROWSE.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABBROWSE.TRN" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABEIP.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABEIP.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABEIP.TRN" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABERROR.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABERROR.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABERROR.TRN" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABFILE.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABFILE.EQU" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABFILE.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABFUZZY.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABFUZZY.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABPOPUP.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABPOPUP.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABPOPUP.TRN" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABQUERY.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABQUERY.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABQUERY.TRN" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABREPORT.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABREPORT.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABREPORT.TRN" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRESIZE.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRESIZE.EQU" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRESIZE.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRPATMG.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRPATMG.EQU" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRPATMG.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRPPSEL.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRPPSEL.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABRPTGEN.INT" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABTOOLBA.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABTOOLBA.EQU" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABTOOLBA.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABTOOLBA.TRN" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABUTIL.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABUTIL.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABUTIL.TRN" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABUTILUI.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABVCRFRM.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABVCRFRM.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABWINDOW.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABWINDOW.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABWMFPAR.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABWMFPAR.EQU" />
    <file name="D:\CLARION10\LIBSRC\WIN\ABWMFPAR.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\BUILTINS.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\CWINT.INT" />
    <file name="D:\CLARION10\LIBSRC\WIN\CWSYNCH.INT" />
    <file name="D:\CLARION10\LIBSRC\WIN\CWSYNCHC.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\CWSYNCHC.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\CWSYNCHM.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\CWUTIL.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\CWUTIL.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\EQUATES.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\ERRORS.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\FILECB.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\KEYCODES.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\MENUSTYLE.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\MENUSTYLE.INC" />
    <file name="D:\CLARION10\LIBSRC\WIN\PRNPROP.CLW" />
    <file name="D:\CLARION10\LIBSRC\WIN\PROPERTY.CLW" />
    <file name="E:\TESTDEV\SCHOOLTEST10\_SOFTVUN.ICO" />
    <file name="E:\TESTDEV\SCHOOLTEST10\CLOSED.ICO" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABBREAK.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABBROWSE.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABEIP.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABEIP.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABERROR.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABERROR.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABFILE.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABFUZZY.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABPOPUP.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABPOPUP.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABQUERY.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABQUERY.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABREPORT.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABREPORT.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABRESIZE.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABRPATMG.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABRPPSEL.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABRPPSEL.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABTOOLBA.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABUTIL.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABUTIL.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABVCRFRM.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABWINDOW.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABWMFPAR.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABWMFPAR.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\CWSYNCHC.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\CWUTIL.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\MENUSTYLE.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL_BC.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL_BC0.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL001.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL001.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL002.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL002.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL003.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL003.RSC" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OPEN.ICO" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL.CLW" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL.EXE" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL.EXE.MANIFEST" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL.EXP" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL.LNK" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL_BC.CLW" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL_BC0.CLW" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL001.CLW" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL002.CLW" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL003.CLW" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SOFTV-U.BMP" />
  </Opened_Files>
  <Created_Files>
    <file name="E:\TESTDEV\SCHOOLTEST10\CLAASC.DLL" />
    <file name="E:\TESTDEV\SCHOOLTEST10\CLADOS.DLL" />
    <file name="E:\TESTDEV\SCHOOLTEST10\CLARUN.DLL" />
    <file name="E:\TESTDEV\SCHOOLTEST10\CLATPS.DLL" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABBREAK.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABBROWSE.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABEIP.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABERROR.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABFILE.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABFUZZY.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABPOPUP.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABQUERY.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABREPORT.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABRESIZE.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABRPATMG.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABRPPSEL.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABTOOLBA.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABUTIL.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABVCRFRM.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABWINDOW.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\ABWMFPAR.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\CWSYNCHC.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\CWUTIL.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\MENUSTYLE.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL_BC.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL_BC0.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL001.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL002.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\OBJ\DEBUG\SCHOOL003.OBJ" />
    <file name="E:\TESTDEV\SCHOOLTEST10\SCHOOL.EXE" />
  </Created_Files>
  <ToCopy_Files>
    <file name="CLAASC.DLL" />
    <file name="CLADOS.DLL" />
    <file name="CLARUN.DLL" />
    <file name="CLATPS.DLL" />
  </ToCopy_Files>
</File_List>

as well as all the other answers here, perhaps something else to consider is whether you should also send them the app and dct files?

perhaps you should so they can work at that higher level, or perhaps you want to keep that for yourself and just send them the generated source files. (I am assuming it is not a hand coded application that doesn’t use app/dct).

be careful that you don’t distribute any 3rd party code that is not free. If applicable they would need to buy their own licence for those if they wanted to compile the code themselves. (And obviously they would need their own copy of Clarion.)

if your app uses third party products that they need to compile the code, you should provide them with a list of all such products used (and perhaps a link to the appropriate web site(s)).