OK, too long of a day, sent the wrong version! :(

On 01.01.2019 21:39, Rony G. Flatscher wrote:
>
> Currently on Unix there are "lib*.5.0.0.dylib" (Apple) or "lib*.so.5.0.0" 
> (Linux) shared libraries
> created where "*" stands for "hostemu", "orxncurses", "rexx", "rexxapi", 
> "rexxutil", "rxmath",
> "rxregexp", "rxsock", "rxunixsys".
>
> In addition there are symbolic links created in the form of "lib*.dylib" or 
> "lib*.so" pointing to
> the "5.0.0" shared libraries. An example with "hostemu" shared libraries 
> would be:
>
>     Apple: libhostemu.dylib -> libhostemu.5.0.0.dylib
>     Linux: libhostemu.so    -> libhostemu.so.5.0.0
>
> If running executables that got linked to earlier versions of ooRexx (e.g. 
> ooRexx 2, ooRexx 3 or
> ooRexx 4) then such executables would not be able to run, unless there are 
> also symbolic links
> created that carry the version information "2", "3" or "4", like:
>
>     Apple: libhostemu2.dylib -> libhostemu.so
>            libhostemu3.dylib -> libhostemu.so
>            libhostemu4.dylib -> libhostemu.so
>
The above link to "libhostemu.dylib", of course.

>
>     Linux: libhostemu2.so -> libhostemu.so
>            libhostemu3.so -> libhostemu.so
>            libhostemu4.so -> libhostemu.so
>
> <https://sourceforge.net/p/oorexx/bugs/1421/> points at this situation.
>
> ---
>
> Now, as everyone is quite busy with different tasks I tried to start to 
> figure out how to change
> the CMakeList file such that it would create these symbolic links and install 
> them. Not having
> knowledge about CMake this has turned out to be a very time consuming task, 
> where information is
> missing that would allow me to conclude the experiment.
>
> After many hours, I have become able to create the symbolic links in the
> ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}, but have not been able to get these newly 
> added files to copy
> to the lib-directory at install time ("make install" or while creating the 
> rpm or deb packages
> where the shared libraries need to get copied to the packager's temporary 
> subdirectories).
>
> So any help or advice would be appreciated that would allow me to proceed, 
> such that in the end I
> could supply a patch for the project that creates these symbolic links!
>
> ---
>
> Here a few questions:
>
>   * why are the shared libraries created in the BINARY_DIR as in line # as
>       o set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
>       o on Apple there is an individual change to that value, such that a 
> "lib" directory gets
>         used to place the shared libraries to
>
On Apple and Linux the "INSTALL_LIB_DIR" gets changed, not the 
"CMAKE_LIBRARY_OUTPUT_DIRECTORY".


>   * how would one cause all shared files in ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} 
> to be copied at
>     installation time ("make install") to the installation's target library 
> directory?
>       o Tried it to no avail with (at build time INSTALL_LIB_DIR points to 
> the standard
>         installation location like "/usr/lib"):
>             install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E chdir 
> ${INSTALL_LIB_DIR}
>         create_symlink ${targetName} ${linkName})")
>         hence looking for alternatives.
>       o is there a means to inform CMake which library files need to be taken 
> from the
>         CMAKE_LIBRARY_OUTPUT_DIRECTORY and be put into the appropriate 
> library directory while
>         installing (and uninstalling)?
>
---rony
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to