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
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel