Skip to content

Modernize the build system #1003

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: pharo-10
Choose a base branch
from

Conversation

apteryks
Copy link

This work was made while adding a pharo-vm package to GNU Guix. With it, packaging should become trivial for most GNU/Linux distributions. The installation layout looks like:

/bin/pharo
/include/pharovm
/include/pharovm/config.h
/include/pharovm/debug.h
/include/pharovm/dispdbg.h
/include/pharovm/errorCode.h
/include/pharovm/exportDefinition.h
/include/pharovm/fileDialog.h
/include/pharovm/imageAccess.h
/include/pharovm/interpreter.h
/include/pharovm/jit
/include/pharovm/jit/jit.h
/include/pharovm/macros.h
/include/pharovm/parameters
/include/pharovm/parameters/parameters.h
/include/pharovm/parameters/parameterVector.h
/include/pharovm/pathUtilities.h
/include/pharovm/pharoClient.h
/include/pharovm/pharo.h
/include/pharovm/semaphores
/include/pharovm/semaphores/pharoSemaphore.h
/include/pharovm/semaphores/platformSemaphore.h
/include/pharovm/semaphores/pSemaphore.h
/include/pharovm/sigjmp_support.h
/include/pharovm/sqaio.h
/include/pharovm/sqAssert.h
/include/pharovm/sqAtomicOps.h
/include/pharovm/sqCogStackAlignment.h
/include/pharovm/sq.h
/include/pharovm/sqMemoryAccess.h
/include/pharovm/sqMemoryFence.h
/include/pharovm/sqNamedPrims.h
/include/pharovm/sqVirtualMachine.h
/include/pharovm/stringUtilities.h
/include/pharovm/threads
/include/pharovm/threadSafeQueue
/include/pharovm/threadSafeQueue/threadSafeQueue.h
/include/pharovm/threads/vmthread.h
/include/pharovm/win
/include/pharovm/win/resources.h
/lib/libB2DPlugin.so
/lib/libDSAPrims.so
/lib/libFileAttributesPlugin.so
/lib/libFilePlugin.so
/lib/libFloatArrayPlugin.so
/lib/libJPEGReaderPlugin.so
/lib/libJPEGReadWriter2Plugin.so
/lib/libLargeIntegers.so
/lib/libMiscPrimitivePlugin.so
/lib/libPharoVMCore.so
/lib/libSocketPlugin.so
/lib/libSurfacePlugin.so
/lib/libUnixOSProcessPlugin.so

Maxim Cournoyer added 6 commits July 29, 2025 20:01
Previously, calling cmake with -DCMAKE_INSTALL_PREFIX=/my/path
wouldn't be honored.
Modern Unix systems bake the library paths in the ELF binaries
directly via runpaths, avoiding the need to manually set
LD_LIBRARY_PATH.

This simplifies the problem and avoid the brittleness of running
potentially non-portable commands in a Shell script wrapper.

Take the opportunity to reuse Linux.cmake for every supported platform but
Windows and MacOS.
Specify the CMake targets to be installed directly.
A new INSTALL_C_SOURCE option is added guarding their installation,
OFF by default.
@apteryks apteryks force-pushed the modernize-build-system branch from a872be8 to 2adf905 Compare July 29, 2025 11:34
@apteryks apteryks changed the title Modernize the build system a bit Modernize the build system Jul 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant