Thinking about creating ooRexx zip-archives ("usb"-versions) for all platforms 
how about the
following idea: create a new command (Makefile rule) "create_zip" via CMake 
which will use the
generated Rexx binary to run some Rexx script "createZip.rex" which will 
install ooRexx locally to a
(CMake supplied)  DESTDIR (e.g. "_zip_").

Then in the DESTDIR subdirectory a subdirectory named after the zip-filename 
(CMake supplied) gets
created and the DESTDIR installed files will get copied/moved to it with the 
following zip-layout:

  * bin: contains all binaries, on Windows also the dlls
  * lib: contains all shared/dynamic libraries, on Windows the link libraries 
rexx.lib, rexxapi.lib
  * include: contains the include files
  * samples: contains all the samples
  * doc: contains the pdf files, if they got installed

After the Rexx script did its reshuffling to create the directory layout for 
the zip-archive, CMake
gets control back.

CMake should create two zip-files from these, a runtime version (bin, lib, 
include) and a full
version (bin, lib, include, samples, doc). The runtime version should also 
include the necessary
files for compiling against ooRexx (lib, include) on all platforms (the ooRexx 
Windows installation
has an 'api' directory which includes the include files and the link libraries, 
however sorting them
out and placing them into an include and lib directory in the zip-archive would 
standardize the
layout structure among all systems; this is for the zip-versions only).

(N.B.: Looking at Apple I noted that doing a DESTDIR install will have the 
samples in "share/ooRexx"
and not in "share/ooRexx/samples" as on Linux, wondering why this would be.)

---

The zip-file name should be set by CMake, here one idea:

    ${CPACK_PACKAGE_NAME}-${ORX_VERSION}-r${ORX_BLD_LVL}-${rexx_exe_cpu}

where "rexx_exe_cpu" would be CMAKE_SYSTEM_PROCESSOR on Linux and Apple (in the 
case of a universal
build it would be 'universal' instead) and NSIS_CPU on Windows (currently 
either "x86_32" or "x86_64").

On a 32-bit Windows system the produced zip archive might be named
"ooRexx-5.0.0-r12345-x86_32-runtime.zip" and "ooRexx-5.0.0-r12345-x86_32.zip" 
(full version with
samples and documentation) on a 64-bit Linux 
"ooRexx-5.0.0-r12345-x86_64-runtime.zip" and
"ooRexx-5.0.0-r12345-x86_64.zip" on an Apple 
"ooRexx-5.0.0-r12345-universal-runtime.zip" and
"ooRexx-5.0.0-r12345-universal.zip".

Any comments?

---rony


_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to