Common Syntax of CMake (Strings)

Common Syntax of CMake (Strings)

Previous Highlights:CMake Hello, WorldCMake VariablesCMake Official Tutorial (Basic Project Setup)CMake Official Tutorial (Library Creation)CMake Official Tutorial (Usage Requirements)CMake Official Tutorial (Installation and Testing)CMake Common Syntax (if Statements)CMake Common Syntax (Cache Variables)CMake Common Syntax (Environment Variables)CMake Common Syntax (Mathematical Calculations) In mainstream programming languages, strings are a fundamental and core data type, which is crucial, and … Read more

CMake Tutorial

CMake Tutorial

1. Introduction to CMake CMake is a cross-platform build tool, which can generate: Makefile for Linux/Unix Project files for <span>Visual Studio</span> on Windows Project files for <span>Xcode</span> on macOS without manually writing build scripts for different platforms. 2. Installing CMake Windows: Download the installer from cmake.org/download Linux: <span>sudo apt install cmake</span> (Debian/Ubuntu) macOS: <span>brew install … Read more

Different Linking Methods for CMake Libraries

Different Linking Methods for CMake Libraries

1. Different Libraries Have Different Linking Methods OpenCV uses ${OpenCV_LIBS} target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) protobuf uses ${PROTOBUF_LIBRARIES} target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES}) jpeg-turbo uses the target name libjpeg-turbo::turbojpeg-static target_link_libraries(${PROJECT_NAME} libjpeg-turbo::turbojpeg-static) 2. How to Determine Which Method to Use Generally, the following methods can be used: Check the CMake file for usage instructions. (Well-written CMake files usually include usage instructions) Look … Read more

Implementing Static Library Compilation in Zephyr

Implementing Static Library Compilation in Zephyr

Zephyr has encapsulated a lot of functionality in its build system around CMake, primarily through a series of macros and functions that simplify the declaration of libraries and modules, the addition of source files, the setting of include directories, and linking operations. Below are detailed explanations of some key points: 1.zephyr_library() Macro lFunction This macro … Read more

CMake Project Management: From Beginner to Expert

CMake Project Management: From Beginner to Expert

Hello everyone! Today I want to share a very practical topic – CMake project management. As a veteran C++ developer with over ten years of experience, I know how important a good build system is in large project development. CMake is such a powerful tool that helps us manage code dependencies and configure compilation options, … Read more

CMake Tutorial: Building C/C++ Projects with Different Generators

CMake Tutorial: Building C/C++ Projects with Different Generators

For CMake, I had always understood it to be a project build tool, until I encountered –build and realized that CMake also unifies the compilation phase across different platforms. To understand CMake‘s build and compile process, one must first understand generators. 1. Generators The CMake generator is responsible for writing input files for the underlying … Read more

A Complete Guide to Using CMake

A Complete Guide to Using CMake

Scan to FollowLearn Embedded Together, Learn Together, Grow Together Hello everyone, I previously shared some articles related to makefiles: Make Command Tutorial | A Hands-On Guide to Makefile Linux Kernel Makefile Execution Process Some General Makefile Templates Today, I am sharing an article about CMake, which can generate local Makefiles without having to write complex … Read more

Cross-Compiling C and C++ with CMake

Cross-Compiling C and C++ with CMake

Embedded development, especially in SOA (Service Oriented Architecture), often encounters a scenario where part of the business functionality is developed in C and is relatively mature, and there is a desire to reuse it directly. However, the underlying services obtained by the business layer are written in C++. If both need to be placed in … Read more

Detailed Explanation of CMakeLists Syntax Rules

Detailed Explanation of CMakeLists Syntax Rules

Author丨zhanghm1995@blog Source丨https://blog.csdn.net/zhanghm1995/article/details/80902807 Editor丨3D Vision Workshop Basic Syntax Rules CMake requires that a CMakeLists.txt file be created in the main project directory and all subdirectories containing source code. Pay attention to case sensitivity (CM is uppercase, Lists has an uppercase L and do not omit the s). CMake variables are accessed using the ${} syntax, but … Read more

Comparison Analysis of Build Tools: XMake and CMake

Comparison Analysis of Build Tools: XMake and CMake

Syntax Comparison Empty Project XMake target("test") set_kind("binary") add_files("src/main.c") CMake add_executable(test "") target_sources(test PRIVATE src/main.c) Adding Source Files XMake XMake supports wildcard matching to add a batch of source files. *.c matches all files in the current directory, while **.c matches all files in recursive directories. This method saves time as there’s no need to modify … Read more