Get Started

Get Started

You need:

  • python (3.x strongly preferred, even though 2.x might still work)
  • cmake (3.21.0 or newer)
  • a working C/C++ development environment:
    • on OSX: Xcode + command line tools
    • on Linux: make/gcc (or clang)
    • on Windows: VS2015 or better
    • alternatively, VSCode with the C/C++ and CMakeTools extension is supported on all platforms

Get fips

fips will create additional directories on the same directory level as the fips directory itself, thus it is recommended to git-clone fips into a separate ‘workspace’ directory:

> cd ~
> mkdir fips-workspace
> cd fips-workspace
> git clone https://github.com/floooh/fips.git
> cd fips
> _

Test if fips works

Invoke the fips main script by running ‘./fips’ from within the fips directory:

NOTE: on Windows, run ‘fips’ instead of ‘./fips’

> ./fips
run 'fips help' for more info

NOTE: usually ‘./fips’ is run from the root directory of a ‘fipsified’ C/C++ project, not from the fips directory

Get help

Run ‘./fips help’ to show available fips commands:

> ./fips help
fips: the high-level, multi-platform build system wrapper
v0.0.1
https://www.github.com/floooh/fips

fips build
fips build [config]
   perform a build for current or named config
...
> _

You can also show help for a single command:

> ./fips help diag
fips diag
fips diag all
fips diag fips
fips diag tools
fips diag configs
fips diag imports
    run diagnostics and check for errors
> _

Get required tools

Run ‘./fips diag tools’ to check for required tools, install any that are listed as ‘NOT FOUND’. The list of required tools may differ depending on your host platform.

> ./fips diag tools
=== tools:
git:	found
cmake:	found
ccmake:	found
make:	found
ninja:	OPTIONAL, NOT FOUND (required for building '*-ninja-*' configs)
java:	found
ant:	found
python2:	found
> _

NOTE that some tools are optional and only required for specific build configurations

Setup new project

A new fips project can be setup by running ‘./fips init path/to/project’. This will copy a few commonly used fips config files into the target project directory. From the fips directory run ‘./fips init project-1’ and the following will be setup for you:

┗━━ fips-workspace/
    ┗━━ fips/
    ┃   ┗━━ ...
    ┗━━ project-1/
        ┣━━ fips.yml
        ┣━━ fips
        ┣━━ fips.cmd
        ┣━━ CMakeLists.txt
        ┗━━ .gitignore

NOTE fips will look for the folder in the root of the fipsified project (in this case the fips-workspace created above) and not in the fips folder itself.

From now on you can run all fips commands directly in the new project’s directory.