Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Overview

This page documents an exploration project of building PBS using CMake. This document begins with a brief introduction to CMake, followed the potential benefits and downsides of cmake compared to the a comparison of CMake with build tools we use today. Finally it details the changes that we need to make to build PBS using CMake.

The development branch can be found here if you want to read the code: https://github.com/minghui-liu/openpbs/tree/cmake

What is CMake?

CMake is an open source system

What is CMake?

CMake is an open source system for managing the build and packaging process of software in a compiler-independent manner. It is designed to generate build files (makefiles on Unix/Linux and projects/workspaces in Windows MSVC) and be used with native build tools. Once integrated with PBS it will replace autotools which we currently use. It also ships with a packaging tool, CPack, that generates packages for different Unix/Linux distros and even windows installer. For more information please read Cmake website https://cmake.org/overview/

...

To generate the source package, call cmake --build . --target package_source or make source.

Demo

If you want to try building PBS using CMake yourself, please git clone the development branch and do the following.

Code Block
cd openpbs
mkdir build
cd build
cmake ..
make
make install
// or call cpack, then yum install the generated RPM package

Future Work

  1. Complete all PBS build options and system features tests

  2. Correctly mark all target attributes with inheritance keywords. Now most of them are marked as PRIVATE.

  3. Generate multiple RPM packages. Currently only a single RPM package that contains all PBS files is generated. We need to split it into server, client, execution, devel and ptl packages.

  4. Generate package in more formats, such as DEB and Windows installer.

  5. Test on more platforms. Currently building PBS using CMake is only tested on CentOS 7.

...