DkSDK is a set of tools to help you build native applications for the desktop, web, mobile and high-level embedded devices. One of those tools is DkSDK CMake, which is the documentation you are reading right now.

DkSDK CMake is a tool to manage building C and OCaml source code. So what are CMake and OCaml?

OCaml is a programming language

OCaml and its Meta Language ("ML") sister languages were designed to prove that math and software were rigorously correct. That origin gave OCaml an ununsual superpower: easy translation of code in one language into code for another language. The early versions of the Rust compiler, for example, used OCaml to translate Rust source code into machine code. Why does OCaml's superpower matter?

  1. You get the ability to write in OCaml and deploy to JavaScript. And with OCaml's uncomplicated C interoperability and modest system requirements, most computing devices can be targeted.

    You don't want to rewrite your business for each web, desktop, mobile and embedded device you target.

  2. As a DkSDK subscriber, each new DkSDK release that drops will give you code translators to old (proven!) high-productivity programming patterns like:

    • the Actor pattern championed by Erlang and adopted by Akka for backend code (coming late 2023)

    • the declarative user interface pattern championed by ReactJS and adopted by SwiftUI for frontend code (coming early 2024)

    As an early DkSDK subscriber, you can also purchase a DkSDK contract to provide the design and implementation so that your OCaml code automatically translates to C glue code that works with your preferred vendor's APIs.

    You don't want the high costs of hiring and developing for each new fad and each new technology vendor.

CMake is a build tool

CMake is a tool to manage building of source code. Originally, CMake was designed as a generator for various dialects of Makefile, today CMake generates modern build systems such as Ninja as well as project files for IDEs such as Visual Studio and Xcode.

CMake is widely used for the C and C++ languages, but it may be used to build source code of other languages too.

If you are new to CMake, we strongly recommend purchasing a digital copy of Professional CMake - A Practical Guide. Not only is it helpful to quickly getting your job done, the organization of DkSDK tutorials is done according to its CMake standards.


CMake Terminology

When needed to avoid confusion, we will use the term Standard CMake to describe the CMake commands created and maintained by CMake's creator Kitware. That term contrasts with DkSDK CMake which is a Diskuv product that has new CMake commands to help you build software that uses DkSDK.

We have made this DkSDK CMake documentation look similar to the Standard CMake Documentation because DkSDK CMake is an extension of Standard CMake. Everything that you can do in Standard CMake you can do in DkSDK CMake!

What's next?

Starting a new project using DkSDK CMake?

Read the DkSDK CMake Tutorial.

Reference Manuals