Skip to content

RomanDonw/libmonotime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple platform-independent C99 monotonic time getter library.

Overview

This library provides simple, but very useful platform-independent system's monotonic time API for C99 standard.

Building the library

Windows

MSVC

Requirements: Visual Studio, CMake

  1. Clone this repo and open it folder in Visual Studio.
  2. Visual Studio must generate MSBuild script through CMake automaticly. Just wait for it.
  3. Build library and tests through Viusal Studio GUI, using hotkey (Ctrl + Shift + B by default) or terminal.

MinGW UCRT64

Requirements: MSYS2 UCRT64, MinGW UCRT64, make (mingw32-make), CMake.

  1. Run MSYS2 UCRT64 environment (recommended). Install all requirements if you haven't it.
  2. Clone this repo and go to repository root folder.
  3. Create folder build. Go to this catalog.
  4. Run cmake -S .. -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=$MSYSTEM_PREFIX. Wait for generating Makefile.
  5. Run mingw32-make and wait for building library.

Linux (UNIX)

Requirements: GCC, make, CMake

  1. Install all requirements if you haven't it.
  2. Clone this repo and go to repository root folder.
  3. Create folder build. Go to this catalog.
  4. Run cmake -S ... Wait for generating Makefile.
  5. Run make and wait for building library.

Installation

Windows

MinGW UCRT64

Just run mingw32-make install. Library will be installed to your MSYS2 system path (specified in -DCMAKE_INSTALL_PATH CMake option; /ucrt64 in this example).

Linux (UNIX)

Also just run sudo make install. Library will be installed to your system.

Usage in project

Manual linking

Warning

Manual linking is not recommended library usage way. Please use CMake for correct linking with library.

Include <libmonotime.h> header where you need to use this library. That link your executable with library by adding flag to command line -lmonotime. This library hasn't some dependencies, exclude C standard library. If you use static version of this library, please specify definition LIBMONOTIME_STATIC when you compile file, where included libmonotime header.

CMake

If you using CMake in your project, add libmonotime by same method or with using find_package:

find_package(libmonotime REQUIRED)
target_link_libraries(<target> PRIVATE libmonotime::monotime)

This will fully automatily setup libmonotime for your project. By default CMake will use static version of libmonotime, so if you want to use dynamic version of this library, set BUILD_SHARED_LIBS flag in your CMake config command prompt to ON.