Skip to content

KFKMan/KOKESort

Repository files navigation

CMake on multiple platforms

KOKE Sort (also known as Deniz Sort, Dahman Sort)

İstanbul Gelişim University Computer Engineering First Year Second Semester Final Project.

Project Overview

KOKE Sort is a cross-platform corresponding library written in C as a modular sort. It showcases efficient algorithm implementation along with multi-language interop, in addition to demonstrating clean code, test frameworks, and build automation practices.

PERFORMANCE

USING SCRIPTS

In Windows you can directly use (if requiretments installed) scripts with extension ".bat" for example install-ninja-source.bat

In Linux/MacOS you need to use scripts with extensions ".sh" (for example install-ninja-source.sh) with run permission, you can give run permission with chmod +x filename command (filename must be replaced with scripts fullname) for example chmod +x install-ninja-source.sh

PROJECT PARTS

  • Library (src)
  • Test App (src/test)
  • Example App (Voting App)
  • Fusion (fut)
  • OOP based Library (src/HighLevel/KOKESort/KOKESort) with Tests (src/HighLevel/KOKESort/UnitTests) and Example Appe (src/HighLevel/KOKESort/KOKESort.Example) [Deprecated]
  • Mutation Tool (mutator/KOKEMutator)
  • C# Interop Example (src/HighLevel/KOKESort/KOKESort.ExampleInterop)
  • Python Wrapper (src/pybindwrapper): for using it in python you need to have KOKESort build files in the same directory.

USAGE

For using python wrapper (use scripts in the src/pybindwrapper);

1- package.bat/sh => Creating .whl package

2- install.bat/sh => Installing .whl package

3- test/test.bat/sh => Copying KOKESort build files and running test file (test.py)

GENERAL REQUIRETMENTS

There's no general requiretments but most of the scripts/projects using CMake, CTest, Git, Curl.

As default there is a CMake configuration providen but you don't limited to use that, this steps is for who want to use providen configuration.

1- Install CMake: You can install it from (cmake.org)

2- Install Supported CMake Tool like Ninja (ninja-build.org) and configure it: For Ninja there's two option you have you can install pre-compiled binary and add it to CMake Path or you can build from source (you can use install-ninja-source.bat or install-ninja-source.sh).

LIBRARY REQUIRETMENTS

The library is pure C code without any other library (only standart libraries) dependency with C90 support.

TEST REQUIRETMENTS

We are using CTest which mostly come with CMake.

PYBINDWRAPPER REQUIRETMENTS

It's need pybind11, for default it's installing it automatically.

OOP BASED LIBRARY REQUIRETMENTS

In Library, Example, UnitTests.Domain there is no requiretments other than language requiretments.

In UnitTests it's need NUnit, for default it's installing it automatically.

FUSION REQUIRETMENTS

It's only need it's language requiretments (btw Fusion doesn't support libraries) which can be download from official repositories (https://github.com/fusionlanguage/fut/) release page (you can use download.bat/sh for downloading and install.bat/sh for installing but it's not recommended).

Contributors

@KFKMan (Kaan Faruk Kınalı)

@leokerem7 (Mehmet Kerem Aslan)

@EmirageCS (Emirhan Uçan)

Big thanks to @dahmansphi (Deniz Dahman)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published