Code Monkey home page Code Monkey logo

cmake_functions's Introduction

Tutorial on CMake functions and macros

Much like any other programming language, cmake also provides some facilities for code reuse. Functions and macros in CMake provides users with a way of encapsulating the code repetition. It gives users the possibility to create reusable blocks of CMake code and later use them like a built-in CMake commands.

The Basic on functions and macros

Scopes

Using keyword arguments

Overriding commands

Best Practices

  • Prefer functions over macros. Since functions create their own scope, they better isolate the effects of the function in the calling scope. Use macros when you really need the effects of the macro in the scope of the caller.

  • Use keyword-based argument handling, except for the very basic funtions. This provides better usability.

  • Place all the functions and macro in a separate file, rather then scattering them throughout the source tree. Place them in a separate directory under the top level of the project, and use *.cmake extension. This way they can use to call include().

cmake_functions's People

Contributors

nehildanis avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.